diff --git a/documentation/content/ru/books/porters-handbook/_index.adoc b/documentation/content/ru/books/porters-handbook/_index.adoc --- a/documentation/content/ru/books/porters-handbook/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/_index.adoc @@ -1,15 +1,19 @@ --- -title: Руководство FreeBSD по созданию портов -authors: - - author: The FreeBSD Documentation Project -copyright: 2000-2020 The FreeBSD Documentation Project -trademarks: ["freebsd", "sun", "unix", "general"] -next: books/porters-handbook/porting-why add_single_page_link: true +authors: + - + author: 'The FreeBSD Documentation Project' +bookOrder: 15 +copyright: '2000-2023 The FreeBSD Documentation Project' +description: 'Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение' +next: books/porters-handbook/porting-why +params: + path: /books/porters-handbook/ showBookMenu: true +tags: "[\"FreeBSD Porter's Handbook\", \"Porting\", \"FreeBSD Ports Collection\"]" +title: 'Руководство FreeBSD по созданию портов' +trademarks: ["freebsd", "sun", "unix", "general"] weight: 0 -params: - path: "/books/porters-handbook/" --- = Руководство FreeBSD по созданию портов diff --git a/documentation/content/ru/books/porters-handbook/_index.po b/documentation/content/ru/books/porters-handbook/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/_index.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-12 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/_index.adoc:1 +#, no-wrap +msgid "Essential reading if you plan on providing a port of a third party piece of software" +msgstr "Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/_index.adoc:1 +#: documentation/content/en/books/porters-handbook/_index.adoc:18 +#, no-wrap +msgid "FreeBSD Porter's Handbook" +msgstr "Руководство FreeBSD по созданию портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/_index.adoc:49 +msgid "'''" +msgstr "'''" diff --git a/documentation/content/ru/books/porters-handbook/book.adoc b/documentation/content/ru/books/porters-handbook/book.adoc --- a/documentation/content/ru/books/porters-handbook/book.adoc +++ b/documentation/content/ru/books/porters-handbook/book.adoc @@ -1,13 +1,16 @@ --- -title: Руководство FreeBSD по созданию портов -authors: - - author: The FreeBSD Documentation Project -copyright: 2000-2020 The FreeBSD Documentation Project -trademarks: ["freebsd", "sun", "unix", "general"] add_split_page_link: true +authors: + - + author: 'The FreeBSD Documentation Project' +copyright: '2000-2023 The FreeBSD Documentation Project' +description: 'Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение' +tags: "[\"FreeBSD Porter's Handbook\", \"Porting\", \"FreeBSD Ports Collection\"]" +title: 'Руководство FreeBSD по созданию портов' +trademarks: ["freebsd", "sun", "unix", "general"] --- -= FreeBSD Porter's Handbook += Руководство FreeBSD по созданию портов :doctype: book :toc: macro :toclevels: 2 @@ -52,6 +55,7 @@ include::{chapters-path}slow-porting/_index.adoc[leveloffset=+1] include::{chapters-path}makefiles/_index.adoc[leveloffset=+1] include::{chapters-path}special/_index.adoc[leveloffset=+1] +include::{chapters-path}flavors/_index.adoc[leveloffset=+1] include::{chapters-path}plist/_index.adoc[leveloffset=+1] include::{chapters-path}pkg-files/_index.adoc[leveloffset=+1] include::{chapters-path}testing/_index.adoc[leveloffset=+1] @@ -59,6 +63,7 @@ include::{chapters-path}security/_index.adoc[leveloffset=+1] include::{chapters-path}porting-dads/_index.adoc[leveloffset=+1] include::{chapters-path}porting-samplem/_index.adoc[leveloffset=+1] +include::{chapters-path}order/_index.adoc[leveloffset=+1] include::{chapters-path}keeping-up/_index.adoc[leveloffset=+1] include::{chapters-path}uses/_index.adoc[leveloffset=+1] include::{chapters-path}versions/_index.adoc[leveloffset=+1] diff --git a/documentation/content/ru/books/porters-handbook/book.po b/documentation/content/ru/books/porters-handbook/book.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/book.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-12 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/book.adoc:1 +#, no-wrap +msgid "Essential reading if you plan on providing a port of a third party piece of software" +msgstr "Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/book.adoc:1 +#: documentation/content/en/books/porters-handbook/book.adoc:12 +#, no-wrap +msgid "FreeBSD Porter's Handbook" +msgstr "Руководство FreeBSD по созданию портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/book.adoc:48 +msgid "'''" +msgstr "'''" diff --git a/documentation/content/ru/books/porters-handbook/flavors/_index.adoc b/documentation/content/ru/books/porters-handbook/flavors/_index.adoc new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/flavors/_index.adoc @@ -0,0 +1,359 @@ +--- +description: 'Флейворы — это способ создания нескольких вариаций порта' +next: books/porters-handbook/plist +params: + path: /books/porters-handbook/flavors/ +prev: books/porters-handbook/special +showBookMenu: true +tags: ["Ports", "Flavors", "introduction", "how-to", "guide"] +title: 'Глава 7. Флейворы' +weight: 7 +--- + +[[flavors]] += Флейворы +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 7 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/porters-handbook/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../../images/{images-path} +endif::[] +ifndef::book[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +toc::[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +toc::[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[[flavors-intro]] +== Введение в флейворы (Flavors) + +Флейворы (Flavors) — это способ создания нескольких вариаций порта. Порт собирается несколько раз с различными вариациями. + +Например, порт может иметь обычную версию с множеством функций и значительным количеством зависимостей, а также облегчённую "lite"-версию только с базовыми функциями и минимальными зависимостями. + +Еще одним примером может быть порт с вариантом GTK и вариантом QT, в зависимости от используемого набора инструментов. + +[[flavors-using]] +== Использование FLAVORS + +Чтобы объявить порт с несколькими флейворами, добавьте `FLAVORS` в его [.filename]#Makefile#. Первый вариант в `FLAVORS` является вариантом по умолчанию. + +[TIP] +==== +Это может помочь упростить логику [.filename]#Makefile#, также определив `FLAVOR` как: + +[.programlisting] +.... +FLAVOR?= ${FLAVORS:[1]} +.... +==== + +[IMPORTANT] +==== +Чтобы отличать флейворы от опций, которые всегда обозначаются заглавными буквами, названия флейворов могут содержать _только_ строчные буквы, цифры и символ подчёркивания `_`. +==== + +[[flavors-using-ex1]] +.Основы использования флейворов +[example] +==== +Если порт имеет "облегченный" подчиненный порт (lite slave port), подчиненный порт можно удалить, а порт преобразовать во флейворы с помощью: + +[.programlisting] +.... +FLAVORS= default lite +lite_PKGNAMESUFFIX= -lite +[...] +.if ${FLAVOR:U} != lite +[enable non lite features] +.endif +.... + +==== + +[[flavors-using-ex2]] +.Еще один пример базового использования флейворов +[example] +==== +Если порт имеет подчиненный порт `-nox11`, подчиненный порт можно удалить, а порт преобразовать в флейворы с помощью: + +[.programlisting] +.... +FLAVORS= x11 nox11 +FLAVOR?= ${FLAVORS:[1]} +nox11_PKGNAMESUFFIX= -nox11 +[...] +.if ${FLAVOR} == x11 +[enable x11 features] +.endif +.... + +==== + +[[flavors-using-ex3]] +.Использование флейворов в более сложных примерах +[example] +==== +Вот слегка отредактированный отрывок из того, что присутствует в пакете package:devel/libpeas[], порте, который использует crossref:flavors[flavors-auto-python,флейворы Python]. При стандартных версиях Python 2 и 3, а именно 2.7 и 3.6, он автоматически получит `FLAVORS=py27 py36` + +[.programlisting] +.... +USES= gnome python +USE_PYTHON= flavors + +.if ${FLAVOR:Upy27:Mpy2*} +USE_GNOME= pygobject3 + +CONFIGURE_ARGS+= --enable-python2 --disable-python3 + +BUILD_WRKSRC= ${WRKSRC}/loaders/python +INSTALL_WRKSRC= ${WRKSRC}/loaders/python +.else # py3* +USE_GNOME+= py3gobject3 + +CONFIGURE_ARGS+= --disable-python2 --enable-python3 \ + ac_cv_path_PYTHON3_CONFIG=${LOCALBASE}/bin/python${PYTHON_VER}-config + +BUILD_WRKSRC= ${WRKSRC}/loaders/python3 +INSTALL_WRKSRC= ${WRKSRC}/loaders/python3 +.endif + +py34_PLIST= ${.CURDIR}/pkg-plist-py3 +py35_PLIST= ${.CURDIR}/pkg-plist-py3 +py36_PLIST= ${.CURDIR}/pkg-plist-py3 +.... + +Этот порт не использует `USE_PYTHON=distutils`, но всё равно требует флейворы Python. Чтобы избежать ошибки в man:make[1] из-за пустого значения `FLAVOR`, используйте `${FLAVOR:U}` в сравнениях строк вместо `${FLAVOR}`. Привязки Gnome Python gobject3 имеют два разных названия: pygobject3 для Python 2 и py3gobject3 для Python 3. Скрипт `configure` должен выполняться в [.filename]#${WRKSRC}#, но нас интересует только сборка и установка частей программного обеспечения для Python 2 или Python 3, поэтому установите базовые каталоги сборки и установки соответствующим образом. Подсказка о правильном пути к конфигурационному скрипту Python 3. Список упаковки отличается при сборке с Python 3. Поскольку есть три возможные версии Python 3, установите `PLIST` для всех трёх с помощью crossref:flavors[flavors-using-helpers, вспомогательные инструменты флейворов]. +==== + +[[flavors-using-helpers]] +=== Вспомогательные инструменты для флейворов (Flavors Helpers) + +Чтобы упростить написание [.filename]#Makefile#, существуют несколько вспомогательных инструментов (помощников) флейворов. + +Этот список помощников установит их переменную: + +* `__flavor___PKGNAMEPREFIX` +* `__flavor___PKGNAMESUFFIX` +* `__flavor___PLIST` +* `__flavor___DESCR` + +Этот список помощников будет добавлен к их переменной: + +* `__flavor___CONFLICTS` +* `__flavor___CONFLICTS_BUILD` +* `__flavor___CONFLICTS_INSTALL` +* `__flavor___PKG_DEPENDS` +* `__flavor___EXTRACT_DEPENDS` +* `__flavor___PATCH_DEPENDS` +* `__flavor___FETCH_DEPENDS` +* `__flavor___BUILD_DEPENDS` +* `__flavor___LIB_DEPENDS` +* `__flavor___RUN_DEPENDS` +* `__flavor___TEST_DEPENDS` + +[[flavors-helpers-ex1]] +.Специфичный для флейвора `PKGNAME` +[example] +==== +Поскольку все пакеты должны иметь уникальные имена, флейворы должны изменять их, используя `__flavor___PKGNAMEPREFIX` и `__flavor___PKGNAMESUFFIX`, что упрощает задачу: + +[.programlisting] +.... +FLAVORS= normal lite +lite_PKGNAMESUFFIX= -lite +.... + +==== + +[[flavors-auto-php]] +== `USES=php` и флейворы + +При использовании crossref:uses[uses-php,`php`] с одним из этих аргументов: `phpize`, `ext`, `zend` или `pecl`, порт автоматически получит заполненный параметр `FLAVORS` с версиями PHP, которые он поддерживает. + +[[flavors-auto-php-ex1]] +.Простое расширение `USES=php` +[example] +==== +Это создаст пакет для всех поддерживаемых версий: + +[.programlisting] +.... +PORTNAME= some-ext +PORTVERSION= 0.0.1 +PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX} + +USES= php:ext +.... + +Это создаст пакет для всех поддерживаемых версий, кроме 7.2: + +[.programlisting] +.... +PORTNAME= some-ext +PORTVERSION= 0.0.1 +PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX} + +USES= php:ext +IGNORE_WITH_PHP= 72 +.... + +==== + +[[flavors-auto-php-app]] +=== Версии PHP с приложениями PHP + +Приложения PHP также могут быть созданы с использованием флейворов. + +Это позволяет создавать пакеты для всех версий PHP, чтобы пользователи могли использовать их с любой необходимой версией на своих серверах. + +[IMPORTANT] +==== +Приложения PHP, которые используют флейворы, _обязаны_ добавлять `PHP_PKGNAMESUFFIX` к именам своих пакетов. +==== + +[[flavors-auto-php-app-ex1]] +.Добавление флейворов в PHP-приложения +[example] +==== +Добавление поддержки флейворов в PHP-приложение просто: + +[.programlisting] +.... +PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX} + +USES= php:flavors +.... + +==== + +[TIP] +==== +При добавлении зависимости к порту с вариантом PHP используйте `@${PHP_FLAVOR}`. _Никогда_ не используйте `FLAVOR` напрямую. +==== + +[[flavors-auto-python]] +== `USES=python` и флейворы + +При использовании crossref:uses[uses-python,`python`] и `USE_PYTHON=distutils` порт автоматически получит заполненные `FLAVORS` с версиями Python, которые он поддерживает. + +[[flavors-auto-python-ex1]] +.Простой `USES=python` +[example] +==== +Предполагая, что поддерживаемые версии Python — 2.7, 3.4, 3.5 и 3.6, а версии Python 2 и 3 по умолчанию — 2.7 и 3.6, порт с параметрами: + +[.programlisting] +.... +USES= python +USE_PYTHON= distutils +.... + +получит следующие флейворы: `py27` и `py36`. + +[.programlisting] +.... +USES= python +USE_PYTHON= distutils allflavors +.... + +получит следующие флейворы: `py27`, `py34`, `py35` и `py36`. +==== + +[[flavors-auto-python-ex2]] +.`USES=python` с требованиями к версии +[example] +==== +Предполагая, что поддерживаемые версии Python — 2.7, 3.4, 3.5 и 3.6, а версии Python 2 и 3 по умолчанию — 2.7 и 3.6, порт с параметрами: + +[.programlisting] +.... +USES= python:-3.5 +USE_PYTHON= distutils +.... + +получит следующие флейвор: `py27`. + +[.programlisting] +.... +USES= python:-3.5 +USE_PYTHON= distutils allflavors +.... + +получит следующие флейворы: `py27`, `py34` и `py35`. + +[.programlisting] +.... +USES= python:3.4+ +USE_PYTHON= distutils +.... + +получит следующий флейвор: `py36`. + +[.programlisting] +.... +USES= python:3.4+ +USE_PYTHON= distutils allflavors +.... + +получит следующие флейворы: `py34`, `py35` и `py36`. +==== + +`PY_FLAVOR` доступен для указания правильной версии модулей Python. Все зависимости от вариантов портов Python должны использовать `PY_FLAVOR`, а не `FLAVOR` напрямую. + +[[flavors-auto-python-ex3]] +.Для порта, не использующего `distutils` +[example] +==== +Если версия Python 3 по умолчанию — 3.6, следующая команда установит `PY_FLAVOR` в значение `py36`: + +[.programlisting] +.... +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mutagen>0:audio/py-mutagen@${PY_FLAVOR} + +USES= python:3.5+ +.... + +==== + +[[flavors-auto-lua]] +== `USES=lua` и флейворы + +При использовании crossref:uses[uses-lua,`lua:module`] или crossref:uses[uses-lua,`lua:flavors`] порт автоматически получит заполненный параметр `FLAVORS` с версиями Lua, которые он поддерживает. Однако предполагается, что обычные приложения (а не модули Lua) не должны использовать эту возможность; большинству приложений, которые встраивают или иным образом используют Lua, следует просто указывать `USES=lua`. + +`LUA_FLAVOR` доступен (и должен использоваться) для зависимости от правильной версии зависимостей, независимо от того, использовал ли порт параметры `flavors` или `module`. + +См. crossref:special[using-lua,Использование Lua] для получения дополнительной информации. + +[[flavors-auto-guile]] +== `USES=guile` и флейворы + +При использовании crossref:uses[uses-guile,`guile:flavors`] порт автоматически получит заполненное поле `FLAVORS` с версиями Guile, которые он поддерживает. Однако не предполагается, что обычные приложения должны использовать эту возможность; она в первую очередь предназначена для библиотек и расширений, таких как `guile-lib` или `guile-cairo`. + +`GUILE_FLAVOR` доступен (и должен использоваться) для зависимости от правильной версии зависимостей с флейворами, независимо от того, использовал ли порт параметр `flavors` или нет. + +См. crossref:special[using-guile,Использование Guile] для получения дополнительной информации. diff --git a/documentation/content/ru/books/porters-handbook/flavors/_index.po b/documentation/content/ru/books/porters-handbook/flavors/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/flavors/_index.po @@ -0,0 +1,801 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-13 19:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:1 +#, no-wrap +msgid "Flavors are a way to have multiple variations of a port" +msgstr "Флейворы — это способ создания нескольких вариаций порта" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:1 +#, no-wrap +msgid "Chapter 7. Flavors" +msgstr "Глава 7. Флейворы" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:14 +#, no-wrap +msgid "Flavors" +msgstr "Флейворы" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:52 +#, no-wrap +msgid "An Introduction to Flavors" +msgstr "Введение в флейворы (Flavors)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:56 +msgid "" +"Flavors are a way to have multiple variations of a port. The port is built " +"multiple times, with variations." +msgstr "" +"Флейворы (Flavors) — это способ создания нескольких вариаций порта. Порт " +"собирается несколько раз с различными вариациями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:58 +msgid "" +"For example, a port can have a normal version with many features and quite a " +"few dependencies, and a light \"lite\" version with only basic features and " +"minimal dependencies." +msgstr "" +"Например, порт может иметь обычную версию с множеством функций и " +"значительным количеством зависимостей, а также облегчённую \"lite\"-версию " +"только с базовыми функциями и минимальными зависимостями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:60 +msgid "" +"Another example could be, a port can have a GTK flavor and a QT flavor, " +"depending on which toolkit it uses." +msgstr "" +"Еще одним примером может быть порт с вариантом GTK и вариантом QT, в " +"зависимости от используемого набора инструментов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:62 +#, no-wrap +msgid "Using FLAVORS" +msgstr "Использование FLAVORS" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:66 +msgid "" +"To declare a port having multiple flavors, add `FLAVORS` to its " +"[.filename]#Makefile#. The first flavor in `FLAVORS` is the default flavor." +msgstr "" +"Чтобы объявить порт с несколькими флейворами, добавьте `FLAVORS` в его " +"[.filename]#Makefile#. Первый вариант в `FLAVORS` является вариантом по " +"умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:70 +msgid "" +"It can help simplify the logic of the [.filename]#Makefile# to also define " +"`FLAVOR` as:" +msgstr "" +"Это может помочь упростить логику [.filename]#Makefile#, также определив " +"`FLAVOR` как:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:74 +#, no-wrap +msgid "FLAVOR?=\t${FLAVORS:[1]}\n" +msgstr "FLAVOR?=\t${FLAVORS:[1]}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:80 +msgid "" +"To distinguish flavors from options, which are always uppercase letters, " +"flavor names can _only_ contain lowercase letters, numbers, and the " +"underscore `_`." +msgstr "" +"Чтобы отличать флейворы от опций, которые всегда обозначаются заглавными " +"буквами, названия флейворов могут содержать _только_ строчные буквы, цифры и " +"символ подчёркивания `_`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:83 +#, no-wrap +msgid "Basic Flavors Usage" +msgstr "Основы использования флейворов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:87 +msgid "" +"If a port has a \"lite\" slave port, the slave port can be removed, and the " +"port can be converted to flavors with:" +msgstr "" +"Если порт имеет \"облегченный\" подчиненный порт (lite slave port), " +"подчиненный порт можно удалить, а порт преобразовать во флейворы с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:96 +#, no-wrap +msgid "" +"FLAVORS=\tdefault lite\n" +"lite_PKGNAMESUFFIX=\t-lite\n" +"[...]\n" +".if ${FLAVOR:U} != lite\n" +"[enable non lite features]\n" +".endif\n" +msgstr "" +"FLAVORS=\tdefault lite\n" +"lite_PKGNAMESUFFIX=\t-lite\n" +"[...]\n" +".if ${FLAVOR:U} != lite\n" +"[enable non lite features]\n" +".endif\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:101 +#, no-wrap +msgid "Another Basic Flavors Usage" +msgstr "Еще один пример базового использования флейворов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:105 +msgid "" +"If a port has a `-nox11` slave port, the slave port can be removed, and the " +"port can be converted to flavors with:" +msgstr "" +"Если порт имеет подчиненный порт `-nox11`, подчиненный порт можно удалить, а " +"порт преобразовать в флейворы с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:115 +#, no-wrap +msgid "" +"FLAVORS=\tx11 nox11\n" +"FLAVOR?=\t${FLAVORS:[1]}\n" +"nox11_PKGNAMESUFFIX=\t-nox11\n" +"[...]\n" +".if ${FLAVOR} == x11\n" +"[enable x11 features]\n" +".endif\n" +msgstr "" +"FLAVORS=\tx11 nox11\n" +"FLAVOR?=\t${FLAVORS:[1]}\n" +"nox11_PKGNAMESUFFIX=\t-nox11\n" +"[...]\n" +".if ${FLAVOR} == x11\n" +"[enable x11 features]\n" +".endif\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:120 +#, no-wrap +msgid "More Complex Flavors Usage" +msgstr "Использование флейворов в более сложных примерах" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:126 +msgid "" +"Here is a slightly edited excerpt of what is present in package:devel/" +"libpeas[], a port that uses the crossref:flavors[flavors-auto-python,Python " +"flavors]. With the default Python 2 and 3 versions being 2.7 and 3.6, it " +"will automatically get `FLAVORS=py27 py36`" +msgstr "" +"Вот слегка отредактированный отрывок из того, что присутствует в пакете " +"package:devel/libpeas[], порте, который использует crossref:flavors[flavors-" +"auto-python,флейворы Python]. При стандартных версиях Python 2 и 3, а именно " +"2.7 и 3.6, он автоматически получит `FLAVORS=py27 py36`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:131 +#, no-wrap +msgid "" +"USES=\t\tgnome python\n" +"USE_PYTHON=\tflavors \n" +msgstr "" +"USES=\t\tgnome python\n" +"USE_PYTHON=\tflavors \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:134 +#, no-wrap +msgid "" +".if ${FLAVOR:Upy27:Mpy2*} \n" +"USE_GNOME=\tpygobject3 \n" +msgstr "" +".if ${FLAVOR:Upy27:Mpy2*} \n" +"USE_GNOME=\tpygobject3 \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:136 +#, no-wrap +msgid "CONFIGURE_ARGS+=\t--enable-python2 --disable-python3\n" +msgstr "CONFIGURE_ARGS+=\t--enable-python2 --disable-python3\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:141 +#, no-wrap +msgid "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python \n" +".else # py3*\n" +"USE_GNOME+=\tpy3gobject3 \n" +msgstr "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python \n" +".else # py3*\n" +"USE_GNOME+=\tpy3gobject3 \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:144 +#, no-wrap +msgid "" +"CONFIGURE_ARGS+=\t--disable-python2 --enable-python3 \\\n" +"\t\t\tac_cv_path_PYTHON3_CONFIG=${LOCALBASE}/bin/python${PYTHON_VER}-config \n" +msgstr "" +"CONFIGURE_ARGS+=\t--disable-python2 --enable-python3 \\\n" +"\t\t\tac_cv_path_PYTHON3_CONFIG=${LOCALBASE}/bin/python${PYTHON_VER}-config \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:148 +#, no-wrap +msgid "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +".endif\n" +msgstr "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:152 +#, no-wrap +msgid "" +"py34_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py35_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py36_PLIST=\t${.CURDIR}/pkg-plist-py3\n" +msgstr "" +"py34_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py35_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py36_PLIST=\t${.CURDIR}/pkg-plist-py3\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:162 +msgid "" +"This port does not use `USE_PYTHON=distutils` but needs Python flavors " +"anyway. To guard against `FLAVOR` being empty, which would cause a " +"man:make[1] error, use `${FLAVOR:U}` in string comparisons instead of `$" +"{FLAVOR}`. The Gnome Python gobject3 bindings have two different names, one " +"for Python 2, pygobject3 and one for Python 3, py3gobject3. The `configure` " +"script has to run in [.filename]#${WRKSRC}#, but we are only interested in " +"building and installing the Python 2 or Python 3 parts of the software, so " +"set the build and install base directories appropriately. Hint about the " +"correct Python 3 config script path name. The packing list is different " +"when the built with Python 3. As there are three possible Python 3 versions, " +"set `PLIST` for all three using the crossref:flavors[flavors-using-" +"helpers,helper]." +msgstr "" +"Этот порт не использует `USE_PYTHON=distutils`, но всё равно требует " +"флейворы Python. Чтобы избежать ошибки в man:make[1] из-за пустого значения " +"`FLAVOR`, используйте `${FLAVOR:U}` в сравнениях строк вместо `${FLAVOR}`. " +"Привязки Gnome Python gobject3 имеют два разных названия: pygobject3 для " +"Python 2 и py3gobject3 для Python 3. Скрипт `configure` должен выполняться в " +"[.filename]#${WRKSRC}#, но нас интересует только сборка и установка частей " +"программного обеспечения для Python 2 или Python 3, поэтому установите " +"базовые каталоги сборки и установки соответствующим образом. Подсказка о " +"правильном пути к конфигурационному скрипту Python 3. Список упаковки " +"отличается при сборке с Python 3. Поскольку есть три возможные версии Python " +"3, установите `PLIST` для всех трёх с помощью crossref:flavors[flavors-using-" +"helpers, вспомогательные инструменты флейворов]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:165 +#, no-wrap +msgid "Flavors Helpers" +msgstr "Вспомогательные инструменты для флейворов (Flavors Helpers)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:168 +msgid "" +"To make the [.filename]#Makefile# easier to write, a few flavors helpers " +"exist." +msgstr "" +"Чтобы упростить написание [.filename]#Makefile#, существуют несколько " +"вспомогательных инструментов (помощников) флейворов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:170 +msgid "This list of helpers will set their variable:" +msgstr "Этот список помощников установит их переменную:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:172 +msgid "`__flavor___PKGNAMEPREFIX`" +msgstr "`__flavor___PKGNAMEPREFIX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:173 +msgid "`__flavor___PKGNAMESUFFIX`" +msgstr "`__flavor___PKGNAMESUFFIX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:174 +msgid "`__flavor___PLIST`" +msgstr "`__flavor___PLIST`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:175 +msgid "`__flavor___DESCR`" +msgstr "`__flavor___DESCR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:177 +msgid "This list of helpers will append to their variable:" +msgstr "Этот список помощников будет добавлен к их переменной:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:179 +msgid "`__flavor___CONFLICTS`" +msgstr "`__flavor___CONFLICTS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:180 +msgid "`__flavor___CONFLICTS_BUILD`" +msgstr "`__flavor___CONFLICTS_BUILD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:181 +msgid "`__flavor___CONFLICTS_INSTALL`" +msgstr "`__flavor___CONFLICTS_INSTALL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:182 +msgid "`__flavor___PKG_DEPENDS`" +msgstr "`__flavor___PKG_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:183 +msgid "`__flavor___EXTRACT_DEPENDS`" +msgstr "`__flavor___EXTRACT_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:184 +msgid "`__flavor___PATCH_DEPENDS`" +msgstr "`__flavor___PATCH_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:185 +msgid "`__flavor___FETCH_DEPENDS`" +msgstr "`__flavor___FETCH_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:186 +msgid "`__flavor___BUILD_DEPENDS`" +msgstr "`__flavor___BUILD_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:187 +msgid "`__flavor___LIB_DEPENDS`" +msgstr "`__flavor___LIB_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:188 +msgid "`__flavor___RUN_DEPENDS`" +msgstr "`__flavor___RUN_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:189 +msgid "`__flavor___TEST_DEPENDS`" +msgstr "`__flavor___TEST_DEPENDS`" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:191 +#, no-wrap +msgid "Flavor Specific `PKGNAME`" +msgstr "Специфичный для флейвора `PKGNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:195 +msgid "" +"As all packages must have a different package name, flavors must change " +"theirs, using `__flavor___PKGNAMEPREFIX` and `__flavor___PKGNAMESUFFIX` " +"makes this easy:" +msgstr "" +"Поскольку все пакеты должны иметь уникальные имена, флейворы должны изменять " +"их, используя `__flavor___PKGNAMEPREFIX` и `__flavor___PKGNAMESUFFIX`, что " +"упрощает задачу:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:200 +#, no-wrap +msgid "" +"FLAVORS=\tnormal lite\n" +"lite_PKGNAMESUFFIX=\t-lite\n" +msgstr "" +"FLAVORS=\tnormal lite\n" +"lite_PKGNAMESUFFIX=\t-lite\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:205 +#, no-wrap +msgid "`USES=php` and Flavors" +msgstr "`USES=php` и флейворы" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:209 +msgid "" +"When using crossref:uses[uses-php,`php`] with one of these arguments, " +"`phpize`, `ext`, `zend`, or `pecl`, the port will automatically have " +"`FLAVORS` filled in with the PHP versions it supports." +msgstr "" +"При использовании crossref:uses[uses-php,`php`] с одним из этих аргументов: " +"`phpize`, `ext`, `zend` или `pecl`, порт автоматически получит заполненный " +"параметр `FLAVORS` с версиями PHP, которые он поддерживает." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:211 +#, no-wrap +msgid "Simple `USES=php` Extension" +msgstr "Простое расширение `USES=php`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:215 +msgid "This will generate package for all the supported versions:" +msgstr "Это создаст пакет для всех поддерживаемых версий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:221 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:232 +#, no-wrap +msgid "" +"PORTNAME=\tsome-ext\n" +"PORTVERSION=\t0.0.1\n" +"PKGNAMEPREFIX=\t${PHP_PKGNAMEPREFIX}\n" +msgstr "" +"PORTNAME=\tsome-ext\n" +"PORTVERSION=\t0.0.1\n" +"PKGNAMEPREFIX=\t${PHP_PKGNAMEPREFIX}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:223 +#, no-wrap +msgid "USES=\t\tphp:ext\n" +msgstr "USES=\t\tphp:ext\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:226 +msgid "This will generate package for all the supported versions but 7.2:" +msgstr "Это создаст пакет для всех поддерживаемых версий, кроме 7.2:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:235 +#, no-wrap +msgid "" +"USES=\t\tphp:ext\n" +"IGNORE_WITH_PHP=\t72\n" +msgstr "" +"USES=\t\tphp:ext\n" +"IGNORE_WITH_PHP=\t72\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:240 +#, no-wrap +msgid "PHP Flavors with PHP Applications" +msgstr "Версии PHP с приложениями PHP" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:243 +msgid "PHP applications can also be flavorized." +msgstr "Приложения PHP также могут быть созданы с использованием флейворов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:245 +msgid "" +"This allows generating packages for all PHP versions, so that users can use " +"them with whatever version they need on their servers." +msgstr "" +"Это позволяет создавать пакеты для всех версий PHP, чтобы пользователи могли " +"использовать их с любой необходимой версией на своих серверах." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:249 +msgid "" +"PHP applications that are flavorized _must_ append `PHP_PKGNAMESUFFIX` to " +"their package names." +msgstr "" +"Приложения PHP, которые используют флейворы, _обязаны_ добавлять " +"`PHP_PKGNAMESUFFIX` к именам своих пакетов." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:252 +#, no-wrap +msgid "Flavorizing a PHP Application" +msgstr "Добавление флейворов в PHP-приложения" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:256 +msgid "Adding Flavors support to a PHP application is straightforward:" +msgstr "Добавление поддержки флейворов в PHP-приложение просто:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:260 +#, no-wrap +msgid "PKGNAMESUFFIX=\t${PHP_PKGNAMESUFFIX}\n" +msgstr "PKGNAMESUFFIX=\t${PHP_PKGNAMESUFFIX}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:262 +#, no-wrap +msgid "USES=\tphp:flavors\n" +msgstr "USES=\tphp:flavors\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:270 +msgid "" +"When adding a dependency on a PHP flavored port, use `@${PHP_FLAVOR}`. " +"_Never_ use `FLAVOR` directly." +msgstr "" +"При добавлении зависимости к порту с вариантом PHP используйте `@$" +"{PHP_FLAVOR}`. _Никогда_ не используйте `FLAVOR` напрямую." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:273 +#, no-wrap +msgid "`USES=python` and Flavors" +msgstr "`USES=python` и флейворы" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:277 +msgid "" +"When using crossref:uses[uses-python,`python`] and `USE_PYTHON=distutils`, " +"the port will automatically have `FLAVORS` filled in with the Python " +"versions it supports." +msgstr "" +"При использовании crossref:uses[uses-python,`python`] и " +"`USE_PYTHON=distutils` порт автоматически получит заполненные `FLAVORS` с " +"версиями Python, которые он поддерживает." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:279 +#, no-wrap +msgid "Simple `USES=python`" +msgstr "Простой `USES=python`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:283 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:306 +msgid "" +"Supposing the current Python supported versions are 2.7, 3.4, 3.5, and 3.6, " +"and the default Python 2 and 3 versions are 2.7 and 3.6, a port with:" +msgstr "" +"Предполагая, что поддерживаемые версии Python — 2.7, 3.4, 3.5 и 3.6, а " +"версии Python 2 и 3 по умолчанию — 2.7 и 3.6, порт с параметрами:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:288 +#, no-wrap +msgid "" +"USES=\tpython\n" +"USE_PYTHON=\tdistutils\n" +msgstr "" +"USES=\tpython\n" +"USE_PYTHON=\tdistutils\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:291 +msgid "Will get these flavors: `py27`, and `py36`." +msgstr "получит следующие флейворы: `py27` и `py36`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:296 +#, no-wrap +msgid "" +"USES=\tpython\n" +"USE_PYTHON=\tdistutils allflavors\n" +msgstr "" +"USES=\tpython\n" +"USE_PYTHON=\tdistutils allflavors\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:299 +msgid "Will get these flavors: `py27`, `py34`, `py35` and `py36`." +msgstr "получит следующие флейворы: `py27`, `py34`, `py35` и `py36`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:302 +#, no-wrap +msgid "`USES=python` with Version Requirements" +msgstr "`USES=python` с требованиями к версии" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:311 +#, no-wrap +msgid "" +"USES=\tpython:-3.5\n" +"USE_PYTHON=\tdistutils\n" +msgstr "" +"USES=\tpython:-3.5\n" +"USE_PYTHON=\tdistutils\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:314 +msgid "Will get this flavor: `py27`." +msgstr "получит следующие флейвор: `py27`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:319 +#, no-wrap +msgid "" +"USES=\tpython:-3.5\n" +"USE_PYTHON=\tdistutils allflavors\n" +msgstr "" +"USES=\tpython:-3.5\n" +"USE_PYTHON=\tdistutils allflavors\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:322 +msgid "Will get these flavors: `py27`, `py34`, and `py35`." +msgstr "получит следующие флейворы: `py27`, `py34` и `py35`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:327 +#, no-wrap +msgid "" +"USES=\tpython:3.4+\n" +"USE_PYTHON=\tdistutils\n" +msgstr "" +"USES=\tpython:3.4+\n" +"USE_PYTHON=\tdistutils\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:330 +msgid "Will get this flavor: `py36`." +msgstr "получит следующий флейвор: `py36`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:335 +#, no-wrap +msgid "" +"USES=\tpython:3.4+\n" +"USE_PYTHON=\tdistutils allflavors\n" +msgstr "" +"USES=\tpython:3.4+\n" +"USE_PYTHON=\tdistutils allflavors\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:338 +msgid "Will get these flavors: `py34`, `py35`, and `py36`." +msgstr "получит следующие флейворы: `py34`, `py35` и `py36`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:342 +msgid "" +"`PY_FLAVOR` is available to depend on the correct version of Python " +"modules. All dependencies on flavored Python ports should use `PY_FLAVOR`, " +"and not `FLAVOR` directly.." +msgstr "" +"`PY_FLAVOR` доступен для указания правильной версии модулей Python. Все " +"зависимости от вариантов портов Python должны использовать `PY_FLAVOR`, а не " +"`FLAVOR` напрямую." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:344 +#, no-wrap +msgid "For a Port Not Using `distutils`" +msgstr "Для порта, не использующего `distutils`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:348 +msgid "" +"If the default Python 3 version is 3.6, the following will set `PY_FLAVOR` " +"to `py36`:" +msgstr "" +"Если версия Python 3 по умолчанию — 3.6, следующая команда установит " +"`PY_FLAVOR` в значение `py36`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:352 +#, no-wrap +msgid "RUN_DEPENDS=\t${PYTHON_PKGNAMEPREFIX}mutagen>0:audio/py-mutagen@${PY_FLAVOR}\n" +msgstr "RUN_DEPENDS=\t${PYTHON_PKGNAMEPREFIX}mutagen>0:audio/py-mutagen@${PY_FLAVOR}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:354 +#, no-wrap +msgid "USES=\tpython:3.5+\n" +msgstr "USES=\tpython:3.5+\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:359 +#, no-wrap +msgid "`USES=lua` and Flavors" +msgstr "`USES=lua` и флейворы" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:365 +msgid "" +"When using crossref:uses[uses-lua,`lua:module`] or crossref:uses[uses-" +"lua,`lua:flavors`], the port will automatically have `FLAVORS` filled in " +"with the Lua versions it supports. However, it is not expected that " +"ordinary applications (rather than Lua modules) should use this feature; " +"most applications that embed or otherwise use Lua should simply use " +"`USES=lua`." +msgstr "" +"При использовании crossref:uses[uses-lua,`lua:module`] или " +"crossref:uses[uses-lua,`lua:flavors`] порт автоматически получит заполненный " +"параметр `FLAVORS` с версиями Lua, которые он поддерживает. Однако " +"предполагается, что обычные приложения (а не модули Lua) не должны " +"использовать эту возможность; большинству приложений, которые встраивают или " +"иным образом используют Lua, следует просто указывать `USES=lua`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:367 +msgid "" +"`LUA_FLAVOR` is available (and must be used) to depend on the correct " +"version of dependencies regardless of whether the port used the `flavors` or " +"`module` parameters." +msgstr "" +"`LUA_FLAVOR` доступен (и должен использоваться) для зависимости от " +"правильной версии зависимостей, независимо от того, использовал ли порт " +"параметры `flavors` или `module`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:369 +msgid "See crossref:special[using-lua,Using Lua] for further information." +msgstr "" +"См. crossref:special[using-lua,Использование Lua] для получения " +"дополнительной информации." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:371 +#, no-wrap +msgid "`USES=guile` and Flavors" +msgstr "`USES=guile` и флейворы" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:378 +msgid "" +"When using crossref:uses[uses-guile,`guile:flavors`], the port will " +"automatically have `FLAVORS` filled in with the Guile versions it supports. " +"However, it is not expected that ordinary applications should use this " +"feature; it is primarily intended for use by libraries and extensions, such " +"as `guile-lib` or `guile-cairo`." +msgstr "" +"При использовании crossref:uses[uses-guile,`guile:flavors`] порт " +"автоматически получит заполненное поле `FLAVORS` с версиями Guile, которые " +"он поддерживает. Однако не предполагается, что обычные приложения должны " +"использовать эту возможность; она в первую очередь предназначена для " +"библиотек и расширений, таких как `guile-lib` или `guile-cairo`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:380 +msgid "" +"`GUILE_FLAVOR` is available (and must be used) to depend on the correct " +"version of flavored dependencies regardless of whether the port used the " +"`flavors` parameter or not." +msgstr "" +"`GUILE_FLAVOR` доступен (и должен использоваться) для зависимости от " +"правильной версии зависимостей с флейворами, независимо от того, использовал " +"ли порт параметр `flavors` или нет." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:381 +msgid "See crossref:special[using-guile,Using Guile] for further information." +msgstr "" +"См. crossref:special[using-guile,Использование Guile] для получения " +"дополнительной информации." diff --git a/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc b/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc --- a/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc @@ -1,11 +1,13 @@ --- -title: Глава 14. Актуализация -prev: books/porters-handbook/porting-samplem +description: 'Как поддерживать актуальность коллекции портов FreeBSD' next: books/porters-handbook/uses -showBookMenu: true -weight: 14 params: - path: "/books/porters-handbook/keeping-up/" + path: /books/porters-handbook/keeping-up/ +prev: books/porters-handbook/order +showBookMenu: true +tags: ["keeping up", "ports", "updating", "FreshPorts"] +title: 'Глава 16. Актуализация' +weight: 16 --- [[keeping-up]] @@ -16,7 +18,7 @@ :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 14 +:sectnumoffset: 16 :partnums: :source-highlighter: rouge :experimental: @@ -51,23 +53,23 @@ [[freshports]] == FreshPorts -Самым простым способом отслеживать уже произошедшие обновления является подписка на http://www.FreshPorts.org/[FreshPorts]. Для мониторинга вы можете выбрать несколько портов. Мейнтейнерам настоятельно рекомендуется подписаться здесь, потому что они будут получать уведомления не только о собственных изменениях, но и об изменениях, сделанных любым другим коммиттером FreeBSD. (Это часто необходимо для синхронизации с изменениями на более низком технологическом уровне-хотя более корректным было бы получение предупреждений от тех, кто вносит подобные изменения, иногда этот этап пропускается или он просто непрактичен. Кроме того, в некоторых случаях изменения по своей природе весьма незначительны. Мы полагаем, что любой разработчик в таких ситуациях будет руководствоваться здравым смыслом). +Самым простым способом отслеживать уже произошедшие обновления является подписка на https://www.FreshPorts.org/[FreshPorts]. Для мониторинга вы можете выбрать несколько портов. Сопровождающим порта настоятельно рекомендуется подписаться здесь, потому что они будут получать уведомления не только о собственных изменениях, но и об изменениях, сделанных любым другим коммиттером FreeBSD. (Это часто необходимо для синхронизации с изменениями на более низком технологическом уровне, хотя более корректным было бы получение предупреждений от тех, кто вносит подобные изменения, иногда этот этап пропускается или он просто непрактичен. Кроме того, в некоторых случаях изменения по своей природе весьма незначительны. Мы полагаем, что любой разработчик в таких ситуациях будет руководствоваться здравым смыслом). Если вы хотите использовать FreshPorts, то вам нужна только учётная запись. Если регистрационный адрес вашей электронной почты будет иметь вид `@FreeBSD.org`, то справа на Web-страницах вы увидите дополнительную ссылку. Для тех из вас, кто уже получил учётную запись FreshPorts, но не использовал собственный адрес электронной почты `@FreeBSD.org`, достаточно сменить адрес на `@FreeBSD.org`, подписаться, а затем сменить его обратно. Во FreshPorts имеется также функция проверки правильности, которая автоматически проверяет каждое изменение, внесённое в дерево портов FreeBSD. Если вы подпишетесь на эту услугу, то будете оповещаться обо всех ошибках, обнаруженных FreshPorts при проверке внесённых вами изменений. -[[svnweb]] +[[cgit]] == Web-интерфейс к хранилищу исходных текстов -Файлы в хранилище исходных текстов можно просматривать при помощи Web-интерфейса. Изменения, которые касаются в целом всей системы портов, теперь документируются в файле http://svnweb.FreeBSD.org/ports/head/CHANGES[CHANGES]. Изменения, касающиеся отдельных портов, отражаются теперь в файле http://svnweb.FreeBSD.org/ports/head/UPDATING[UPDATING]. Однако однозначный ответ на любой вопрос можно найти, только прочитав исходных код http://svnweb.FreeBSD.org/ports/head/Mk/bsd.port.mk[bsd.port.mk] и связанных с ним файлов. +Файлы в хранилище исходных текстов можно просматривать при помощи Web-интерфейса. Изменения, которые касаются в целом всей системы портов, теперь документируются в файле https://cgit.FreeBSD.org/ports/tree/CHANGES[CHANGES]. Изменения, касающиеся отдельных портов, отражаются теперь в файле https://cgit.FreeBSD.org/ports/tree/UPDATING[UPDATING]. Однако однозначный ответ на любой вопрос можно найти, только прочитав исходных код https://cgit.FreeBSD.org/ports/tree/Mk/bsd.port.mk[bsd.port.mk] и связанных с ним файлов. [[ports-mailing-list]] == Список рассылки FreeBSD, посвящённый портам Если вы поддерживаете порты, то должны следить за {freebsd-ports}. О важных изменениях, отражающихся на работе портов, будет сообщаться здесь, а затем они переносятся в [.filename]#CHANGES#. -Если данный список рассылки слишком загружен сообщениями, вы можете отслеживать link:{freebsd-ports-announce-url}[freebsd-ports-announce], который модерируется и не является местом для дискуссий. +Если данный список рассылки слишком загружен сообщениями, вы можете отслеживать {freebsd-ports-announce}, который модерируется и не является местом для дискуссий. [[build-cluster]] == Кластер построения портов FreeBSD @@ -79,19 +81,12 @@ [[distfile-survey]] == Portscout: сканер дистрибутивных файлов портов FreeBSD -Кластер построения выделен для выполнения самого последнего релиза каждого из портов, дистрибутивные файлы которых уже были сгружены. Однако из-за постоянных изменений в Internet дистрибутивные файлы могут быстро исчезать. http://portscout.FreeBSD.org[Portscout], средство сканирования дистрибутивных файлов FreeBSD пытается опросить каждый из сайтов, доступных для сгрузки каждого из портов, для определения того, доступны ли ещё дистрибутивные файлы. Portscout может готовить отчёты в HTML и рассылать электронные письма об имеющихся обновлениях для портов тем, кто это запрашивает. Мейнтейнеры периодически запрашивают наличие изменений, либо вручную, либо используя ленту RSS. - -Главная страница Portscout отображает email мейнтейнера порта, количество портов, за которые ответственен мейнтейнер, количество портов с новыми дистрибутивными файлами и процент устаревших портов. Функция поиска выполняет поиск мейнтейнера по адресу электронной почты и позволяет выбирать между всеми портами или только устаревшими. - -При щелчке по адресу электронной почты мейнтейнера отображается список всех его портов, разделённых по категориям, вместе с текущим номером версии, информацией о наличии новой версии, временем последнего обновления порта и временем его последней проверки. Функция поиска на этой странице позволяет пользователю выполнять поиск конкретного порта. - -По щелчку на название порта в списке отображается информация о порте http://freshports.org[FreshPorts]. +Кластер построения выделен для выполнения самого последнего релиза каждого из портов, дистрибутивные файлы которых уже были сгружены. Однако из-за постоянных изменений в Internet дистрибутивные файлы могут быстро исчезать. https://portscout.FreeBSD.org[Portscout], средство сканирования дистрибутивных файлов FreeBSD пытается опросить каждый из сайтов, доступных для сгрузки каждого из портов, для определения того, доступны ли ещё дистрибутивные файлы. Portscout может готовить отчёты в HTML и рассылать электронные письма об имеющихся обновлениях для портов тем, кто это запрашивает. Сопровождающие периодически запрашивают наличие изменений либо вручную, либо используя ленту RSS. -[[portsmon]] -== Система мониторинга портов FreeBSD +Главная страница Portscout отображает email сопровождающего порта, количество портов, за которые ответственен сопровождающий, количество портов с новыми дистрибутивными файлами и процент устаревших портов. Функция поиска выполняет поиск сопровождающего по адресу электронной почты и позволяет выбирать между всеми портами или только устаревшими. -Другим полезным ресурсом является http://portsmon.FreeBSD.org[Система мониторинга портов FreeBSD] (известная также как `portsmon`). Система представляет собой базу данных, обрабатывающую информацию из нескольких источников и позволяющую просматривать их при помощи Web-интерфейса. На данный момент задействованы база сообщений об ошибках (PR), протоколы ошибок кластера построения и отдельные файлы из коллекции портов. В будущем в этот список будет добавлена система проверки дистрибутивных файлов и другие ресурсы. +При щелчке по адресу электронной почты сопровождающего отображается список всех его портов, разделённых по категориям, вместе с текущим номером версии, информацией о наличии новой версии, временем последнего обновления порта и временем его последней проверки. Функция поиска на этой странице позволяет пользователю выполнять поиск конкретного порта. -Для начала вы можете просмотреть всю информацию о некотором порте при помощи средства http://portsmon.FreeBSD.org/portoverview.py[Обзор отдельного порта]. +По щелчку на название порта в списке отображается информация о порте https://freshports.org[FreshPorts]. -На момент написания это единственный доступный ресурс, который для имени порта ставит в соответствие записи PR GNATS. (Отправители PR не всегда добавляют в название имя порта, хотя мы предпочитаем, чтобы они это делали.) Таким образом, `portsmon` это хорошее место для начала, если вы хотите найти присланные PR и/или ошибки построения для существующего порта; либо поискать, был ли уже прислан новый порт, который вы подумывали создать сами. +Другим полезным ресурсом является https://github.com/freebsd/portscout/[репозиторий Portscout]. diff --git a/documentation/content/ru/books/porters-handbook/keeping-up/_index.po b/documentation/content/ru/books/porters-handbook/keeping-up/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/keeping-up/_index.po @@ -0,0 +1,270 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-15 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:1 +#, no-wrap +msgid "How to keep up the FreeBSD Ports Collection" +msgstr "Как поддерживать актуальность коллекции портов FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:1 +#, no-wrap +msgid "Chapter 16. Keeping Up" +msgstr "Глава 16. Актуализация" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:14 +#, no-wrap +msgid "Keeping Up" +msgstr "Актуализация" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:53 +msgid "" +"The FreeBSD Ports Collection is constantly changing. Here is some " +"information on how to keep up." +msgstr "" +"Коллекция Портов FreeBSD постоянно изменяется. Здесь находится некоторая " +"информация о том, как поддерживать её в актуальном состоянии." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:55 +#, no-wrap +msgid "FreshPorts" +msgstr "FreshPorts" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:63 +msgid "" +"One of the easiest ways to learn about updates that have already been " +"committed is by subscribing to https://www.FreshPorts.org/[FreshPorts]. " +"Multiple ports can be monitored. Maintainers are strongly encouraged to " +"subscribe, because they will receive notification of not only their own " +"changes, but also any changes that any other FreeBSD committer has made. " +"(These are often necessary to keep up with changes in the underlying ports " +"framework-although it would be most polite to receive an advance heads-up " +"from those committing such changes, sometimes this is overlooked or " +"impractical. Also, in some cases, the changes are very minor in nature. We " +"expect everyone to use their best judgement in these cases.)" +msgstr "" +"Самым простым способом отслеживать уже произошедшие обновления является " +"подписка на https://www.FreshPorts.org/[FreshPorts]. Для мониторинга вы " +"можете выбрать несколько портов. Сопровождающим порта настоятельно " +"рекомендуется подписаться здесь, потому что они будут получать уведомления " +"не только о собственных изменениях, но и об изменениях, сделанных любым " +"другим коммиттером FreeBSD. (Это часто необходимо для синхронизации с " +"изменениями на более низком технологическом уровне, хотя более корректным " +"было бы получение предупреждений от тех, кто вносит подобные изменения, " +"иногда этот этап пропускается или он просто непрактичен. Кроме того, в " +"некоторых случаях изменения по своей природе весьма незначительны. Мы " +"полагаем, что любой разработчик в таких ситуациях будет руководствоваться " +"здравым смыслом)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:67 +msgid "" +"To use FreshPorts, an account is required. Those with registered email " +"addresses at `@FreeBSD.org` will see the opt-in link on the right-hand side " +"of the web pages. Those who already have a FreshPorts account but are not " +"using a `@FreeBSD.org` email address can change the email to `@FreeBSD.org`, " +"subscribe, then change it back again." +msgstr "" +"Если вы хотите использовать FreshPorts, то вам нужна только учётная запись. " +"Если регистрационный адрес вашей электронной почты будет иметь вид " +"`@FreeBSD.org`, то справа на Web-страницах вы увидите дополнительную ссылку. " +"Для тех из вас, кто уже получил учётную запись FreshPorts, но не использовал " +"собственный адрес электронной почты `@FreeBSD.org`, достаточно сменить адрес " +"на `@FreeBSD.org`, подписаться, а затем сменить его обратно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:70 +msgid "" +"FreshPorts also has a sanity test feature which automatically tests each " +"commit to the FreeBSD ports tree. If subscribed to this service, a " +"committer will receive notifications of any errors which FreshPorts detects " +"during sanity testing of their commits." +msgstr "" +"Во FreshPorts имеется также функция проверки правильности, которая " +"автоматически проверяет каждое изменение, внесённое в дерево портов FreeBSD. " +"Если вы подпишетесь на эту услугу, то будете оповещаться обо всех ошибках, " +"обнаруженных FreshPorts при проверке внесённых вами изменений." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:72 +#, no-wrap +msgid "The Web Interface to the Source Repository" +msgstr "Web-интерфейс к хранилищу исходных текстов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:78 +msgid "" +"It is possible to browse the files in the source repository by using a web " +"interface. Changes that affect the entire port system are now documented in " +"the https://cgit.FreeBSD.org/ports/tree/CHANGES[CHANGES] file. Changes that " +"affect individual ports are now documented in the https://cgit.FreeBSD.org/" +"ports/tree/UPDATING[UPDATING] file. However, the definitive answer to any " +"question is undoubtedly to read the source code of https://cgit.FreeBSD.org/" +"ports/tree/Mk/bsd.port.mk[bsd.port.mk], and associated files." +msgstr "" +"Файлы в хранилище исходных текстов можно просматривать при помощи Web-" +"интерфейса. Изменения, которые касаются в целом всей системы портов, теперь " +"документируются в файле https://cgit.FreeBSD.org/ports/tree/" +"CHANGES[CHANGES]. Изменения, касающиеся отдельных портов, отражаются теперь " +"в файле https://cgit.FreeBSD.org/ports/tree/UPDATING[UPDATING]. Однако " +"однозначный ответ на любой вопрос можно найти, только прочитав исходных код " +"https://cgit.FreeBSD.org/ports/tree/Mk/bsd.port.mk[bsd.port.mk] и связанных " +"с ним файлов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:80 +#, no-wrap +msgid "The FreeBSD Ports Mailing List" +msgstr "Список рассылки FreeBSD, посвящённый портам" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:84 +msgid "" +"As a ports maintainer, consider subscribing to {freebsd-ports}. Important " +"changes to the way ports work will be announced there, and then committed to " +"[.filename]#CHANGES#." +msgstr "" +"Если вы поддерживаете порты, то должны следить за {freebsd-ports}. О важных " +"изменениях, отражающихся на работе портов, будет сообщаться здесь, а затем " +"они переносятся в [.filename]#CHANGES#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:86 +msgid "" +"If the volume of messages on this mailing list is too high, consider " +"following {freebsd-ports-announce} which contains only announcements." +msgstr "" +"Если данный список рассылки слишком загружен сообщениями, вы можете " +"отслеживать {freebsd-ports-announce}, который модерируется и не является " +"местом для дискуссий." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:88 +#, no-wrap +msgid "The FreeBSD Port Building Cluster" +msgstr "Кластер построения портов FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:91 +msgid "" +"One of the least-publicized strengths of FreeBSD is that an entire cluster " +"of machines is dedicated to continually building the Ports Collection, for " +"each of the major OS releases and for each Tier-1 architecture." +msgstr "" +"Одной из наименее известных сильных сторон FreeBSD является тот факт, что " +"для непрерывного построения Коллекции Портов для каждого из основных релизов " +"ОС для каждой архитектуры уровня поддержки Tier-1 выделен целый кластер " +"машин." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:95 +msgid "" +"Individual ports are built unless they are specifically marked with " +"`IGNORE`. Ports that are marked with `BROKEN` will still be attempted, to " +"see if the underlying problem has been resolved. (This is done by passing " +"`TRYBROKEN` to the port's [.filename]#Makefile#.)" +msgstr "" +"Отдельные порты собираются, если они специально не помечены как `IGNORE`. " +"Для портов, помеченных как `BROKEN`, попытки будут продолжены для того, " +"чтобы увидеть, если основная проблема была решена. (Это сделано через " +"использование переменной `TRYBROKEN` для [.filename]#Makefile# порта.)" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:97 +#, no-wrap +msgid "Portscout: the FreeBSD Ports Distfile Scanner" +msgstr "Portscout: сканер дистрибутивных файлов портов FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:104 +msgid "" +"The build cluster is dedicated to building the latest release of each port " +"with distfiles that have already been fetched. However, as the Internet " +"continually changes, distfiles can quickly go missing. https://" +"portscout.FreeBSD.org/[Portscout], the FreeBSD Ports distfile scanner, " +"attempts to query every download site for every port to find out if each " +"distfile is still available. Portscout can generate HTML reports and send " +"emails about newly available ports to those who request them. Unless not " +"otherwise subscribed, maintainers are asked to check periodically for " +"changes, either by hand or using the RSS feed." +msgstr "" +"Кластер построения выделен для выполнения самого последнего релиза каждого " +"из портов, дистрибутивные файлы которых уже были сгружены. Однако из-за " +"постоянных изменений в Internet дистрибутивные файлы могут быстро исчезать. " +"https://portscout.FreeBSD.org[Portscout], средство сканирования " +"дистрибутивных файлов FreeBSD пытается опросить каждый из сайтов, доступных " +"для сгрузки каждого из портов, для определения того, доступны ли ещё " +"дистрибутивные файлы. Portscout может готовить отчёты в HTML и рассылать " +"электронные письма об имеющихся обновлениях для портов тем, кто это " +"запрашивает. Сопровождающие периодически запрашивают наличие изменений либо " +"вручную, либо используя ленту RSS." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:107 +msgid "" +"Portscout's first page gives the email address of the port maintainer, the " +"number of ports the maintainer is responsible for, the number of those ports " +"with new distfiles, and the percentage of those ports that are out-of-date. " +"The search function allows for searching by email address for a specific " +"maintainer, and for selecting whether only out-of-date ports are shown." +msgstr "" +"Главная страница Portscout отображает email сопровождающего порта, " +"количество портов, за которые ответственен сопровождающий, количество портов " +"с новыми дистрибутивными файлами и процент устаревших портов. Функция поиска " +"выполняет поиск сопровождающего по адресу электронной почты и позволяет " +"выбирать между всеми портами или только устаревшими." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:110 +msgid "" +"Upon clicking on a maintainer's email address, a list of all of their ports " +"is displayed, along with port category, current version number, whether or " +"not there is a new version, when the port was last updated, and finally when " +"it was last checked. A search function on this page allows the user to " +"search for a specific port." +msgstr "" +"При щелчке по адресу электронной почты сопровождающего отображается список " +"всех его портов, разделённых по категориям, вместе с текущим номером версии, " +"информацией о наличии новой версии, временем последнего обновления порта и " +"временем его последней проверки. Функция поиска на этой странице позволяет " +"пользователю выполнять поиск конкретного порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:112 +msgid "" +"Clicking on a port name in the list displays the https://freshports.org/" +"[FreshPorts] port information." +msgstr "" +"По щелчку на название порта в списке отображается информация о порте https://" +"freshports.org[FreshPorts]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/keeping-up/_index.adoc:113 +msgid "" +"Additional documentation is available in the https://github.com/freebsd/" +"portscout/[Portscout repository]." +msgstr "" +"Другим полезным ресурсом является https://github.com/freebsd/portscout/" +"[репозиторий Portscout]." diff --git a/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc b/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc --- a/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc @@ -1,15 +1,17 @@ --- -title: Глава 5. Настройка файла Makefile -prev: books/porters-handbook/slow-porting +description: 'Настройка Makefile для портов FreeBSD' next: books/porters-handbook/special +params: + path: /books/porters-handbook/makefiles/ +prev: books/porters-handbook/slow-porting showBookMenu: true +tags: ["makefiles", "configuring", "naming", "versions"] +title: 'Глава 5. Настройка Makefile' weight: 5 -params: - path: "/books/porters-handbook/makefiles/" --- [[makefiles]] -= Настройка файла Makefile += Настройка Makefile :doctype: book :toc: macro :toclevels: 1 @@ -20,7 +22,7 @@ :partnums: :source-highlighter: rouge :experimental: -:gcc-plus-plus: g++ +:g-plus-plus: g++ :images-path: books/porters-handbook/ ifdef::env-beastie[] @@ -47,118 +49,320 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] -Настройка файла [.filename]#Makefile# достаточно проста, и мы снова предполагаем, что перед тем, как начать, вы посмотрите на существующие примеры. К тому же в этом руководстве имеется <>, так что взгляните на него и, пожалуйста, следуйте порядку переменных и разделов в этом образце, чтобы облегчить чтение вашего порта другими людьми. +Настройка [.filename]#Makefile# довольно проста, и мы снова рекомендуем изучить существующие примеры перед началом. Также в этом руководстве есть crossref:porting-samplem[porting-samplem,пример Makefile], поэтому ознакомьтесь с ним и, пожалуйста, соблюдайте порядок переменных и разделов в этом шаблоне, чтобы порт был удобнее для чтения другими. -Итак, расположим решаемые задачи в порядке их возникновения при создании вашего нового файла [.filename]#Makefile#: +Рассмотрите эти проблемы последовательно при разработке нового [.filename]#Makefile#: [[makefile-source]] -== Оригинальные исходный код +== Оригинальный Источник -Находится ли он в каталоге `DISTDIR` в виде стандартного упакованного архиватором `gzip` tar-архива с именем типа [.filename]#foozolix-1.2.tar.gz#? Если это так, можно перейти к следующему шагу. Если нет, то вы должны попытаться переопределить некоторые из переменных `DISTVERSION`, `DISTNAME`, `EXTRACT_CMD`, `EXTRACT_BEFORE_ARGS`, `EXTRACT_AFTER_ARGS`, `EXTRACT_SUFX` или `DISTFILES` в зависимости от того, насколько необычен формат дистрибутивного файла. +Находится ли он в `DISTDIR` в виде стандартного архива ``gzip`` с именем вроде [.filename]#foozolix-1.2.tar.gz#? Если да, переходите к следующему шагу. Если нет, возможно, для формата имени файла дистрибутива потребуется переопределить одну или несколько переменных: `DISTVERSION`, `DISTNAME`, `EXTRACT_CMD`, `EXTRACT_BEFORE_ARGS`, `EXTRACT_AFTER_ARGS`, `EXTRACT_SUFX` или `DISTFILES`. -В худшем случае вы можете просто определить свою собственную цель `do-extract` для переопределения действий по умолчанию, хотя к этому нужно будет прибегать в очень редких случаях, если вообще придётся. +В худшем случае создайте пользовательскую цель `do-extract`, чтобы переопределить стандартную. Это редко, если вообще когда-либо, необходимо. [[makefile-naming]] == Именование -В первой части [.filename]#Makefile# порта ему даётся название, указывается его номер версии и принадлежность к правильной категории. +Первая часть [.filename]#Makefile# порта указывает его название, описывает номер версии и помещает его в соответствующую категорию. + +[[makefile-portname]] +=== `PORTNAME` + +Установите `PORTNAME` как базовое имя программы. Оно используется в качестве основы для пакета FreeBSD и для crossref:makefiles[makefile-distname,`DISTNAME`]. + +[IMPORTANT] +==== +Название пакета должно быть уникальным во всём дереве портов. Убедитесь, что `PORTNAME` ещё не используется существующим портом и что никакой другой порт уже не имеет такой же `PKGBASE`. Если имя уже занято, добавьте либо crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`, либо `PKGNAMESUFFIX`]. +==== + +[[makefile-versions]] +=== Версии, `DISTVERSION` _или_ `PORTVERSION` + +Установите `DISTVERSION` в номер версии программы. + +`PORTVERSION` — это версия, используемая для пакета FreeBSD. Она будет автоматически вычислена из `DISTVERSION` в соответствии со схемой версионирования пакетов FreeBSD. Если версия содержит _буквы_, может потребоваться задать `PORTVERSION` вместо `DISTVERSION`. + +[IMPORTANT] +==== +Только одна из переменных `PORTVERSION` и `DISTVERSION` может быть установлена одновременно. +==== + +Время от времени некоторые программы используют схему версионирования, которая несовместима с тем, как `DISTVERSION` преобразуется в `PORTVERSION`. + +[TIP] +==== +При обновлении порта можно использовать аргумент `-t` утилиты man:pkg-version[8], чтобы проверить, является ли новая версия больше или меньше предыдущей. Смотрите ниже, как использовать man:pkg-version[8] для сравнения версий. +==== + +[[makefile-versions-ex-pkg-version]] +.Использование man:pkg-version[8] для сравнения версий +[example] +==== +`pkg version -t` принимает две версии в качестве аргументов и возвращает `<`, `=` или `>`, если первая версия меньше, равна или больше второй версии соответственно. + +[source, shell] +.... +% pkg version -t 1.2 1.3 +< <.> +% pkg version -t 1.2 1.2 += <.> +% pkg version -t 1.2 1.2.0 += <.> +% pkg version -t 1.2 1.2.p1 > <.> % pkg version -t 1.2.a1 1.2.b1 < <.> % pkg version -t 1.2 1.2p1 < <.> +.... + +<.> `1.2` идёт перед `1.3`. +<.> `1.2` и `1.2` равны, так как имеют одинаковую версию. +<.> `1.2` и `1.2.0` равны, так как ноль ничего не значит. +<.> `1.2` идёт после `1.2.p1`, так как `.p1` означает «pre-release 1» (предрелизная версия 1). +<.> `1.2.a1` предшествует `1.2.b1`, представьте "alpha" и "beta", где `a` идёт перед `b`. +<.> `1.2` находится перед `1.2p1`, так же как `2p1` (читается как "2, уровень исправления 1") — это версия, следующая после любой `2.X`, но перед `3`. + +[NOTE] +**** +Здесь `a`, `b` и `p` используются так, как если бы они означали "альфа", "бета" или "пре-релиз" и "уровень патча", но на самом деле это просто буквы, которые сортируются в алфавитном порядке, поэтому можно использовать любую букву, и они будут отсортированы соответствующим образом. +**** + +==== + +.Примеры `DISTVERSION` и производной `PORTVERSION` +[cols="10%,90%", frame="none", options="header"] +|=== +| DISTVERSION +| .PORTVERSION + +|0.7.1d +|0.7.1.d + +|10Alpha3 +|10.a3 + +|3Beta7-pre2 +|3.b7.p2 + +|8:f_17 +|8f.17 +|=== + +[[makefile-versions-ex1]] +.Использование `DISTVERSION` +[example] +==== +Если версия содержит только числа, разделённые точками, тире или подчёркиваниями, используйте `DISTVERSION`. + +[.programlisting] +.... +PORTNAME= nekoto +DISTVERSION= 1.2-4 +.... + +Это сгенерирует `PORTVERSION` равный `1.2.4`. +==== + +[[makefile-versions-ex2]] +.Использование `DISTVERSION` когда версия начинается с буквы или префикса +[example] +==== +Когда версия начинается или заканчивается буквой, или префиксом, или суффиксом, которые не являются частью версии, используйте `DISTVERSIONPREFIX`, `DISTVERSION` и `DISTVERSIONSUFFIX`. + +Если версия `v1.2-4`: + +[.programlisting] +.... +PORTNAME= nekoto +DISTVERSIONPREFIX= v +DISTVERSION= 1_2_4 +.... + +Некоторые проекты, использующие GitHub, могут включать своё название в версии. Например, версия может выглядеть как `nekoto-1.2-4`: + +[.programlisting] +.... +PORTNAME= nekoto +DISTVERSIONPREFIX= nekoto- +DISTVERSION= 1.2_4 +.... + +Эти проекты также иногда используют строку в конце версии, например, `1.2-4_RELEASE`: + +[.programlisting] +.... +PORTNAME= nekoto +DISTVERSION= 1.2-4 +DISTVERSIONSUFFIX= _RELEASE +.... + +Или они делают и то, и другое, например, `nekoto-1.2-4_RELEASE`: + +[.programlisting] +.... +PORTNAME= nekoto +DISTVERSIONPREFIX= nekoto- +DISTVERSION= 1.2-4 +DISTVERSIONSUFFIX= _RELEASE +.... + +`DISTVERSIONPREFIX` и `DISTVERSIONSUFFIX` не будут использоваться при формировании `PORTVERSION`, а только в `DISTNAME`. + +Все сгенерируют `PORTVERSION` равный `1.2.4`. +==== + +[[makefile-versions-ex3]] +.Использование `DISTVERSION`, когда версия содержит буквы, означающие "alpha", "beta" или "pre-release" +[example] +==== +Если версия содержит числа, разделённые точками, тире или подчёркиваниями, а буквы используются для обозначения "альфа", "бета" или "предварительной версии" (то есть до версии без букв), используйте `DISTVERSION`. + +[.programlisting] +.... +PORTNAME= nekoto +DISTVERSION= 1.2-pre4 +.... + +[.programlisting] +.... +PORTNAME= nekoto +DISTVERSION= 1.2p4 +.... + +Оба варианта создадут `PORTVERSION` равную `1.2.p4`, что предшествует версии 1.2. Для проверки этого факта можно использовать man:pkg-version[8]: -=== `PORTNAME` и `PORTVERSION` +[source, shell] +.... +% pkg version -t 1.2.p4 1.2 +< +.... + +==== + +[[makefile-versions-ex4]] +.Не использовать `DISTVERSION`, если версия содержит буквы, означающие "уровень патча" +[example] +==== +Если версия содержит буквы, которые не означают "alpha", "beta" или "pre", а скорее указывают на "уровень исправления" и следуют после версии без букв, используйте `PORTVERSION`. + +[.programlisting] +.... +PORTNAME= nekoto +PORTVERSION= 1.2p4 +.... + +В данном случае использование `DISTVERSION` невозможно, так как это приведёт к генерации версии `1.2.p4`, которая будет считаться более ранней, чем `1.2`, а не более поздней. man:pkg-version[8] подтвердит это: + +[source, shell] +.... +% pkg version -t 1.2 1.2.p4 +> <.> +% pkg version -t 1.2 1.2p4 +< <.> +.... + +<.> `1.2` идёт после `1.2.p4`, что в данном случае _неверно_. +<.> `1.2` находится перед `1.2p4`, что и требовалось. +==== -В переменной `PORTNAME` вы должны указать основную часть имени вашего порта, а в переменной `PORTVERSION` - номер версии. +Для более сложных примеров настройки `PORTVERSION`, когда версия программного обеспечения действительно несовместима с FreeBSD, или `DISTNAME`, когда файл дистрибутива не содержит саму версию, см. crossref:makefiles[makefile-distname, `DISTNAME`]. [[makefile-naming-revepoch]] === `PORTREVISION` и `PORTEPOCH` +[[makefile-portrevision]] ==== `PORTREVISION` -Переменная `PORTREVISION` представляет собой монотонно увеличивающееся число, которое обнуляется при каждом увеличении значения переменной `PORTVERSION` (то есть каждый раз, когда создателями выпускается новый официальный релиз), и добавляется к имени пакета, если оно не равно нулю. Изменения в `PORTREVISION` используются автоматизированными инструментами (например, `pkg version`, см. man:pkg-version[8]) для определения факта появления нового пакета. +`PORTREVISION` — это монотонно возрастающее значение, которое сбрасывается в 0 при каждом увеличении `DISTVERSION`, обычно при каждом новом официальном выпуске от поставщика. Если `PORTREVISION` не равен нулю, его значение добавляется к имени пакета. Изменения `PORTREVISION` используются автоматизированными инструментами, такими как man:pkg-version[8], для определения доступности нового пакета. + +`PORTREVISION` должен быть увеличен каждый раз, когда в порт вносятся изменения, которые так или иначе влияют на сгенерированный пакет. Это включает изменения, затрагивающие только пакеты, собранные с нестандартными crossref:makefiles[makefile-options,опциями]. -Значение `PORTREVISION` должно увеличиваться каждый раз, когда в порте FreeBSD делаются изменения, которые как-либо меняют получаемый пакет. Сюда относятся только изменения, затрагивающие построение пакета с <> по умолчанию. +Примеры случаев, когда необходимо увеличить `PORTREVISION`: -Примеры случаев, когда значение `PORTREVISION` должно быть увеличено: +* Добавление исправлений для устранения уязвимостей безопасности, ошибок или для добавления новой функциональности в порт. +* Изменения в [.filename]#Makefile# порта для включения или отключения параметров сборки в пакете. +* Изменения в списке файлов пакета или в поведении во время установки. Например, изменение скрипта, который генерирует начальные данные для пакета, такие как ключи хоста man:ssh[1]. +* Увеличение версии зависимости порта от общей библиотеки (в данном случае, попытка установить старый пакет после установки более новой версии зависимости завершится неудачей, так как будет искаться старая версия libfoo.x вместо libfoo.(x+1)). +* Тихие изменения в дистрибутивном файле порта, которые имеют значительные функциональные отличия. Например, изменения в дистрибутивном файле, требующие корректировки файла [.filename]#distinfo# без соответствующего изменения `DISTVERSION`, когда сравнение `diff -ru` старой и новой версий показывает нетривиальные изменения в коде. +* Изменения в `MAINTAINER`. -* Добавление патчей для исправления уязвимостей, ошибок, или добавления новой функциональности в порт. -* Изменения в файле [.filename]#Makefile# порта для включения и выключения параметров, определяемых при компиляции пакета. -* Изменения в списке упаковки или в поведении пакета во время его установки (например, изменение скрипта, генерирующего начальные данные для пакета, такие, как ssh-ключи для хоста). -* Увеличение версии динамической библиотеки, от которой зависит порт (в этом случае тот, кто попытается установить старый пакет после установки более новой версии библиотеки, не сможет этого сделать, потому что при этом будет делаться поиск старой библиотеки libfoo.x, а не libfoo.(x+1)). -* Большие функциональные изменения в дистрибутивном файле порта, происходящие без объявлений, и приводящие к большим изменениям, то есть изменения в дистрибутиве требуют корректировки файла [.filename]#distinfo# без соответствующего изменения `PORTVERSION`, когда как команда `diff -ru` между новой и старой версиями показывает нетривиальные изменения в коде. +Примеры изменений, которые не требуют увеличения `PORTREVISION`: -Примеры изменений, которые не требуют увеличения переменной `PORTREVISION`: +* Стилевые изменения в каркасе портов без функциональных изменений в итоговом пакете. +* Изменения в `MASTER_SITES` или другие функциональные изменения порта, которые не влияют на итоговый пакет. +* Тривиальные исправления в дистрибутивном файле, такие как исправление опечаток, которые не настолько важны, чтобы пользователи пакета были вынуждены тратить время на обновление. +* Исправления сборки, которые позволяют пакету компилироваться там, где ранее это не удавалось. При условии, что изменения не вносят функциональных изменений на других платформах, где порт ранее собирался. Поскольку `PORTREVISION` отражает содержимое пакета, если пакет ранее не мог быть собран, то нет необходимости увеличивать `PORTREVISION` для обозначения изменений. -* Изменения стиля в скелете порта без функциональных изменений в пакете. -* Изменения в переменной `MASTER_SITES` или другие функциональные изменения порта, которые не затрагивают получающегося пакета. -* Тривиальные патчи к дистрибутивному файлу, такие, как исправления опечаток, которые не так уж важны, что пользователи пакета должны озаботиться обновлением. -* Исправления, касающиеся этапа построения, которые делают возможным построение пакета, если ранее это было невозможно сделать (пока изменения не приводят к изменению работы на любых других платформах, на которых порт ранее строился). Так как `PORTREVISION` отражает содержимое пакета, то, если ранее пакет не строился, то нет нужды увеличивать `PORTREVISION` для отметки изменения. +Эмпирическое правило заключается в том, чтобы решить, является ли изменение, внесённое в порт, чем-то, что принесёт пользу _некоторым_ пользователям. Будь то улучшение, исправление или просто факт, что новый пакет вообще будет работать. Затем необходимо сопоставить это с тем, что всем, кто регулярно обновляет своё дерево портов, придётся выполнить обновление. Если ответ положительный, необходимо увеличить `PORTREVISION`. -Правило, которому нужно приблизительно следовать, заключается в том, что нужно спрашивать себя, является ли вносимое в порт изменение таким, что от него выиграют все (в виде усовершенствования, исправления или благодаря тому, что новый пакет будет вообще работоспособным), и примите во внимание тот факт, что при этом все, кто регулярно обновляют своё дерево портов, будут обязаны это сделать. Если это так, то переменная `PORTREVISION` должна быть увеличена. +[NOTE] +==== +Пользователи бинарных пакетов _никогда_ не увидят обновления, если `PORTREVISION` не увеличен. Без увеличения `PORTREVISION` сборщики пакетов не могут обнаружить изменение и, следовательно, не пересоберут пакет. +==== +[[makefile-portepoch]] ==== `PORTEPOCH` -Время от времени разработчик программного обеспечения или создатель порта FreeBSD делают что-то не так и выпускают версию программы, номер которой меньше предыдущей версии. Примером этого является порт, название которого меняется с foo-20000801 на foo-1.0 (изначально это не считалось бы более новой версией, так как 20000801 численно больше, чем 1). +Время от времени разработчики программного обеспечения или сопровождающие портов FreeBSD совершают ошибку и выпускают версию своего ПО, которая фактически имеет меньший номер по сравнению с предыдущей. Примером может служить переход с foo-20000801 на foo-1.0 (первая версия будет ошибочно считаться более новой, поскольку число 20000801 больше, чем 1.0). [TIP] ==== +Результаты сравнения номеров версий не всегда очевидны. Команда `pkg version` (см. man:pkg-version[8]) может быть использована для проверки сравнения двух строк с номерами версий. Например: -Результат сравнения номера версии не всегда очевиден. Для выполнения сравнения двух строк с номером версии можно использовать `pkg version` (см. man:pkg-version[8]). Например: - -[source,shell] +[source, shell] .... % pkg version -t 0.031 0.29 > .... -Строка `>` в выводе команды означает, что версия 0.031 считается выше, чем версия 0.29, что может быть не очевидно для того, кто выполняет портирование. +Символ `>` в выводе указывает, что версия 0.031 считается больше, чем версия 0.29, что могло быть неочевидно для сопровождающего. ==== -В ситуациях, подобных этой, должно быть увеличено значение `PORTEPOCH`. Если значение `PORTEPOCH` не равно нулю, то оно добавляется к имени пакета, как описано в разделе выше. Значение `PORTEPOCH` никогда не должно уменьшаться или сбрасываться в ноль, потому что это приведёт к ошибке сравнения с пакетом с меньшим номером эпохи (то есть то, что пакет устарел, обнаружено не будет): номер новой версии (например, `1.0,1` в примере выше) останется меньше, чем номер предыдущей версии (20000801), однако суффикс `,1` интерпретируется различными автоматизированными утилитами особым образом, и окажется больше, чем предполагаемый суффикс `,0` более раннего пакета). +В таких ситуациях необходимо увеличить `PORTEPOCH`. Если `PORTEPOCH` не равен нулю, он добавляется к имени пакета, как описано в разделе 0 выше. `PORTEPOCH` никогда не должен уменьшаться или сбрасываться до нуля, потому что это приведёт к ошибке при сравнении с пакетом из более ранней эпохи. Например, пакет не будет обнаружен как устаревший. Новый номер версии, `1.0,1` в приведённом выше примере, всё ещё численно меньше предыдущей версии, 20000801, но суффикс `,1` обрабатывается автоматизированными инструментами особым образом и считается большим, чем подразумеваемый суффикс `,0` у предыдущего пакета. -Некорректное уменьшение или сброс `PORTEPOCH` приводит к печальным последствиям; если вы не поняли, о чём шла речь ранее, пожалуйста, всё же разберитесь с этим, либо спросите в списках рассылки. +Неправильное удаление или сброс `PORTEPOCH` приводит к бесконечным проблемам. Если приведённое выше объяснение недостаточно ясно, обратитесь к {freebsd-ports}. -Предполагается, что в большинстве портов переменная `PORTEPOCH` использоваться не будет, но при корректном использовании `PORTVERSION` может появиться необходимость её иметь, если в будущих релизах программное обеспечение должно изменить структуру номера версии. Однако создателям портов для FreeBSD нужно быть внимательными, когда разработчик выпускает релиз без официального номера версии - эдакие "промежуточные" релизы. Имеется соблазн пометить релиз датой его выхода, что может вызвать проблемы, как и в примере выше, когда будет выпущен новый "официальный" релиз. +Ожидается, что `PORTEPOCH` не будет использоваться для большинства портов, и что разумное использование `DISTVERSION` или аккуратное применение `PORTVERSION` часто может предотвратить необходимость его использования, если будущий выпуск программного обеспечения изменит структуру версий. Однако разработчикам портов FreeBSD следует быть осторожными, когда вендор выпускает релиз без официального номера версии — например, релиз в виде "снимка" кода. Возникает соблазн обозначить такой релиз датой выпуска, что вызовет проблемы, как в примере выше, когда будет сделан новый "официальный" релиз. -Например, если промежуточный релиз помечен датой 20000917, а предыдущая версия программного обеспечения имела номер 1.2, то промежуточному релизу должно быть поставлено в соответствие значение `PORTVERSION`, равное 1.2.20000917 или что-то похожее, но не 20000917, так как последующий релиз, скажем, 1.3, должен иметь численно большее значение. +Например, если снимок выпущен на дату `20000917`, а предыдущая версия программного обеспечения была `1.2`, не следует использовать `20000917` для `DISTVERSION`. Правильным будет указать `DISTVERSION` как `1.2.20000917` или подобное, чтобы следующая версия, например `1.3`, оставалась численно большей. -==== Пример использования переменных `PORTREVISION` и `PORTEPOCH` +[[makefile-portrevision-example]] +==== Пример использования `PORTREVISION` и `PORTEPOCH` -Выполнен коммит порта `gtkmumble`, версии `0.10`, в коллекцию портов. +Порт `gtkmumble` версии `0.10` добавлен в коллекцию портов: [.programlisting] .... PORTNAME= gtkmumble -PORTVERSION= 0.10 +DISTVERSION= 0.10 .... -Значение `PKGNAME` станет равным `gtkmumble-0.10`. +`PKGNAME` становится `gtkmumble-0.10`. -Обнаружена брешь в безопасности, исправление которой потребовало создания локального патча для FreeBSD. Соответственно было увеличено значение переменной `PORTREVISION`. +Обнаружена уязвимость в безопасности, требующая локального исправления FreeBSD. `PORTREVISION` соответствующим образом увеличивается. [.programlisting] .... PORTNAME= gtkmumble -PORTVERSION= 0.10 +DISTVERSION= 0.10 PORTREVISION= 1 .... `PKGNAME` принимает значение `gtkmumble-0.10_1` -Разработчиком выпущена новая версия с номером `0.2` (оказалось, что под номером `0.10` автор имел в виду `0.1.0`, а не "то, что будет выпущено после версии 0.9" - извините, теперь уже поздно). Так как новый младший номер версии `2` по значению меньше, чем номер предыдущей версии `10`, то должно быть увеличено значение `PORTEPOCH` для того, чтобы заставить распознавать вновь создаваемый пакет как "более новый". Так как это новый релиз программы, то `PORTREVISION` обнуляется (или удаляется из файла [.filename]#Makefile#). +Выпущена новая версия от поставщика под номером `0.2` (оказывается, автор изначально подразумевал, что `0.10` на самом деле означает `0.1.0`, а не "то, что идет после 0.9" — увы, теперь уже поздно). Поскольку новая минорная версия `2` численно меньше предыдущей версии `10`, необходимо увеличить `PORTEPOCH`, чтобы вручную заставить систему распознавать новый пакет как "более новый". Так как это новый релиз кода от поставщика, `PORTREVISION` сбрасывается до 0 (или удаляется из [.filename]#Makefile#). [.programlisting] .... PORTNAME= gtkmumble -PORTVERSION= 0.2 +DISTVERSION= 0.2 PORTEPOCH= 1 .... -`PKGNAME` принимает значение `gtkmumble-0.2,1` +`PKGNAME` становится `gtkmumble-0.2,1` -Следующий релиз имеет номер версии 0.3. Так как значение переменной `PORTEPOCH` никогда не уменьшается, что переменные, определяющие версии, теперь выглядят так: +Следующий выпуск — 0.3. Поскольку `PORTEPOCH` никогда не уменьшается, переменные версий теперь выглядят так: [.programlisting] .... PORTNAME= gtkmumble -PORTVERSION= 0.3 +DISTVERSION= 0.3 PORTEPOCH= 1 .... @@ -166,152 +370,196 @@ [NOTE] ==== -Если значение `PORTEPOCH` этим обновлением было бы сброшено в `0`, то кто-нибудь, имеющий установленный пакет `gtkmumble-0.10_1`, не смог бы опознать пакет `gtkmumble-0.3` как более новый, так как `3` было бы меньше, чем `10`. Помните, что в первую очередь это касается `PORTEPOCH`. +Если бы `PORTEPOCH` был сброшен в `0` при этом обновлении, пользователь, установивший пакет `gtkmumble-0.10_1`, не увидел бы пакет `gtkmumble-0.3` как более новый, поскольку `3` всё ещё численно меньше, чем `10`. Помните, в этом и заключается вся суть `PORTEPOCH` изначально. ==== -=== Переменные `PKGNAMEPREFIX` и `PKGNAMESUFFIX` +[[porting-pkgnameprefix-suffix]] +=== `PKGNAMEPREFIX` и `PKGNAMESUFFIX` -Две необязательные переменные, `PKGNAMEPREFIX` и `PKGNAMESUFFIX`, объединяются со значениями `PORTNAME` и `PORTVERSION` для формирования `PKGNAME` в форме `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Добейтесь того, чтобы это соответствовало нашим <>. В частности, в переменной `PORTVERSION` _не разрешается_ использование дефиса (`-`). Кроме того, если в имени пакета присутствует часть _language-_ или _-compiled.specifics_ (смотрите ниже), то используйте переменные `PKGNAMEPREFIX` и `PKGNAMESUFFIX`, соответственно. Не делайте их частью значения переменной `PORTNAME`. +Две необязательные переменные, `PKGNAMEPREFIX` и `PKGNAMESUFFIX`, объединяются с `PORTNAME` и `PORTVERSION` для формирования `PKGNAME` в виде `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Убедитесь, что это соответствует нашим crossref:makefiles[porting-pkgname,рекомендациям по именованию пакетов]. В частности, использование дефиса (`-`) в `PORTVERSION` _не_ допускается. Кроме того, если имя пакета содержит часть _language-_ или _-compiled.specifics_ (см. ниже), используйте `PKGNAMEPREFIX` и `PKGNAMESUFFIX` соответственно. Не включайте их в `PORTNAME`. [[porting-pkgname]] -=== Соглашения по именованию пакетов +=== Соглашения о наименовании пакетов -Далее описаны некоторые соглашения, которым вы должны следовать в именовании ваших пакетов. Они были разработаны для облегчения просмотра каталога, так как имеется уже тысячи пакетов, а пользователи отвернутся от нас, если список не понравится их взору! +Вот соглашения, которым следует придерживаться при наименовании пакетов. Это сделано для того, чтобы каталог пакетов было легко просматривать, поскольку там уже тысячи пакетов, и пользователи могут отказаться от их использования, если это будет напрягать их глаза! -Имя пакета должно иметь вид [.filename]#language_region-name-compiled.specifics-version.numbers#. +Имена пакетов имеют формат [.filename]#language_region-name-compiled.specifics-version.numbers#. -Имя пакета определяется как `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Вы должны задавать значения переменных в соответствии с этим форматом. +Имя пакета определяется как `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Убедитесь, что переменные заданы в соответствии с этим форматом. + +[[porting-pkgname-language]] +[.filename]#language_region-#:: +FreeBSD стремится поддерживать родной язык своих пользователей. Часть _language-_ представляет собой двухбуквенное сокращение естественного языка, определённое стандартом ISO-639, когда порт относится к определённому языку. Примерами являются `ja` для японского, `ru` для русского, `vi` для вьетнамского, `zh` для китайского, `ko` для корейского и `de` для немецкого. ++ +Если порт относится к определённому региону в языковой зоне, добавьте также двухбуквенный код страны. Например, `en_US` для американского английского и `fr_CH` для швейцарского французского. ++ +Часть _language-_ задается в `PKGNAMEPREFIX`. -. FreeBSD пытается поддерживать языки, на которых разговаривают её пользователи. Часть _language-_ должна быть двухсимвольным сокращением от названия языка по стандарту ISO-639, если порт специфичен для конкретного языка. Примерами являются `ja` для японского, `ru` для русского, `vi` для вьетнамского, `zh` для китайского, `ko` для корейского и `de` для немецкого языков. -+ -Если ваш порт специфичен для конкретного региона внутри области использования языка, добавьте также двухсимвольный код страны. Примерами являются `en_US` для US English и `fr_CH` для Swiss French. -+ -Часть _language-_ должна задаваться в переменной `PKGNAMEPREFIX`. -. Первая буква части [.filename]#name# должна быть в нижнем регистре. (Оставшаяся часть названия может содержать буквы в верхнем регистре, так что принимайте решение сами, когда преобразуете имя программного пакета, содержащего в имени некоторое количество заглавных букв.) Существует традиция именовать модули для `Perl 5`, добавляя впереди `p5-` и преобразуя пару двоеточий в дефис; например, модуль `Data::Dumper` будет именоваться `p5-Data-Dumper`. -. Убедитесь, что имя порта и версия четко отделены и размещаются в переменных `PORTNAME` и `PORTVERSION`. Единственная причина, по которой `PORTNAME` содержит версионную часть, это если полученный дистрибутив сам назван таким образом, как это сделано для портов [.filename]#textproc/libxml2# или [.filename]#japanese/kinput2-freewnn#. В противном случае `PORTNAME` не должен содержать никакой информации, указывающей на версию. То, что некоторые порты имеют одинаковый `PORTNAME`, является вполне нормальным, как для портов [.filename]#www/apache*#; в этом случае различные версии (и различные записи в индексе) отличаются по значениям `PKGNAMEPREFIX` и `PKGNAMESUFFIX`. -. Если порт может быть построен с различными <> (обычно это часть имени каталога в семействе портов), то часть _-compiled.specifics_ должна определять вкомпилированные значения по умолчанию (дефис не обязателен). Примерами являются размеры бумаги и шрифтов. -+ -Часть _-compiled.specifics_ должна задаваться в переменной `PKGNAMESUFFIX`. -. Строка с номером версии должна следовать за дефисом (`-`) и являться списком разделенных двоеточием чисел и букв в нижнем регистре. В частности, не разрешается иметь еще один дефис внутри строки с обозначением номера версии. Единственным исключением является строчка `pl` (означающая "patchlevel"), которая может использоваться _только_ тогда, когда у программного обеспечения нет старшего и младшего номера версии. Если в номер версии программного обеспечения включена строчка типа "alpha", "beta", "rc" или "pre", возьмите из неё первую букву и поставьте её непосредственно после точки. Если после таких строк номер версии ещё продолжается, то после буквы должно следовать число без дополнительной разделяющей точки. -+ -Смысл такого формата заключается в удобстве сортировки портов по номеру версии. В частности, следите за тем, чтобы компоненты номера версии разделялись точкой, и если там присутствует дата, то используйте формат `0.0.yyyy.mm.dd`, но не `dd.mm.yyyy` или не совместимый с проблемой Y2K `yy.mm.dd`. Добавление к версии префикса `0.0.` является важным, в случае если выпущен релиз с присвоением настоящей версии, которая в числовом представлении, конечно же, будет ниже, чем `yyyy`. +[[porting-pkgname-name]] +[.filename]#name#:: +Убедитесь, что название порта и его версия четко разделены и указаны в `PORTNAME` и `DISTVERSION`. Единственная причина, по которой `PORTNAME` может содержать часть версии, — это если вышестоящее распространяемое ПО действительно так названо, как в портах package:textproc/libxml2[] или package:japanese/kinput2-freewnn[]. В противном случае `PORTNAME` не может содержать информацию о версии. Довольно нормально, когда несколько портов имеют одинаковый `PORTNAME`, как это делают порты package:www/apache*[]; в таком случае разные версии (и разные записи в индексе) различаются значениями `PKGNAMEPREFIX` и `PKGNAMESUFFIX`. ++ +Существует традиция называть модули `Perl 5`, добавляя префикс `p5-` и заменя разделитель в виде двойного двоеточия на дефис. Например, модуль `Data::Dumper` становится `p5-Data-Dumper`. +[[porting-pkgname-compiled-specifics]] +[.filename]#-compiled.specifics#:: +Если порт может быть собран с различными crossref:makefiles[makefile-masterdir,жестко заданными значениями по умолчанию] (обычно это часть имени каталога в семействе портов), часть _-compiled.specifics_ указывает скомпилированные значения по умолчанию. Дефис является необязательным. Примерами могут служить размер бумаги и единицы измерения шрифтов. ++ +Часть _-compiled.specifics_ задаётся в `PKGNAMESUFFIX`. -Вот несколько (реальных) примеров того, как преобразовать имя из оригинального, придуманного авторами, к подходящему для имени пакета: +[[porting-pkgname-version-numbers]] +[.filename]#-version.numbers#:: +Строка версии следует после тире (`-`) и представляет собой разделённый точками список целых чисел и строчных букв латинского алфавита. В частности, не допускается использование дополнительных тире внутри строки версии. Единственное исключение — строка `pl` (означающая "уровень исправления"), которую можно использовать _только_ в случае отсутствия у программного обеспечения номеров основной и дополнительной версий. Если в версии программного обеспечения встречаются строки типа "alpha", "beta", "rc" или "pre", следует взять первую букву и поместить её сразу после точки. Если после таких названий строка версии продолжается, числа следуют за буквой без дополнительной точки между ними (например, `1.0b2`). ++ +Идея заключается в упрощении сортировки портов за счёт анализа строки версии. В частности, необходимо убедиться, что компоненты номера версии всегда разделены точкой, а если дата является частью строки, использовать формат `d__yyyy.mm.dd__`, а не `_dd.mm.yyyy_` или не соответствующий стандарту Y2K формат `_yy.mm.dd_`. Важно добавлять перед версией букву, в данном случае `d` (от слова "дата"), на случай, если будет выпущена версия с фактическим номером, который численно окажется меньше `_yyyy_`. -[.informaltable] -[cols="1,1,1,1,1,1", frame="none", options="header"] +[IMPORTANT] +==== +Название пакета должно быть уникальным среди всех портов в дереве. Убедитесь, что порт с таким же `PORTNAME` ещё не существует, и если он есть, добавьте один из crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX` или `PKGNAMESUFFIX`]. +==== + +Вот несколько (реальных) примеров преобразования названия, указанного авторами программного обеспечения, в подходящее имя пакета. В каждой строке указана только одна из переменных `DISTVERSION` или `PORTVERSION`, в зависимости от того, какая используется в [.filename]#Makefile# порта: + +.Примеры наименования пакетов +[cols="1,1,1,1,1,1,1", frame="none", options="header"] |=== | Имя дистрибутива | PKGNAMEPREFIX | PORTNAME | PKGNAMESUFFIX -| PORTVERSION -| Обоснование +| DISTVERSION +| .PORTVERSION +| Причина или комментарий |mule-2.2.2 |(пусто) |mule |(пусто) |2.2.2 -|Изменений не потребовалось +| +|Никаких изменений не требуется + +|mule-1.0.1 +|(пусто) +|mule +|1 +|1.0.1 +| +|Это версия 1 mule, а версия 2 уже существует |EmiClock-1.0.2 |(пусто) |emiclock |(пусто) |1.0.2 -|Для отдельных программ имена с заглавными буквами запрещены +| +|Нет имен в верхнем регистре для отдельных программ |rdist-1.3alpha |(пусто) |rdist |(пусто) -|1.3.a -|Строчки типа `alpha` запрещены +|1.3alpha +| +|Версия будет `1.3.a` |es-0.9-beta1 |(пусто) |es |(пусто) -|0.9.b1 -|Строчки типа `beta` запрещены +|0.9-beta1 +| +|Версия будет `0.9.b1` |mailman-2.0rc3 |(пусто) |mailman |(пусто) -|2.0.r3 -|Строчки типа `rc` запрещены +|2.0rc3 +| +|Версия будет `2.0.r3` |v3.3beta021.src |(пусто) |tiff |(пусто) +| |3.3 -|Что это такое было вообще? +|Что это вообще было? |tvtwm |(пусто) |tvtwm |(пусто) -|pl11 -|Всегда требуется указание номера версии +| +|p11 +|Нет версии в имени файла, используйте то, что указано в исходном коде |piewm |(пусто) |piewm |(пусто) |1.0 -|Всегда требуется указание номера версии +| +|Нет версии в имени файла, используйте то, что указано в исходном коде |xvgr-2.10pl1 |(пусто) |xvgr |(пусто) -|2.10.1 -|`pl` разрешено только при отсутствии старшего/младшего номера версии +| +|2.10.pl1 +|В таком случае, `pl1` означает уровень патча, поэтому использование DISTVERSION невозможно. |gawk-2.15.6 |ja- |gawk |(пусто) |2.15.6 -|Версия на японском языке +| +|Японская языковая версия |psutils-1.13 |(пусто) |psutils |-letter |1.13 -|Размер бумаги задается статически во время построения пакета +| +|Размер бумаги жестко задан во время сборки пакета |pkfonts |(пусто) |pkfonts |300 |1.0 -|пакет для шрифтов 300dpi +| +|Пакет для шрифтов с разрешением 300dpi |=== -Если в исходном коде абсолютно нет информации о номере версии и не похоже, что автор собирается выпускать другую версию, то в качестве номера версии задайте просто `1.0` (как в примере с `piewm` выше). В противном случае спросите автора программы или используйте дату (`0.0.yyyy.mm.dd`) в качестве номера версии. +Если в исходном источнике полностью отсутствует информация о версии и маловероятно, что автор когда-либо выпустит новую версию, просто укажите строку версии как `1.0` (как в примере с `piewm` выше). В противном случае, спросите автора или используйте дату выпуска исходного файла в формате `d__yyyy.mm.dd__` или `d__yyyymmdd__` в качестве версии. + +[TIP] +==== +Используйте любую букву. Здесь `d` означает дату, если источник — это репозиторий Git, часто используется `g` с последующей датой коммита, также распространено использование `s` для снимка. +==== [[makefile-categories]] -== Разделение по категориям +== Категоризация +[[makefile-categories-definition]] === `CATEGORIES` -В процессе создания пакета он помещается в каталог [.filename]#/usr/ports/packages/All#, а в одном или более подкаталогов из [.filename]#/usr/ports/packages# создаются на него ссылки. Имена этих подкаталогов определяются переменной `CATEGORIES`. Такая схема нужна для облегчения жизни пользователя, когда он сталкивается с массой пакетов на FTP-сервере или компакт-диске. Пожалуйста, посмотрите на <> и выберите те из них, которые более всего подходят к вашему порту. +При создании пакета он помещается в [.filename]#/usr/ports/packages/All#, и ссылки на него создаются в одной или нескольких поддиректориях [.filename]#/usr/ports/packages#. Имена этих поддиректорий задаются переменной `CATEGORIES`. Это предназначено для облегчения поиска пакетов пользователем при просмотре большого количества пакетов на FTP-сайте или CDROM. Пожалуйста, ознакомьтесь с crossref:makefiles[porting-categories,текущим списком категорий] и выберите подходящие для данного порта. -Этот список также определяет, куда в дереве портов будет помещен порт. Если вы укажете здесь более одной категории, то предполагается, что файлы порта будут помещены в подкаталог с именем первой категории. Посмотрите <> для получения подробной информации о том, как правильно выбрать категории. +Этот список также определяет, где в дереве портов будет размещён порт. Если здесь указано несколько категорий, файлы порта должны быть помещены в подкаталог с названием первой категории. Дополнительные сведения о выборе подходящих категорий см. в crossref:makefiles[choosing-categories,ниже]. [[porting-categories]] === Текущий список категорий -Вот текущий список категорий. Те, которые отмечены звёздочкой (`*`), являются _виртуальными_ категориями-они не имеют собственного подкаталога в дереве портов. Они используются только в качестве вторичных категорий, и только для поиска. +Вот текущий список категорий портов. Категории, помеченные звёздочкой (`*`), являются _виртуальными_ — они не имеют соответствующего подкаталога в дереве портов. Они используются только как вторичные категории и исключительно для целей поиска. [NOTE] ==== -Для невиртуальных категорий имеется однострочное описание в `COMMENT` в [.filename]#Makefile# соответствующего подкаталога. +Для невиртуальных категорий в `COMMENT` в [.filename]#Makefile# соответствующего подкаталога содержится однострочное описание. ==== [.informaltable] @@ -319,581 +567,1373 @@ |=== | Категория | Описание -| Примечания +| Заметки |[.filename]#accessibility# |Порты для помощи пользователям с ограниченными возможностями. -| +| -|[.filename]#afterstep*# -|Порты, поддерживающие менеджер окон http://www.afterstep.org[AfterStep]. -| +|[.filename]#afterstep#`*` +|Порты для поддержки оконного менеджера http://www.afterstep.org/[AfterStep]. +| |[.filename]#arabic# |Поддержка арабского языка. -| +| |[.filename]#archivers# -|Инструменты для работы с архивами. -| +|Инструменты для архивирования. +| |[.filename]#astro# -|Приложения, связанные с астрономией. -| +|Астрономические порты. +| |[.filename]#audio# -|Поддержка работы со звуком. -| +|Поддержка звука. +| |[.filename]#benchmarks# -|Утилиты для измерения производительности системы. -| +|Утилиты для тестирования производительности. +| |[.filename]#biology# |Программное обеспечение, связанное с биологией. -| +| |[.filename]#cad# -|Инструменты Систем Автоматизированного Проектирования. -| +|Компьютерные средства автоматизированного проектирования. +| |[.filename]#chinese# |Поддержка китайского языка. -| +| |[.filename]#comms# -|Коммуникационное программное обеспечение. -|В основном программы для работы с последовательным портом. +|Программное обеспечение для связи. +|В основном программное обеспечение для работы с последовательным портом. |[.filename]#converters# -|Утилиты для преобразования символьных форматов. -| +|Преобразователи символьных кодировок. +| |[.filename]#databases# |Базы данных. -| +| |[.filename]#deskutils# -|То, что было на столе до изобретения компьютеров. -| +|Вещи, которые раньше находились на рабочем столе до изобретения компьютеров. +| |[.filename]#devel# -|Утилиты для разработки программного обеспечения. -|Не помещайте сюда библиотеки просто потому, что это библиотеки-если они подпадают под какую-то другую категорию, то их быть здесь не должно. +|Средства разработки. +|Не размещайте библиотеки здесь только потому, что они являются библиотеками. Они _не_ должны быть в этой категории, если только они действительно не подходят никуда больше. |[.filename]#dns# -|Программное обеспечение для работы DNS. -| +|Программное обеспечение, связанное с DNS. +| -|[.filename]#docs*# +|[.filename]#docs#`*` |Мета-порты для документации FreeBSD. -| +| |[.filename]#editors# -|Редакторы общего назначения. -|Специализированные редакторы относят к разделу для соответствующих инструментов (например, редактор математических формул попадает в категорию [.filename]#math#). +|Общие редакторы. +|Специализированные редакторы помещаются в раздел соответствующих инструментов. Например, редактор математических формул будет помещён в [.filename]#math#, а [.filename]#editors# будет для него второй категорией. -|[.filename]#elisp*# -|Порты для Emacs lisp. -| +|[.filename]#education#`*` +|Программное обеспечение для образования. +|Это включает приложения, утилиты или игры, разработанные в первую очередь или в значительной степени для помощи пользователю в изучении конкретной темы или обучении в целом. Также сюда входят приложения для создания курсов, приложения для предоставления курсов и приложения для управления классом или школой + +|[.filename]#elisp#`*` +|Порты Emacs-lisp. +| |[.filename]#emulators# |Эмуляторы других операционных систем. -|Эмуляторы терминалов сюда _не_ относятся-те, которые разработаны для X, должны быть в категории [.filename]#x11#, а текстовые в [.filename]#comms# или [.filename]#misc#, в зависимости от конкретного их предназначения. +|Терминальные эмуляторы _не_ относятся сюда. Основанные на X идут в [.filename]#x11#, а текстовые — либо в [.filename]#comms#, либо в [.filename]#misc#, в зависимости от конкретной функциональности. + +|[.filename]#enlightenment#`*` +|Порты, связанные с оконным менеджером Enlightenment. +| + +|[.filename]#filesystems# +|Файловые системы и связанные утилиты. +| |[.filename]#finance# -|Приложения для работы с деньгами, финансами и всем, что с этим связано. -| +|Монетарные, финансовые и связанные с ними приложения. +| |[.filename]#french# |Поддержка французского языка. -| +| |[.filename]#ftp# -|Клиенты и серверы FTP. -|Если ваш порт понимает как FTP, так и HTTP, поместите его в категорию [.filename]#ftp# и укажите вторичную категорию [.filename]#www#. +|Клиентские и серверные утилиты FTP. +|Если порт поддерживает как FTP, так и HTTP, поместите его в [.filename]#ftp# с дополнительной категорией [.filename]#www#. |[.filename]#games# |Игры. -| +| -|[.filename]#geography*# +|[.filename]#география#`*` |Программное обеспечение, связанное с географией. -| +| |[.filename]#german# |Поддержка немецкого языка. -| +| -|[.filename]#gnome*# -|Порты Проекта http://www.gnome.org[GNOME]. -| +|[.filename]#gnome#`*` +|Порты из проекта https://www.gnome.org/[GNOME]. +| -|[.filename]#gnustep*# -|Программное обеспечение для окружения рабочего стола GNUstep. -| +|[.filename]#gnustep#`*` +|Программное обеспечение, связанное со средой рабочего стола GNUstep. +| |[.filename]#graphics# |Графические утилиты. -| +| -|[.filename]#hamradio*# -|Программное обеспечение для любительского радио -| +|[.filename]#hamradio#`*` +|Программное обеспечение для радиолюбителей. +| -|[.filename]#haskell*# +|[.filename]#haskell#`*` |Программное обеспечение, связанное с языком Haskell. -| +| |[.filename]#hebrew# |Поддержка иврита. -| +| |[.filename]#hungarian# -|Поддержка венгерского языка. -| - -|[.filename]#ipv6*# -|Программное обеспечение, связанное с IPv6. -| +|Венгерская языковая поддержка. +| |[.filename]#irc# -|Утилиты для Internet Relay Chat. -| +|Утилиты Internet Relay Chat. +| |[.filename]#japanese# |Поддержка японского языка. -| +| |[.filename]#java# |Программное обеспечение, связанное с языком Java(TM). -|Категория [.filename]#java# ни в коем случае не должна быть единственной для порта. Оставьте для портов, непосредственно имеющих отношение к языку Java, портерам также рекомендуется не использовать [.filename]#java# как основную категорию порта. +|Категория [.filename]#java# не должна быть единственной для порта. За исключением портов, непосредственно связанных с языком Java, разработчикам также рекомендуется не использовать [.filename]#java# в качестве основной категории для порта. + +|[.filename]#kde#`*` +|Порты проекта https://www.kde.org/[KDE] (общие). +| + +|[.filename]#kde-приложения#`*` +|Приложения от проекта https://www.kde.org/[KDE]. +| -|[.filename]#kde*# -|Порты проекта http://www.kde.org[KDE]. -| +|[.filename]#kde-frameworks#`*` +|Дополнительные библиотеки от проекта https://www.kde.org/[KDE] для программирования с использованием Qt. +| -|[.filename]#kld*# +|[.filename]#kde-plasma#`*` +|Рабочий стол от проекта https://www.kde.org/[KDE]. +| + +|[.filename]#kld#`*` |Загружаемые модули ядра. -| +| |[.filename]#korean# |Поддержка корейского языка. -| +| |[.filename]#lang# |Языки программирования. -| +| -|[.filename]#linux*# -|Linux приложения и утилиты. -| +|[.filename]#linux#`*` +|Приложения и вспомогательные утилиты Linux. +| -|[.filename]#lisp*# +|[.filename]#lisp#`*` |Программное обеспечение, связанное с языком Lisp. -| +| |[.filename]#mail# -|Программы для работы с почтой. -| +|Почтовое программное обеспечение. +| + +|[.filename]#mate#`*` +|Порты, связанные с окружением рабочего стола MATE, форком GNOME 2. +| |[.filename]#math# -|Программное обеспечение для численных вычислений и другие утилиты, связанные с математикой. -| +|Численные расчеты и другие математические утилиты. +| -|[.filename]#mbone*# -|Приложения для MBone. -| +|[.filename]#mbone#`*` +|Приложения MBone. +| |[.filename]#misc# |Различные утилиты -|В общем, то, что не попадает в другие категории. Если это возможно, попробуйте найти более подходящую, чем `misc`, категорию для вашего порта, так как здесь порты теряются. +|Вещи, которые не подходят никуда больше. По возможности, попытайтесь найти для порта категорию лучше, чем `misc`, так как порты здесь часто остаются без внимания. |[.filename]#multimedia# -|Программное обеспечение для работы с мультимедиа. -| +|Мультимедийное программное обеспечение. +| |[.filename]#net# |Различное сетевое программное обеспечение. -| +| |[.filename]#net-im# -|Программы мгновенного обмена сообщениями. -| +|Программное обеспечение для обмена мгновенными сообщениями. +| |[.filename]#net-mgmt# -|Программное обеспечение для сетевого управления. -| +|Программное обеспечение для управления сетями. +| |[.filename]#net-p2p# -|Приложения для пиринговых сетей. -| +|Одноранговые сетевые приложения. +| -|[.filename]#news# -|Программное обеспечение для работы с конференциями USENET. -| +|[.filename]#сеть-vpn#`*` +|Виртуальные частные сети. +| -|[.filename]#palm# -|Программная поддержка http://www.palm.com/[Palm(TM)]. -| +|[.filename]#news# +|Программное обеспечение для USENET-новостей. +| -|[.filename]#parallel*# -|Приложения, связанные с параллельными вычислениями. -| +|[.filename]#parallel#`*` +|Приложения, работающие с параллелизмом в вычислениях. +| -|[.filename]#pear*# -|Порты, относящиеся к технологии Pear PHP. -| +|[.filename]#pear#`*` +|Порты, связанные с PHP-фреймворком Pear. +| -|[.filename]#perl5*# -|Порты, которым для работы требуется Perl версии 5. -| +|[.filename]#perl5#`*` +|Порты, требующие Perl версии 5 для работы. +| -|[.filename]#plan9*# -|Различные программы из http://www.cs.bell-labs.com/plan9dist/[Plan9]. -| +|[.filename]#plan9#`*` +|Различные программы с https://9p.io/wiki/plan9/Download/index.html[Plan9]. +| |[.filename]#polish# |Поддержка польского языка. -| +| |[.filename]#ports-mgmt# |Порты для управления, установки и разработки портов и пакетов FreeBSD. -| +| |[.filename]#portuguese# |Поддержка португальского языка. -| +| |[.filename]#print# |Программное обеспечение для печати. -|Инструменты для вёрстки (просмотрщики и тому подобное) тоже относятся сюда. +|Инструменты для настольных издательских систем (превьюеры и т. д.) также относятся сюда. -|[.filename]#python*# -|Программное обеспечение, связанное с языком http://www.python.org/[Python]. -| +|[.filename]#python#`*` +|Программное обеспечение, связанное с языком https://www.python.org/[Python]. +| -|[.filename]#ruby*# -|Программное обеспечение, связанное с языком http://www.ruby-lang.org/[Ruby]. -| +|[.filename]#ruby#`*` +|Программное обеспечение, связанное с языком https://www.ruby-lang.org/[Ruby]. +| -|[.filename]#rubygems*# -|Порты для пакетов http://www.rubygems.org/[RubyGems]. -| +|[.filename]#rubygems#`*` +|Порты пакетов https://www.rubygems.org/[RubyGems]. +| |[.filename]#russian# |Поддержка русского языка. -| +| -|[.filename]#scheme*# +|[.filename]#scheme#`*` |Программное обеспечение, связанное с языком Scheme. -| +| |[.filename]#science# -|Научные программы, которые не подпадают под другие категории, скажем, [.filename]#astro#, [.filename]#biology# или [.filename]#math#. -| +|Научные порты, которые не входят в другие категории, такие как [.filename]#astro#, [.filename]#biology# и [.filename]#math#. +| |[.filename]#security# -|Программы, обеспечивающие безопасность системы. -| +|Средства обеспечения безопасности. +| |[.filename]#shells# -|Различные командные процессоры. -| +|Командные оболочки. +| + +|[.filename]#spanish#`*` +|Поддержка испанского языка. +| |[.filename]#sysutils# |Системные утилиты. -| - -|[.filename]#spanish*# -|Поддержка испанского языка. -| +| -|[.filename]#tcl*# -|Порты, для работы которых нужен Tcl. -| +|[.filename]#tcl#`*` +|Порты, использующие Tcl для запуска. +| |[.filename]#textproc# -|Утилиты для обработки текстов. -|Инструменты для вёрстки помещаются в категорию [.filename]#print#, а не сюда. +|Средства обработки текста. +|Он не включает инструменты для настольных издательских систем, которые помещаются в [.filename]#print#. -|[.filename]#tk*# -|Порты, для работы которых нужен Tk. -| +|[.filename]#tk#`*` +|Порты, использующие Tk для работы. +| |[.filename]#ukrainian# |Поддержка украинского языка. -| +| |[.filename]#vietnamese# |Поддержка вьетнамского языка. -| +| -|[.filename]#windowmaker*# -|Порты для поддержки менеджера окон WindowMaker. -| +|[.filename]#wayland#`*` +|Порты для поддержки сервера дисплея Wayland. +| + +|[.filename]#windowmaker#`*` +|Порты для поддержки оконного менеджера Window Maker. +| |[.filename]#www# -|Программное обеспечение, связанное со всемирной паутиной. -|Поддержка языка HTML относится сюда же. +|Программное обеспечение, связанное с Всемирной паутиной. +|Поддержка языка HTML также относится сюда. |[.filename]#x11# -|X Window System и иже с ними. -|Эта категория предназначена только для программного обеспечения, которое поддерживает саму оконную систему. Не помещайте сюда обычные приложения для X: большинство из них должны быть перенесены в другие категории [.filename]#x11-*# (смотрите ниже). +|Система X Window и связанные компоненты. +|Эта категория предназначена только для программного обеспечения, которое напрямую поддерживает оконную систему. Не помещайте сюда обычные X-приложения. Большинство из них относятся к другим категориям [.filename]#x11-*# (см. ниже). |[.filename]#x11-clocks# -|Часы для X11. -| +|Часы X11. +| |[.filename]#x11-drivers# |Драйверы X11. -| +| |[.filename]#x11-fm# -|Менеджеры файлов для X11. -| +|Менеджеры файлов X11. +| |[.filename]#x11-fonts# -|Шрифты для X11 и утилиты для работы с ними. -| +|Шрифты и утилиты для работы со шрифтами в X11. +| |[.filename]#x11-servers# -|Серверы для X11. -| +|Серверы X11. +| |[.filename]#x11-themes# -|Темы для X11. -| +|Темы X11. +| |[.filename]#x11-toolkits# -|Пакеты разработчика для X11. -| +|Инструментарии X11. +| |[.filename]#x11-wm# -|Оконные менеджеры для X11. -| +|Оконные менеджеры X11. +| -|[.filename]#xfce*# -|Порты, связанные с окружением рабочего стола http://www.xfce.org/[Xfce]. -| +|[.filename]#xfce#`*` +|Порты, связанные с окружением рабочего стола https://www.xfce.org/[Xfce]. +| -|[.filename]#zope*# -|Поддержка http://www.zope.org/[Zope]. -| +|[.filename]#zope#`*` +|https://www.zope.org/[Zope] поддержка. +| |=== [[choosing-categories]] -=== Выбор правильной категории +=== Выбор подходящей категории -Так как многие категории перекрываются, вам часто необходимо будет выбирать, какая их них должна быть основной для вашего порта. Есть несколько правил, по которым можно решить этот вопрос. Вот список приоритетов, в уменьшающейся степени предпочтения: +Поскольку многие категории пересекаются, выбор основной категории для порта может быть утомительным. Существует несколько правил, регулирующих этот вопрос. Вот список приоритетов в порядке убывания важности: -* Первая категория должна быть физической категорий (смотрите <>). Это необходимо для создания пакетов. После этого виртуальные и физические категории могут смешиваться. -* Сначала всегда идут категории, специфичные для языков. Например, если ваш порт устанавливает японские шрифты для X11, то строчка `CATEGORIES` должна иметь вид [.filename]#japanese x11-fonts#. -* Более конкретные категории идут первыми перед более общими. В частности, редактор HTML должен быть описан как [.filename]#www editors#, а не наоборот. Кроме того, вы не должны указывать категорию [.filename]#net#, если порт относится к одной из категорий [.filename]#irc#, [.filename]#mail#, [.filename]#news#, [.filename]#security# или [.filename]#www#, так как [.filename]#net# включается автоматически. -* [.filename]#x11# используется как вторичная категория только в случае, если в качестве основной категории указан естественный язык. В частности, вам не нужно указывать [.filename]#x11# в качестве категории для приложений X. -* Режимы для редактора Emacs должны помещаться в ту же категорию, что и приложение, которое поддерживается этим режимом, а не в [.filename]#editors#. Например, режим Emacs для редактирования исходного кода некоторого языка программирования должен быть помещен в категорию [.filename]#lang#. -* Порты, устанавливающие загружаемые модули ядра, должны содержать виртуальную категорию [.filename]#kld# в строке `CATEGORIES`. Это одно из действий, выполняемых автоматически с добавлением `kmod` в строке `USES`. -* [.filename]#misc# не должна указываться вместе с любой другой невиртуальной категорией. Если вы указываете `misc` вместе с чем-то ещё в строке `CATEGORIES`, это значит, что вы можете спокойно удалить `misc` и просто поместить порт в этот другой подкаталог! -* Если ваш порт решительным образом не подпадает ни под какую категорию, поместите его в [.filename]#misc#. +* Первая категория должна быть физической (см. crossref:makefiles[porting-categories,выше]). Это необходимо для работы упаковки. Виртуальные категории и физические категории могут чередоваться после этого. +* Языковые категории всегда указываются первыми. Например, если порт устанавливает японские шрифты для X11, то строка `CATEGORIES` будет выглядеть так: [.filename]#japanese x11-fonts#. +* Конкретные категории перечислены перед менее специфичными. Например, HTML-редактор указывается как [.filename]#www editors#, а не наоборот. Также не следует указывать [.filename]#net#, если порт принадлежит к любой из категорий [.filename]#irc#, [.filename]#mail#, [.filename]#news#, [.filename]#security# или [.filename]#www#, так как [.filename]#net# подразумевается автоматически. +* [.filename]#x11# используется как вторичная категория только в случае, когда основной категорией указан естественный язык. В частности, не указывайте [.filename]#x11# в строке категории для X-приложений. +* Режимы Emacs размещаются в той же категории портов, что и приложение, поддерживаемое данным режимом, а не в [.filename]#editors#. Например, режим Emacs для редактирования исходных файлов какого-либо языка программирования попадает в [.filename]#lang#. +* Порты, устанавливающие загружаемые модули ядра, также имеют виртуальную категорию [.filename]#kld# в строке `CATEGORIES`. Это одна из вещей, автоматически обрабатываемых при добавлении `USES=kmod`. +* [.filename]#misc# не встречается вместе с другими невиртуальными категориями. Если `misc` указан вместе с чем-то еще в `CATEGORIES`, это означает, что `misc` можно безопасно удалить, а порт разместить только в другом подкаталоге. +* Если порт действительно не подходит никуда больше, поместите его в [.filename]#misc#. -Если вы не уверены в правильности выбора категории, пожалуйста, отметьте это в вашем сообщении man:send-pr[1], чтобы мы могли обсудить это до того, как включить порт в Коллекцию. Если вы являетесь коммиттером, пошлите замечание на адрес {freebsd-ports}, чтобы мы могли обсудить это. Зачастую новые порты помещаются не в ту категорию только для того, чтобы их оттуда сразу же удалили. Это приводит к излишнему и ненужному росту основного хранилища исходных текстов. +Если категория не определена четко, пожалуйста, укажите это в комментарии при https://bugs.freebsd.org/submit/[отправке порта] в баг-трекере, чтобы мы могли обсудить её перед импортом. Как коммиттер, отправьте сообщение в рассылку {freebsd-ports}, чтобы мы сначала обсудили это. Слишком часто новые порты импортируются в неправильную категорию, после чего их сразу же приходится перемещать. [[proposing-categories]] === Предложение новой категории -Поскольку со временем Коллекция Портов увеличилась, то в связи с этим были добавлены различные новые категории. Новые категории могут быть или _виртуальными_ категориями-которые не имеют соответствующего подкаталога в дереве портов-или _физическими_ категориями-у которых он есть. Следующий текст содержит обсуждение вопросов, возникающих при создании новой физической категории, чтобы вы могли понимать их, когда предложите новую категорию. +По мере роста Коллекции портов со временем были введены различные новые категории. Новые категории могут быть _виртуальными_ — те, у которых нет соответствующего подкаталога в дереве портов, или _физическими_ — те, у которых он есть. В этом разделе обсуждаются вопросы, связанные с созданием новой физической категории. Внимательно ознакомьтесь с ним, прежде чем предлагать новую. -В соответствие с существующей практикой мы избегаем создания новой физической категории, пока достаточно большое число портов логически ей не принадлежит или же порты, которые могли бы ей принадлежать, не являются логически обособленной группой, представляющей для всех ограниченный интерес (в частности, категории, относящиеся к естественным языкам); предпочтительно выполнение обоих условий. +Наша текущая практика заключается в том, чтобы избегать создания новой физической категории, если только либо большое количество портов логически принадлежит к ней, либо порты, которые к ней относятся, представляют собой логически обособленную группу, представляющую ограниченный общий интерес (например, категории, связанные с разговорными человеческими языками), или, желательно, оба условия одновременно. -Основной причиной для этого является то, что такое изменение создает extref:{committers-guide}[изрядное количество работы, ports] и для коммиттеров, и для всех тех пользователей, которые отслеживают изменения в Коллекции Портов. В дополнение, предложенная категория создает естественное разногласие. (Пожалуй, потому что не существует четкого соглашения, является ли категория "слишком большой", или должны ли категории предоставлять себя для просмотра (и, таким образом, какое количество категорий было бы идеальным значением), и так далее.) +Обоснование этого заключается в том, что такое изменение создает extref:{committers-guide}[значительный объем работы, ports] как для коммитеров, так и для всех пользователей, которые отслеживают изменения в Коллекции портов. Кроме того, предлагаемые изменения категорий, как правило, вызывают споры. (Возможно, это связано с отсутствием четкого консенсуса относительно того, когда категория становится «слишком большой», а также относительно того, должны ли категории способствовать удобству просмотра (и, следовательно, какое количество категорий было бы идеальным), и так далее.) -Процедура: +Вот процедура: [.procedure] -==== -. Предложите новую категорию на {freebsd-ports}. Вам следует включить для новой категории детальное обоснование, в том числе почему вы считаете, что существующие категории не являются достаточными, и список существующих портов, предложенных для перемещения. (Если есть новые порты, ожидающие в GNATS и попадающие в эту категорию, то укажите их тоже.) Если вы являетесь сопровождающим и/или отправителем, то укажите это соответственно, так как это может помочь вам в вашем деле. -. Принимайте участие в обсуждении. -. Если кажется, что для вашей идеи появилась поддержка, отправьте PR, который будет включать обоснование и список существующих портов, которые надо переместить. В идеале этот PR должен также включать патчи для следующего: +. Предложите новую категорию на {freebsd-ports}. Включите подробное обоснование для новой категории, объясните, почему существующие категории недостаточны, и укажите список существующих портов, предлагаемых к перемещению. (Если в Bugzilla есть ожидающие рассмотрения новые порты, которые подходят под эту категорию, также перечислите их.) Если вы являетесь сопровождающим и/или подающим предложение, укажите это, так как это может помочь в рассмотрении. +. Участвуйте в обсуждении. +. Если кажется, что идея находит поддержку, оформите PR, включающий как обоснование, так и список существующих портов, которые необходимо переместить. В идеале, этот PR также должен содержать следующие исправления: -** [.filename]#Makefile#'ы для новых портов в результате репозиторного копирования -** [.filename]#Makefile# для категорий старых портов -** [.filename]#Makefile#'ы для портов, зависящих от старых портов -** (в дополнение, вы можете включить другие файлы, требующие изменений, согласно процедуре из Руководства Коммиттера.) +** [.filename]##Makefile## для новых портов после копирования их репозитория +** [.filename]#Makefile# для новой категории +** [.filename]#Makefile# для старых категорий портов +** [.filename]##Makefile## для портов, зависящих от старых портов +** (для дополнительной оценки включите другие файлы, которые необходимо изменить, в соответствии с процедурой, описанной в Руководстве коммитера.) -. Поскольку это затрагивает инфраструктуру портов и охватывает не только выполнение репозиторного копирования, но также, возможно, и выполнение регрессивных тестов на кластере построения, то PR должна назначать себе {portmgr}. -. Если этот PR одобрен, то коммиттеру нужно продолжить остальную часть процедуры, которая extref:{committers-guide}[изложена в Руководстве Коммиттера, ports]. -==== +. Поскольку это затрагивает инфраструктуру портов и включает перемещение и исправление многих портов, а также, возможно, проведение регрессионных тестов на сборочном кластере, назначьте PR для {portmgr}. +. Если этот PR будет одобрен, коммиттер должен будет выполнить оставшуюся часть процедуры, extref:{committers-guide}[описанной в Руководстве коммиттера,ports]. -Предложение новой виртуальной категории должно быть схожим с вышеизложенным, но при этом затрагивать намного меньше, поскольку ни один из портов не будет перемещен в действительности. В этом случае единственными патчами, включенными в PR, будут те, что добавляют новую категорию в `CATEGORIES` каждого из затрагиваемых портов. +Предложение новой виртуальной категории аналогично описанному выше, но гораздо менее трудоёмко, так как фактически не потребуется перемещать порты. В этом случае единственные патчи, которые нужно включить в PR, — это добавление новой категории в `CATEGORIES` затронутых портов. [[proposing-reorg]] -=== Предложение реорганизации всех категорий +=== Предложение о реорганизации всех категорий -Время от времени кто-нибудь предлагает произвести реорганизацию категорий либо до двухуровневой, либо другого типа на основе ключевых слов. На данный момент из этих предложений ничего не получилось, потому что, хотя они просты в реализации, но предполагаемая переделка всей коллекции портов по меньшей мере приводит в уныние. Пожалуйста, прочтите историю этих предложений в архивах рассылок перед тем, как присылать свои соображения; более того, вы должны быть готовы представить работающий прототип. +Изредка кто-то предлагает реорганизовать категории, используя либо двухуровневую структуру, либо какую-либо другую структуру ключевых слов. На сегодняшний день ни одно из этих предложений не было реализовано, потому что, хотя их очень легко выдвинуть, усилия, необходимые для переработки всей существующей коллекции портов в рамках любой реорганизации, пугают, мягко говоря. Пожалуйста, ознакомьтесь с историей этих предложений в архивах списка рассылки, прежде чем публиковать эту идею. Более того, будьте готовы к тому, что вас попросят предоставить рабочий прототип. [[makefile-distfiles]] -== Дистрибутивные файлы - -Во второй части [.filename]#Makefile# задаётся, какие файлы и откуда должны быть сгружены для того, чтобы построить порт. - -=== `DISTVERSION/DISTNAME` - -В переменной `DISTNAME` указывается имя порта так, как назвали его создатели программного обеспечения. Значение `DISTNAME` по умолчанию совпадает с `${PORTNAME}-${PORTVERSION}`, так что переопределяете её значение только в случае необходимости. `DISTNAME` используется только в двух местах. Во-первых, список дистрибутивных файлов (`DISTFILES`) по умолчанию состоит из `${DISTNAME}${EXTRACT_SUFX}`. И во-вторых, предполагается, что дистрибутивный файл будет распакован в подкаталог с именем `WRKSRC`, значение которого по умолчанию есть не что иное, как [.filename]#work/${DISTNAME}#. - -Названия некоторых дистрибутивов, которые не укладываются в `${PORTNAME}-${PORTVERSION}`-схему, могут быть автоматически обработаны посредством установки переменной `DISTVERSION`. `PORTVERSION` и `DISTNAME` будут унаследованы автоматически, но конечно же могут быть переопределены. Следующая таблица демонстрирует некоторые примеры: - -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| DISTVERSION -| PORTVERSION +== Файлы дистрибутива -|0.7.1d -|0.7.1.d +Вторая часть [.filename]#Makefile# описывает файлы, которые необходимо загрузить для сборки порта, и места, откуда их можно скачать. -|10Alpha3 -|10.a3 +[[makefile-distname]] +=== `DISTNAME` -|3Beta7-pre2 -|3.b7.p2 +`DISTNAME` — это имя порта, используемое авторами программного обеспечения. По умолчанию `DISTNAME` имеет значение `${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}`, а если не задано, `DISTVERSION` по умолчанию принимает значение `${PORTVERSION}`, поэтому переопределяйте `DISTNAME` только при необходимости. `DISTNAME` используется только в двух случаях. Во-первых, список файлов дистрибутива (`DISTFILES`) по умолчанию имеет значение `${DISTNAME}${EXTRACT_SUFX}`. Во-вторых, ожидается, что файл дистрибутива распакуется в подкаталог с именем `WRKSRC`, который по умолчанию равен [.filename]#work/${DISTNAME}#. -|8:f_17 -|8f.17 -|=== +Некоторые названия дистрибутивов от поставщиков, которые не соответствуют схеме `${PORTNAME}-${PORTVERSION}`, могут обрабатываться автоматически путем установки `DISTVERSIONPREFIX`, `DISTVERSION` и `DISTVERSIONSUFFIX`. `PORTVERSION` будет автоматически вычисляться из `DISTVERSION`. -[NOTE] +[IMPORTANT] ==== -Значения переменных `PKGNAMEPREFIX` и `PKGNAMESUFFIX` не влияют на значение `DISTNAME`. Заметьте также, что если значение `WRKSRC` равно [.filename]#work/${PORTNAME}-${PORTVERSION}#, и в случае, когда оригинальный архив называется по имени, отличном от `${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}`, скорее всего, вы должны оставить `DISTNAME` как есть- лучше переопределить `DISTFILES`, чем задавать значения как `DISTNAME`, так и `WRKSRC` (и, возможно, ещё и `EXTRACT_SUFX`). +Только одна из переменных `PORTVERSION` и `DISTVERSION` может быть установлена одновременно. Если `DISTVERSION` не определяет корректную `PORTVERSION`, не используйте `DISTVERSION`. ==== -=== `MASTER_SITES` - -Содержит часть с каталогом FTP/HTTP-URL, которая указывает на оригинальный архив на сервере `MASTER_SITES`. Не забудьте лидирующий слэш ([.filename]#/#)! +Если схема версий исходного проекта может быть преобразована в схему, совместимую с портами, установите некоторую переменную в версию исходного проекта, _не используйте_ имя переменной `DISTVERSION`. Установите `PORTVERSION` в вычисленную версию на основе созданной вами переменной и задайте `DISTNAME` соответствующим образом. -Макрос команды `make` будет пытаться воспользоваться этой переменной для получения дистрибутивного файла с помощью программы `FETCH`, если он не будет найден в системе. +Если схема версионирования вышестоящего проекта не может быть легко преобразована в значение, совместимое с портами, установите `PORTVERSION` в разумное значение и задайте `DISTNAME` как `PORTNAME` с дословной версией вышестоящего проекта. -Рекомендуется помещать в список много сайтов, предпочтительно с разных континентов. Это поможет при наличии проблем с мировой сетью. Мы даже планируем добавить поддержку автоматического определения ближайшего сайта и сгрузки файлов оттуда; наличие нескольких сайтов будет способствовать этому начинанию. +[[makefile-distname-ex1]] +.Получение `PORTVERSION` вручную +[example] +==== +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`. -Если оригинальный архив находится на одном из таких популярных серверов, как SourceForge, GNU или Perl CPAN, то указывайте эти сайты в простой форме при помощи `MASTER_SITE_*` (к примеру, `MASTER_SITE_SOURCEFORGE`, `MASTER_SITE_GNU` или `MASTER_SITE_PERL_CPAN`. Просто укажите в переменной `MASTER_SITES` одно из этих значений, а в переменной `MASTER_SITE_SUBDIR` задайте путь к архиву. Вот пример: +Порядок, в котором система портов и pkg будут сортировать версии, проверяется с помощью аргумента `-t` из man:pkg-version[8]: -[.programlisting] +[source, shell] .... -MASTER_SITES= ${MASTER_SITE_GNU} -MASTER_SITE_SUBDIR= make +% pkg version -t 9.9.9 9.9.9.p1 +> <.> +% pkg version -t 9.9.9 9.9.9p1 +< <.> .... -Или можно использовать сокращенный формат: +<.> Знак `>` означает, что первый аргумент, переданный в `-t`, больше второго аргумента. `9.9.9` находится после `9.9.9.p1`. +<.> Знак `<` означает, что первый аргумент, переданный в `-t`, меньше второго аргумента. `9.9.9` находится перед `9.9.9p1`. + +В файле [.filename]#Makefile# порта, например package:dns/bind99[], это достигается с помощью: [.programlisting] .... -MASTER_SITES= GNU/make +PORTNAME= bind +PORTVERSION= ${ISCVERSION:S/-P/P/:S/b/.b/:S/a/.a/:S/rc/.rc/} +CATEGORIES= dns net +MASTER_SITES= ISC/bind9/${ISCVERSION} +PKGNAMESUFFIX= 99 +DISTNAME= ${PORTNAME}-${ISCVERSION} + +MAINTAINER= mat@FreeBSD.org +COMMENT= BIND DNS suite with updated DNSSEC and DNS64 +WWW= https://www.isc.org/bind/ + +LICENSE= ISCL + +# ISC releases things like 9.8.0-P1 or 9.8.1rc1, which our versioning does not like +ISCVERSION= 9.9.9-P6 .... -Эти переменные определены в файле [.filename]#/usr/ports/Mk/bsd.sites.mk#. Всё время добавляются новые записи, так что обращайтесь к последней версии этого файла перед тем, как послать нам свой порт. +Определите версию вышестоящего пакета в `ISCVERSION`, с комментарием, объясняющим, _почему_ это необходимо. Используйте `ISCVERSION` для получения совместимого с портами `PORTVERSION`. Используйте `ISCVERSION` напрямую для получения правильного URL для загрузки файла дистрибутива. Используйте `ISCVERSION` напрямую для именования дистрибутивного файла. +==== + +[[makefile-distname-ex2]] +.Получить `DISTNAME` из `PORTVERSION` +[example] +==== +Время от времени имя файла дистрибутива имеет мало отношения или вообще никакого отношения к версии программного обеспечения. -Для популярных сайтов существует несколько _магических_ макросов с заранее известной структурой каталогов. Используйте для них сокращения, и система попытается угадать для вас правильный подкаталог. +В пакете package:comms/kermit[], в файле дистрибутива присутствует только последний элемент версии: [.programlisting] .... -MASTER_SITES= SF +PORTNAME= kermit +PORTVERSION= 9.0.304 +CATEGORIES= comms ftp net +MASTER_SITES= ftp://ftp.kermitproject.org/kermit/test/tar/ +DISTNAME= cku${PORTVERSION:E}-dev20 .... -Если попытка угадать не удалась, то это может быть переписано следующим образом. +Модификатор `:E` man:make[1] возвращает суффикс переменной, в данном случае `304`. Файл дистрибутива корректно создаётся как `cku304-dev20.tar.gz`. +==== + +[[makefile-distname-ex3]] +.Экзотический случай 1 +[example] +==== +Иногда нет связи между названием программы, её версией и файлом дистрибутива, в котором она распространяется. + +Из пакета package:audio/libworkman[]: [.programlisting] .... -MASTER_SITES= SF/stardict/WyabdcRealPeopleTTS/${PORTVERSION} +PORTNAME= libworkman +PORTVERSION= 1.4 +CATEGORIES= audio +MASTER_SITES= LOCAL/jim +DISTNAME= ${PORTNAME}-1999-06-20 .... -Что также можно записать в таком виде: +==== + +[[makefile-distname-ex4]] +.Экзотический случай 2 +[example] +==== +В пакете package:comms/librs232[] файл дистрибутива не имеет версии, поэтому необходимо использовать crossref:makefiles[makefile-dist_subdir,`DIST_SUBDIR`]: [.programlisting] .... -MASTER_SITES= SF -MASTER_SITE_SUBDIR= stardict/WyabdcRealPeopleTTS/${PORTVERSION} +PORTNAME= librs232 +PORTVERSION= 20160710 +CATEGORIES= comms +MASTER_SITES= http://www.teuniz.net/RS-232/ +DISTNAME= RS-232 +DIST_SUBDIR= ${PORTNAME}-${PORTVERSION} .... -.Популярные магические макросы для `MASTER_SITES` -[cols="1,1", frame="none", options="header"] -|=== -| Макрос -| Предполагаемый подкаталог - -|`APACHE_JAKARTA` -|`/dist/jakarta/${PORTNAME:S,-,,/,}/source` +==== -|`BERLIOS` -|`/${PORTNAME:L}` +[NOTE] +==== +`PKGNAMEPREFIX` и `PKGNAMESUFFIX` не влияют на `DISTNAME`. Также обратите внимание, что если `WRKSRC` равно [.filename]#${WRKDIR}/${DISTNAME}#, а исходный архив с исходным кодом называется иначе, чем `${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}`, оставьте `DISTNAME` без изменений — определение только `DISTFILES` проще, чем определение и `DISTNAME`, и `WRKSRC` (а возможно, и `EXTRACT_SUFX`). +==== -|`CHEESESHOP` -|`/packages/source/source/${DISTNAME:C/(.).\*/\1/}/${DISTNAME:C/(.*)-[0-9].*/\1/}` +[[makefile-master_sites]] +=== `MASTER_SITES` -|`DEBIAN` -|`/debian/pool/main/${PORTNAME:C/^((lib)?.).*$/\1/}/${PORTNAME}` +Запишите именем каталога из FTP/HTTP-URL, указывающего на исходный tarball, в `MASTER_SITES`. Не забудьте завершающий слэш ([.filename]#/#)! -|`GCC` -|`/pub/gcc/releases/${DISTNAME}` +Макросы `make` будут пытаться использовать эту спецификацию для загрузки файла дистрибутива с помощью `FETCH`, если не смогут найти его уже в системе. -|`GNOME` -|`/pub/GNOME/sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}` +Рекомендуется включать в этот список несколько сайтов, желательно с разных континентов. Это обеспечит защиту от проблем в глобальной сети. -|`GNU` -|`/gnu/${PORTNAME}` +[IMPORTANT] +==== +`MASTER_SITES` не должен быть пустым. Он должен указывать на реальный сайт, где размещены файлы дистрибутива. Он не может указывать на веб-архивы или кэшированные сайты с файлами дистрибутива FreeBSD. Единственное исключение из этого правила — порты, у которых нет файлов дистрибутива. Например, мета-порты не имеют файлов дистрибутива, поэтому `MASTER_SITES` не нужно задавать. +==== -|`MOZDEV` -|`/pub/mozdev/${PORTNAME:L}` +[[makefile-master_sites-shorthand]] +==== Использование переменных `MASTER_SITE_*` -|`PERL_CPAN` -|`/pub/CPAN/modules/by-module/${PORTNAME:C/-.*//}` +Для популярных архивов, таких как SourceForge (`SOURCEFORGE`), GNU (`GNU`) или Perl CPAN (`PERL_CPAN`), доступны сокращённые обозначения. `MASTER_SITES` может использовать их напрямую: -|`PYTHON` -|`/ftp/python/${PYTHON_PORTVERSION:C/rc[0-9]//}` +[.programlisting] +.... +MASTER_SITES= GNU/make +.... -|`RUBYFORGE` -|`/${PORTNAME:L}` +Старый расширенный формат по-прежнему работает, но все порты были преобразованы в компактный формат. Расширенный формат выглядит следующим образом: -|`SAVANNAH` -|`/${PORTNAME:L}` +[.programlisting] +.... +MASTER_SITES= ${MASTER_SITE_GNU} +MASTER_SITE_SUBDIR= make +.... -|`SF` -|`/project/${PORTNAME:L}/${PORTNAME:L}/${PORTVERSION}` -|=== +Эти значения и переменные определены в https://cgit.freebsd.org/ports/tree/Mk/bsd.sites.mk[Mk/bsd.sites.mk]. Новые записи добавляются часто, поэтому обязательно проверяйте последнюю версию этого файла перед отправкой порта. -=== `EXTRACT_SUFX` +[TIP] +==== +Для любой переменной `MASTER_SITE_FOO` можно использовать сокращение `_FOO_`. Например, используйте: -Если у вас имеется один дистрибутивный файл, и в его имени используется странное окончание для указания типа сжатия, задайте переменную `EXTRACT_SUFX`. +[.programlisting] +.... +MASTER_SITES= FOO +.... -К примеру, если дистрибутивный файл носит имя [.filename]#foo.tgz#, а не более привычное [.filename]#foo.tar.gz#, вы должны написать: +Если требуется `MASTER_SITE_SUBDIR`, используйте следующее: [.programlisting] .... -DISTNAME= foo -EXTRACT_SUFX= .tgz +MASTER_SITES= FOO/bar .... -Переменные `USE_BZIP2`, `USE_XZ` и `USE_ZIP` при необходимости автоматически устанавливают значение `EXTRACT_SUFX` в `.tar.bz2`, `.tar.xz` или `.zip`. Если ни одна из этих переменных не задана, то значение `EXTRACT_SUFX` по умолчанию устанавливается в `.tar.gz`. +==== [NOTE] ==== -Вам не нужно задавать значения `EXTRACT_SUFX` и `DISTFILES` одновременно. -==== +Некоторые имена `MASTER_SITE_*` довольно длинные, и для удобства использования были определены сокращения: -=== `DISTFILES` +[[makefile-master_sites-shortcut]] +.Сокращения для макросов `MASTER_SITE_*` +[cols="1,1", frame="none", options="header"] +|=== +| Макрос +| Сокращение -Иногда имена сгружаемых файлов не соответствуют имени порта. К примеру, файл может называться [.filename]#source.tar.gz# или подобным образом. В других случаях исходный код приложения может располагаться в нескольких отличающихся архивах, и все они должны быть сгружены. +|`PERL_CPAN` +|`CPAN` -Если это ваш случай, то задайте в переменной `DISTFILES` список разделённых пробелами имён файлов, которые нужно сгрузить. +|`GITHUB` +|`GH` -[.programlisting] -.... -DISTFILES= source1.tar.gz source2.tar.gz -.... +|`GITHUB_CLOUD` +|`GHC` -Если переменная `DISTFILES` не задана явно, то её значением по умолчанию будет `${DISTNAME}${EXTRACT_SUFX}`. +|`LIBREOFFICE_DEV` +|`LODEV` -=== `EXTRACT_ONLY` +|`NETLIB` +|`NL` -Если только некоторые из `DISTFILES` должны быть распакованы-к примеру, часть из них является исходным кодом, а другие представляют собой неупакованную документацию-перечислите имена файлов, которые должны быть распакованы, в `EXTRACT_ONLY`. +|`RUBYGEMS` +|`RG` + +|`SOURCEFORGE` +|`SF` +|=== +==== + +[[makefile-master_sites-magic]] +==== Волшебные макросы MASTER_SITES + +Существует несколько "волшебных" макросов для популярных сайтов с предсказуемой структурой каталогов. Для них достаточно использовать сокращение, и система автоматически выберет подкаталог. Например, для порта с именем `Stardict`, версии `1.2.3`, размещенного на SourceForge, добавьте следующую строку: + +[.programlisting] +.... +MASTER_SITES= SF +.... + +подразумевает подкаталог с именем `/project/stardict/stardict/1.2.3`. Если подразумеваемый каталог указан неверно, его можно переопределить: + +[.programlisting] +.... +MASTER_SITES= SF/stardict/WyabdcRealPeopleTTS/${PORTVERSION} +.... + +Это также можно записать как + +[.programlisting] +.... +MASTER_SITES= SF +MASTER_SITE_SUBDIR= stardict/WyabdcRealPeopleTTS/${PORTVERSION} +.... + +[[makefile-master_sites-popular]] +.Волшебные макросы `MASTER_SITES` +[cols="1,1", frame="none", options="header"] +|=== +| Макрос +| Предполагаемая поддиректория + +|`APACHE_COMMONS_BINARIES` +|`${PORTNAME:S,commons-,,}` + +|`APACHE_COMMONS_SOURCE` +|`${PORTNAME:S,commons-,,}` + +|`APACHE_JAKARTA` +|`${PORTNAME:S,-,/,}/source` + +|`BERLIOS` +|`${PORTNAME:tl}.berlios` + +|`CHEESESHOP` +|`source/${DISTNAME:C/(.).\*/\1/}/${DISTNAME:C/(.*)-[0-9].*/\1/}` + +|`CPAN` +|`${PORTNAME:C/-.*//}` + +|`DEBIAN` +|`pool/main/${PORTNAME:C/^((lib)?.).*$/\1/}/${PORTNAME}` + +|`FARSIGHT` +|`${PORTNAME}` + +|`FESTIVAL` +|`${PORTREVISION}` + +|`GCC` +|`releases/${DISTNAME}` + +|`GENTOO` +|`distfiles` + +|`GIMP` +|`${PORTNAME}/${PORTVERSION:R}/` + +|`GH` +|`${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/` + +|`GHC` +|`${GH_ACCOUNT}/${GH_PROJECT}/` + +|`GNOME` +|`sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}` + +|`GNU` +|`${PORTNAME}` + +|`GNUPG` +|`${PORTNAME}` + +|`GNU_ALPHA` +|`${PORTNAME}` + +|`HORDE` +|`${PORTNAME}` + +|`LODEV` +|`${PORTNAME}` + +|`MATE` +|`${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}` + +|`MOZDEV` +|`${PORTNAME:tl}` + +|`NL` +|`${PORTNAME}` + +|`QT` +|`archive/qt/${PORTVERSION:R}` + +|`SAMBA` +|`${PORTNAME}` + +|`SAVANNAH` +|`${PORTNAME:tl}` + +|`SF` +|`${PORTNAME:tl}/${PORTNAME:tl}/${PORTVERSION}` +|=== + +[[makefile-master_sites-github]] +=== `USE_GITHUB` + +Если файл дистрибутива получен из определённого коммита или тега на https://github.com/[GitHub], для которого нет официально выпущенного файла, существует простой способ автоматически установить правильные значения `DISTNAME` и `MASTER_SITES`. + +[WARNING] +==== +По состоянию на 2023-02-21 link:https://github.blog/2023-02-21-update-on-the-future-stability-of-source-code-archives-and-hashes/[GitHub] объявили, что загрузки исходного кода будут стабильными в течение года. Пожалуйста, переключитесь на ресурсы выпусков (release assets), а если они недоступны, запросите их создание у вышестоящих разработчиков. +==== + +Доступны следующие переменные: + +[[makefile-master_sites-github-description]] +.`USE_GITHUB` Описание +[cols="1,1,1", options="header"] +|=== +| Переменная +| Описание +| По умолчанию + +|`GH_ACCOUNT` +|Имя учётной записи пользователя GitHub, который размещает проект +|`${PORTNAME}` + +|`GH_PROJECT` +|Название проекта на GitHub +|`${PORTNAME}` + +|`GH_TAGNAME` +|Имя тега для загрузки (2.0.1, хэш, ...) Использование имени ветки здесь некорректно. Также можно использовать хэш идентификатора коммита для создания снимка состояния. +|`${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}` + +|`GH_SUBDIR` +|Когда программному обеспечению требуется дополнительный файл дистрибутива для извлечения в +`${WRKSRC}`, можно использовать эту переменную. Примеры можно найти в +crossref:makefiles[makefile-master_sites-github-multiple, Загрузка нескольких файлов из GitHub] для получения дополнительной информации. +|(отсутствует) + +|`GH_TUPLE` +|`GH_TUPLE` позволяет объединить `GH_ACCOUNT`, `GH_PROJECT`, `GH_TAGNAME` и `GH_SUBDIR` в одну переменную. Формат следующий: _account_`:`_project_`:`_tagname_`:`_group_`/`_subdir_. Часть `/`_subdir_ является необязательной. Это полезно, когда требуется получить несколько проектов с GitHub. +| +|=== + +[IMPORTANT] +==== +Не используйте `GH_TUPLE` для файла дистрибутива по умолчанию, так как у него нет значения по умолчанию. +==== + +[[makefile-master_sites-github-ex1]] +.Простое использование `USE_GITHUB` +[example] +==== + +При попытке создать порт для версии `1.2.7` pkg от пользователя FreeBSD на github, по адресу https://github.com/freebsd/pkg/[], файл [.filename]#Makefile# в итоге будет выглядеть следующим образом (незначительно сокращено для примера): + +[.programlisting] +.... +PORTNAME= pkg +DISTVERSION= 1.2.7 + +USE_GITHUB= yes +GH_ACCOUNT= freebsd +.... + +Он автоматически получит `MASTER_SITES` установленным в `GH` и `WRKSRC` в `${WRKDIR}/pkg-1.2.7`. +==== + +[[makefile-master_sites-github-ex2]] +.Более полное использование `USE_GITHUB` +[example] +==== +При попытке создать порт для самой последней версии pkg от пользователя FreeBSD на github, по адресу https://github.com/freebsd/pkg/[], файл [.filename]#Makefile# в итоге выглядит следующим образом (незначительно сокращено для примера): + +[.programlisting] +.... +PORTNAME= pkg-devel +DISTVERSION= 1.3.0.a.20140411 + +USE_GITHUB= yes +GH_ACCOUNT= freebsd +GH_PROJECT= pkg +GH_TAGNAME= 6dbb17b +.... + +Он автоматически получит `MASTER_SITES` со значением `GH` и `WRKSRC` со значением `${WRKDIR}/pkg-6dbb17b`. + +[TIP] +**** +`20140411` — это дата коммита, указанного в `GH_TAGNAME`, а не дата редактирования файла [.filename]#Makefile# или дата создания коммита. +**** + +==== + +[[makefile-master_sites-github-ex3]] +.Использование `USE_GITHUB` с `DISTVERSIONPREFIX` +[example] +==== +Время от времени `GH_TAGNAME` немного отличается от `DISTVERSION`. Например, если версия `1.0.2`, то тег будет `v1.0.2`. В таких случаях можно использовать `DISTVERSIONPREFIX` или `DISTVERSIONSUFFIX`: + +[.programlisting] +.... +PORTNAME= foo +DISTVERSIONPREFIX= v +DISTVERSION= 1.0.2 + +USE_GITHUB= yes +.... + +Он автоматически установит `GH_TAGNAME` в `v1.0.2`, в то время как `WRKSRC` останется `${WRKDIR}/foo-1.0.2`. +==== + +[[makefile-master_sites-github-ex4]] +.Использование `USE_GITHUB` при отсутствии версий у исходного проекта +[example] +==== +Если никогда не было версии вышестоящего репозитория, не изобретайте её, например `0.1` или `1.0`. Создайте порт с `DISTVERSION` в формате `g__YYYYMMDD__`, где `g` означает Git, а `_YYYYMMDD_` представляет дату коммита, указанного в `GH_TAGNAME`. + +[.programlisting] +.... +PORTNAME= bar +DISTVERSION= g20140411 + +USE_GITHUB= yes +GH_TAGNAME= c472d66b +.... + +Это создаёт схему версионирования, которая увеличивается со временем и всё ещё находится до версии `0`. Подробности об использовании man:pkg-version[8] для сравнения версий смотрите в crossref:makefiles[makefile-versions-ex-pkg-version, этой секции]: + +[source, shell] +.... +% pkg version -t g20140411 0 +< +.... + +Что означает, что использование `PORTEPOCH` не потребуется, если вышестоящий проект решит сократить версии в будущем. +==== + +[[makefile-master_sites-github-ex5]] +.Использование `USE_GITHUB` для доступа к коммиту между двумя версиями +[example] +==== +Если текущая версия программного обеспечения использует тег Git, и порт необходимо обновить до более новой промежуточной версии без тега, используйте man:git-describe[1], чтобы определить версию для использования: + +[source, shell] +.... +% git describe --tags f0038b1 +v0.7.3-14-gf0038b1 +.... + +`v0.7.3-14-gf0038b1` можно разделить на три части: + +`v0.7.3`:: +Это последний тег Git, который появляется в истории коммитов перед запрошенным коммитом. + +`-14`:: +Это означает, что запрошенный коммит `f0038b1` является 14-м коммитом после тега `v0.7.3`. + +`-gf0038b1`:: +`-g` означает "Git", а `f0038b1` — это хеш коммита, на который указывает данная ссылка. + +[.programlisting] +.... +PORTNAME= bar +DISTVERSIONPREFIX= v +DISTVERSION= 0.7.3-14 +DISTVERSIONSUFFIX= -gf0038b1 + +USE_GITHUB= yes +.... + +Это создаёт схему версионирования, которая увеличивается со временем (точнее, с коммитами) и не конфликтует с созданием версии `0.7.4`. Подробности об использовании man:pkg-version[8] для сравнения версий смотрите в crossref:makefiles[makefile-versions-ex-pkg-version, этой секции] : + +[source, shell] +.... +% pkg version -t 0.7.3 0.7.3.14 +< +% pkg version -t 0.7.3.14 0.7.4 +< +.... + +[NOTE] +**** +Если запрошенный коммит совпадает с тегом, по умолчанию отображается более короткое описание. Полная версия эквивалентна: + +[source, shell] +.... +% git describe --tags c66c71d +v0.7.3 + +% git describe --tags --long c66c71d +v0.7.3-0-gc66c71d +.... + +**** + +==== + +[[makefile-master_sites-github-multiple]] +==== Извлечение нескольких файлов из GitHub + +Фреймворк `USE_GITHUB` также поддерживает загрузку нескольких файлов дистрибутива из разных мест в GitHub. Он работает очень похоже на crossref:makefiles[porting-master-sites-n, Файлы дистрибуции или патчей из нескольких мест]. + +В `GH_ACCOUNT`, `GH_PROJECT` и `GH_TAGNAME` добавляются несколько значений. Каждому различному значению присваивается группа. Основное значение может не иметь группы или принадлежать группе `:DEFAULT`. Значение может быть опущено, если оно совпадает со значением по умолчанию, указанным в crossref:makefiles[makefile-master_sites-github-description,описании `USE_GITHUB`]. + +`GH_TUPLE` также можно использовать, когда имеется множество файлов дистрибутива. Это помогает сохранять учётные данные, проект, имя тега и информацию о группе в одном месте. + +Для каждой группы создаётся вспомогательная переменная `${WRKSRC_group}`, содержащая каталог, в который был извлечён файл. Переменные `${WRKSRC_group}` могут использоваться для перемещения каталогов во время `post-extract`, добавления в `CONFIGURE_ARGS` или любых других действий, необходимых для корректной сборки программного обеспечения. + +[CAUTION] +==== +Часть `:__group__` _должна_ использоваться _только для одного_ файла дистрибутива. Она служит уникальным ключом, и её повторное использование приведёт к перезаписи предыдущих значений. +==== + +[NOTE] +==== +Поскольку это всего лишь синтаксический сахар над `DISTFILES` и `MASTER_SITES`, имена групп должны соответствовать ограничениям на имена групп, описанным в crossref:makefiles[porting-master-sites-n, Файлы дистрибутивов или патчей из нескольких источников] +==== + +При получении нескольких файлов из GitHub иногда файл дистрибутива по умолчанию не загружается из GitHub. Чтобы отключить загрузку файла дистрибутива по умолчанию, установите: + +[.programlisting] +.... +USE_GITHUB= nodefault +.... + +[IMPORTANT] +==== +При использовании `USE_GITHUB=nodefault` в [.filename]#Makefile# необходимо указать `DISTFILES` в его crossref:porting-order[porting-order-portname,верхнем блоке]. Определение должно быть следующим: + +[.programlisting] +.... +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} +.... + +==== + +[[makefile-master_sites-github-multi]] +.Использование `USE_GITHUB` с несколькими файлами дистрибутива +[example] +==== +Время от времени возникает необходимость загрузить более одного файла дистрибутива. Например, когда вышестоящий репозиторий git использует подмодули. Это можно легко сделать с помощью групп в переменных `GH_*`: + +[.programlisting] +.... +PORTNAME= foo +DISTVERSION= 1.0.2 + +USE_GITHUB= yes +GH_ACCOUNT= bar:icons,contrib +GH_PROJECT= foo-icons:icons foo-contrib:contrib +GH_TAGNAME= 1.0:icons fa579bc:contrib +GH_SUBDIR= ext/icons:icons + +CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib} +.... + +Это загрузит три файла дистрибутива с 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#. + +Все файлы дистрибутива извлекаются в `${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`. + +Система сборки программы ожидает найти иконки в подкаталоге [.filename]#ext/icons# в её исходниках, поэтому используется `GH_SUBDIR`. `GH_SUBDIR` гарантирует, что [.filename]#ext# существует, но [.filename]#ext/icons# ещё не существует. Затем он выполняет следующее: + +[.programlisting] +.... +post-extract: + @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons +.... + +==== + +[[makefile-master_sites-github-multi2]] +.Использование `USE_GITHUB` с несколькими файлами дистрибутива с помощью `GH_TUPLE` +[example] +==== + +Это функционально эквивалентно crossref:makefiles[makefile-master_sites-github-multi,Использованию `USE_GITHUB` с несколькими файлами дистрибутива], но с использованием `GH_TUPLE`: + +[.programlisting] +.... +PORTNAME= foo +DISTVERSION= 1.0.2 + +USE_GITHUB= yes +GH_TUPLE= bar:foo-icons:1.0:icons/ext/icons \ + bar:foo-contrib:fa579bc:contrib + +CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib} +.... + +В предыдущем примере использовалась группировка с `bar:icons,contrib`. В `GH_TUPLE` присутствует избыточная информация, так как группировка невозможна. +==== + +[[makefile-master_sites-github-submodules]] +.Как использовать `USE_GITHUB` с подмодулями Git? +[example] +==== +Порты, использующие GitHub в качестве вышестоящего репозитория, иногда применяют подмодули. Подробнее см. man:git-submodule[1]. + +Проблема с подмодулями заключается в том, что каждый из них является отдельным репозиторием. Таким образом, каждый из них должен быть загружен отдельно. + +В качестве примера используем пакет package:finance/moneymanagerex[], его репозиторий на GitHub находится по адресу https://github.com/moneymanagerex/moneymanagerex/[]. В корне репозитория есть файл https://github.com/moneymanagerex/moneymanagerex/blob/master/.gitmodules[.gitmodules]. Этот файл описывает все подмодули, используемые в данном репозитории, и перечисляет дополнительные необходимые репозитории. Этот файл покажет, какие дополнительные репозитории требуются: + +[.programlisting] +.... +[submodule "lib/wxsqlite3"] + path = lib/wxsqlite3 + url = https://github.com/utelle/wxsqlite3.git +[submodule "3rd/mongoose"] + path = 3rd/mongoose + url = https://github.com/cesanta/mongoose.git +[submodule "3rd/LuaGlue"] + path = 3rd/LuaGlue + url = https://github.com/moneymanagerex/LuaGlue.git +[submodule "3rd/cgitemplate"] + path = 3rd/cgitemplate + url = https://github.com/moneymanagerex/html-template.git +[...] +.... + +Единственная информация, отсутствующая в этом файле, — это хэш коммита или тег, который следует использовать в качестве версии. Эта информация находится после клонирования репозитория: + +[source, shell] +.... +% git clone --recurse-submodules https://github.com/moneymanagerex/moneymanagerex.git +Cloning into 'moneymanagerex'... +remote: Counting objects: 32387, done. +[...] +Submodule '3rd/LuaGlue' (https://github.com/moneymanagerex/LuaGlue.git) registered for path '3rd/LuaGlue' +Submodule '3rd/cgitemplate' (https://github.com/moneymanagerex/html-template.git) registered for path '3rd/cgitemplate' +Submodule '3rd/mongoose' (https://github.com/cesanta/mongoose.git) registered for path '3rd/mongoose' +Submodule 'lib/wxsqlite3' (https://github.com/utelle/wxsqlite3.git) registered for path 'lib/wxsqlite3' +[...] +Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/LuaGlue'... +Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/cgitemplate'... +Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/mongoose'... +Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/lib/wxsqlite3'... +[...] +Submodule path '3rd/LuaGlue': checked out 'c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b' +Submodule path '3rd/cgitemplate': checked out 'cd434eeeb35904ebcd3d718ba29c281a649b192c' +Submodule path '3rd/mongoose': checked out '2140e5992ab9a3a9a34ce9a281abf57f00f95cda' +Submodule path 'lib/wxsqlite3': checked out 'fb66eb230d8aed21dec273b38c7c054dcb7d6b51' +[...] +% cd moneymanagerex +% git submodule status + c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b 3rd/LuaGlue (heads/master) + cd434eeeb35904ebcd3d718ba29c281a649b192c 3rd/cgitemplate (cd434ee) + 2140e5992ab9a3a9a34ce9a281abf57f00f95cda 3rd/mongoose (6.2-138-g2140e59) + fb66eb230d8aed21dec273b38c7c054dcb7d6b51 lib/wxsqlite3 (v3.4.0) +[...] +.... + +Это также можно найти на GitHub. Каждый подкаталог, который является подмодулем, отображается как `_директория @ хэш_`, например, `mongoose @ 2140e59`. + +[NOTE] +**** +Хотя получение информации из GitHub кажется более простым, данные, полученные с помощью `git submodule status`, будут более информативными. Например, здесь хеш коммита ``lib/wxsqlite3`` `fb66eb2` соответствует `v3.4.0`. Оба варианта можно использовать взаимозаменяемо, но если доступен тег, предпочтительнее использовать его. +**** + +Теперь, когда вся необходимая информация собрана, можно написать [.filename]#Makefile# (показаны только строки, связанные с GitHub): + +[.programlisting] +.... +PORTNAME= moneymanagerex +DISTVERSIONPREFIX= v +DISTVERSION= 1.3.0 + +USE_GITHUB= yes +GH_TUPLE= utelle:wxsqlite3:v3.4.0:wxsqlite3/lib/wxsqlite3 \ + moneymanagerex:LuaGlue:c51d11a:lua_glue/3rd/LuaGlue \ + moneymanagerex:html-template:cd434ee:html_template/3rd/cgitemplate \ + cesanta:mongoose:2140e59:mongoose/3rd/mongoose \ + [...] +.... + +==== + +[[makefile-master_sites-gitlab]] +=== `USE_GITLAB` + +Подобно GitHub, если файл дистрибутива поставляется с https://gitlab.com/[gitlab.com] или использует программное обеспечение GitLab, эти переменные доступны для использования и могут потребовать установки. + +[[makefile-master_sites-gitlab-description]] +.Описание `USE_GITLAB` +[cols="1,1,1", options="header"] +|=== +| Переменная +| Описание +| По умолчанию + +|`GL_SITE` +|Название сайта, на котором размещен проект GitLab +|https://gitlab.com/ + +|`GL_ACCOUNT` +|Имя учётной записи пользователя GitLab, размещающего проект +|`${PORTNAME}` + +|`GL_PROJECT` +|Название проекта на GitLab +|`${PORTNAME}` + +|`GL_COMMIT` +|Хэш коммита для загрузки. Должен быть полным 160-битным, 40-символьным шестнадцатеричным хэшем sha1. Это обязательная переменная для GitLab. +|`(нет)` + +|`GL_SUBDIR` +|Когда программному обеспечению требуется дополнительный файл дистрибутива для извлечения в +`${WRKSRC}`, можно использовать эту переменную. Примеры можно найти в + crossref:makefiles[makefile-master_sites-gitlab-multiple, Загрузка нескольких файлов из GitLab] для получения дополнительной информации. +|(отсутствует) + +|`GL_TUPLE` +|`GL_TUPLE` позволяет объединить `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT`, `GL_COMMIT` и `GL_SUBDIR` в одну переменную. Формат записи: _сайт_`:`_учётная запись_`:`_проект_`:`_коммит_`:`_группа_`/`_поддиректория_. Части _сайт_`:` и `/`_поддиректория_ являются необязательными. Это полезно, когда требуется загрузить данные из нескольких проектов GitLab. +| +|=== + +[[makefile-master_sites-gitlab-ex1]] +.Простое использование `USE_GITLAB` +[example] +==== +Пытаясь создать порт для версии `1.14` библиотеки libsignon-glib от пользователя accounts-sso на gitlab.com, по адресу https://gitlab.com/accounts-sso/libsignon-glib/[], файл [.filename]#Makefile# будет выглядеть следующим образом для загрузки дистрибутивных файлов: + +[.programlisting] +.... +PORTNAME= libsignon-glib +DISTVERSION= 1.14 + +USE_GITLAB= yes +GL_ACCOUNT= accounts-sso +GL_COMMIT= e90302e342bfd27bc8c9132ab9d0ea3d8723fd03 +.... + +Он автоматически получит `MASTER_SITES`, установленный на https://gitlab.com/[gitlab.com], и `WRKSRC` на `${WRKDIR}/libsignon-glib-e90302e342bfd27bc8c9132ab9d0ea3d8723fd03-e90302e342bfd27bc8c9132ab9d0ea3d8723fd03`. +==== + +[[makefile-master_sites-gitlab-ex2]] +.Более полное использование `USE_GITLAB` +[example] +==== + +Более полный пример использования вышеописанного, если порт не имеет версионирования и foobar принадлежит пользователю foo в проекте bar на самостоятельно размещенном сайте GitLab `https://gitlab.example.com/`, тогда [.filename]#Makefile# будет выглядеть следующим образом для загрузки дистрибутивных файлов: + +[.programlisting] +.... +PORTNAME= foobar +DISTVERSION= g20170906 + +USE_GITLAB= yes +GL_SITE= https://gitlab.example.com +GL_ACCOUNT= foo +GL_PROJECT= bar +GL_COMMIT= 9c1669ce60c3f4f5eb43df874d7314483fb3f8a6 +.... + +В нем будет установлено `MASTER_SITES` в `"https://gitlab.example.com"` и `WRKSRC` в `${WRKDIR}/bar-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6`. + +[TIP] +====== +`20170906` — это дата коммита, указанного в `GL_COMMIT`, а не дата редактирования файла [.filename]#Makefile# или дата коммита в дерево портов FreeBSD. +====== + +[NOTE] +====== +Протокол, порт и корневая директория веб-сервера ``GL_SITE`` могут быть изменены в той же переменной. +====== + +==== + +[[makefile-master_sites-gitlab-multiple]] +==== Извлечение нескольких файлов из GitLab + +Фреймворк `USE_GITLAB` также поддерживает загрузку нескольких файлов дистрибутивов из различных мест GitLab и сайтов, размещённых на GitLab. Он работает очень похоже на crossref:makefiles[porting-master-sites-n, Несколько файлов дистрибутивов или патчей из разных местоположений] и crossref:makefiles[makefile-master_sites-gitlab-multiple, Загрузка нескольких файлов из GitLab]. + +В `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT` и `GL_COMMIT` добавляются множественные значения. Каждое уникальное значение назначается группе. crossref:makefiles[makefile-master_sites-gitlab-description,Описание `USE_GITLAB`]. + +`GL_TUPLE` также может использоваться, когда имеется множество файлов дистрибутива. Это помогает хранить информацию о сайте, учётной записи, проекте, коммите и группе в одном месте. + +Для каждой группы создаётся вспомогательная переменная `${WRKSRC_group}`, содержащая каталог, в который был извлечён файл. Переменные `${WRKSRC_group}` могут использоваться для перемещения каталогов во время `post-extract`, добавления в `CONFIGURE_ARGS` или любых других действий, необходимых для корректной сборки программного обеспечения. + +[CAUTION] +==== +Часть `:__group__` _должна_ использоваться _только для одного_ файла дистрибутива. Она служит уникальным ключом, и её повторное использование приведёт к перезаписи предыдущих значений. +==== + +[NOTE] +==== +Поскольку это всего лишь синтаксический сахар над `DISTFILES` и `MASTER_SITES`, имена групп должны соответствовать ограничениям на имена групп, описанным в crossref:makefiles[porting-master-sites-n, Файлы дистрибутивов или патчей из нескольких источников] +==== + +При получении нескольких файлов с использованием GitLab иногда файл дистрибутива по умолчанию не загружается с сайта GitLab. Чтобы отключить загрузку файла дистрибутива по умолчанию, установите: + +[.programlisting] +.... +USE_GITLAB= nodefault +.... + +[IMPORTANT] +==== +При использовании `USE_GITLAB=nodefault`, [.filename]#Makefile# должен устанавливать `DISTFILES` в своем crossref:makefiles[porting-order-portname,верхнем блоке]. Определение должно быть следующим: + +[.programlisting] +.... +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} +.... + +==== + +[[makefile-master_sites-gitlab-multi]] +.Использование `USE_GITLAB` с несколькими файлами дистрибутива +[example] +==== +Время от времени возникает необходимость загрузить более одного файла дистрибутива. Например, когда вышестоящий git-репозиторий использует подмодули. Это можно легко сделать с помощью групп в переменных `GL_*`: + +[.programlisting] +.... +PORTNAME= foo +DISTVERSION= 1.0.2 + +USE_GITLAB= yes +GL_SITE= https://gitlab.example.com:9434/gitlab:icons +GL_ACCOUNT= bar:icons,contrib +GL_PROJECT= foo-icons:icons foo-contrib:contrib +GL_COMMIT= c189207a55da45305c884fe2b50e086fcad4724b ae7368cab1ca7ca754b38d49da064df87968ffe4:icons 9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib +GL_SUBDIR= ext/icons:icons + +CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib} +.... + +Это загрузит два файла дистрибутива с 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#. + +Все файлы дистрибутива извлекаются в `${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`. + +Система сборки программного обеспечения ожидает найти иконки в подкаталоге [.filename]#ext/icons# в своих исходниках, поэтому используется `GL_SUBDIR`. `GL_SUBDIR` гарантирует, что [.filename]#ext# существует, но [.filename]#ext/icons# ещё не существует. Затем она выполняет следующее: + +[.programlisting] +.... +post-extract: + @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons +.... + +==== + +[[makefile-master_sites-gitlab-multi2]] +.Использование `USE_GITLAB` с несколькими файлами дистрибуции с помощью `GL_TUPLE` +[example] +==== +Это функционально эквивалентно crossref:makefiles[makefile-master_sites-gitlab-multi,Использование `USE_GITLAB` с несколькими файлами дистрибуции], но с использованием `GL_TUPLE`: + +[.programlisting] +.... +PORTNAME= foo +DISTVERSION= 1.0.2 + +USE_GITLAB= yes +GL_COMMIT= c189207a55da45305c884fe2b50e086fcad4724b +GL_TUPLE= https://gitlab.example.com:9434/gitlab:bar:foo-icons:ae7368cab1ca7ca754b38d49da064df87968ffe4:icons/ext/icons \ + bar:foo-contrib:9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib + +CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib} +.... + +В предыдущем примере использовалась группировка с `bar:icons,contrib`. Некоторую избыточную информацию приходится указывать с `GL_TUPLE`, так как группировка невозможна. +==== + +[[makefile-extract_sufx]] +=== `EXTRACT_SUFX` + +Если имеется один файл дистрибутива, и он использует нестандартное суффикс для указания механизма сжатия, установите `EXTRACT_SUFX`. + +Например, если файл дистрибутива был назван [.filename]#foo.tar.gzip# вместо более привычного [.filename]#foo.tar.gz#, напишите: + +[.programlisting] +.... +DISTNAME= foo +EXTRACT_SUFX= .tar.gzip +.... + +`USES=tar[:__xxx__]`, `USES=lha` или `USES=zip` автоматически устанавливают `EXTRACT_SUFX` в наиболее распространённые расширения архивов при необходимости, подробнее см. crossref:uses[uses,Использование макросов `USES`]. Если ни один из них не задан, `EXTRACT_SUFX` по умолчанию принимает значение `.tar.gz`. + +[NOTE] +==== +Как `EXTRACT_SUFX` используется только в `DISTFILES`, следует задавать только один из них. +==== + +[[makefile-distfiles-definition]] +=== `DISTFILES` + +Иногда названия файлов для загрузки не имеют ничего общего с именем порта. Например, файл может называться [.filename]#source.tar.gz# или подобным образом. В других случаях исходный код приложения может быть разбит на несколько различных архивов, все из которых необходимо загрузить. + +Если это так, установите `DISTFILES` как список разделённых пробелами файлов, которые необходимо загрузить. + +[.programlisting] +.... +DISTFILES= source1.tar.gz source2.tar.gz +.... + +Если явно не задано, `DISTFILES` по умолчанию равно `${DISTNAME}${EXTRACT_SUFX}`. + +[[makefile-extract_only]] +=== `EXTRACT_ONLY` + +Если необходимо извлечь только некоторые из `DISTFILES` — например, один из них является исходным кодом, а другой — несжатым документом — укажите имена файлов, которые нужно извлечь, в `EXTRACT_ONLY`. [.programlisting] .... @@ -901,7 +1941,7 @@ EXTRACT_ONLY= source.tar.gz .... -Если _ни один_ из `DISTFILES` не должен распаковываться, то установите пустое значение переменной `EXTRACT_ONLY`. +Если ни один из `DISTFILES` не требует распаковки, установите `EXTRACT_ONLY` в пустую строку. [.programlisting] .... @@ -911,77 +1951,103 @@ [[porting-patchfiles]] === `PATCHFILES` -Если вашему порту требуются некоторых дополнительные патчи, которые доступны по FTP или HTTP, задайте имена этих файлов в переменной `PATCHFILES`, а в переменной `PATCH_SITES` укажите URL того каталога, в котором они содержатся (формат такой же, как для `MASTER_SITES`). +Если порт требует дополнительных исправлений, доступных через FTP или HTTP, установите `PATCHFILES` в имена файлов, а `PATCH_SITES` — в URL каталога, содержащего их (формат такой же, как у `MASTER_SITES`). + +Если патч не относится к корню исходного дерева (то есть к `WRKSRC`), потому что содержит дополнительные пути, установите `PATCH_DIST_STRIP` соответствующим образом. Например, если все пути в патче имеют дополнительный префикс `foozolix-1.0/` перед именами файлов, задайте `PATCH_DIST_STRIP=-p1`. + +Не беспокойтесь, если патчи сжаты; они будут автоматически распакованы, если их имена заканчиваются на [.filename]#.Z#, [.filename]#.gz#, [.filename]#.bz2# или [.filename]#.xz#. + +Если патч распространяется вместе с другими файлами, такими как документация, в сжатом tarball, использование `PATCHFILES` невозможно. В таком случае добавьте имя и расположение tarball с патчами в `DISTFILES` и `MASTER_SITES`. Затем используйте `EXTRA_PATCHES`, чтобы указать на эти файлы, и [.filename]#bsd.port.mk# автоматически применит их. В частности, _не_ копируйте файлы патчей в [.filename]#${PATCHDIR}#. Этот каталог может быть недоступен для записи. + +[TIP] +==== +Если есть несколько патчей и для них требуются разные значения параметра strip, его можно добавить рядом с именем патча в `PATCHFILES`, например: + +[.programlisting] +.... +PATCHFILES= patch1 patch2:-p1 +.... -Если патч не относится к самому верху дерева исходных текстов (то есть `WRKSRC`), потому что он содержит некоторые дополнительные пути, установите соответственно значение переменной `PATCH_DIST_STRIP`. В частности, если все имена путей в патче имеют дополнительный путь `foozolix-1.0/` перед именем файла, то задайте `PATCH_DIST_STRIP=-p1`. +Это не конфликтует с crossref:makefiles[porting-master-sites-n,функцией группировки мастер-сайтов], добавление группы также работает: -Не волнуйтесь, если патчи упакованы; они будут распакованы автоматически, если имена файлов оканчиваются на [.filename]#.gz# или [.filename]#.Z#. +[.programlisting] +.... +PATCHFILES= patch2:-p1:source2 +.... -Если патч распространяется вместе с какими-то другими файлами, такими, как документация, в виде tar-архива `gzip`, вы не можете просто использовать `PATCHFILES`. Если это ваш случай, добавьте имя и местоположение архива с патчем к `DISTFILES` и `MASTER_SITES`. Затем воспользуйтесь переменной `EXTRA_PATCHES` для указания этих файлов, и [.filename]#bsd.port.mk# автоматически применит эти патчи. В частности, _не копируйте_ файлы с патчами в каталог `PATCHDIR`-этот каталог может быть недоступным для записи. +==== [NOTE] ==== -Архив будет распакован вне исходного кода, как обычно, и к тому же его не нужно явно распаковывать, если это обычный архив `gzip` или `compress`. Если вы сделаете последнее, приложите дополнительные усилия для того, чтобы не перезаписать что-либо, уже существующее в этом каталоге. Также не забудьте добавить команду для удаления скопированного патча в цели `pre-clean`. +Tarball уже будет распакован вместе с обычными исходными кодами, поэтому нет необходимости явно его распаковывать, если это обычный сжатый tarball. Будьте особенно осторожны, чтобы не перезаписать существующие файлы в этом каталоге при ручной распаковке. Также не забудьте добавить команду для удаления скопированного патча в цель `pre-clean`. ==== [[porting-master-sites-n]] -=== Несколько дистрибутивных файлов или патчей с различных серверов и подкаталогов (`MASTER_SITES:n`) +=== Несколько файлов дистрибутивов или исправлений из нескольких местоположений -(Этот раздел можно считать немного "повышенной трудности"; те, кто впервые знакомятся с этим текстом, могут пропустить этот раздел). +(Считайте, что это несколько «продвинутая тема»; тем, кто впервые читает этот документ, возможно, стоит сначала пропустить этот раздел). -В этом разделе находится информация о механизме сгрузки, известном как `MASTER_SITES:n` и `MASTER_SITES_NN`. Далее мы будем называть этот механизм `MASTER_SITES:n`. +Этот раздел содержит информацию о механизме загрузки, известном как `MASTER_SITES:n` и `MASTER_SITES_NN`. Мы будем называть этот механизм `MASTER_SITES:n`. -Сначала немного общей информации. В OpenBSD имеется полезная возможность, используемая в переменных `DISTFILES` и `PATCHFILES`, которая позволяет закреплять после имен файлов и патчей идентификаторы типа `:n`. Здесь `n` может быть из диапазона `[0-9]` и обозначать закреплённую группу. К примеру: +Небольшая предыстория. В OpenBSD есть удобная функция внутри `DISTFILES` и `PATCHFILES`, которая позволяет добавлять постфикс `:n` к файлам и патчам. Здесь `n` может быть любым словом, содержащим `[0-9a-zA-Z_]`, и обозначать группу. Например: [.programlisting] .... DISTFILES= alpha:0 beta:1 .... -В OpenBSD дистрибутивный файл [.filename]#alpha# будет связан с переменной `MASTER_SITES0`, но не с нашей общей переменной `MASTER_SITES`, а файл [.filename]#beta# с переменной `MASTER_SITES1`. +В OpenBSD файл дистрибутива [.filename]#alpha# будет связан с переменной `MASTER_SITES0`, а не с нашей общей `MASTER_SITES`, а [.filename]#beta# — с `MASTER_SITES1`. -Этот очень интересная возможность, которая может уменьшить этот бесконечный поиск работающего сайта для сгрузки. +Это очень интересная функция, которая может сократить бесконечные поиски нужного сайта для загрузки. -Просто представьте себе 2 файла в `DISTFILES` и 20 сайтов в `MASTER_SITES`; сайты очень медленные, причём [.filename]#beta# находится на всех сайтах из `MASTER_SITES`, а [.filename]#alpha# может быть найден только на 20-м сайте. Будет неправильно проверять их все, если создатель знает об этом, не правда ли? Неподходящее начало для таких прекрасных выходных! +Представьте 2 файла в `DISTFILES` и 20 сайтов в `MASTER_SITES`, причём сайты медленные как черепаха, где [.filename]#beta# есть на всех сайтах из `MASTER_SITES`, а [.filename]#alpha# можно найти только на 20-м сайте. Было бы так обидно проверять их все, если бы сопровождающий знал это заранее, не так ли? Не самое лучшее начало для чудесных выходных! -Теперь, когда вы получили общее представление, просто представьте ещё большее количество `DISTFILES` и `MASTER_SITES`. Конечно, наш "магистр доступности дистрибутивов" представляет масштабы нагрузки на сеть, которую это даёт. +Теперь, когда вы поняли идею, представьте больше `DISTFILES` и больше `MASTER_SITES`. Безусловно, наш "мастер по исследованию distfiles" оценил бы снижение нагрузки на сеть, которое это принесло бы. -В последующих разделах информация будет даваться вместе с реализацией этой идеи во FreeBSD. Мы несколько улучшили концепцию OpenBSD. +В следующих разделах будет приведена информация о реализации этой идеи в FreeBSD. Мы немного улучшили концепцию OpenBSD. + +[IMPORTANT] +==== +Имена групп не могут содержать дефисы (`-`), более того, они не могут содержать любые символы вне диапазона `[a-zA-Z0-9_]`. Это связано с тем, что, хотя man:make[1] допускает использование имён переменных с дефисами, man:sh[1] — нет. +==== -==== Упрощённая информация +[[porting-master-sites-n-simplified]] +==== Упрощенная информация -В этом разделе рассказывается, как быстро подготовить точную сгрузку нескольких дистрибутивных файлов и патчей с разных сайтов и каталогов. Мы описываем здесь случай упрощённого использования `MASTER_SITES:n`. Для большинства сценариев этого будет достаточно. Однако, если вам нужна дополнительная информация, обратитесь к следующему разделу. +В этом разделе объясняется, как быстро настроить детализированное получение нескольких файлов дистрибутивов и патчей с разных сайтов и подкаталогов. Здесь описывается случай упрощённого использования `MASTER_SITES:n`. Этого будет достаточно для большинства сценариев. Более подробная информация доступна в crossref:makefiles[ports-master-sites-n-detailed, Подробная Информация]. -Некоторые приложения состоят из многих дистрибутивных файлов, которые должны быть сгружены с нескольких различных сайтов. К примеру, Ghostscript состоит из основной программы и большого числа файлов драйверов, которые используются в зависимости от принтера пользователя. Некоторые из этих файлов драйверов поставляются с основной программой, но при этом многие другие должны быть сгружены с множества различных сайтов. +Некоторые приложения состоят из нескольких распространяемых файлов, которые необходимо загрузить с различных сайтов. Например, Ghostscript включает основную часть программы и множество драйверов, используемых в зависимости от принтера пользователя. Некоторые из этих драйверов поставляются вместе с основной частью, но многие другие необходимо загружать с различных сайтов. -Чтобы это поддерживать, за каждой записью в `DISTFILES` может следовать символ двоеточия и "имя метки". За каждым сайтом, перечисленным в `MASTER_SITES`, тоже следует двоеточие и метка, которая указывает, какие файлы дистрибутива должны быть сгружены с этого сайта. +Для поддержки этого, каждая запись в `DISTFILES` может сопровождаться двоеточием и "именем группы". Затем каждый сайт, указанный в `MASTER_SITES`, сопровождается двоеточием и группой, которая указывает, какие файлы дистрибутива загружаются с данного сайта. -Например, рассмотрим приложение, исходный код которого разделён на две части, [.filename]#source1.tar.gz# и [.filename]#source2.tar.gz#, которые должны быть сгружены с двух различных источников. Файл [.filename]#Makefile# порта будет содержать строчки типа <>. +Например, рассмотрим приложение, исходный код которого разделён на две части: [.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` с одним файлом на сайт]. [[ports-master-sites-n-example-simple-use-one-file-per-site]] -.Упрощённое использование `MASTER_SITES:n` с 1 файлом на каждом сайте +.Упрощённое использование `MASTER_SITES:n` с одним файлом на сайт [example] ==== + [.programlisting] .... -MASTER_SITES= ftp://ftp.example1.com/:source1 \ - ftp://ftp.example2.com/:source2 +MASTER_SITES= ftp://ftp1.example.com/:source1 \ + http://www.example.com/:source2 DISTFILES= source1.tar.gz:source1 \ source2.tar.gz:source2 .... ==== -Несколько дистрибутивных файлов могут иметь одну и ту же метку. Продолжая предыдущий пример, положим, что имеется и третий дистрибутивный файл, [.filename]#source3.tar.gz#, который должен быть сгружен с `ftp.example2.com`. Тогда файл [.filename]#Makefile# будет написан как <>. +Несколько файлов дистрибутивов могут принадлежать одной группе. Продолжая предыдущий пример, предположим, что существует третий файл дистрибутива [.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` с несколькими файлами на один сайт]. [[ports-master-sites-n-example-simple-use-more-than-one-file-per-site]] -.Упрощённое использование `MASTER_SITES:n` с более чем 1 файлом на каждом сервере +.Упрощённое использование `MASTER_SITES:n` с несколькими файлами на одном сайте [example] ==== + [.programlisting] .... -MASTER_SITES= ftp://ftp.example1.com/:source1 \ - ftp://ftp.example2.com/:source2 +MASTER_SITES= ftp://ftp.example.com/:source1 \ + http://www.example.com/:source2 DISTFILES= source1.tar.gz:source1 \ source2.tar.gz:source2 \ source3.tar.gz:source2 @@ -989,86 +2055,88 @@ ==== +[[ports-master-sites-n-detailed]] ==== Подробная информация -Прекрасно, но пример из предыдущего раздела не показал вам всё, что вам нужно? В этом разделе мы подробно опишем, как работает механизм `MASTER_SITES:n` точной сгрузки и как вы можете изменить ваши порты, чтобы это использовать. +Хорошо, значит, предыдущий пример не отражал потребности нового порта? В этом разделе мы подробно объясним, как работает механизм детализированного получения `MASTER_SITES:n` и как его можно использовать. -. За элементами могут следовать символы `:n`, где _n_ это `[^:,]+`, то есть _n_ может теоретически быть любой алфавитно-цифровой строкой, но пока мы будем ограничивать их `[a-zA-Z_][0-9a-zA-Z_]+`. -+ -Более того, совпадение строк чувствительно к регистру; другими словами, `n` отличается от `N`. -+ -Однако следующие слова не могут использоваться для этих нужд, так как они имеют особое значение: `default`, `all` и `ALL` (они используются для своих нужд в <>). Кроме того, `DEFAULT` является специальным ключевым словом (посмотрите <>). -. Элементы, за которыми следуют `:n`, принадлежат группе `n`, `:m` относится к группе `m` и так далее. +. Элементы могут иметь постфикс `:__n__`, где _n_ — это `[^:,]+`, то есть _n_ концептуально может быть любой буквенно-цифровой строкой, но пока мы ограничим её `[a-zA-Z_][0-9a-zA-Z_]+`. ++ +Более того, сравнение строк чувствительно к регистру; то есть, `n` отличается от `N`. ++ +Однако эти слова не могут использоваться для постфиксных целей, так как имеют специальное значение: `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]). +. Элементы с постфиксом `:n` принадлежат группе `n`, `:m` — группе `m` и так далее. ++ [[porting-master-sites-n-DEFAULT-group]] -. Элементы без таких суффиксов не относятся ни к какой группе, то есть они принадлежат к особой группе `DEFAULT`. Если вы укажете суффиксом любого элемента `DEFAULT`, вы просто выполните излишнюю работу, если только вы не хотите отнесения элемента как к группе `DEFAULT`, так и какой-то другой в одно и то же время (посмотрите на пункт <>). -+ -Следующие примеры равнозначны, но первый более предпочтителен: +. Элементы без постфикса не принадлежат к группам, все они относятся к специальной группе `DEFAULT`. Элементы с постфиксом `DEFAULT` избыточны, за исключением случаев, когда элемент одновременно принадлежит и к `DEFAULT`, и к другим группам (см. пункт crossref:makefiles[porting-master-sites-n-comma-operator,5]). ++ +Эти примеры эквивалентны, но первый предпочтительнее: + [.programlisting] .... MASTER_SITES= alpha .... - + [.programlisting] .... MASTER_SITES= alpha:DEFAULT .... -. Группы не являются эксклюзивными, элемент может принадлежать к нескольким отличающимся группам одновременно, а группа может либо иметь несколько различных элементов, либо не иметь их вовсе. Повторяющиеся элементы в одной и той же группе будут являться просто повторяющимися элементами. +. Группы не являются исключительными, элемент может принадлежать нескольким разным группам одновременно, а группа может содержать несколько разных элементов или не содержать их вовсе. ++ [[porting-master-sites-n-comma-operator]] -. Если в хотите, чтобы элемент принадлежал к нескольким группам одновременно, вы можете использовать запятую (`,`). -+ -Вместо того, чтобы повторять их несколько раз, каждый раз с разным постфиксом, мы можем перечислить несколько групп за раз в одном постфиксе. Например, `:m,n,o` определяет элемент, принадлежащий группам `m`, `n` и `o`. -+ -Все следующие примеры имеют один смысл, но последний является предпочтительным: +. Когда элемент принадлежит нескольким группам одновременно, используйте оператор запятую (`,`). ++ +Вместо повторения несколько раз, каждый раз с разным постфиксом, мы можем перечислить несколько групп сразу в одном постфиксе. Например, `:m,n,o` обозначает элемент, принадлежащий группам `m`, `n` и `o`. ++ +Все эти примеры эквивалентны, но последний является предпочтительным: + [.programlisting] .... MASTER_SITES= alpha alpha:SOME_SITE .... - + [.programlisting] .... MASTER_SITES= alpha:DEFAULT alpha:SOME_SITE .... - + [.programlisting] .... MASTER_SITES= alpha:SOME_SITE,DEFAULT .... - + [.programlisting] .... MASTER_SITES= alpha:DEFAULT,SOME_SITE .... -. Все серверы внутри определённой группы сортируются в соответствии с `MASTER_SORT_AWK`. Все группы в `MASTER_SITES` и `PATCH_SITES` тоже сортируются. +. Все сайты в заданной группе сортируются согласно `MASTER_SORT_AWK`. Все группы в `MASTER_SITES` и `PATCH_SITES` также сортируются. ++ [[porting-master-sites-n-group-semantics]] -. Семантика групп может использоваться в любой из следующих переменных `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES` и `PATCHFILES` в соответствии со следующим синтаксисом: -.. Все элементы `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`. Посмотрите <> и <>. +. Семантика групп может использоваться в любых переменных `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES` и `PATCHFILES` согласно следующему синтаксису: +.. Все элементы `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` с оператором запятая, несколькими файлами, несколькими сайтами и несколькими подкаталогами]. + [[ports-master-sites-n-example-detailed-use-master-site-subdir]] .Подробное использование `MASTER_SITES:n` в `MASTER_SITE_SUBDIR` [example] ==== + [.programlisting] .... MASTER_SITE_SUBDIR= old:n new/:NEW .... -*** Каталоги внутри группы `DEFAULT` -> old:n -*** Каталоги внутри группы `NEW` -> new +*** Каталоги в группе `DEFAULT` -> old:n +*** Каталоги в группе `NEW` -> new ==== + [[ports-master-sites-n-example-detailed-use-complete-example-master-sites]] -.Подробное использование `MASTER_SITES:n` с запятыми, несколькими файлами, несколькими серверами и несколькими подкаталогами +.Подробное использование `MASTER_SITES:n` с оператором запятая, несколькими файлами, сайтами и подкаталогами [example] ==== + [.programlisting] .... MASTER_SITES= http://site1/%SUBDIR%/ http://site2/:DEFAULT \ @@ -1081,13 +2149,13 @@ file4:group4,group5,group6 file5:grouping \ file6:group7 MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ - directory-one/:group6,DEFAULT \ - directory + directory-one/:group6,DEFAULT \ + directory .... -Предыдущий пример приводит к следующей точной сгрузке. Серверы перечислены в точном порядке их использования. +Предыдущий пример приводит к такой детализированной загрузке файлов. Сайты перечислены в точном порядке их использования. -*** [.filename]#file1# будет сгружаться с +*** [.filename]#file1# будет загружен из **** `MASTER_SITE_OVERRIDE` **** http://site1/directory-trial:1/ @@ -1097,7 +2165,7 @@ **** http://site7/ **** `MASTER_SITE_BACKUP` -*** [.filename]#file2# будет сгружаться точно также, как [.filename]#file1#, так как они оба относятся к одной и той же группе +*** [.filename]#file2# будет загружен точно так же, как [.filename]#file1#, поскольку они оба принадлежат к одной и той же группе **** `MASTER_SITE_OVERRIDE` **** http://site1/directory-trial:1/ @@ -1107,13 +2175,13 @@ **** http://site7/ **** `MASTER_SITE_BACKUP` -*** [.filename]#file3# будет сгружен с +*** [.filename]#file3# будет загружен из **** `MASTER_SITE_OVERRIDE` **** http://site3/ **** `MASTER_SITE_BACKUP` -*** [.filename]#file4# будет сгружаться с +*** [.filename]#file4# будет загружен из **** `MASTER_SITE_OVERRIDE` **** http://site4/ @@ -1123,12 +2191,12 @@ **** http://site8/directory-one/ **** `MASTER_SITE_BACKUP` -*** [.filename]#file5# будет сгружен с +*** [.filename]#file5# будет загружен из **** `MASTER_SITE_OVERRIDE` **** `MASTER_SITE_BACKUP` -*** [.filename]#file6# будет сгружаться с +*** [.filename]#file6# будет получен из **** `MASTER_SITE_OVERRIDE` **** http://site8/ @@ -1136,31 +2204,32 @@ ==== -. Как мне группировать одну из специальных переменных из [.filename]#bsd.sites.mk#, например, `MASTER_SITE_SOURCEFORGE`? -+ -Посмотрите <>. +. Как сгруппировать один из специальных макросов из [.filename]#bsd.sites.mk#, например, SourceForge (`SF`)? ++ +Это максимально упрощено. См. crossref:makefiles[ports-master-sites-n-example-detailed-use-master-site-sourceforge,Подробное использование `MASTER_SITES:n` с SourceForge (`SF`)]. + [[ports-master-sites-n-example-detailed-use-master-site-sourceforge]] -.Подробное использование `MASTER_SITES:n` с `MASTER_SITE_SOURCEFORGE` +.Подробное использование `MASTER_SITES:n` с SourceForge (`SF`) [example] ==== + [.programlisting] .... -MASTER_SITES= http://site1/ ${MASTER_SITE_SOURCEFORGE:S/$/:sourceforge,TEST/} +MASTER_SITES= http://site1/ SF/something/1.0:sourceforge,TEST DISTFILES= something.tar.gz:sourceforge .... +[.filename]#something.tar.gz# будет загружен со всех сайтов в пределах SourceForge. ==== -+ -[.filename]#something.tar.gz# будет сгружаться со всех сайтов из `MASTER_SITE_SOURCEFORGE`. -. Как мне использовать это с переменными `PATCH*`? -+ -Все примеры выполнялись с переменными `MASTER*`, и они работают точно так же и для `PATCH*`, как это можно видеть в <>. +. Как использовать это с `PATCH*`? ++ +Все примеры были выполнены с `MASTER*`, но они работают точно так же для `PATCH*`, как можно увидеть в crossref:makefiles[ports-master-sites-n-example-detailed-use-patch-sites,Упрощённое использование `MASTER_SITES:n` с `PATCH_SITES`]. + [[ports-master-sites-n-example-detailed-use-patch-sites]] -.Упрощённое использование `MASTER_SITES:n` с `PATCH_SITES`. +.Упрощённое использование `MASTER_SITES:n` с `PATCH_SITES` [example] ==== + [.programlisting] .... PATCH_SITES= http://site1/ http://site2/:test @@ -1169,162 +2238,966 @@ ==== -==== Что изменится для портов? А что не изменится? +[[port-master-sites-n-what-changed]] +==== Что меняется для портов? Что остается неизменным? [lowerroman] -. Все имеющиеся порты остаются без изменений. Код для механизма `MASTER_SITES:n` активируется, если только есть элементы, которые заканчиваются на `:n`, как и элементы в соответствии с вышеописанным синтаксисом, особенно как это показано в пункте <>. +. Все текущие порты остаются без изменений. Функция `MASTER_SITES:n` активируется только при наличии элементов с постфиксом `:__n__`, соответствующих указанным выше синтаксическим правилам, в частности, как показано в пункте crossref:makefiles[porting-master-sites-n-group-semantics, 7]. ++ [[porting-master-sites-n-what-changes-in-port-targets]] -. Цели порт остаются теми же самыми: `checksum`, `makesum`, `patch`, `configure`, `build` и так далее. С обычными исключениями для `do-fetch`, `fetch-list`, `master-sites` и `patch-sites`. +. Порты сохраняют те же цели: `checksum`, `makesum`, `patch`, `configure`, `build` и т.д., за исключением очевидных случаев: `do-fetch`, `fetch-list`, `master-sites` и `patch-sites`. + +** `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` с оператором запятой, множественными файлами, множественными сайтами и множественными подкаталогами]. +** `fetch-list`: работает как старый `fetch-list`, за исключением того, что группировка происходит так же, как в `do-fetch`. +** `master-sites` и `patch-sites`: (несовместимо с более старыми версиями) возвращают только элементы группы `DEFAULT`; фактически они выполняют цели `master-sites-default` и `patch-sites-default` соответственно. ++ +Кроме того, предпочтительнее использовать цель `master-sites-all` или `patch-sites-all`, чем напрямую проверять `MASTER_SITES` или `PATCH_SITES`. Кроме того, прямая проверка не гарантирует работу в будущих версиях. Для получения дополнительной информации об этих новых целях портов см. пункт crossref:makefiles[porting-master-sites-n-new-port-targets-master-sites-all, B]. + +. Новые цели портов +.. Существуют цели `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`, и так далее. ++ +[[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`. + +[[makefile-dist_subdir]] +=== `DIST_SUBDIR` + +Не допускайте захламления портом каталога [.filename]#/usr/ports/distfiles#. Если порт требует загрузки большого количества файлов или содержит файл с именем, которое может конфликтовать с другими портами (например, [.filename]#Makefile#), установите `DIST_SUBDIR` в имя порта (подойдут `${PORTNAME}` или `${PKGNAMEPREFIX}${PORTNAME}`). Это изменит `DISTDIR` со значения по умолчанию [.filename]#/usr/ports/distfiles# на [.filename]#/usr/ports/distfiles/${DIST_SUBDIR}#, фактически помещая все необходимые для порта файлы в этот подкаталог. + +Также будет проверяться подкаталог с тем же именем на основном резервном сайте по адресу http://distcache.FreeBSD.org[http://distcache.FreeBSD.org] (Явное указание `DISTDIR` в [.filename]#Makefile# не решит эту задачу, поэтому используйте `DIST_SUBDIR`.) + +[NOTE] +==== +Это не влияет на сайты в `MASTER_SITES`, определённые в [.filename]#Makefile#. +==== + +[[makefile-maintainer]] +== `MAINTAINER` + +Установите здесь свой адрес электронной почты. Пожалуйста. _:-)_ + +Только один адрес без комментария допускается в качестве значения `MAINTAINER`. Используемый формат: `user@hostname.domain`. Пожалуйста, не включайте в эту запись описательный текст, например, настоящее имя. Это только вносит путаницу в инфраструктуру Ports и большинство инструментов, которые её используют. + +Ответственный за поддержку порта обязан поддерживать порт в актуальном состоянии и обеспечивать его корректную работу. Подробное описание обязанностей ответственного за поддержку порта приведено в разделе extref:{contributing}[Задача для сопровождающих портов,maintain-port]. + +[NOTE] +==== +Сопровождающий добровольно поддерживает порт в рабочем состоянии. Сопровождающие несут основную ответственность за свои порты, но не имеют исключительных прав на них. Порты существуют для пользы сообщества и, по сути, принадлежат сообществу. Это означает, что люди, не являющиеся сопровождающими, также могут вносить изменения в порт. Крупные изменения в коллекции портов могут потребовать правок во многих портах. Команда управления портами FreeBSD или члены других команд могут изменять порты для исправления проблем с зависимостями или других проблем, таких как обновление версии динамической библиотеки. + +Некоторые типы исправлений имеют "автоматическое согласование" от {portmgr}, что позволяет любому коммитеру исправлять эти категории проблем в любом порте. Такие исправления не требуют одобрения от сопровождающего. + +Автоматическое согласование для большинства портов применяется к исправлениям, таким как изменения инфраструктуры, или тривиальным и _проверенным_ исправлениям сборки и выполнения. Текущий список доступен в extref:{committers-guide}[разделе Портов Руководства коммиттера, ports-qa-misc-blanket-approval]. +==== + +Другие изменения в порте будут отправлены сопровождающему на проверку и утверждение перед внесением. Если сопровождающий не отвечает на запрос об обновлении в течение двух недель (за исключением основных государственных праздников), это считается превышением времени ожидания сопровождающего, и обновление может быть внесено без его явного одобрения. Если сопровождающий не отвечает в течение трех месяцев или если произошло три последовательных превышения времени ожидания, то сопровождающий считается отсутствующим без уведомления, и все его порты могут быть возвращены в общий пул. Исключениями являются порты, сопровождаемые {portmgr} или {security-officer}. Никакие несанкционированные изменения не могут быть внесены в порты, сопровождаемые этими группами. + +Мы оставляем за собой право изменять представленные сопровождающим материалы, чтобы лучше соответствовать существующим политикам и стилю Коллекции портов, без явного одобрения отправителя или сопровождающего. Кроме того, масштабные инфраструктурные изменения могут привести к модификации порта без согласия сопровождающего. Подобные изменения никогда не повлияют на функциональность порта. + +{portmgr} оставляет за собой право отозвать или изменить права сопровождающего по любой причине, а {security-officer} оставляет за собой право отозвать или изменить права сопровождающего по соображениям безопасности. + +[[makefile-comment]] +== `COMMENT` + +Комментарий — это однострочное описание порта, отображаемое командой `pkg info`. При составлении придерживайтесь следующих правил: + +. Строка COMMENT должна быть не длиннее 70 символов. +. Не включайте название пакета или номер версии программного обеспечения. +. Комментарий должен начинаться с заглавной буквы и заканчиваться без точки. +. Не начинайте с неопределённого артикля (то есть A или An). +. Пишите названия с заглавной буквы, например: Apache, JavaScript или Perl. +. Используйте запятую для списков слов: "green, red, and blue." +. Проверяйте на наличие орфографических ошибок. + +Вот пример: + +[.programlisting] +.... +COMMENT= Cat chasing a mouse all over the screen +.... + +Переменная COMMENT следует сразу за переменной MAINTAINER в файле [.filename]#Makefile#. + +[[makefile-www]] +== Веб-сайт проекта + +Каждый порт должен указывать на веб-сайт, предоставляющий дополнительную информацию о программном обеспечении. + +Везде, где это возможно, следует использовать официальный сайт проекта, поддерживаемый разработчиками программного обеспечения. + +[.programlisting] +.... +WWW= https://ffmpeg.org/ +.... + +Но это также может быть каталог или ресурс в репозитории исходного кода: + +[.programlisting] +.... +WWW= https://sourceforge.net/projects/mpd/ +.... + +Переменная WWW следует сразу за переменной COMMENT в файле [.filename]#Makefile#. + +Если один и тот же контент доступен по HTTP и HTTPS, следует использовать URL, начинающийся с `https://`. Если URI является корнем веб-сайта или директории, он должен заканчиваться косой чертой. + +Эта информация ранее размещалась в последней строке файла [.filename]#pkg-descr#. Она была перенесена в Makefile для удобства обслуживания и обработки. Наличие строки `WWW:` в конце файла [.filename]#pkg-descr# считается устаревшим. + +[[licenses]] +== Лицензии + +Каждый порт должен содержать документацию о лицензии, под которой он распространяется. Если лицензия не одобрена OSI, необходимо также указать любые ограничения на распространение. + +[[licenses-license]] +=== `LICENSE` + +Краткое название лицензии или лицензий, если применяется более одной лицензии. + +Если это одна из лицензий, перечисленных в crossref:makefiles[licenses-license-list,Предопределенный список лицензий], можно задать только переменные `LICENSE_FILE` и `LICENSE_DISTFILES`. + +Если это лицензия, которая не определена в рамках портов (см. crossref:makefiles[licenses-license-list,Список предопределённых лицензий]), необходимо задать `LICENSE_PERMS` и `LICENSE_NAME`, а также `LICENSE_FILE` или `LICENSE_TEXT`. Также можно задать `LICENSE_DISTFILES` и `LICENSE_GROUPS`, но это не обязательно. + +Предопределенные лицензии показаны в crossref:makefiles[licenses-license-list,Список предопределенных лицензий]. Текущий список всегда доступен в [.filename]#Mk/bsd.licenses.db.mk#. + +[[licenses-license-ex1]] +.Простейшее использование, предопределённые лицензии +[example] +==== + +Когда в файле [.filename]#README# какого-либо программного обеспечения указано: «Данное программное обеспечение распространяется на условиях GNU Lesser General Public License, опубликованной Free Software Foundation; либо версии 2.1 Лицензии, либо (по вашему выбору) любой более поздней версии», но сам файл лицензии не предоставлен, используйте следующее: + +[.programlisting] +.... +LICENSE= LGPL21+ +.... + +Когда программное обеспечение предоставляет файл лицензии, используйте это: + +[.programlisting] +.... +LICENSE= LGPL21+ +LICENSE_FILE= ${WRKSRC}/COPYING +.... + +==== + +Для предопределённых лицензий права по умолчанию: `dist-mirror dist-sell pkg-mirror pkg-sell auto-accept`. + +[[licenses-license-list]] +.Предопределенный список лицензий +[cols="1,1,1,1", frame="none", options="header"] +|=== +| Короткое имя +| Имя +| Группа +| Разрешения + +|`AGPLv3` +|Универсальная общественная лицензия GNU Affero версии 3 +|`FSF GPL OSI` +|(по умолчанию) + +|`AGPLv3+` +|Универсальная общественная лицензия GNU Affero версии 3 (или позднее) +|`FSF GPL OSI` +|(по умолчанию) + +|`APACHE10` +|Apache License 1.0 +|`FSF` +|(по умолчанию) + +|`APACHE11` +|Apache License 1.1 +|`FSF OSI` +|(по умолчанию) + +|`APACHE20` +|Apache License 2.0 +|`FSF OSI` +|(по умолчанию) + +|`ART10` +|Художественная лицензия версия 1.0 +|`OSI` +|(по умолчанию) + +|`ART20` +|Художественная лицензия версии 2.0 +|`FSF GPL OSI` +|(по умолчанию) + +|`ARTPERL10` +|Художественная лицензия (perl) версия 1.0 +|`OSI` +|(по умолчанию) + +|`BSD` +|Лицензия BSD, общая версия (устарела) +|`FSF OSI COPYFREE` +|(по умолчанию) + +|`BSD2CLAUSE` +|BSD 2-пунктная лицензия "Упрощенная" +|`FSF OSI COPYFREE` +|(по умолчанию) + +|`BSD3CLAUSE` +|BSD 3-пунктная лицензия "Новая" или "Пересмотренная" +|`FSF OSI COPYFREE` +|(по умолчанию) + +|`BSD4CLAUSE` +|BSD 4-пунктная лицензия "Оригинальная" или "Старая" +|`FSF` +|(по умолчанию) + +|`BSL` +|Лицензия программного обеспечения Boost +|`FSF OSI COPYFREE` +|(по умолчанию) + +|`CC-BY-1.0` +|Creative Commons с указанием авторства 1.0 +| +|(по умолчанию) + +|`CC-BY-2.0` +|Creative Commons с указанием авторства 2.0 +| +|(по умолчанию) + +|`CC-BY-2.5` +|Creative Commons с указанием авторства 2.5 +| +|(по умолчанию) + +|`CC-BY-3.0` +|Creative Commons с указанием авторства 3.0 +| +|(по умолчанию) + +|`CC-BY-4.0` +|Creative Commons с указанием авторства 4.0 +| +|(по умолчанию) + +|`CC-BY-NC-1.0` +|Creative Commons с указанием авторства – некоммерческая 1.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-2.0` +|Creative Commons с указанием авторства – некоммерческая 2.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-2.5` +|Creative Commons с указанием авторства – некоммерческая 2.5 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-3.0` +|Creative Commons с указанием авторства – некоммерческая 3.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-4.0` +|Creative Commons с указанием авторства – некоммерческая 4.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-ND-1.0` +|Creative Commons с указанием авторства – некоммерческая – без производных 1.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-ND-2.0` +|Creative Commons с указанием авторства – некоммерческая – без производных 2.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-ND-2.5` +|Creative Commons с указанием авторства – некоммерческая – без производных 2.5 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-ND-3.0` +|Creative Commons с указанием авторства – некоммерческая – без производных 3.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-ND-4.0` +|Creative Commons с указанием авторства – некоммерческая – без производных 4.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-SA-1.0` +|Creative Commons с указанием авторства – некоммерческая – на тех же условиях 1.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-SA-2.0` +|Creative Commons с указанием авторства – некоммерческая – на тех же условиях 2.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-SA-2.5` +|Creative Commons с указанием авторства – некоммерческая – на тех же условиях 2.5 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-SA-3.0` +|Creative Commons с указанием авторства – некоммерческая – на тех же условиях 3.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-NC-SA-4.0` +|Creative Commons с указанием авторства – некоммерческая – на тех же условиях 4.0 +| +|`dist-mirror``pkg-mirror``auto-accept` + +|`CC-BY-ND-1.0` +|Creative Commons с указанием авторства – без производных 1.0 +| +|(по умолчанию) + +|`CC-BY-ND-2.0` +|Creative Commons с указанием авторства – без производных 2.0 +| +|(по умолчанию) + +|`CC-BY-ND-2.5` +|Creative Commons с указанием авторства – без производных 2.5 +| +|(по умолчанию) + +|`CC-BY-ND-3.0` +|Creative Commons с указанием авторства – без производных 3.0 +| +|(по умолчанию) + +|`CC-BY-ND-4.0` +|Creative Commons с указанием авторства – без производных 4.0 +| +|(по умолчанию) + +|`CC-BY-SA-1.0` +|Creative Commons с указанием авторства – на тех же условиях 1.0 +| +|(по умолчанию) + +|`CC-BY-SA-2.0` +|Creative Commons с указанием авторства – на тех же условиях 2.0 +| +|(по умолчанию) + +|`CC-BY-SA-2.5` +|Creative Commons с указанием авторства – на тех же условиях 2.5 +| +|(по умолчанию) + +|`CC-BY-SA-3.0` +|Creative Commons с указанием авторства – на тех же условиях 3.0 +| +|(по умолчанию) + +|`CC-BY-SA-4.0` +|Creative Commons с указанием авторства – на тех же условиях 4.0 +| +|(по умолчанию) + +|`CC0-1.0` +|Creative Commons Zero v1.0 Universal (Отказ от прав 1.0 Универсальная) +|`FSF GPL COPYFREE` +|(по умолчанию) + +|`CDDL` +|Лицензия на совместную разработку и распространение +|`FSF OSI` +|(по умолчанию) + +|`CPAL-1.0` +|Публичная лицензия общего распространения с указанием авторства +|`FSF OSI` +|(по умолчанию) + +|`ClArtistic` +|Уточнённая художественная лицензия +|`FSF GPL OSI` +|(по умолчанию) + +|`EPL` +|Публичная лицензия Eclipse +|`FSF OSI` +|(по умолчанию) + +|`GFDL` +|GNU Свободная лицензия на документацию +|`FSF` +|(по умолчанию) + +|`GMGPL` +|Модифицированная Общедоступная лицензия GNAT +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv1` +|Универсальная общественная лицензия GNU версии 1 +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv1+` +|Универсальная общественная лицензия GNU версии 1 (или более поздняя) +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv2` +|Универсальная общественная лицензия GNU версии 2 +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv2+` +|Универсальная общественная лицензия GNU версии 2 (или более поздняя) +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv3` +|Универсальная общественная лицензия GNU версии 3 +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv3+` +|Универсальная общественная лицензия GNU версии 3 (или более поздняя) +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv3RLE` +|Исключение для библиотеки времени выполнения GNU GPL версии 3 +|`FSF GPL OSI` +|(по умолчанию) + +|`GPLv3RLE+` +|Исключение для библиотеки времени выполнения GNU GPL версии 3 (или более поздняя) +|`FSF GPL OSI` +|(по умолчанию) + +|`ISCL` +|Лицензия Internet Systems Consortium +|`FSF GPL OSI COPYFREE` +|(по умолчанию) + +|`LGPL20` +|Общедоступная лицензия GNU для библиотек, версия 2.0 +|`FSF GPL OSI` +|(по умолчанию) + +|`LGPL20+` +|Общедоступная лицензия GNU для библиотек, версия 2.0 (или более поздняя) +|`FSF GPL OSI` +|(по умолчанию) + +|`LGPL21` +|Универсальная общественная лицензия GNU ограниченного применения, версия 2.1 +|`FSF GPL OSI` +|(по умолчанию) + +|`LGPL21+` +|Универсальная общественная лицензия GNU ограниченного применения, версия 2.1 (или более поздняя) +|`FSF GPL OSI` +|(по умолчанию) + +|`LGPL3` +|Универсальная общественная лицензия GNU ограниченного применения, версия 3 +|`FSF GPL OSI` +|(по умолчанию) + +|`LGPL3+` +|Универсальная общественная лицензия GNU ограниченного применения, версия 3 (или более поздней) +|`FSF GPL OSI` +|(по умолчанию) + +|`LPPL10` +|Публичная лицензия проекта LaTeX, версия 1.0 +|`FSF OSI` +|`dist-mirror dist-sell` + +|`LPPL11` +|Публичная лицензия проекта LaTeX, версия 1.1 +|`FSF OSI` +|`dist-mirror dist-sell` + +|`LPPL12` +|Публичная лицензия проекта LaTeX, версия 1.2 +|`FSF OSI` +|`dist-mirror dist-sell` + +|`LPPL13` +|Публичная лицензия проекта LaTeX, версия 1.3 +|`FSF OSI` +|`dist-mirror dist-sell` + +|`LPPL13a` +|Публичная лицензия проекта LaTeX, версия 1.3a +|`FSF OSI` +|`dist-mirror dist-sell` + +|`LPPL13b` +|Публичная лицензия проекта LaTeX, версия 1.3b +|`FSF OSI` +|`dist-mirror dist-sell` + +|`LPPL13c` +|Публичная лицензия проекта LaTeX, версия 1.3c +|`FSF OSI` +|`dist-mirror dist-sell` + +|`MIT` +|Лицензия MIT / Лицензия X11 +|`COPYFREE FSF GPL OSI` +|(по умолчанию) + +|`MPL10` +|Публичная лицензия Mozilla, версия 1.0 +|`FSF OSI` +|(по умолчанию) + +|`MPL11` +|Публичная лицензия Mozilla, версия 1.1 +|`FSF OSI` +|(по умолчанию) + +|`MPL20` +|Публичная лицензия Mozilla, версия 2.0 +|`FSF OSI` +|(по умолчанию) + +|`NCSA` +|Открытая лицензия Университета Иллинойса/NCSA +|`COPYFREE FSF GPL OSI` +|(по умолчанию) + +|`NONE` +|Лицензия не указана +| +|`none` + +|`OFL10` +|Лицензия SIL Open Font версия 1.0 (https://scripts.sil.org/OFL/) +|`FONTS` +|(по умолчанию) + +|`OFL11` +|Лицензия SIL Open Font версия 1.1 (https://scripts.sil.org/OFL/) +|`FONTS` +|(по умолчанию) + +|`OWL` +|Лицензия Открытых Произведений (owl.apotheon.org) +|`COPYFREE` +|(по умолчанию) + +|`OpenSSL` +|Лицензия OpenSSL +|`FSF` +|(по умолчанию) + +|`PD` +|Общественное достояние +|`GPL COPYFREE` +|(по умолчанию) + +|`PHP202` +|Лицензия PHP версии 2.02 +|`FSF OSI` +|(по умолчанию) + +|`PHP30` +|Лицензия PHP версии 3.0 +|`FSF OSI` +|(по умолчанию) + +|`PHP301` +|Лицензия PHP версии 3.01 +|`FSF OSI` +|(по умолчанию) + +|`PSFL` +|Лицензия Python Software Foundation +|`FSF GPL OSI` +|(по умолчанию) + +|`PostgreSQL` +|Лицензия PostgreSQL +|`FSF GPL OSI COPYFREE` +|(по умолчанию) + +|`RUBY` +|Лицензия Ruby +|`FSF` +|(по умолчанию) + +|`UNLICENSE` +|Отказ от лицензии (The Unlicense) +|`COPYFREE FSF GPL` +|(по умолчанию) + +|`WTFPL` +|Публичная лицензия "Делай что хочешь" версия 2 +|`GPL FSF COPYFREE` +|(по умолчанию) + +|`WTFPL1` +|Публичная лицензия "Делай что хочешь" версия 1 +|`GPL FSF COPYFREE` +|(по умолчанию) + +|`ZLIB` +|Лицензия zlib +|`GPL FSF OSI` +|(по умолчанию) + +|`ZPL21` +|Публичная лицензия Zope версия 2.1 +|`GPL OSI` +|(по умолчанию) +|=== + +[[licenses-license_perms]] +=== `LICENSE_PERMS` и `LICENSE_PERMS_NAME_` + +Разрешения. Используйте `none`, если пусто. + +.Список разрешений лицензии +[[licenses-license_perms-dist-mirror]] +`dist-mirror`:: +Разрешается распространение дистрибутивных файлов. Дистрибутивные файлы будут добавлены в CDN `MASTER_SITE_BACKUP` FreeBSD. + +[[licenses-license_perms-no-dist-mirror]] +`no-dist-mirror`:: +Распространение дистрибутивных файлов запрещено. Это эквивалентно установке crossref:special[porting-restrictions-restricted,`RESTRICTED`]. Дистрибутивные файлы _не_ будут добавлены в CDN `MASTER_SITE_BACKUP` FreeBSD. + +[[licenses-license_perms-dist-sell]] +`dist-sell`:: +Продажа файлов дистрибутива разрешена. Файлы дистрибутива будут присутствовать на образах установщика. + +[[licenses-license_perms-no-dist-sell]] +`no-dist-sell`:: +Продажа файлов дистрибутива запрещена. Это эквивалентно установке crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]. + +[[licenses-license_perms-pkg-mirror]] +`pkg-mirror`:: +Свободное распространение пакета разрешено. Пакет будет распространяться через CDN пакетов FreeBSD https://pkg.freebsd.org/[https://pkg.freebsd.org/]. + +[[licenses-license_perms-no-pkg-mirror]] +`no-pkg-mirror`:: +Свободное распространение пакета запрещено. Эквивалентно установке crossref:special[porting-restrictions-no_package,`NO_PACKAGE`]. Пакет _не_ будет распространяться через FreeBSD CDN для пакетов https://pkg.freebsd.org/[https://pkg.freebsd.org/]. + +[[licenses-license_perms-pkg-sell]] +`pkg-sell`:: +Продажа пакета разрешена. Пакет будет присутствовать на образах установщика. + +[[licenses-license_perms-no-pkg-sell]] +`no-pkg-sell`:: +Продажа пакета запрещена. Это эквивалентно установке crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]. Пакет _не_ будет присутствовать на образах установщика. + +[[licenses-license_perms-auto-accept]] +`auto-accept`:: +Лицензия принимается по умолчанию. Запросы на принятие лицензии не отображаются, если пользователь не определил `LICENSES_ASK`. Используйте это, если в лицензии не указано, что пользователь должен принять условия лицензии. + +[[licenses-license_perms-no-auto-accept]] +`no-auto-accept`:: +Лицензия не принимается по умолчанию. Пользователь всегда будет запрошен на подтверждение принятия данной лицензии. Это должно использоваться, если лицензия требует, чтобы пользователь принял её условия. + +Когда присутствуют и `_permission_`, и `no-_permission_`, то `no-_permission_` отменяет `_permission_`. + +Когда `_permission_` отсутствует, это считается как `no-_permission_`. + +[WARNING] +==== +Некоторые отсутствующие разрешения могут сделать порт (и все зависящие от него порты) непригодными для использования пользователями пакетов: + +Порт без разрешения `auto-accept` никогда не будет собран, и все зависящие от него порты будут проигнорированы. + +Порт без разрешения `pkg-mirror`, а также любые порты, зависящие от него, будут удалены после сборки, что гарантирует их отсутствие в дистрибуции. +==== + +[[licenses-license_perms-ex1]] +.Нестандартная лицензия +[example] +==== +Прочитайте условия лицензии и переведите их, используя доступные разрешения. + +[.programlisting] +.... +LICENSE= UNKNOWN +LICENSE_NAME= unknown +LICENSE_TEXT= This program is NOT in public domain.\ + It can be freely distributed for non-commercial purposes only. +LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept +.... + +==== + +[[licenses-license_perms-ex2]] +.Стандартные и нестандартные лицензии +[example] +==== + +Прочитайте условия лицензии и укажите их, используя доступные разрешения. В случае сомнений обратитесь за разъяснениями на {freebsd-ports}. + +[.programlisting] +.... +LICENSE= WARSOW GPLv2 +LICENSE_COMB= multi +LICENSE_NAME_WARSOW= Warsow Content License +LICENSE_FILE_WARSOW= ${WRKSRC}/docs/license.txt +LICENSE_PERMS_WARSOW= dist-mirror pkg-mirror auto-accept +.... + +Когда разрешения лицензий 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_. Файлы дистрибутива и пакеты не будут доступны в образах установщика. +==== + +[[licenses-license_groups]] +=== `LICENSE_GROUPS` и `LICENSE_GROUPS_NAME` + +Группы, к которым принадлежит лицензия. + +.Список предопределенных групп лицензий +[[licenses-license_groups-FSF]] +`FSF`:: +Одобрено Free Software Foundation, см. https://www.fsf.org/licensing/[Команда по лицензированию и соответствию FSF]. + +[[licenses-license_groups-GPL]] +`GPL`:: +Совместимые с GPL + +[[licenses-license_groups-OSI]] +`OSI`:: +Одобрено OSI, см. страницу https://opensource.org/licenses/[Открытых лицензий]. + +[[licenses-license_groups-COPYFREE]] +`COPYFREE`:: +Соответствует определению стандарта Copyfree, см. страницу https://copyfree.org/standard/licenses/[лицензий Copyfree]. + +[[licenses-license_groups-FONTS]] +`FONTS`:: +Лицензии на шрифты + +[[licenses-license_name]] +=== `LICENSE_NAME` и `LICENSE_NAME_NAME` + +Полное название лицензии. + +[[licenses-license_name-ex1]] +.`LICENSE_NAME` +[example] +==== + +[.programlisting] +.... +LICENSE= UNRAR +LICENSE_NAME= UnRAR License +LICENSE_FILE= ${WRKSRC}/license.txt +LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept +.... + +==== + +[[licenses-license_file]] +=== `LICENSE_FILE` и `LICENSE_FILE_NAME` + +Полный путь к файлу, содержащему текст лицензии, обычно [.filename]#${WRKSRC}/some/file#. Если файл отсутствует в дистрибутиве, а его содержимое слишком длинное для размещения в crossref:makefiles[licenses-license_text,`LICENSE_TEXT`], поместите его в новый файл в [.filename]#${FILESDIR}#. -** `do-fetch`: использует новую группировку с постфиксами в `DISTFILES` и `PATCHFILES` с соответствующими элементами групп в `MASTER_SITES` и `PATCH_SITES`, которые используют группы из `MASTER_SITE_SUBDIR` и `PATCH_SITE_SUBDIR`. Посмотрите <>. -** `fetch-list`: работает так же, как старая цель `fetch-list` с тем исключением, что она группирует, как и `do-fetch`. -** `master-sites` и `patch-sites`: (несовместимы со старыми версиями) только возвращают элементы группы `DEFAULT`; на самом деле они выполняют цели `master-sites-default` и `patch-sites-default` соответственно. -+ -Более того, использование целей `master-sites-all` или `patch-sites-all` предпочтительно для непосредственной проверки `MASTER_SITES` или `PATCH_SITES`. Также работа прямой проверки в последующих версиях не гарантируется. Посмотрите <> для получения более дополнительной информации об этих новых целях. +[[licenses-license_file-ex1]] +.`LICENSE_FILE` +[example] +==== -. Новые цели построения портов -.. Имеются цели `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` и так далее. -[[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`. +[.programlisting] +.... +LICENSE= GPLv3+ +LICENSE_FILE= ${WRKSRC}/COPYING +.... -=== `DIST_SUBDIR` +==== -Не позволяйте вашему порту засорять [.filename]#/usr/ports/distfiles#. Если вашему порту требуется сгрузить много файлов, или он содержит имя файла, могущее вызвать конфликты с другими портами (например, [.filename]#Makefile#), то укажите в переменной `DIST_SUBDIR` имя порта (должны подойти `${PORTNAME}` или `${PKGNAMEPREFIX}${PORTNAME}`). Это изменит значение переменной `DISTDIR` со значения по умолчанию [.filename]#/usr/ports/distfiles# к значению [.filename]#/usr/ports/distfiles/DIST_SUBDIR#, и в результате всё, что требуется для порта, будет помещено в этот подкаталог. +[[licenses-license_text]] +=== `LICENSE_TEXT` и `LICENSE_TEXT_NAME` -Он заглянет также в подкаталог с тем же именем на основном резервном сервере [.filename]#ftp.FreeBSD.org#. (Явное задание переменной `DISTDIR` в вашем файле `Makefile` этого не сделает, так что, пожалуйста, воспользуйтесь `DIST_SUBDIR`.) +Текст для использования в качестве лицензии. Полезно, когда лицензия отсутствует в файлах дистрибутива и её текст краток. -[NOTE] +[[licenses-license_text-ex1]] +.`LICENSE_TEXT` +[example] ==== -Это не коснётся тех сайтов `MASTER_SITES`, которые вы указали в вашем файле [.filename]#Makefile#. +[.programlisting] +.... +LICENSE= UNKNOWN +LICENSE_NAME= unknown +LICENSE_TEXT= This program is NOT in public domain.\ + It can be freely distributed for non-commercial purposes only,\ + and THERE IS NO WARRANTY FOR THIS PROGRAM. +LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept +.... + ==== -=== `ALWAYS_KEEP_DISTFILES` +[[licenses-license_distfiles]] +=== `LICENSE_DISTFILES` и `LICENSE_DISTFILES_NAME` -Если ваш порт использует двоичные дистрибутивные файлы и обладает лицензией, требующей, чтобы исходный код предоставлялся вместе с пакетами, распространяемыми в двоичной форме, например GPL, то `ALWAYS_KEEP_DISTFILES` даст кластеру построения FreeBSD указание сохранять копию файлов, указанных в `DISTFILES`. Пользователям таких портов эти файлы в основном не нужны, поэтому хорошей идеей является добавление в `DISTFILES` исходных дистрибутивных файлов, только когда определена переменная `PACKAGE_BUILDING`. +Файлы дистрибутива, к которым применяются лицензии. По умолчанию — все файлы дистрибутива. -[[ports-master-sites-n-example-always-keep-distfiles]] -.Использование `ALWAYS_KEEP_DISTFILES`. +[[licenses-license_distfiles-ex1]] +.`LICENSE_DISTFILES` [example] ==== +Используется, когда файлы дистрибутива имеют разные лицензии. Например, один файл имеет лицензию на код, а другой содержит некоторые произведения искусства, которые нельзя распространять: + [.programlisting] .... -.if defined(PACKAGE_BUILDING) -DISTFILES+= foo.tar.gz -ALWAYS_KEEP_DISTFILES= yes -.endif +MASTER_SITES= SF/some-game +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} artwork.zip + +LICENSE= BSD3CLAUSE ARTWORK +LICENSE_COMB= dual +LICENSE_NAME_ARTWORK= The game artwork license +LICENSE_TEXT_ARTWORK= The README says that the files cannot be redistributed +LICENSE_PERMS_ARTWORK= pkg-mirror pkg-sell auto-accept +LICENSE_DISTFILES_BSD3CLAUSE= ${DISTNAME}${EXTRACT_SUFX} +LICENSE_DISTFILES_ARTWORK= artwork.zip .... ==== -При добавлении дополнительных файлов в `DISTFILES` убедитесь, что вы их также добавляете в [.filename]#distinfo#. Кроме того, дополнительные файлы обычно распаковываются также в `WRKDIR`, что для некоторых портов может вызывать нежелательные подобные эффекты и требовать особую обработку. - -[[makefile-maintainer]] -== `MAINTAINER` - -Укажите здесь ваш адрес электронной почты. Пожалуйста. _:-)_ +[[licenses-license_comb]] +=== `LICENSE_COMB` -Заметьте, что в качестве значения для `MAINTAINER` допустимо использование только одного адреса без поля комментария. Должен использоваться формат `user@hostname.domain`. Пожалуйста, не включайте никакого описательного текста, например, вашего настоящего имени в эту строку-это несколько сбивает с толку [.filename]#bsd.port.mk#. +Установите значение `multi`, если применяются все лицензии. Установите значение `dual`, если применяется любая из лицензий. По умолчанию используется значение `single`. -Сопровождающий ответственен за поддержание порта в актуальном состоянии и обеспечение правильной работы порта. За подробным описанием обязанностей сопровождающего порт обращайтесь к главе extref:{contributing}[The challenge for port maintainers, maintain-port]. +[[licenses-license_comb-ex1]] +.Двойные лицензии +[example] +==== -Перед фиксацией в репозитории изменения в порте будут отправлены сопровождающему для просмотра и одобрения. Если сопровождающий порта не ответил на запрос пользователя об обновлении в течение двух недель (исключая большие праздники), то это можно считать тайм-аутом сопровождающего, и обновление может быть выполнено без явного подтверждения от сопровождающего. Если сопровождающий не отвечает в течение трёх месяцев, то считается, что он отсутствует, и как сопровождающий порта, о котором идёт речь, может быть заменён. Исключениями из этого правила является всё, что сопровождает {portmgr} или {security-officer}. Запрещено делать любые несанкционированные изменения в портах, которые ведут эти группы. +Когда порт содержит указание «Это программное обеспечение может распространяться под GNU General Public License или Artistic License», это означает, что можно использовать любую из этих лицензий. Используйте следующее: -Мы оставляем за собой право изменять сообщение сопровождающего для лучшего соответствия существующим политикам и стилю Коллекции Портов без явного одобрения со стороны отправителя. Также, крупные изменения в инфраструктуре могут повлечь изменения в порте без согласия сопровождающего. Такой вид изменений никогда не будет затрагивать функциональность порта. +[.programlisting] +.... +LICENSE= ART10 GPLv1 +LICENSE_COMB= dual +.... -За {portmgr} оставляется право снять или назначить кого-либо сопровождающим по любой причине, а за {security-officer} оставляется право лишать или назначать права на сопровождение порта по соображениям информационной безопасности. +Если предоставлены файлы лицензий, используйте это: -[[makefile-comment]] -== `COMMENT` +[.programlisting] +.... +LICENSE= ART10 GPLv1 +LICENSE_COMB= dual +LICENSE_FILE_ART10= ${WRKSRC}/Artistic +LICENSE_FILE_GPLv1= ${WRKSRC}/Copying +.... -Содержит однострочное описание порта. Пожалуйста, соблюдайте следующие правила: +==== -. Старайтесь делать строку COMMENT длиной не больше, чем 70 символов, так как эта строка будет использована командой `pkg info` (см. man:pkg-info[8]) для отображения однострочного описания порта; -. _Не_ включайте сюда название пакета (или номер версии программного обеспечения); -. Комментарий должен начинаться с заглавной буквы и не заканчиваться точкой; -. Не начинайте комментарий с неопределённого артикля (A или An); -. Имена пишутся с заглавной буквы (например, Apache, JavaScript, Perl); -. Для перечислений используйте английскую Оксфордскую запятую (англ. Oxford comma) (например, green, red, and blue); -. Используйте программу проверки орфографии. +[[licenses-license_comb-ex2]] +.Множественные лицензии +[example] +==== -Вот пример: +Если часть порта имеет одну лицензию, а другая часть — другую, используйте `multi`: [.programlisting] .... -COMMENT= Cat chasing a mouse all over the screen +LICENSE= GPLv2 LGPL21+ +LICENSE_COMB= multi .... -В файле [.filename]#Makefile# переменная COMMENT должна следовать сразу за переменной MAINTAINER. +==== [[makefile-portscout]] == `PORTSCOUT` -Portscout являет собой автоматизированное средство проверки доступности дистрибутивных файлов для Коллекции Портов FreeBSD, подробное описание которого предоставляет crossref:keeping-up[distfile-survey, Portscout: сканер дистрибутивных файлов портов FreeBSD]. +Portscout — это автоматизированная утилита проверки distfile для Коллекции портов FreeBSD, подробно описанная в crossref:keeping-up[distfile-survey,Portscout: сканирование distfile портов FreeBSD]. + +`PORTSCOUT` определяет специальные условия, в рамках которых работа сканера дистрибутивных файлов Portscout ограничена. -Переменная `PORTSCOUT` задаёт специальные условия, ограничивающие работу Portscout - сканера дистрибутивных файлов. +Ситуации, когда установлена переменная `PORTSCOUT`, включают: -Ситуации, при которых следует указывать переменную `PORTSCOUT`: +* Когда необходимо игнорировать distfiles для определённых версий. Например, чтобы исключить версию _8.2_ и версию _8.3_ из проверок версий distfiles, так как известно, что они неработоспособны, добавьте: ++ +[.programlisting] +.... +PORTSCOUT= skipv:8.2,8.3 +.... -* Когда должны игнорироваться дистрибутивные файлы для конкретных версий или младших ревизий. Например, чтобы исключить из проверок новых версий дистрибутивных файлов версию _8.2_ по причине того, что она является поломанной, добавьте следующее: +* Когда проверки версий distfile необходимо полностью отключить. Например, если порт больше не будет обновляться, добавьте: + [.programlisting] .... -PORTSCOUT= ignore:8.2 +PORTSCOUT= ignore:1 .... -* Когда должны проверяться конкретные версии или старшие и младшие ревизии дистрибутивных файлов. Например, если следует ограничиться проверкой версии _0.6.4_, потому что более новые версии имеют проблемы совместимости с FreeBSD, добавьте: +* Когда необходимо проверять конкретные версии или определенные мажорные и минорные редакции distfile. Например, если нужно отслеживать только версию _0.6.4_, потому что более новые версии имеют проблемы совместимости с FreeBSD, добавьте: + [.programlisting] .... PORTSCOUT= limit:^0\.6\.4 .... -* Когда URL, в которых указаны доступные версии, отличаются от URL их загрузки. Например, чтобы привязать проверку новых версий дистрибутивных файлов к странице загрузки для порта package:databases/pgtune[], добавьте: +* Когда URL-адреса, перечисляющие доступные версии, отличаются от URL-адресов загрузки. Например, чтобы ограничить проверку версий distfile страницей загрузки для пакета: package:databases/pgtune[] добавьте: + [.programlisting] .... -PORTSCOUT= site:http://pgfoundry.org/frs/?group_id=1000416 +PORTSCOUT= site:http://www.renpy.org/dl/release/ .... [[makefile-depend]] == Зависимости -Многие порты зависят от других портов. Это очень удобная замечательная особенность большинства Unix-подобных операционных систем, включая FreeBSD. Множество портов могут использовать общую зависимость совместно, а не включать её в состав каждого порта или пакета, который в ней нуждается. Имеется семь переменных, которые вы можете использовать для обеспечения того, что всё требуемое находится на машине пользователя. Имеется также несколько предопределённых переменных, отражающих зависимости для общих случаев, плюс ещё несколько для управления поведением зависимостей. +Многие порты зависят от других портов. Это очень удобная особенность большинства Unix-подобных операционных систем, включая FreeBSD. Несколько портов могут использовать общую зависимость вместо того, чтобы включать эту зависимость в каждый порт или пакет, который в ней нуждается. Существует семь переменных, которые можно использовать для обеспечения наличия всех необходимых компонентов на машине пользователя. Также есть предопределенные переменные зависимостей для распространенных случаев и несколько дополнительных для управления поведением зависимостей. + +[IMPORTANT] +==== +Когда у программного обеспечения есть дополнительные зависимости, предоставляющие дополнительные возможности, основные зависимости, перечисленные в `*_DEPENDS`, должны включать те дополнительные зависимости, которые будут полезны большинству пользователей. Основные зависимости никогда не должны быть "минимальным" набором зависимостей. Цель состоит не в том, чтобы включить все возможные зависимости. Включайте только те, которые будут полезны большинству людей. +==== +[[makefile-lib_depends]] === `LIB_DEPENDS` -Эта переменная указывает, от каких совместно используемых библиотек зависит порт. Это список пар lib:dir, где _lib_ - это имя библиотеки, _dir_ - это каталог, в котором можно ее найти в случае, если ее нет на машине. Например, +Эта переменная определяет разделяемые библиотеки, от которых зависит данный порт. Это список кортежей вида `_lib:dir_`, где `_lib_` — имя разделяемой библиотеки, а `_dir_` — директория, в которой её следует искать, если она недоступна. Например, [.programlisting] .... -LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg +LIB_DEPENDS= libjpeg.so:graphics/jpeg .... -проверит наличие библиотеки jpeg с любым номером версии и перейдет в подкаталог [.filename]#graphics/jpeg# вашего дерева портов для ее построения и установки, если библиотека отсутствует. +проверит наличие общей библиотеки jpeg с любой версией и перейдет в подкаталог [.filename]#graphics/jpeg# дерева портов, чтобы собрать и установить её, если она не найдена. -Зависимость проверяется дважды, один раз внутри цели `build`, а затем из цели `install`. Кроме того, имя зависимости помещается в пакет, так что `pkg install` (см. man:pkg-install[8]) будет автоматически её устанавливать, если её нет на пользовательской системе. +Зависимость проверяется дважды: один раз внутри цели `build` и затем внутри цели `install`. Также имя зависимости добавляется в пакет, чтобы `pkg install` (см. man:pkg-install[8]) автоматически установил её, если её нет в системе пользователя. +[[makefile-run_depends]] === `RUN_DEPENDS` -В этой переменной перечисляются выполнимые файлы или файлы, от которых зависит работа порта. Это список пар вида path:dir:target, где _path_ - это имя программы или файла, а _dir_ - каталог, в котором можно найти порт в случае, если его нет в системе, и _target_ - это цель, которую нужно вызвать в этом каталоге. Если _path_ начинается со слэша (`/`), он воспринимается как файл и его существование проверяется командой `test -e`; в противном случае предполагается, что это выполнимый файл, и для определения того, имеется ли программа в пути поиска, используется команда `which -s`. +Эта переменная определяет исполняемые файлы или файлы, от которых зависит порт во время выполнения. Это список кортежей ``_path:dir_``[:``_target_``], где `_path_` — это имя исполняемого файла или файла, _dir_ — директория, в которой его следует искать, если он недоступен, а _target_ — цель, которую нужно вызвать в этой директории. Если _path_ начинается с косой черты (`/`), он считается файлом, и его существование проверяется с помощью `test -e`; в противном случае предполагается, что это исполняемый файл, и `which -s` используется для проверки наличия программы в пути поиска. Например, [.programlisting] .... -RUN_DEPENDS= ${LOCALBASE}/news/bin/innd:${PORTSDIR}/news/inn \ - xmlcatmgr:${PORTSDIR}/textproc/xmlcatmgr +RUN_DEPENDS= ${LOCALBASE}/news/bin/innd:news/inn \ + xmlcatmgr:textproc/xmlcatmgr .... -проверит существование файла или каталога [.filename]#/usr/local/news/bin/innd#, и если ничего не будет найдено, то построит и установит порт из подкаталога [.filename]#news/inn# дерева портов. Также будет выполнена проверка, присутствует ли в пути поиска исполняемый файл с именем `xmlcatmgr`, и перейдет в подкаталог [.filename]#textproc/xmlcatmgr# вашего дерева портов для его построения и установки, если он не будет найден. +проверит, существует ли файл или каталог [.filename]#/usr/local/news/bin/innd#, и соберет и установит его из подкаталога [.filename]#news/inn# дерева портов, если он не найден. Также будет проверено, находится ли исполняемый файл `xmlcatmgr` в пути поиска, и если он не найден, будет выполнен переход в [.filename]#textproc/xmlcatmgr# для сборки и установки. [NOTE] ==== -В приведенном примере `innd` является выполнимым файлом; если выполнимый файл находится в месте, которое отсутствует в списке путей файлов, то вы должны указать полный путь к файлу. +В этом случае `innd` является исполняемым файлом; если исполняемый файл находится в месте, которое не ожидается в пути поиска, используйте полный путь. ==== [NOTE] ==== -Официальным значением переменной поиска `PATH`, используемым в кластере построения портов является +Официальный путь поиска `PATH`, используемый в кластере сборки портов [.programlisting] .... @@ -1333,589 +3206,911 @@ ==== -Зависимость проверяется внутри цели `install`. Кроме того, имя зависимости помещается в пакет, так что `pkg install` (см. man:pkg-install[8]) будет автоматически его устанавливать, если он не будет найден в пользовательской системе. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. +Зависимость проверяется внутри цели `install`. Также имя зависимости добавляется в пакет, чтобы команда `pkg install` (см. man:pkg-install[8]) автоматически установила её, если она отсутствует в системе пользователя. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. -Довольно распространенной является ситуация, когда `RUN_DEPENDS` буквально такая же как `BUILD_DEPENDS`, особенно если переносимое программное обеспечение написано на языке сценариев, или если оно требует такое же окружение для исполнения, как и используемое во время построения. В этом случае, очень заманчивым или довольно естественным является присвоение одного другому: +Довольно распространённая ситуация, когда `RUN_DEPENDS` буквально совпадает с `BUILD_DEPENDS`, особенно если портируемое программное обеспечение написано на скриптовом языке или требует одинаковой среды для сборки и выполнения. В этом случае возникает соблазн и интуитивное желание напрямую присвоить одно другому: [.programlisting] .... RUN_DEPENDS= ${BUILD_DEPENDS} .... -Тем не менее, подобные присвоения могут загрязнять зависимости времени исполнения содержимым, не заданным в `BUILD_DEPENDS` исходного порта. Такое случается из-за ленивого вычисления в man:make[1] присваиваемых переменных. Представьте [.filename]#Makefile# с переменными `USE_*`, которые обрабатываются в [.filename]#ports/Mk/bsd.*.mk# для пополнения первоначальных зависимостей построения. Например, `USES= gmake` добавляет package:devel/gmake[] в `BUILD_DEPENDS`. Для предотвращения загрязнения `RUN_DEPENDS` подобными дополнительными зависимостями проявляйте осторожность с присвоением с раскрытием, т.е. с раскрытием значения перед его присвоением переменной: +Однако такое присваивание может загрязнить зависимости во время выполнения записями, не определёнными в оригинальном `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`: [.programlisting] .... -RUN_DEPENDS:= ${BUILD_DEPENDS} +MY_DEPENDS= some:devel/some \ + other:lang/other +BUILD_DEPENDS= ${MY_DEPENDS} +RUN_DEPENDS= ${MY_DEPENDS} .... +[IMPORTANT] +==== +_Не используйте_ `:=` для присваивания `BUILD_DEPENDS` в `RUN_DEPENDS` или наоборот. Все переменные раскрываются немедленно, что является совершенно неправильным и почти всегда приводит к ошибке. +==== + +[[makefile-build_depends]] === `BUILD_DEPENDS` -В этой переменной перечисляются выполнимые или обычные файлы, которые требуются порту для его построения. Как и `RUN_DEPENDS`, это список пар path:dir:target. Например, +Эта переменная указывает исполняемые файлы или файлы, необходимые для сборки данного порта. Как и `RUN_DEPENDS`, это список кортежей ``_path:dir_``[:``_target_``]. Например, [.programlisting] .... -BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip +BUILD_DEPENDS= unzip:archivers/unzip .... -будет проверять наличие выполнимого фала с именем `unzip` и перейдет в подкаталог [.filename]#archivers/unzip# вашего дерева портов для его построения и установки, если последний не будет найден. +проверит наличие исполняемого файла с именем `unzip` и перейдет в подкаталог [.filename]#archivers/unzip# дерева портов, чтобы собрать и установить его, если он не будет найден. [NOTE] ==== -Под "построением" здесь понимается всё, от распаковки до компиляции. Зависимость проверяется из цели `extract`. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. +"build" здесь означает все процессы от извлечения до компиляции. Зависимость проверяется внутри цели `extract`. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET` ==== +[[makefile-fetch_depends]] === `FETCH_DEPENDS` -В этой переменной перечисляются выполняемые файлы или просто файлы, которые требуются порту для сгрузки. Как и предыдущие две переменные, это список пар path:dir:target. Например, +Эта переменная определяет исполняемые файлы или файлы, необходимые для загрузки этого порта. Как и предыдущие две, это список кортежей ``_path:dir_``[:``_target_``]. Например, [.programlisting] .... -FETCH_DEPENDS= ncftp2:${PORTSDIR}/net/ncftp2 +FETCH_DEPENDS= ncftp2:net/ncftp2 .... -будет проверять наличие выполняемого файла с именем `ncftp2` и перейдет в каталог [.filename]#net/ncftp2# вашего дерева портов для его построения и установки, если тот не будет найден. +проверит наличие исполняемого файла с именем `ncftp2` и перейдет в подкаталог [.filename]#net/ncftp2# дерева портов для сборки и установки, если файл не будет найден. -Зависимость проверяется при выполнении цели `fetch`. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. +Зависимость проверяется внутри цели `fetch`. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. +[[makefile-extract_depends]] === `EXTRACT_DEPENDS` -В этой переменной указываются программы или файлы, которые требуются для распаковки порта. Как и в предыдущих случаях, это список пар вида path:dir:target. Например, +Эта переменная указывает исполняемые файлы или файлы, которые требуются для извлечения данного порта. Как и предыдущая, это список кортежей ``_path:dir_``[:``_target_``]. Например, [.programlisting] .... -EXTRACT_DEPENDS= unzip:${PORTSDIR}/archivers/unzip +EXTRACT_DEPENDS= unzip:archivers/unzip .... -будет проверять наличие программы с именем `unzip`, и перейдёт в подкаталог [.filename]#archivers/unzip# вашего дерева портов для её построения и установки, если такой программы не будет найдено. +проверит наличие исполняемого файла с именем `unzip` и перейдет в подкаталог [.filename]#archivers/unzip# дерева портов, чтобы собрать и установить его, если он не будет найден. Зависимость проверяется внутри цели `extract`. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. [NOTE] ==== -Используйте эту переменную, только если распаковка не работает (по умолчанию предполагается использование `gzip`) и это не исправляется при помощи `USE_ZIP` или `USE_BZIP2`, которые описаны в <>. +Используйте эту переменную только если извлечение уже не работает (по умолчанию предполагается `tar`) и не может быть исправлено с помощью `USES=tar`, `USES=lha` или `USES=zip`, как описано в crossref:uses[uses,Использование макросов `USES`]. ==== +[[makefile-patch_depends]] === `PATCH_DEPENDS` -Эта переменная указывает на программы или файлы, которые нужны порту для применения патчей. Как и в предыдущих случаях, это список пар вида path:dir:target. Например, +Эта переменная указывает исполняемые файлы или файлы, которые требуются этому порту для применения патчей. Как и предыдущая, это список кортежей ``_path:dir_``[:``_target_``]. Например, [.programlisting] .... -PATCH_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/java/jfc:extract +PATCH_DEPENDS= ${NONEXISTENT}:java/jfc:extract .... -будет переходить в подкаталог [.filename]#java/jfc# вашего дерева портов для распаковки. +будет спускаться в подкаталог [.filename]#java/jfc# дерева портов для его извлечения. -Зависимость проверяется внутри цели `patch`. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. +Зависимость проверяется в рамках цели `patch`. Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`. -[[uses-makefiles]] +[[makefile-uses]] === `USES` -Могут быть добавлены параметры для определения различных характерных особенностей и зависимостей, которыми обладает данный порт. Они указываются путём добавления в [.filename]#Makefile# этой строки: +Параметры могут быть добавлены для определения различных функций и зависимостей, используемых портом. Они указываются путем добавления этой строки в [.filename]#Makefile#: [.programlisting] .... USES= feature[:arguments] .... -Для получения полного списка значений смотрите <>. +Для полного списка значений обратитесь к crossref:uses[uses,Использование макросов `USES`]. [WARNING] ==== - -Значение `USES` нельзя присваивать после подключения [.filename]#bsd.port.pre.mk#. +`USES` нельзя назначать после включения [.filename]#bsd.port.pre.mk#. ==== -[[use-vars]] +[[makefile-use-vars]] === `USE_*` -Для определения общих зависимостей, совместно используемых многими портами, предназначено несколько переменных. Их использование является необязательным, но помогает упростить избыточность файлов [.filename]#Makefile# порта. Каждый из них оформляется как `USE_*`. Эти переменные можно использовать только в [.filename]#Makefile# порта и [.filename]#ports/Mk/bsd.*.mk#. Они не предназначены для установки пользователями параметров - используйте для этих целей `PORT_OPTIONS`. +Существует несколько переменных для определения общих зависимостей, используемых многими портами. Их использование необязательно, но помогает сократить многословность [.filename]##Makefile## портов. Каждая из них оформлена как `USE_*`. Эти переменные могут использоваться только в [.filename]##Makefile## портов и [.filename]#ports/Mk/bsd.*.mk#. Они не предназначены для настраиваемых пользователем опций — для этой цели используйте `PORT_OPTIONS`. [NOTE] ==== -Установка любых `USE_*` в [.filename]#/etc/make.conf# _всегда_ является ошибочным действием. В частности, установка +Всегда неправильно устанавливать любые `USE_*` в [.filename]#/etc/make.conf#. Например, установка [.programlisting] .... USE_GCC=X.Y .... -(где X.Y соответствует версии) добавит зависимость от gccXY к каждому порту, включая и сам `lang/gccXY`! +(где X.Y — номер версии) добавит зависимость от gccXY для каждого порта, включая сам `lang/gccXY`! ==== -.Переменные `USE_*` +[[makefile-use-vars-table]] +.`USE_*` [cols="1,1", frame="none", options="header"] |=== | Переменная | Значение -|`USE_BZIP2` -|tar-архивы порта упакованы при помощи `bzip2`. +|`USE_GCC` +a| -|`USE_ZIP` -|tar-архивы порта упакованы при помощи `zip`. +Порт требует GCC (`gcc` или `{g-plus-plus}`) для сборки. +Некоторые порты нуждаются в определённой, старой версии GCC, другие требуют современных, актуальных версий. +Обычно устанавливается в `yes` (означает всегда использовать стабильную, современную версию GCC из портов, согласно `GCC_DEFAULT` в [.filename]#Mk/bsd.default-versions.mk#). +Это также значение по умолчанию. +Точная версия также может быть указана, например, значением `10`. +GCC из базовой системы используется, если он удовлетворяет запрашиваемой версии, в противном случае подходящий компилятор собирается из портов, а `CC` и `CXX` корректируются соответствующим образом. +Аргумент `:build`, следующий за указанием версии, добавляет только зависимость во время сборки порта. + +Например: +[example] +==== +[.programlisting] +.... +USE_GCC=yes # порт требует текущей версии GCC +USE_GCC=11:build # порт требует GCC 11 только во время сборки +.... +==== + +[NOTE] +==== +`USE_GCC=any` устарел и не должен использоваться в новых портах +==== -|`USE_GCC` -|Для сборки порта требуется GCC (gcc или {gcc-plus-plus}). Некоторым портам подходит любая версия, для других требуются последние современные версии. Обычно используется со значением `any` (в этом случае используется встроенный GCC в тех версиях FreeBSD, в состав которых он всё ещё входит, или устанавливается порт `lang/gcc`, когда Clang является компилятором C/C++ по умолчанию) или `yes` (всегда используется стабильная современная версия GCC из порта `lang/gcc`). Также в значении переменной можно указать точную версию, например `4.7`. Минимально допустимую версию можно указать как `4.6+`. GCC из основной системы используется в случае, если его версия удовлетворяет запрошенной, иначе собирается подходящая версии компилятора из порта с соответствующей коррекцией переменных `CC` и `CXX`. |=== -Переменные, относящиеся к gmake и сценарию [.filename]#configure#, описаны в crossref:special[building, Механизмы построения], а autoconf, automake и libtool описаны в crossref:special[using-autotools, Использование GNU Autotools]. Переменные, связанные с Perl, описаны в crossref:special[using-perl, Использование Perl]. Переменные X11 перечислены в crossref:special[using-x11, Использование X11]. crossref:special[using-gnome, Использование GNOME] работает с переменными GNOME и crossref:special[using-kde, Использование KDE] с KDE. crossref:special[using-java, Использование Java] описывает переменные Java, а crossref:special[using-php, Веб-приложения, Apache и PHP] содержит информацию об Apache, PHP и модулях PEAR. Python обсуждается в crossref:special[using-python, Использование Python], а Ruby в crossref:special[using-ruby, Использование Ruby]. crossref:special[using-sdl, Использование SDL] предоставляет переменные, используемые для приложений SDL, и, наконец, crossref:special[using-xfce, Использование Xfce] содержит информацию о приложении Xfce. +Переменные, связанные с gmake и [.filename]#configure#, описаны в crossref:special[building,Механизмы сборки], тогда как autoconf, automake и libtool описаны в crossref:special[using-autotools,Использование GNU Autotools]. Переменные, связанные с Perl, описаны в crossref:special[using-perl,Использование Perl]. Переменные X11 перечислены в crossref:special[using-x11,Использование X11]. crossref:special[using-gnome,Использование GNOME] посвящено GNOME, а crossref:special[using-kde,Использование KDE] — переменным, связанным с KDE. crossref:special[using-java,Использование Java] документирует переменные Java, тогда как crossref:special[using-php,Веб-приложения, Apache и PHP] содержит информацию о модулях Apache, PHP и PEAR. Python обсуждается в crossref:special[using-python,Использование Python], а Ruby — в crossref:special[using-ruby,Использование Ruby]. crossref:special[using-sdl,Использование SDL] предоставляет переменные, используемые для приложений SDL, и, наконец, crossref:special[using-xfce,Использование Xfce] содержит информацию о Xfce. + +[[makefile-version-dependency]] +=== Минимальная версия зависимого пакета + +Минимальная версия зависимого пакета может быть указана в любом `*_DEPENDS`, кроме `LIB_DEPENDS`, используя следующий синтаксис: + +[.programlisting] +.... +p5-Spiffy>=0.26:devel/p5-Spiffy +.... + +Первое поле содержит имя зависимого пакета, которое должно соответствовать записи в базе данных пакетов, знак сравнения и версию пакета. Зависимость считается удовлетворённой, если на машине установлен p5-Spiffy-0.26 или новее. + +[[makefile-note-on-dependencies]] +=== Заметки о зависимостях + +Как упомянуто выше, цель по умолчанию, вызываемая при необходимости зависимости, — это `DEPENDS_TARGET`. По умолчанию она установлена в `install`. Это пользовательская переменная; она никогда не определяется в [.filename]#Makefile# порта. Если порту требуется особый способ обработки зависимости, используйте часть `:target` в `*_DEPENDS` вместо переопределения `DEPENDS_TARGET`. + +При выполнении `make clean` зависимости портов также автоматически очищаются. Если это нежелательно, определите переменную `NOCLEANDEPENDS` в окружении. Это может быть особенно полезно, если среди зависимостей порта есть что-то, что требует много времени для пересборки, например KDE, GNOME или Mozilla. + +Для безусловной зависимости от другого порта используйте переменную `${NONEXISTENT}` в качестве первого поля `BUILD_DEPENDS` или `RUN_DEPENDS`. Используйте это только в случае, когда необходим исходный код другого порта. Время компиляции можно сократить, указав также цель. Например + +[.programlisting] +.... +BUILD_DEPENDS= ${NONEXISTENT}:graphics/jpeg:extract +.... + +всегда будет переходить к порту `jpeg` и извлекать его. + +[[makefile-circular-dependencies]] +=== Циклические зависимости фатальны + +[IMPORTANT] +==== +Не создавайте циклических зависимостей в дереве портов! +==== + +Технология сборки портов не допускает циклических зависимостей. Если такая зависимость будет добавлена, у кого-то в мире почти сразу окажется сломанной установка FreeBSD, а за этим последуют многие другие. Подобные проблемы бывает очень сложно обнаружить. Если есть сомнения, перед внесением изменений обязательно выполните: `cd /usr/ports; make index`. Этот процесс может быть довольно медленным на старых машинах, но он способен избавить множество людей, включая вас, от серьёзных проблем. + +[[makefile-automatic-dependencies]] +=== Проблемы, вызванные автоматическими зависимостями + +Зависимости должны быть объявлены явно или с использованием crossref:makefiles[makefile-options,OPTIONS framework]. Использование других методов, таких как автоматическое обнаружение, усложняет индексацию, что вызывает проблемы для управления портами и пакетами. + +[[makefile-automatic-dependencies-bad]] +.Неправильное объявление необязательной зависимости +[example] +==== + +[.programlisting] +.... +.include + +.if exists(${LOCALBASE}/bin/foo) +LIB_DEPENDS= libbar.so:foo/bar +.endif +.... + +==== + +Проблема с попыткой автоматического добавления зависимостей заключается в том, что файлы и настройки за пределами отдельного порта могут измениться в любой момент. Например: индекс строится, затем устанавливается группа портов. Но один из портов устанавливает проверяемый файл. Теперь индекс неверен, потому что у установленного порта неожиданно появилась новая зависимость. Индекс может оставаться неверным даже после пересборки, если другие порты также определяют свою потребность в зависимостях на основе существования других файлов. + +[[makefile-automatic-dependencies-good]] +.Правильное объявление необязательной зависимости +[example] +==== + +[.programlisting] +.... +OPTIONS_DEFINE= BAR +BAR_DESC= Calling cellphones via bar + +BAR_LIB_DEPENDS= libbar.so:foo/bar +.... + +==== + +Проверка переменных опций является правильным методом. Это не вызовет несоответствий в индексе группы портов, при условии что опции были определены до сборки индекса. Затем можно использовать простые скрипты для автоматизации сборки, установки и обновления этих портов и их пакетов. + +[[makefile-masterdir]] +== Подчиненные порты и `MASTERDIR` + +Если порту необходимо собирать немного разные версии пакетов, используя переменную (например, разрешение или размер бумаги) с разными значениями, создайте по одному подкаталогу для каждого пакета, чтобы пользователям было проще понять, что делать, но старайтесь максимально использовать общие файлы между портами. Обычно, при грамотном использовании переменных, во всех каталогах, кроме одного, требуется лишь очень короткий [.filename]#Makefile#. В единственном [.filename]#Makefile# укажите директорию с остальными файлами с помощью `MASTERDIR`. Также используйте переменную как часть crossref:makefiles[porting-pkgname,`PKGNAMESUFFIX`], чтобы пакеты имели разные имена. + +Это лучше всего продемонстрировать на примере. Это часть файла [.filename]#print/pkfonts300/Makefile#; + +[.programlisting] +.... +PORTNAME= pkfonts${RESOLUTION} +PORTVERSION= 1.0 +DISTFILES= pk${RESOLUTION}.tar.gz + +PLIST= ${PKGDIR}/pkg-plist.${RESOLUTION} + +.if !defined(RESOLUTION) +RESOLUTION= 300 +.else +.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ + ${RESOLUTION} != 300 && ${RESOLUTION} != 360 && \ + ${RESOLUTION} != 400 && ${RESOLUTION} != 600 +.BEGIN: + @${ECHO_MSG} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\"" + @${ECHO_MSG} "Possible values are: 118, 240, 300, 360, 400 and 600." + @${FALSE} +.endif +.endif +.... + +Пакет `package:print/pkfonts300[]` также содержит все обычные исправления, файлы пакетов и т.д. При запуске `make` в этом месте будет взято значение разрешения по умолчанию (300), и порт будет собран в обычном режиме. + +Что касается других разрешений, это _полный_ [.filename]#print/pkfonts360/Makefile#: + +[.programlisting] +.... +RESOLUTION= 360 +MASTERDIR= ${.CURDIR}/../pkfonts300 + +.include "${MASTERDIR}/Makefile" +.... + +([.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. + +[[makefile-manpages]] +== Страницы Cправочника + +Если порт размещает дерево man в другом месте, отличном от `PREFIX`, используйте `MANDIRS` для указания этих каталогов. Обратите внимание, что файлы, соответствующие страницам руководства, должны быть добавлены в [.filename]#pkg-plist# вместе с остальными файлами. Назначение `MANDIRS` — обеспечить автоматическое сжатие страниц руководства, поэтому имена файлов имеют суффикс [.filename]#.gz#. + +[[makefile-info]] +== Файлы информации + +Если пакету требуется установить файлы GNU info, перечислите их в `INFO` (без завершающего `.info`), по одному документу на строку. Предполагается, что эти файлы будут установлены в [.filename]#PREFIX/INFO_PATH#. Измените `INFO_PATH`, если пакет использует другое расположение. Однако это не рекомендуется. Эти записи содержат только путь относительно [.filename]#PREFIX/INFO_PATH#. Например, пакет package:lang/gcc34[] устанавливает файлы info в [.filename]#PREFIX/INFO_PATH/gcc34#, и `INFO` будет выглядеть примерно так: + +[.programlisting] +.... +INFO= gcc34/cpp gcc34/cppinternals gcc34/g77 ... +.... + +Соответствующий код установки/удаления будет автоматически добавлен во временный файл [.filename]#pkg-plist# перед регистрацией пакета. + +[[makefile-options]] +== Параметры Makefile + +Многие приложения могут быть собраны с дополнительными или различными конфигурациями. Примеры включают выбор естественного (человеческого) языка, графический интерфейс или командная строка, тип поддерживаемой базы данных. Пользователям может потребоваться конфигурация, отличная от стандартной, поэтому система портов предоставляет хуки, которые автор порта может использовать для управления вариантом сборки. Правильная поддержка этих опций сделает пользователей счастливыми и эффективно предоставит два или более порта по цене одного. + +[[makefile-options-options]] +=== `OPTIONS` + +[[makefile-options-background]] +==== Пояснения + +`OPTIONS_*` предоставляют пользователю, устанавливающему порт, диалоговое окно с доступными опциями, после чего сохраняют выбранные опции в [.filename]#${PORT_DBDIR}/${OPTIONS_NAME}/options#. При следующей сборке порта эти опции будут использованы повторно. `PORT_DBDIR` по умолчанию имеет значение [.filename]#/var/db/ports#. `OPTIONS_NAME` соответствует имени порта (origin) с заменой разделителя на подчёркивания, например, для package:dns/bind99[] это будет `dns_bind99`. + +Когда пользователь запускает `make config` (или впервые запускает `make build`), система проверяет наличие файла [.filename]#${PORT_DBDIR}/${OPTIONS_NAME}/options#. Если этот файл не существует, используются значения `OPTIONS_*`, и отображается диалоговое окно, где можно включить или отключить опции. Затем файл [.filename]#options# сохраняется, а настроенные переменные используются при сборке порта. + +Если новая версия порта добавляет новые `OPTIONS`, пользователю будет показан диалог с сохранёнными значениями старых `OPTIONS`, заполненными заранее. + +`make showconfig` показывает сохранённую конфигурацию. Используйте `make rmconfig` для удаления сохранённой конфигурации. + +[[makefile-options-syntax]] +==== Синтаксис + +`OPTIONS_DEFINE` содержит список `OPTIONS`, которые будут использоваться. Они независимы друг от друга и не сгруппированы: + +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 OPT2 +.... + +После определения `OPTIONS` описываются (необязательно, но настоятельно рекомендуется): + +[.programlisting] +.... +OPT1_DESC= Describe OPT1 +OPT2_DESC= Describe OPT2 +OPT3_DESC= Describe OPT3 +OPT4_DESC= Describe OPT4 +OPT5_DESC= Describe OPT5 +OPT6_DESC= Describe OPT6 +.... + +[.filename]#ports/Mk/bsd.options.desc.mk# содержит описания для многих распространённых `OPTIONS`. Хотя они часто полезны, переопределите их, если описание недостаточно для порта. + +[TIP] +==== +При описании параметров рассматривайте их с точки зрения пользователя: «Какую функциональность это изменяет?» и «Зачем мне включать этот параметр?» Не просто повторяйте название. Например, описание параметра `NLS` как «включить поддержку NLS» не помогает пользователю, который уже видит название параметра, но может не знать, что оно означает. Описание вроде «Поддержка родного языка с помощью утилиты gettext» гораздо полезнее. +==== + +[IMPORTANT] +==== +Названия параметров всегда пишутся в верхнем регистре. Они не могут использовать смешанный регистр или нижний регистр. +==== + +`OPTIONS` могут быть сгруппированы как переключаемые варианты, где допускается только один выбор из каждой группы: + +[.programlisting] +.... +OPTIONS_SINGLE= SG1 +OPTIONS_SINGLE_SG1= OPT3 OPT4 +.... + +[WARNING] +==== +В каждый момент времени _должна_ быть выбрана одна опция из каждой группы `OPTIONS_SINGLE`, чтобы параметры были действительными. Один вариант из каждой группы _должен_ быть добавлен в `OPTIONS_DEFAULT`. +==== + +`OPTIONS` могут быть сгруппированы как переключаемые варианты, где ни один или только один вариант из каждой группы разрешён: + +[.programlisting] +.... +OPTIONS_RADIO= RG1 +OPTIONS_RADIO_RG1= OPT7 OPT8 +.... + +`OPTIONS` также могут быть сгруппированы в виде списков "множественного выбора", где _хотя бы одна_ опция должна быть включена: + +[.programlisting] +.... +OPTIONS_MULTI= MG1 +OPTIONS_MULTI_MG1= OPT5 OPT6 +.... + +`OPTIONS` также могут быть сгруппированы в виде списков "множественного выбора", где ни одна или любые опции могут быть включены: + +[.programlisting] +.... +OPTIONS_GROUP= GG1 +OPTIONS_GROUP_GG1= OPT9 OPT10 +.... + +`OPTIONS` по умолчанию не установлены, если они не перечислены в `OPTIONS_DEFAULT`: + +[.programlisting] +.... +OPTIONS_DEFAULT= OPT1 OPT3 OPT6 +.... + +Определения `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_*`. + +[[ports-options-simple-use]] +.Простое использование `OPTIONS` +[example] +==== + +[.programlisting] +.... +OPTIONS_DEFINE= FOO BAR +OPTIONS_DEFAULT=FOO + +FOO_DESC= Option foo support +BAR_DESC= Feature bar support + +# Will add --with-foo / --without-foo +FOO_CONFIGURE_WITH= foo +BAR_RUN_DEPENDS= bar:bar/bar + +.include +.... + +==== + +[[ports-options-check-unset]] +.Проверка неустановленных `OPTIONS` порта +[example] +==== + +[.programlisting] +.... +.if ! ${PORT_OPTIONS:MEXAMPLES} +CONFIGURE_ARGS+=--without-examples +.endif +.... + +Приведённая выше форма не рекомендуется. Предпочтительный метод — использование параметра configure для фактического включения и отключения функции в соответствии с опцией: -=== Минимальная версия зависимости +[.programlisting] +.... +# Will add --with-examples / --without-examples +EXAMPLES_CONFIGURE_WITH= examples +.... + +==== -Минимальная версия зависимости может быть указана в любой переменной `*_DEPENDS`, за исключением `LIB_DEPENDS`, с использованием следующего синтаксиса: +[[ports-options-practical-use]] +.Пример реального использования `OPTIONS` +[example] +==== [.programlisting] .... -p5-Spiffy>=0.26:${PORTSDIR}/devel/p5-Spiffy -.... +OPTIONS_DEFINE= EXAMPLES +OPTIONS_DEFAULT= PGSQL LDAP SSL -Первое поле содержит название зависимого пакета, которое обязано совпадать с записью в базе данные пакетов, знак сравнения и версию пакета. Зависимость удовлетворяется, если на машине установлен p5-Spiffy-0.26 или новее. +OPTIONS_SINGLE= BACKEND +OPTIONS_SINGLE_BACKEND= MYSQL PGSQL BDB -=== Замечания касательно зависимостей +OPTIONS_MULTI= AUTH +OPTIONS_MULTI_AUTH= LDAP PAM SSL -Как уже отмечено выше, целью, которая вызывается по умолчанию в случае, когда это требует зависимость, является `DEPENDS_TARGET`. Она по умолчанию есть `install`. Это пользовательская переменная; она нигде не определена в файле [.filename]#Makefile# порта. Если вашему порту требуется особый метод обработки зависимости, воспользуйтесь частью `:target` переменной `*_DEPENDS` вместо того, чтобы переопределять `DEPENDS_TARGET`. +EXAMPLES_DESC= Install extra examples +MYSQL_DESC= Use MySQL as backend +PGSQL_DESC= Use PostgreSQL as backend +BDB_DESC= Use Berkeley DB as backend +LDAP_DESC= Build with LDAP authentication support +PAM_DESC= Build with PAM support +SSL_DESC= Build with OpenSSL support -Когда вы набираете команду `make clean`, эта операция также выполняется и над зависимостями этого порта. Если вы не хотите, чтобы это случилось, определите переменную `NOCLEANDEPENDS` в вашем окружении. Это может быть особенно нужным, если порт имеет нечто, что занимает много времени на построение, в своём списке зависимостей, например, KDE, GNOME или Mozilla. +# Will add USE_PGSQL=yes +PGSQL_USE= pgsql=yes +# Will add --enable-postgres / --disable-postgres +PGSQL_CONFIGURE_ENABLE= postgres -Чтобы безусловно зависеть от другого порта, укажите переменную `${NONEXISTENT}` в качестве первого поля переменной `BUILD_DEPENDS` или `RUN_DEPENDS`. Пользуйтесь этим, только когда вам нужно иметь исходный код другого порта. Вы можете сэкономить время на компиляции, указав также и цель. Например, +ICU_LIB_DEPENDS= libicuuc.so:devel/icu -[.programlisting] -.... -BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/graphics/jpeg:extract -.... +# Will add --with-examples / --without-examples +EXAMPLES_CONFIGURE_WITH= examples -всегда будет переходить в каталог с портом `jpeg` и распаковывать его. +# Check other OPTIONS -=== Зацикленные зависимости фатальны +.include +.... -[IMPORTANT] -==== -Не помещайте зацикливающиеся зависимости в дерево портов! ==== -Технология построения портов не защищена от зацикленных зависимостей. Если вы создадите такую, то у кого-нибудь и где-нибудь установка FreeBSD будет немедленно сломана, а у остальных сломается несколько позже. Это на самом деле очень трудно распознать; если вы сомневаетесь, то перед внесением изменений проверьте, что выполнили следующее: `cd /usr/ports; make index`. Этот процесс может быть достаточно медленным на старых машинах, хотя вы сможете спасти большое количество людей-включая себя-от грядущих бед. +[[makefile-options-default]] +==== Опции по умолчанию -=== Автоматические зависимости и проблемы, которые они вызывают +Эти опции всегда включены по умолчанию. -Зависимости должны быть указаны либо явно, либо с использованием <>. Использование прочих методов, таких как автоматическое обнаружение зависимостей, усложняет индексирование, что вызывает проблемы в управлении портами и пакетами. +* `DOCS` — сборка и установка документации. +* `NLS` — Поддержка родного языка. +* `EXAMPLES` — сборка и установка примеров. +* `IPV6` — Поддержка протокола IPv6. -.Некорректное объявление необязательной зависимости -[example] +[NOTE] ==== -[.programlisting] -.... -.include - -.if exists(${LOCALBASE}/bin/foo) -LIB_DEPENDS= libbar.so:${PORTSDIR}/foo/bar -.endif -.... - +Нет необходимости добавлять их в `OPTIONS_DEFAULT`. Однако, чтобы они были активны и отображались в диалоге выбора опций, их необходимо добавить в `OPTIONS_DEFINE`. ==== -Проблема автоматического добавления зависимостей заключается в том, что файлы и настройки за пределами порта могут произвольно меняться. Пример: после построения индекса устанавливается набор портов. При этом один из них устанавливает проверяемый файл. На этом этапе индекс будет неправильным, потому что установленный порт неожиданно получит новую зависимость. Индекс может быть по прежнему неправильным даже после его перестроения, в случае если другие порты также определят дополнительные зависимости, основываясь на существовании других файлов. +[[makefile-options-auto-activation]] +=== Автоматическая активация функций -.Корректное объявление необязательной зависимости +При использовании скрипта GNU configure следите за тем, какие дополнительные функции активируются автоматическим определением. Явно отключите ненужные дополнительные функции, добавив `--without-xxx` или `--disable-xxx` в `CONFIGURE_ARGS`. + +[[makefile-options-auto-activation-bad]] +.Неправильная обработка опции [example] ==== + [.programlisting] .... -OPTIONS_DEFINE= BAR -BAR_DESC= Bar support - -.include - -.if ${PORT_OPTIONS:MBAR} -LIB_DEPENDS= libbar.so:${PORTSDIR}/foo/bar +.if ${PORT_OPTIONS:MFOO} +LIB_DEPENDS+= libfoo.so:devel/foo +CONFIGURE_ARGS+= --enable-foo .endif .... ==== -Правильным способом является проверка переменных параметров. Этот способ не приводит к несоответствиям в индексе набора портов, поскольку параметры определены до построения индекса. При этом можно использовать простые скрипты для автоматизации построения, установки и обновления этих портов и соответствующих им пакетов. +В приведённом выше примере представьте, что библиотека libfoo установлена в системе. Пользователь не хочет, чтобы это приложение использовало libfoo, поэтому он отключил соответствующую опцию в диалоге `make config`. Однако скрипт configure приложения обнаруживает библиотеку в системе и включает её поддержку в итоговом исполняемом файле. Теперь, когда пользователь решает удалить libfoo из системы, система портов не протестует (зависимость от libfoo не была записана), но приложение перестаёт работать. -[[use-want]] -=== `USE_` и `WANT_` - -Переменные `USE_` задаются мейнтейнером порта для определения программного обеспечения, от которого этот порт зависит. Порт, для которого нужен Firefox, укажет +[[makefile-options-auto-activation-good]] +.Правильная обработка опции +[example] +==== [.programlisting] .... -USE_FIREFOX= yes +FOO_LIB_DEPENDS= libfoo.so:devel/foo +# Will add --enable-foo / --disable-foo +FOO_CONFIGURE_ENABLE= foo .... -Некоторые переменные `USE_` могут принимать номера версий или другие параметры. Например, порт, который требует Apache 2.2, укажет +==== + +[NOTE] +==== +В некоторых случаях сокращенный синтаксис условных выражений может вызывать проблемы со сложными конструкциями. Ошибки обычно имеют вид `Malformed conditional`, тогда можно использовать альтернативный синтаксис. [.programlisting] .... -USE_APACHE= 22 +.if !empty(VARIABLE:MVALUE) .... -В некоторых случаях для большего контроля над зависимостями используются переменные `WANT_`, которые позволяют указывать требования в более точной форме. Например, взгляните на порт package:mail/squirrelmail[]. Этому порту нужны несколько модулей PHP, которые перечислены в переменной `USE_PHP`: +в качестве альтернативы [.programlisting] .... -USE_PHP= session mhash gettext mbstring pcre openssl xml +.if ${VARIABLE:MVALUE} .... -Эти модули доступны в версиях CLI и web, поэтому версия web выбрана с переменной `WANT_`: +==== -[.programlisting] -.... -WANT_PHP_WEB= yes -.... +[[options-helpers]] +=== Помощники параметров -Имеющиеся переменные `USE_` и `WANT_` определены в файлах в [.filename]#/usr/ports/Mk#. +Существуют макросы, которые помогают упростить условные значения, различающиеся в зависимости от установленных опций. Для удобства приведён полный список: -[[makefile-masterdir]] -== `MASTERDIR` +`PLIST_SUB`, `SUB_LIST`:: +Для автоматической генерации `%%_OPT_%%` и `%%NO__OPT__%%` см. crossref:makefiles[options_sub, `OPTIONS_SUB`]. ++ +Для более сложных случаев использования см. crossref:makefiles[options-variables, Замена общих переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`]. -Если вашему порту требуется построение довольно различающихся версий пакетов через переменную (задающую, например, разрешение, или размер бумаги), которая принимает различные значения, создайте для каждого пакета отдельный подкаталог, чтобы пользователям было легче определить, каким пакетом воспользоваться, но попробуйте использовать совместно между портами как можно больше файлов. В типичном случае вам потребуются только очень короткие файлы [.filename]#Makefile# во всех каталогах, кроме одного, если вы будете использовать переменные с умом. В отдельных файлах [.filename]#Makefile# вы можете использовать переменную `MASTERDIR` для указания каталога, в котором находятся все остальные файлы. Также используйте переменную как часть <>, чтобы пакеты имели разные имена. +`CONFIGURE_ARGS`:: +Для информации о `--enable-_x_` и `--disable-_x_` см. crossref:makefiles[options-configure_enable, `OPT_CONFIGURE_ENABLE`]. ++ +О `--with-_x_` и `--without-_x_` см. crossref:makefiles[options-configure_with, `OPT_CONFIGURE_WITH`]. ++ +Во всех остальных случаях см. crossref:makefiles[options-configure_on, `OPT_CONFIGURE_ON` и `OPT_CONFIGURE_OFF`]. -Продемонстрируем это на примере. Вот часть файла [.filename]#japanese/xdvi300/Makefile#: +`CMAKE_ARGS`:: +Для аргументов, которые являются булевыми значениями (`on`, `off`, `true`, `false`, `0`, `1`), см. crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`]. ++ +Для всех остальных случаев см. crossref:makefiles[options-cmake_on, `OPT_CMAKE_ON` и `OPT_CMAKE_OFF`]. -[.programlisting] -.... -PORTNAME= xdvi -PORTVERSION= 17 -PKGNAMEPREFIX= ja- -PKGNAMESUFFIX= ${RESOLUTION} - : -# default -RESOLUTION?= 300 -.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ - ${RESOLUTION} != 300 && ${RESOLUTION} != 400 - @${ECHO_MSG} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\"" - @${ECHO_MSG} "Possible values are: 118, 240, 300 (default) and 400." - @${FALSE} -.endif -.... +`MESON_ARGS`:: +Для аргументов, принимающих `true` или `false`, см. crossref:makefiles[options-meson_true, `OPT_MESON_TRUE` и `OPT_MESON_FALSE`]. ++ +Для аргументов, принимающих `yes` или `no`, используйте crossref:makefiles[options-meson_yes, `OPT_MESON_YES` и `OPT_MESON_NO`]. ++ +Для аргументов, принимающих `enabled` или `disabled`, см. crossref:makefiles[options-meson_enabled, `OPT_MESON_ENABLED` и `OPT_MESON_DISABLED`]. ++ +Во всех остальных случаях используйте crossref:makefiles[options-meson_on, `OPT_MESON_ON` и `OPT_MESON_OFF`]. -Порт package:japanese/xdvi300[] содержит также все обычные патчи, файлы для пакета и так далее. Если вы введете здесь команду `make`, она возьмет в качестве разрешения значение по умолчанию (300) и построит порт обычным образом. +`QMAKE_ARGS`:: +См. crossref:makefiles[options-qmake_on, `OPT_QMAKE_ON` и `OPT_QMAKE_OFF`]. -Для другого разрешения приведем _полный_[.filename]#xdvi118/Makefile#: +`USE_*`:: +См. crossref:makefiles[options-use, `OPT_USE` и `OPT_USE_OFF`]. -[.programlisting] -.... -RESOLUTION= 118 -MASTERDIR= ${.CURDIR}/../xdvi300 +`*_DEPENDS`:: +См. crossref:makefiles[options-dependencies, Зависимости, `OPT_DEPTYPE` и `OPT_DEPTYPE_OFF`]. -.include "${MASTERDIR}/Makefile" -.... +`*` (Любая переменная):: +Наиболее используемые переменные имеют своих помощников, см. crossref:makefiles[options-variables, Замена Общих Переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`]. ++ +Для любой переменной без специального помощника см. crossref:makefiles[options-vars, `OPT_VARS` и `OPT_VARS_OFF`]. -([.filename]#xdvi240/Makefile# и [.filename]#xdvi400/Makefile# похожи). Задание `MASTERDIR` говорит [.filename]#bsd.port.mk#, что обычный набор подкаталогов типа `FILESDIR` и `SCRIPTDIR` находится в каталоге [.filename]#xdvi300#. Строчка `RESOLUTION=118` переопределят строку `RESOLUTION=300` в файле [.filename]#xdvi300/Makefile# и порт будет построен с разрешением 118. +Зависимости параметров:: +Когда для работы опции требуется другая опция, см. crossref:makefiles[options-implies, `OPT_IMPLIES`]. -[[makefile-manpages]] -== Страницы Справочника +Конфликты опций:: +Когда опция не может работать, если включена другая, см. crossref:makefiles[options-prevents, `OPT_PREVENTS` и `OPT_PREVENTS_MSG`]. -Если ваш порт определяет корнем для файлов Справочника каталог, отличный от `PREFIX`, вы можете использовать переменную `MANDIRS`, чтобы указать эти каталоги. Обратите внимание, что файлы страниц справочника следует размещать в [.filename]#pkg-plist# наряду с остальными файлами. `MANDIRS` предназначена для автоматического сжатия страниц справочника, так чтобы имена файлов оканчивались на [.filename]#.gz#. +Цели сборки:: +Когда для опции требуется дополнительная обработка, см. crossref:makefiles[options-targets, Дополнительные цели сборки, `_target_-_OPT_-on` и `_target_-_OPT_-off`]. -[[makefile-info]] -== Файлы в формате info +[[options_sub]] +==== `OPTIONS_SUB` -Если в вашем пакете нужна установка файлов GNU info, они должны быть перечислены в переменной `INFO` (без окончания `.info`), по записи на документ. Предполагается, что эти файлы устанавливаются в [.filename]#PREFIX/INFO_PATH#. Вы можете изменить `INFO_PATH`, если ваш пакет использует другое место для размещения. Однако, это не рекомендуется делать. Эти записи всего лишь содержат путь относительно [.filename]#PREFIX/INFO_PATH#. Например, package:lang/gcc34[] устанавливает файлы info в [.filename]#PREFIX/INFO_PATH/gcc34#, и в `INFO` будет что-то вроде этого: +Если `OPTIONS_SUB` установлен в `yes`, то каждая из опций, добавленных в `OPTIONS_DEFINE`, будет добавлена в `PLIST_SUB` и `SUB_LIST`, например: [.programlisting] .... -INFO= gcc34/cpp gcc34/cppinternals gcc34/g77 ... +OPTIONS_DEFINE= OPT1 +OPTIONS_SUB= yes .... -Перед регистрацией пакета соответствующий код установки/удаления будет автоматически добавлен во временный [.filename]#pkg-plist#. - -[[makefile-options]] -== Опции для Makefile - -Многие приложения могут быть построены в различных конфигурациях и с дополнительной функциональностью. Например, выбор естественного (человеческого) языка, GUI против командной строки или типа используемой базы данных. Пользователи могут нуждаться в различных конфигурациях, отличных от используемой по умолчанию, поэтому в системе портов предусмотрен механизм, позволяющий автору порта управлять сборкой того или иного варианта конфигурации. Правильная поддержка этих необязательных параметров облегчает пользователям жизнь и даёт два или более порта по цене одного. +эквивалентно: -=== Knobs - -==== `WITH__*_` и `WITHOUT__*_` - -Эти переменные предназначены для установки системным администратором. Многие из них стандартизованы в файле http://svnweb.FreeBSD.org/ports/head/KNOBS?view=markup[ports/KNOBS]. +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 -При создании порта не давайте имя для knob, специфичное для данного приложения. На примере порта Avahi, используйте `WITHOUT_MDNS` вместо `WITHOUT_AVAHI_MDNS`. +.include -[NOTE] -==== -Не стоит рассчитывать, что `WITH__*_` обязательно имеет соответствующую переменную `WITHOUT__*_`, и наоборот. В общем случае, предполагается значение по умолчанию. -==== +.if ${PORT_OPTIONS:MOPT1} +PLIST_SUB+= OPT1="" NO_OPT1="@comment " +SUB_LIST+= OPT1="" NO_OPT1="@comment " +.else +PLIST_SUB+= OPT1="@comment " NO_OPT1="" +SUB_LIST+= OPT1="@comment " NO_OPT1="" +.endif +.... [NOTE] ==== -Если обратное не указано, то проверяется только факт установки самих переменных, но не их конкретное значение типа `YES` или `NO`. +Значение `OPTIONS_SUB` игнорируется. Установка любого значения добавит записи `PLIST_SUB` и `SUB_LIST` для _всех_ опций. ==== -.Основные переменные `WITH__*_` и `WITHOUT__*_` -[cols="1,1", frame="none", options="header"] -|=== -| Переменная -| Значение - -|`WITH_OPENSSL_BASE` -|Использовать версию OpenSSL из базовой системы. - -|`WITH_OPENSSL_PORT` -|Устанавливает версию OpenSSL из package:security/openssl[], даже если в базовой системе последняя версия. -|=== - -==== Наименование KNOBS - -Портеры должны использовать так называемые knobs для помощи конечным пользователям и для поддержания количества наименований knobs в небольшом количестве. Список популярных названий knobs можно найти в файле http://svnweb.FreeBSD.org/ports/head/KNOBS?view=markup[KNOBS] +[[options-use]] +==== `OPT_USE` и `OPT_USE_OFF` -Названия knobs должны отражать, что это такое и что выполняет. Если у порта имеется библиотечный префикс в `PORTNAME`, то он должен присутствовать в названии knobs. +Когда выбрана опция _OPT_, для каждой пары `_ключ=значение_` в ``OPT_USE``, _значение_ добавляется к соответствующему `USE_KEY`. Если _значение_ содержит пробелы, замените их запятыми, и они будут преобразованы обратно в пробелы во время обработки. `OPT_USE_OFF` работает аналогично, но когда `OPT` _не_ выбрана. Например: -=== `OPTIONS` +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 +OPT1_USES= xorg +OPT1_USE= mysql=yes xorg=x11,xextproto,xext,xrandr +OPT1_USE_OFF= openssl=yes +.... -==== Описание +эквивалентно: -При установке порта переменные `OPTIONS_*` предоставляют пользователю окно диалога с отображением доступных параметров, с записью выбранных параметров в файл [.filename]#/var/db/ports/${UNIQUENAME}/options#. Эти опции повторно используются при следующем построении порта. +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 -Когда пользователь запускает `make config` (или запускает впервые `make build`), инфраструктура выполняет проверку существования файла [.filename]#/var/db/ports/${UNIQUENAME}/options#. Если этот файл не существует, то используются значения `OPTIONS_*` и отображается диалоговое окно, в котором эти параметры можно включить или выключить. Затем сохраняется файл опций [.filename]#options#, и выбранные переменные используются при построении порта. +.include -Если новая версия порта добавляет новые значения `OPTIONS`, то пользователю будет представлено окно диалога с сохраненными заполненными значениями старых `OPTIONS.` +.if ${PORT_OPTIONS:MOPT1} +USE_MYSQL= yes +USES+= xorg +USE_XORG= x11 xextproto xext xrandr +.else +USE_OPENSSL= yes +.endif +.... -`make showconfig` отображает сохраненную конфигурацию. Для удаления сохраненной конфигурации используйте `make rmconfig`. +[[options-configure-helpers]] +==== Помощники `CONFIGURE_ARGS` -==== Синтаксис +[[options-configure_enable]] +===== `OPT_CONFIGURE_ENABLE` -`OPTIONS_DEFINE` содержит список используемых `OPTIONS`. Они независимы друг от друга и не сгруппированы: +Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_CONFIGURE_ENABLE` к `CONFIGURE_ARGS` добавляется `--enable-_элемент_`. Если опция _OPT_ _не_ выбрана, к `CONFIGURE_ARGS` добавляется `--disable-_элемент_`. Необязательный аргумент может быть указан с помощью символа `=`. Этот аргумент добавляется только к опции конфигурации `--enable-_элемент_`. Например: [.programlisting] .... OPTIONS_DEFINE= OPT1 OPT2 +OPT1_CONFIGURE_ENABLE= test1 test2 +OPT2_CONFIGURE_ENABLE= test2=exhaustive .... -Далее после определения следует описание `OPTIONS` (не является обязательным, но настоятельно рекомендуется): +эквивалентно: [.programlisting] .... -OPT1_DESC= Describe OPT1 -OPT2_DESC= Describe OPT2 -OPT3_DESC= Describe OPT3 -OPT4_DESC= Describe OPT4 -OPT5_DESC= Describe OPT5 -OPT6_DESC= Describe OPT6 -.... +OPTIONS_DEFINE= OPT1 -[TIP] -==== +.include -[.filename]#ports/Mk/bsd.options.desc.mk# содержит описание множества наиболее используемых `OPTIONS`; переопределять их, как правило, не нужно. -==== +.if ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --enable-test1 --enable-test2 +.else +CONFIGURE_ARGS+= --disable-test1 --disable-test2 +.endif -[TIP] -==== +.if ${PORT_OPTIONS:MOPT2} +CONFIGURE_ARGS+= --enable-test2=exhaustive +.else +CONFIGURE_ARGS+= --disable-test2 +.endif +.... -При описании параметров старайтесь представить себя на месте пользователя: "Что это делает?" и "Для чего бы я захотел включить это?" Не делайте простое повторение названия. Например, описание параметра `NLS` как "include NLS support" ("включить поддержку NLS") не поможет пользователю, который уже видит название параметра, но может не знать, что это означает. Описав его как "Native Language Support via gettext utilities" ("Поддержка национального языка через утилиты gettext"), вы поможете пользователю гораздо больше. -==== +[[options-configure_with]] +===== `OPT_CONFIGURE_WITH` -`OPTIONS` можно группировать в виде переключателей, для которых разрешен выбор единственного варианта в каждой группе: +Когда выбрана опция _OPT_, для каждого _элемента_ в `_OPT_CONFIGURE_WITH` к `CONFIGURE_ARGS` добавляется `--with-_элемент_`. Если опция _OPT_ _не_ выбрана, к `CONFIGURE_ARGS` добавляется `--without-_элемент_`. Необязательный аргумент можно указать с помощью символа `=`. Этот аргумент добавляется только к опции конфигурации `--with-_элемент_`. Например: [.programlisting] .... -OPTIONS_SINGLE= SG1 -OPTIONS_SINGLE_SG1= OPT3 OPT4 +OPTIONS_DEFINE= OPT1 OPT2 +OPT1_CONFIGURE_WITH= test1 +OPT2_CONFIGURE_WITH= test2=exhaustive .... -`OPTIONS` можно группировать в виде переключателей, для которых разрешен выбор единственного варианта (или ни одного) в каждой группе: +эквивалентно: [.programlisting] .... -OPTIONS_RADIO= RG1 -OPTIONS_RADIO_RG1= OPT7 OPT8 -.... - -`OPTIONS` также можно группировать в виде списков со множественным выбором, для которых обязан быть включен _по крайней мере один_ из параметров: +OPTIONS_DEFINE= OPT1 OPT2 -[.programlisting] -.... -OPTIONS_MULTI= MG1 -OPTIONS_MULTI_MG1= OPT5 OPT6 -.... +.include -`OPTIONS` также можно группировать в виде списков со множественным выбором, для которых могут быть включены любые параметры, включая отсутствие выбора: +.if ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --with-test1 +.else +CONFIGURE_ARGS+= --without-test1 +.endif -[.programlisting] -.... -OPTIONS_GROUP= GG1 -OPTIONS_GROUP_GG1= OPT9 OPT10 +.if ${PORT_OPTIONS:MOPT2} +CONFIGURE_ARGS+= --with-test2=exhaustive +.else +CONFIGURE_ARGS+= --without-test2 +.endif .... -По умолчанию `OPTIONS` находится в выключенном положении, если при этом оно также отсутствует в списке `OPTIONS_DEFAULT`: +[[options-configure_on]] +===== `OPT_CONFIGURE_ON` и `OPT_CONFIGURE_OFF` + +Когда выбрана опция _OPT_, значение `OPT_CONFIGURE_ON`, если оно определено, добавляется к `CONFIGURE_ARGS`. `OPT_CONFIGURE_OFF` работает аналогично, но когда `OPT` _не_ выбрана. Например: [.programlisting] .... -OPTIONS_DEFAULT= OPT1 OPT3 OPT6 +OPTIONS_DEFINE= OPT1 +OPT1_CONFIGURE_ON= --add-test +OPT1_CONFIGURE_OFF= --no-test .... -Определения `OPTIONS` обязаны быть до подключения [.filename]#bsd.port.options.mk#. Переменные `PORT_OPTIONS` могут быть проверены только после подключения [.filename]#bsd.port.options.mk#. Вместо этого также можно использовать подключение [.filename]#bsd.port.pre.mk#, что все еще широко используется в портах, написанных до появления [.filename]#bsd.port.options.mk#. Но имейте в виду, что некоторые переменные, обычно, это некоторые флаги `USE_*`, после подключения [.filename]#bsd.port.pre.mk# будут работать не так, как этого от них ожидают. +эквивалентно: -[[ports-options-simple-use]] -.Простое использование `OPTIONS` -[example] -==== [.programlisting] .... -OPTIONS_DEFINE= FOO BAR -FOO_DESC= Enable option foo -BAR_DESC= Support feature bar +OPTIONS_DEFINE= OPT1 .include -.if ${PORT_OPTIONS:MFOO} -CONFIGURE_ARGS+=--with-foo +.if ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --add-test .else -CONFIGURE_ARGS+=--without-foo -.endif - -.if ${PORT_OPTIONS:MBAR} -RUN_DEPENDS+= bar:${PORTSDIR}/bar/bar +CONFIGURE_ARGS+= --no-test .endif - -.include .... +[TIP] ==== - -[[ports-options-check-unset]] -.Проверка незаданных значений `OPTIONS` -[example] +В большинстве случаев помощники crossref:makefiles[options-configure_enable, `OPT_CONFIGURE_ENABLE`] и crossref:makefiles[options-configure_with, `OPT_CONFIGURE_WITH`] предоставляют более короткий и понятный функционал. ==== + +[[options-cmake-helpers]] +==== Помощники `CMAKE_ARGS` + +[[options-cmake_on]] +===== `OPT_CMAKE_ON` и `OPT_CMAKE_OFF` + +Когда выбрана опция _OPT_, значение `OPT_CMAKE_ON`, если оно определено, добавляется к `CMAKE_ARGS`. `OPT_CMAKE_OFF` работает аналогично, но когда `OPT` _не_ выбрана. Например: + [.programlisting] .... -.if ! ${PORT_OPTIONS:MEXAMPLES} -CONFIGURE_ARGS+=--without-examples -.endif +OPTIONS_DEFINE= OPT1 +OPT1_CMAKE_ON= -DTEST:BOOL=true -DDEBUG:BOOL=true +OPT1_CMAKE_OFF= -DOPTIMIZE:BOOL=true .... -==== +эквивалентно: -[[ports-options-practical-use]] -.Пример реального использования `OPTIONS` -[example] -==== [.programlisting] .... -OPTIONS_DEFINE= EXAMPLES - -OPTIONS_SINGLE= BACKEND -OPTIONS_SINGLE_BACKEND= MYSQL PGSQL BDB - -OPTIONS_MULTI= AUTH -OPTIONS_MULTI_AUTH= LDAP PAM SSL - -EXAMPLES_DESC= Install extra examples -MYSQL_DESC= Use MySQL as backend -PGSQL_DESC= Use PostgreSQL as backend -BDB_DESC= Use Berkeley DB as backend -LDAP_DESC= Build with LDAP authentication support -PAM_DESC= Build with PAM support -SSL_DESC= Build with OpenSSL support - -OPTIONS_DEFAULT= PGSQL LDAP SSL +OPTIONS_DEFINE= OPT1 .include -.if ${PORT_OPTIONS:MPGSQL} -USE_PGSQL= yes -CONFIGURE_ARGS+= --with-postgres +.if ${PORT_OPTIONS:MOPT1} +CMAKE_ARGS+= -DTEST:BOOL=true -DDEBUG:BOOL=true .else -CONFIGURE_ARGS+= --without-postgres +CMAKE_ARGS+= -DOPTIMIZE:BOOL=true .endif +.... -.if ${PORT_OPTIONS:MICU} -LIB_DEPENDS+= libicuuc.so:${PORTSDIR}/devel/icu -.endif +[TIP] +==== -.if ! ${PORT_OPTIONS:MEXAMPLES} -CONFIGURE_ARGS+= --without-examples -.endif +См. crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`] для более краткой записи, когда значение является булевым. +==== -# Проверка других параметров OPTIONS +[[options-cmake_bool]] +===== `OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF` -.include +Когда выбрана опция _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`, когда опция _не_ выбрана. Например: + +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 +OPT1_CMAKE_BOOL= TEST DEBUG +OPT1_CMAKE_BOOL_OFF= OPTIMIZE .... -==== +эквивалентно: -==== Параметры по умолчанию +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 -Следующие параметры по умолчанию всегда включены. +.include -* `DOCS` - построение и установка документации. -* `NLS` - интернационализация. -* `EXAMPLES` - построение и установка примеров использования. -* `IPV6` - поддержка протокола IPv6. +.if ${PORT_OPTIONS:MOPT1} +CMAKE_ARGS+= -DTEST:BOOL=true -DDEBUG:BOOL=true \ + -DOPTIMIZE:BOOL=false +.else +CMAKE_ARGS+= -DTEST:BOOL=false -DDEBUG:BOOL=false \ + -DOPTIMIZE:BOOL=true +.endif +.... -[NOTE] -==== -Нет необходимости добавлять эти параметры в `OPTIONS_DEFAULT`. Тем не менее, чтобы отобразить их в окне диалога выбора параметров, они должны быть добавлены в `OPTIONS_DEFINE`. -==== +[[options-meson-helpers]] +==== Помощники `MESON_ARGS` -=== Функция автоматической активации +[[options-meson_on]] +===== `OPT_MESON_ON` и `OPT_MESON_OFF` -При использовании сценария GNU configure, следите за тем, какие необязательные функции задействуются посредством автоматической активации. Отключайте явным образом те необязательные функции, которые вы не хотели бы использовать, через передачу соответствующих `--without-xxx` или `--disable-xxx` в переменной `CONFIGURE_ARGS`. +Когда выбрана опция _OPT_, значение `OPT_MESON_ON`, если оно определено, добавляется к `MESON_ARGS`. `OPT_MESON_OFF` работает аналогичным образом, но когда `OPT` _не_ выбрана. Например: -.Неправильное управление опцией -[example] -==== [.programlisting] .... -.if ${PORT_OPTIONS:MFOO} -LIB_DEPENDS+= libfoo.so:${PORTSDIR}/devel/foo -CONFIGURE_ARGS+= --enable-foo -.endif -.... - -==== +OPTIONS_DEFINE= OPT1 +OPT1_MESON_ON= -Dopt=1 +OPT1_MESON_OFF= -Dopt=2 +.... -В приведенном выше примере представьте себе библиотеку libfoo, установленную в системе. Пользователь не желает, чтобы приложение использовало libfoo, и поэтому он выключает соответствующую опцию в диалоге `make config`. Но сценарий configure приложения определяет наличие библиотеки в системе и включает ее поддержку в итоговый исполняемый файл. Теперь, когда пользователь решит удалить libfoo из системы, система портов позволит это сделать (т.к. зависимость от libfoo не была записана), но приложение перестанет работать. +эквивалентно: -.Правильное управление опцией -[example] -==== [.programlisting] .... -.if ${PORT_OPTIONS:MFOO} -LIB_DEPENDS+= libfoo.so:${PORTSDIR}/devel/foo -CONFIGURE_ARGS+= --enable-foo +OPTIONS_DEFINE= OPT1 + +.include + +.if ${PORT_OPTIONS:MOPT1} +MESON_ARGS+= -Dopt=1 .else -CONFIGURE_ARGS+= --disable-foo +MESON_ARGS+= -Dopt=2 .endif .... -==== - -Во втором примере библиотека libfoo отключена явным образом. Сценарий configure не включает соответствующие функции в приложении, несмотря на присутствие библиотеки в системе. +[[options-meson_true]] +===== `OPT_MESON_TRUE` и `OPT_MESON_FALSE` -[NOTE] -==== -При определенных условиях сокращенный синтаксис записи условий может вызывать проблемы со сложными конструкциями. Если вы получаете ошибки, такие как `Malformed conditional`, то может быть использован альтернативный синтаксис. +Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_TRUE` добавляется `-D_элемент_=true` в `MESON_ARGS`. Если опция _OPT_ _не_ выбрана, добавляется `-D_элемент_=false` в `MESON_ARGS`. `OPT_MESON_FALSE` работает противоположным образом: `-D_элемент_=false` добавляется в `MESON_ARGS`, когда опция выбрана, и `-D_элемент_=true`, когда опция _не_ выбрана. Например: [.programlisting] .... -.if !empty(VARIABLE:MVALUE) -# as an alternative to -.if ${VARIABLE:MVALUE} +OPTIONS_DEFINE= OPT1 +OPT1_MESON_TRUE= test debug +OPT1_MESON_FALSE= optimize .... -==== +эквивалентно: + +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 + +.include -=== Вспомогательные макросы +.if ${PORT_OPTIONS:MOPT1} +MESON_ARGS+= -Dtest=true -Ddebug=true \ + -Doptimize=false +.else +MESON_ARGS+= -Dtest=false -Ddebug=false \ + -Doptimize=true +.endif +.... -Существует несколько макросов, упрощающих запись условных значений, которые отличаются в зависимости от набора параметров. +[[options-meson_yes]] +===== `OPT_MESON_YES` и `OPT_MESON_NO` -Если переменная `OPTIONS_SUB` имеет значение `yes`, то каждый из указанных в `OPTIONS_DEFINE` параметров будет добавлен в `PLIST_SUB`. Следующая запись: +Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_YES` добавляется `-D_элемент_=yes` к `MESON_ARGS`. Если опция _OPT_ _не_ выбрана, добавляется `-D_элемент_=no` к `MESON_ARGS`. `OPT_MESON_NO` работает противоположным образом: `-D_элемент_=no` добавляется к `MESON_ARGS`, когда опция выбрана, и `-D_элемент_=yes`, когда опция _не_ выбрана. Например: [.programlisting] .... OPTIONS_DEFINE= OPT1 -OPTIONS_SUB= yes +OPT1_MESON_YES= test debug +OPT1_MESON_NO= optimize .... -соответствует: +эквивалентно: [.programlisting] .... @@ -1924,21 +4119,27 @@ .include .if ${PORT_OPTIONS:MOPT1} -PLIST_SUB+= OPT1="" +MESON_ARGS+= -Dtest=yes -Ddebug=yes \ + -Doptimize=no .else -PLIST_SUB+= OPT1="@comment " +MESON_ARGS+= -Dtest=no -Ddebug=no \ + -Doptimize=yes .endif .... -`X_CONFIGURE_ENABLE` дописывает в `CONFIGURE_ARGS` строку `--enable-${X_CONFIGURE_ENABLE}` или `--disable-${X_CONFIGURE_ENABLE}` в соответствии с состоянием `X`. Следующая запись: +[[options-meson_enabled]] +===== `OPT_MESON_ENABLED` и `OPT_MESON_DISABLED` + +Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_ENABLED` добавляется `-D_элемент_=enabled` к `MESON_ARGS`. Когда опция _OPT_ _не_ выбрана, добавляется `-D_элемент_=disabled` к `MESON_ARGS`. `OPT_MESON_DISABLED` работает противоположным образом: `-D_элемент_=disabled` добавляется к `MESON_ARGS`, когда опция выбрана, и `-D_элемент_=enabled`, когда опция _не_ выбрана. Например: [.programlisting] .... OPTIONS_DEFINE= OPT1 -OPT1_CONFIGURE_ENABLE= test +OPT1_MESON_ENABLED= test +OPT1_MESON_DISABLED= debug .... -соответствует: +эквивалентно: [.programlisting] .... @@ -1947,21 +4148,25 @@ .include .if ${PORT_OPTIONS:MOPT1} -CONFIGURE_ARGS+= --enable-test +MESON_ARGS+= -Dtest=enabled -Ddebug=disabled .else -CONFIGURE_ARGS+= --disable-test +MESON_ARGS+= -Dtest=disabled -Ddebug=enabled .endif .... -`X_CONFIGURE_WITH` дописывает в `CONFIGURE_ARGS` строку `--with-${X_CONFIGURE_WITH}` или `--without-${X_CONFIGURE_WITH}` в соответствии с состоянием `X`. Следующая запись: +[[options-qmake_on]] +==== `OPT_QMAKE_ON` и `OPT_QMAKE_OFF` + +Когда выбрана опция _OPT_, значение `OPT_QMAKE_ON`, если оно определено, добавляется к `QMAKE_ARGS`. `OPT_QMAKE_OFF` работает аналогичным образом, но когда `OPT` _не_ выбрана. Например: [.programlisting] .... OPTIONS_DEFINE= OPT1 -OPT1_CONFIGURE_WITH= test +OPT1_QMAKE_ON= -DTEST:BOOL=true +OPT1_QMAKE_OFF= -DPRODUCTION:BOOL=true .... -соответствует: +эквивалентно: [.programlisting] .... @@ -1970,82 +4175,211 @@ .include .if ${PORT_OPTIONS:MOPT1} -CONFIGURE_ARGS+= --with-test +QMAKE_ARGS+= -DTEST:BOOL=true .else -CONFIGURE_ARGS+= --without-test +QMAKE_ARGS+= -DPRODUCTION:BOOL=true .endif .... -Значение переменной `X_CONFIGURE_ON` будет дописано в `CONFIGURE_ARGS` в соответствии с состоянием `X`. Следующая запись: +[[options-implies]] +==== `OPT_IMPLIES` + +Предоставляет способ добавления зависимостей между опциями. + +При выборе _OPT_ все перечисленные в этой переменной опции также будут выбраны. В качестве примера можно использовать описанный ранее crossref:makefiles[options-configure_enable,`OPT_CONFIGURE_ENABLE`]: [.programlisting] .... -OPTIONS_DEFINE= OPT1 -OPT1_CONFIGURE_ON= --add-test +OPTIONS_DEFINE= OPT1 OPT2 +OPT1_IMPLIES= OPT2 + +OPT1_CONFIGURE_ENABLE= opt1 +OPT2_CONFIGURE_ENABLE= opt2 .... -соответствует: +Эквивалентно: [.programlisting] .... -OPTIONS_DEFINE= OPT1 +OPTIONS_DEFINE= OPT1 OPT2 .include .if ${PORT_OPTIONS:MOPT1} -CONFIGURE_ARGS+= --add-test +CONFIGURE_ARGS+= --enable-opt1 +.else +CONFIGURE_ARGS+= --disable-opt1 +.endif + +.if ${PORT_OPTIONS:MOPT2} || ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --enable-opt2 +.else +CONFIGURE_ARGS+= --disable-opt2 .endif .... -Значение переменной `X_CONFIGURE_OFF` будет дописано в `CONFIGURE_ARGS` в соответствии с состоянием `X`. Следующая запись: +[[options-implies-ex1]] +.Простое использование `OPT_IMPLIES` +[example] +==== + +Этот порт имеет опцию `X11` и опцию `GNOME`, для сборки которой необходимо выбрать опцию `X11`. [.programlisting] .... -OPTIONS_DEFINE= OPT1 -OPT1_CONFIGURE_OFF= --no-test +OPTIONS_DEFINE= X11 GNOME +OPTIONS_DEFAULT= X11 + +X11_USES= xorg +X11_USE= xorg=xi,xextproto +GNOME_USE= gnome=gtk30 +GNOME_IMPLIES= X11 .... -соответствует: +==== + +[[options-prevents]] +==== `OPT_PREVENTS` и `OPT_PREVENTS_MSG` + +Предоставляет способ добавления конфликтов между опциями. + +Когда выбрана _OPT_, все опции, перечисленные в `OPT_PREVENTS`, должны быть сняты. Если задано `OPT_PREVENTS_MSG` и возникает конфликт, его содержимое будет показано с объяснением причины конфликта. Например: [.programlisting] .... -OPTIONS_DEFINE= OPT1 +OPTIONS_DEFINE= OPT1 OPT2 +OPT1_PREVENTS= OPT2 +OPT1_PREVENTS_MSG= OPT1 and OPT2 enable conflicting options +.... + +Примерно эквивалентно: + +[.programlisting] +.... +OPTIONS_DEFINE= OPT1 OPT2 + .include -.if ! ${PORT_OPTIONS:MOPT1} -CONFIGURE_ARGS+= --no-test + +.if ${PORT_OPTIONS:MOPT2} && ${PORT_OPTIONS:MOPT1} +BROKEN= Option OPT1 conflicts with OPT2 (select only one) .endif .... -Значение переменной `X_CMAKE_ON` будет дописано в `CMAKE_ARGS` в соответствии с состоянием `X`. Следующая запись: +Единственное отличие заключается в том, что первый вариант выведет ошибку после выполнения `make config`, предлагая изменить выбранные настройки. + +[[options-prevents-ex1]] +.Простое использование `OPT_PREVENTS` +[example] +==== + +Этот порт имеет опции `X509` и `SCTP`. Обе опции добавляют патчи, но патчи конфликтуют друг с другом, поэтому их нельзя выбрать одновременно. [.programlisting] .... -OPTIONS_DEFINE= OPT1 -OPT1_CMAKE_ON= -DTEST:BOOL=true +OPTIONS_DEFINE= X509 SCTP + +SCTP_PATCHFILES= ${PORTNAME}-6.8p1-sctp-2573.patch.gz:-p1 +SCTP_CONFIGURE_WITH= sctp + +X509_PATCH_SITES= http://www.roumenpetrov.info/openssh/x509/:x509 +X509_PATCHFILES= ${PORTNAME}-7.0p1+x509-8.5.diff.gz:-p1:x509 +X509_PREVENTS= SCTP +X509_PREVENTS_MSG= X509 and SCTP patches conflict +.... + +==== + +[[options-vars]] +==== `OPT_VARS` и `OPT_VARS_OFF` + +Предоставляет универсальный способ установки и добавления значений переменным. + +[WARNING] +==== +Перед использованием `OPT_VARS` и `OPT_VARS_OFF` проверьте, доступен ли более специфичный вспомогательный инструмент в crossref:makefiles[options-variables, Универсальная замена переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`]. +==== + +Когда выбрана опция _OPT_ и определены `OPT_VARS`, пары `_key_=_value_` и `_key_+=_value_` обрабатываются из `OPT_VARS`. Оператор `=` приводит к перезаписи существующего значения `KEY`, а `+=` добавляет к значению. `OPT_VARS_OFF` работает аналогично, но когда `OPT` _не_ выбрана. + +[.programlisting] .... +OPTIONS_DEFINE= OPT1 OPT2 OPT3 +OPT1_VARS= also_build+=bin1 +OPT2_VARS= also_build+=bin2 +OPT3_VARS= bin3_build=yes +OPT3_VARS_OFF= bin3_build=no -соответствует: +MAKE_ARGS= ALSO_BUILD="${ALSO_BUILD}" BIN3_BUILD="${BIN3_BUILD}" +.... + +эквивалентно: [.programlisting] .... -OPTIONS_DEFINE= OPT1 +OPTIONS_DEFINE= OPT1 OPT2 + +MAKE_ARGS= ALSO_BUILD="${ALSO_BUILD}" BIN3_BUILD="${BIN3_BUILD}" .include .if ${PORT_OPTIONS:MOPT1} -CMAKE_ARGS+= -DTEST:BOOL=true +ALSO_BUILD+= bin1 +.endif + +.if ${PORT_OPTIONS:MOPT2} +ALSO_BUILD+= bin2 +.endif + +.if ${PORT_OPTIONS:MOPT2} +BIN3_BUILD= yes +.else +BIN3_BUILD= no .endif .... -Значение переменной `X_CMAKE_OFF` будет дописано в `CMAKE_ARGS` в соответствии с состоянием `X`. Следующая запись: +[IMPORTANT] +==== +Значения, содержащие пробелы, должны быть заключены в кавычки: + +[.programlisting] +.... +OPT_VARS= foo="bar baz" +.... + +Это связано с тем, как man:make[1] обрабатывает пробелы при раскрытии переменных. Когда `OPT_VARS= foo=bar baz` раскрывается, переменная в итоге содержит две строки: `foo=bar` и `baz`. Однако отправитель, вероятно, предполагал, что должна быть только одна строка — `foo=bar baz`. Заключение значения в кавычки предотвращает использование пробела в качестве разделителя. + +Также _не_ добавляйте лишние пробелы после знака `_var_=` и перед значением, это также разобьёт строку на две части. _Это не сработает_: + +[.programlisting] +.... +OPT_VARS= foo= bar +.... + +==== + +[[options-dependencies]] +==== Зависимости, `OPT_DEPTYPE` и `OPT_DEPTYPE_OFF` + +Для любого из этих типов зависимостей: + +* `PKG_DEPENDS` +* `EXTRACT_DEPENDS` +* `PATCH_DEPENDS` +* `FETCH_DEPENDS` +* `BUILD_DEPENDS` +* `LIB_DEPENDS` +* `RUN_DEPENDS` + +Когда выбрана опция _OPT_, значение `OPT_DEPTYPE`, если оно определено, добавляется к `DEPTYPE`. `OPT_DEPTYPE_OFF` работает аналогично, но когда _не_ выбрана `OPT`. Например: [.programlisting] .... OPTIONS_DEFINE= OPT1 -OPT1_CMAKE_OFF= -DTEST:BOOL=false +OPT1_LIB_DEPENDS= liba.so:devel/a +OPT1_LIB_DEPENDS_OFF= libb.so:devel/b .... -соответствует: +эквивалентно: [.programlisting] .... @@ -2053,42 +4387,74 @@ .include -.if ! ${PORT_OPTIONS:MOPT1} -CMAKE_ARGS+= -DTEST:BOOL=false +.if ${PORT_OPTIONS:MOPT1} +LIB_DEPENDS+= liba.so:devel/a +.else +LIB_DEPENDS+= libb.so:devel/b .endif .... -Для любой из следующих переменных: +[[options-variables]] +==== Универсальная замена переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF` + +Для любой из этих переменных: * `ALL_TARGET` +* `BINARY_ALIAS` +* `BROKEN` * `CATEGORIES` * `CFLAGS` +* `CONFIGURE_ENV` +* `CONFLICTS` +* `CONFLICTS_BUILD` +* `CONFLICTS_INSTALL` * `CPPFLAGS` * `CXXFLAGS` -* `CONFIGURE_ENV` +* `DESKTOP_ENTRIES` * `DISTFILES` +* `EXTRACT_ONLY` * `EXTRA_PATCHES` +* `GH_ACCOUNT` +* `GH_PROJECT` +* `GH_SUBDIR` +* `GH_TAGNAME` +* `GH_TUPLE` +* `GL_ACCOUNT` +* `GL_COMMIT` +* `GL_PROJECT` +* `GL_SITE` +* `GL_SUBDIR` +* `GL_TUPLE` +* `IGNORE` +* `INFO` * `INSTALL_TARGET` * `LDFLAGS` +* `LIBS` * `MAKE_ARGS` * `MAKE_ENV` -* `PATCH_SITES` +* `MASTER_SITES` * `PATCHFILES` -* `PLIST_FILES` +* `PATCH_SITES` * `PLIST_DIRS` -* `PLIST_DIRSTRY` +* `PLIST_FILES` +* `PLIST_SUB` +* `PORTDOCS` +* `PORTEXAMPLES` +* `SUB_FILES` +* `SUB_LIST` +* `TEST_TARGET` * `USES` -Значение переменной `X_ABOVEVARIABLE` будет дописано в `ABOVEVARIABLE` в соответствии с состоянием `X`. Следующая запись: +Когда выбрана опция _OPT_, значение `OPT_ABOVEVARIABLE`, если оно определено, добавляется к `_ABOVEVARIABLE_`. `OPT_ABOVEVARIABLE_OFF` работает аналогично, но когда `OPT` _не_ выбрана. Например: [.programlisting] .... OPTIONS_DEFINE= OPT1 OPT1_USES= gmake -OPT1_CFLAGS= -DTEST +OPT1_CFLAGS_OFF= -DTEST .... -соответствует: +эквивалентно: [.programlisting] .... @@ -2098,170 +4464,289 @@ .if ${PORT_OPTIONS:MOPT1} USES+= gmake +.else CFLAGS+= -DTEST .endif .... -Если установлена `X_ABOVEVARIABLE_OFF`, то флаг `ABOVEVARIABLE` будет автоматически выставлен при выключенном параметре `X`. Например: +[NOTE] +==== +Некоторые переменные отсутствуют в этом списке, в частности `PKGNAMEPREFIX` и `PKGNAMESUFFIX`. Это сделано намеренно. Порт _не должен_ изменять своё имя при изменении набора опций. +==== -[.programlisting] -.... -OPTIONS_DEFINE= OPT1 -OPT1_USES_OFF=gmake -.... +[WARNING] +==== +Некоторые из этих переменных, по крайней мере `ALL_TARGET`, `DISTFILES` и `INSTALL_TARGET`, получают свои значения по умолчанию _после_ обработки опций. -соответствует: +С такими строками в [.filename]#Makefile#: [.programlisting] .... -OPTIONS_DEFINE= OPT1 - -.include +ALL_TARGET= all -.if ! ${PORT_OPTIONS:MOPT1} -USES+= gmake -.endif +DOCS_ALL_TARGET= doc .... -Для любого из следующих типов зависимости: - -* `PKG_DEPENDS` -* `EXTRACT_DEPENDS` -* `PATCH_DEPENDS` -* `FETCH_DEPENDS` -* `BUILD_DEPENDS` -* `LIB_DEPENDS` -* `RUN_DEPENDS` +Если опция `DOCS` включена, `ALL_TARGET` будет иметь конечное значение `all doc`; если опция отключена, значение будет `all`. -Значение переменной `X_ABOVEVARIABLE` будет дописано в `ABOVEVARIABLE` в соответствии с состоянием `X`. Следующая запись: +Только со строкой помощника опций в [.filename]#Makefile#: [.programlisting] .... -OPTIONS_DEFINE= OPT1 -OPT1_LIB_DEPENDS= liba.so:${PORTSDIR}/devel/a +DOCS_ALL_TARGET= doc .... -соответствует: +Если опция `DOCS` включена, `ALL_TARGET` будет иметь окончательное значение `doc`; если опция отключена, значение будет `all`. +==== + +[[options-targets]] +==== Дополнительные цели сборки, `_target_-_OPT_-on` и `_target_-_OPT_-off` + +Эти цели в [.filename]#Makefile# могут принимать дополнительные опциональные цели сборки: + +* `pre-fetch` +* `do-fetch` +* `post-fetch` +* `pre-extract` +* `do-extract` +* `post-extract` +* `pre-patch` +* `do-patch` +* `post-patch` +* `pre-configure` +* `do-configure` +* `post-configure` +* `pre-build` +* `do-build` +* `post-build` +* `pre-install` +* `do-install` +* `post-install` +* `post-stage` +* `pre-package` +* `do-package` +* `post-package` + +Когда выбрана опция _OPT_, цель `_TARGET_-_OPT_-on`, если она определена, выполняется после `_TARGET_`. `_TARGET_-_OPT_-off` работает аналогично, но когда `OPT` _не_ выбрана. Например: [.programlisting] .... OPTIONS_DEFINE= OPT1 -.include +post-patch-OPT1-on: + @${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile -.if ${PORT_OPTIONS:MOPT1} -LIB_DEPENDS+= liba.so:${PORTSDIR}/devel/a -.endif +post-patch-OPT1-off: + @${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile .... -Если установлена `X_ABOVEVARIABLE_OFF`, то зависимость типа `ABOVEVARIABLE` будет добавлена при выключенном параметре `X`. Например: +эквивалентно: [.programlisting] .... OPTIONS_DEFINE= OPT1 -OPT1_LIB_DEPENDS_OFF= liba.so:${PORTSDIR}/devel/a -.... - -соответствует: - -[.programlisting] -.... -OPTIONS_DEFINE= OPT1 .include -. if ! ${PORT_OPTIONS:MOPT1} -LIB_DEPENDS+= liba.so:${PORTSDIR}/devel/a +post-patch: +.if ${PORT_OPTIONS:MOPT1} + @${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile +.else + @${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile .endif .... [[makefile-wrkdir]] -== Задание рабочего каталога +== Указание рабочего каталога -Каждый порт распаковывается в рабочий каталог, который должен быть доступным для записи. В системе портов по умолчанию `DISTFILES` распаковываются в каталог с именем `${DISTNAME}`. Другими словами, если вы задали: +Каждый порт извлекается в рабочий каталог, который должен быть доступен для записи. Система портов по умолчанию распаковывает `DISTFILES` в каталог с именем `${DISTNAME}`. Другими словами, если в [.filename]#Makefile# указано: [.programlisting] .... PORTNAME= foo -PORTVERSION= 1.0 +DISTVERSION= 1.0 .... -то дистрибутивные файлы порта содержат каталог верхнего уровня, [.filename]#foo-1.0#, и все файлы расположены в этом каталоге. +то файлы дистрибутива порта содержат каталог верхнего уровня [.filename]#foo-1.0#, и остальные файлы находятся в этом каталоге. -Если это не ваш случай, то имеется несколько переменных, которые вы можете переопределить. +Если нужно расположение файлов в других каталогах, можно переопределить ряд переменных. +[[makefile-wrksrc]] === `WRKSRC` -Эта переменная задаёт имя каталога, который создаётся при распаковке исходных файлов приложения. В нашем предыдущем примере если бы распаковка происходила в каталог с именем [.filename]#foo# (а не [.filename]#foo-1.0#), то вы должны написать: +Переменная указывает имя каталога, который создается при распаковке distfiles приложения. Чтобы в нашем предыдущем примере распаковка происходила в каталог с именем [.filename]#foo# (а не [.filename]#foo-1.0#), напишите: [.programlisting] .... WRKSRC= ${WRKDIR}/foo .... -или, как вариант +или можно [.programlisting] .... WRKSRC= ${WRKDIR}/${PORTNAME} .... +[[makefile-wrksrc_subdir]] +=== `WRKSRC_SUBDIR` + +Если исходные файлы, необходимые для порта, находятся в подкаталоге распакованного дистрибутива, присвойте `WRKSRC_SUBDIR` имя этого каталога. + +[.programlisting] +.... +WRKSRC_SUBDIR= src +.... + +[[makefile-no_wrksubdir]] === `NO_WRKSUBDIR` -Если порт вообще не распаковывается ни в какой каталог, то вы должны задать для этого переменную `NO_WRKSUBDIR`. +Если порт не распаковывается в подкаталог вообще, установите `NO_WRKSUBDIR`, чтобы указать это. [.programlisting] .... NO_WRKSUBDIR= yes .... +[NOTE] +==== +Поскольку `WRKDIR` является единственной директорией, которая должна быть доступна для записи во время сборки, и используется для хранения многих файлов, фиксирующих состояние сборки, извлечение порта будет принудительно выполнено в поддиректорию. +==== + [[conflicts]] -== Разрешение конфликтов +== Обработка конфликтов -Для регистрации конфликта между пакетами и портами используются три различные переменные: `CONFLICTS`, `CONFLICTS_INSTALL` и `CONFLICTS_BUILD`. +Существует три различные переменные для регистрации конфликтов между пакетами и портами: `CONFLICTS`, `CONFLICTS_INSTALL` и `CONFLICTS_BUILD`. [NOTE] ==== -Переменные регистрации конфликта автоматически определяют переменную `IGNORE`, которая более подробно описана в crossref:porting-dads[dads-noinstall, "Пометка неустанавливаемого порта как `BROKEN`, `FORBIDDEN` или `IGNORE` "]. +Эти переменные автоматически устанавливают переменную `IGNORE`, более подробно описанную в crossref:porting-dads[dads-noinstall,Пометка порта как неустанавливаемого с помощью `BROKEN`, `FORBIDDEN` или `IGNORE`]. +==== + +При удалении одного из нескольких конфликтующих портов рекомендуется оставлять `CONFLICTS` в тех других портах на несколько месяцев, чтобы учесть пользователей, которые обновляются лишь время от времени. + +[[conclicts-conflicts_install]] +`CONFLICTS_INSTALL`:: +Если пакет не может сосуществовать с другими пакетами (из-за конфликтов файлов, несовместимости во время выполнения и т.д.). Проверка `CONFLICTS_INSTALL` выполняется после этапа сборки и перед этапом установки. + +[[conclicts-conflicts_build]] +`CONFLICTS_BUILD`:: +Если порт не может быть собран, когда уже установлены другие определённые порты. Конфликты сборки не фиксируются в результирующем пакете. + +[[conclicts-conflicts]] +`CONFLICTS`:: +Если порт не может быть собран, когда определённый порт уже установлен и итоговый пакет не может сосуществовать с другим пакетом. Проверка `CONFLICTS` выполняется до этапа сборки и до этапа установки. + +Каждый элемент, разделённый пробелами, в значениях переменных `CONFLICTS*` сопоставляется с пакетами(кроме того, который собирается) с использованием правил раскрытия шаблонов имен файлов в оболочке shell. Это позволяет перечислить все варианты порта в списке конфликтов вместо необходимости исключать собираемый вариант из этого списка. Например, если установлен git-lite, `CONFLICTS_INSTALL=git git-lite` позволит выполнить: +[source, shell] +.... +% make -C devel/git FLAVOR=lite all deinstall install +.... + +Но следующая команда сообщит о конфликте, так как установленное имя базового пакета — `git-lite`, а `git` будет собран, но не может быть установлен вместе с `git-lite`: +[source, shell] +.... +% make -C devel/git FLAVOR=default all deinstall install +.... + +Без этой функции Makefile потребовал бы по одному `_flavor__CONFLICTS_INSTALL` для каждого варианта, перечисляя все остальные варианты. + +Наиболее распространённым содержимым одной из этих переменных является база пакета другого порта. База пакета — это имя пакета без указания версии, её можно получить, выполнив команду `make -V PKGBASE`. + +[[conflicts-ex1]] +.Простой пример использования `CONFLICTS*` +[example] +==== + +Пакет package:dns/bind99[] не может быть установлен, если присутствует пакет package:dns/bind910[], так как они устанавливают одинаковые файлы. Сначала соберите базовый пакет для использования: + +[source, shell] +.... +% make -C dns/bind99 -V PKGBASE +bind99 +% make -C dns/bind910 -V PKGBASE +bind910 +.... + +Затем добавьте в [.filename]#Makefile# пакета package:dns/bind99[]: + +[.programlisting] +.... +CONFLICTS_INSTALL= bind910 +.... + +И добавьте в [.filename]#Makefile# пакета package:dns/bind910[]: + +[.programlisting] +.... +CONFLICTS_INSTALL= bind99 +.... + +==== + +Иногда только определенные версии другого порта несовместимы. В этом случае используйте полное имя пакета, включая версию. При необходимости используйте подстановочные символы шаблонов имён файлов оболочки, такие как `*` и `?`, чтобы охватить все необходимые версии. + +[[conflicts-ex2]] +.Использование `CONFLICTS*` с шаблонами имён файлов. +[example] ==== -При удалении одного из конфликтующих портов целесообразно сохранить записи `CONFLICTS` в тех других портах в течении нескольких месяцев, чтобы позаботиться о тех пользователей, которые обновляются от случая к случаю. +В версиях с 2.0 по 2.4.1_2 пакет package:deskutils/gnotime[] устанавливал встроенную версию пакета package:databases/qof[]. -=== `CONFLICTS_INSTALL` +Чтобы отразить это прошлое, [.filename]#Makefile# пакета package:databases/qof[] содержит: -Если ваш пакет не может существовать вместе с другими (из-за конфликта файлов, несовместимости времени выполнения и так далее), перечислите имена остальных пакетов в переменной `CONFLICTS_INSTALL`. Здесь вы можете использовать шаблоны командного интерпретатора, такие как `*` и `?`. Имена пакетов должны выглядеть так же, как в [.filename]#/var/db/pkg#. Пожалуйста, убедитесь, что `CONFLICTS_INSTALL` не содержит пакет самого этого порта. В противном случае не будет работать установка с использованием переменной `FORCE_PKG_REGISTER`. Проверка CONFLICTS_INSTALL выполняется после процесса сборки и до процесса установки. +[.programlisting] +.... +CONFLICTS_INSTALL= gnotime-2.[0-3]* \ + gnotime-2.4.0* gnotime-2.4.1 \ + gnotime-2.4.1_[12] +.... -=== `CONFLICTS_BUILD` +Первый элемент соответствует версиям `2.0`–`2.3`, второй — всем редакциям `2.4.0`, третий — точно версии `2.4.1`, а последний — первой и второй редакциям версии `2.4.1`. -Если ваш порт не может быть собран, когда уже установлен другой, перечислите имена остальных портов в переменной `CONFLICTS_BUILD`. Здесь вы можете использовать шаблоны командного интерпретатора, такие как `*` и `?`. Имена пакетов должны выглядеть так же, как в [.filename]#/var/db/pkg#. Проверка CONFLICTS_BUILD выполняется до процесса сборки. Конфликты сборки в получаемом пакете не записываются. +package:deskutils/gnotime[] не имеет строки конфликтов, потому что его текущая версия не конфликтует ни с чем другим. +==== -=== `CONFLICTS` +Переменная `DISABLE_CONFLICTS` может быть временно установлена при выполнении целей, на которые не влияют конфликты. Эту переменную не следует устанавливать в Makefiles портов. -Если ваш порт не может быть собран, когда уже установлен другой, а получаемый пакет не может существовать вместе с другими, перечислите имена остальных пакетов в переменной `CONFLICTS`. Здесь вы можете использовать шаблоны командного интерпретатора, такие как `*` и `?`. Имена пакетов должны выглядеть так же, как в [.filename]#/var/db/pkg#. Пожалуйста, убедитесь, что `CONFLICTS` не содержит пакет самого этого порта. В противном случае не будет работать установка с использованием переменной `FORCE_PKG_REGISTER`. Проверка CONFLICTS выполняется до процессов сборки и установки. +[source, shell] +.... +% make -DDISABLE_CONFLICTS patch +.... [[install]] == Установка файлов +[IMPORTANT] +==== +Фаза `install` очень важна для конечного пользователя, так как она добавляет файлы в его систему. Все дополнительные команды, выполняемые в целях `*-install` [.filename]#Makefile# порта, должны выводиться на экран. _Не_ заглушайте эти команды с помощью `@` или `.SILENT`. +==== + [[install-macros]] === Макросы `INSTALL_*` -Используйте макросы, которые есть в файле [.filename]#bsd.port.mk# для обеспечения правильных прав доступа файлов в целях `*-install` порта. Устанавливайте права владения напрямую в [.filename]#pkg-plist# через соответствующие записи `@owner owner` и `@group group`. Эти операторы работают до момента их переопределения или до конца [.filename]#pkg-plist#, поэтому не забывайте их сбрасывать, когда они больше не нужны. По умолчанию владение устанавливается для `root:wheel`. +Используйте макросы, предоставленные в [.filename]#bsd.port.mk#, чтобы обеспечить корректные режимы файлов в целях `*-install` порта. Устанавливайте владельца напрямую в [.filename]#pkg-plist# в соответствующих записях, таких как `@(_владелец_,_группа_,)`, `@owner _владелец_` и `@group _группа_`. Эти операторы действуют до переопределения или до конца [.filename]#pkg-plist#, поэтому не забудьте сбросить их, когда они больше не нужны. Владелец по умолчанию — `root:wheel`. Дополнительную информацию см. в crossref:plist[plist-keywords-base,Базовые Ключевые Слова]. + +* `INSTALL_PROGRAM` — команда для установки бинарных исполняемых файлов. +* `INSTALL_SCRIPT` — команда для установки исполняемых скриптов. +* `INSTALL_LIB` — это команда для установки общих библиотек (но не статических библиотек). +* `INSTALL_KLD` — это команда для установки загружаемых модулей ядра. Некоторые архитектуры не поддерживают удаление символов из модулей, поэтому используйте эту команду вместо `INSTALL_PROGRAM`. +* `INSTALL_DATA` — это команда для установки общих данных, включая статические библиотеки. +* `INSTALL_MAN` — это команда для установки man-страниц и другой документации (она ничего не сжимает). -* `INSTALL_PROGRAM` - это команда для установки бинарных выполнимых файлов. -* `INSTALL_SCRIPT` - это команда для установки выполнимых скриптов. -* `INSTALL_LIB` - это команда для установки динамических библиотек. -* `INSTALL_KLD` - это команда для установки загружаемых модулей ядра. Некоторые архитектуры предпочитают, чтобы для модулей сохранялись отладочные сведения, по этой причине используйте эту команду вместо `INSTALL_PROGRAM`. -* `INSTALL_DATA` - это команда для установки совместно используемых файлов данных. -* `INSTALL_MAN` - это команда для установки страниц Справочника и другой документации (никаких файлов она не сжимает). +Эти переменные передаются команде man:install[1] с соответствующими флагами для каждой ситуации. -В основе работы этих макросов лежит команда `install` со всеми соответствующими флагами. Смотрите пример их использования ниже. +[IMPORTANT] +==== +Не используйте `INSTALL_LIB` для установки статических библиотек, так как их удаление делает их бесполезными. Вместо этого используйте `INSTALL_DATA`. +==== [[install-strip]] -=== Удаление отладочной информации в бинарных файлах и динамических библиотеках +=== Удаление символов из бинарных файлов и разделяемых библиотек -Не удаляйте отладочную информацию из бинарных файлов вручную, если вы это делали. Во всех двоичных файлах отладочная информация должна быть удалена, и макрос `INSTALL_PROGRAM` выполнит установку и удаление отладочной информации одновременно (обратитесь к следующему разделу). Макрос `INSTALL_LIB` делает то же самое для динамических библиотек. +Установленные бинарные файлы должны быть очищены от отладочной информации. Не очищайте бинарные файлы вручную, если это не является абсолютно необходимым. Макрос `INSTALL_PROGRAM` устанавливает и очищает бинарный файл одновременно. Макрос `INSTALL_LIB` делает то же самое с разделяемыми библиотеками. -Если вам нужно удалить отладочную информацию из файла без использования макросов `INSTALL_PROGRAM` и `INSTALL_LIB`, то это можно сделать при помощи `${STRIP_CMD}`. Обычно это делается внутри цели `post-install`. К примеру: +Когда файл необходимо очистить, но ни макросы `INSTALL_PROGRAM`, ни `INSTALL_LIB` не подходят, `${STRIP_CMD}` очищает программу или разделяемую библиотеку. Обычно это делается в цели `post-install`. Например: [.programlisting] .... @@ -2269,24 +4754,33 @@ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xdl .... -Удаление отладочной информации из нескольких файлов: +Когда необходимо удалить отладочную информацию из нескольких файлов: [.programlisting] .... post-install: - .for l in geometry media body track world +.for l in geometry media body track world ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}-${l}.so.0 - .endfor +.endfor .... -Для проверки того, удалена ли отладочная информация из файла, используйте man:file[1]. Для двоичных файлов man:file[1] печатает `stripped` или `not stripped`. Кроме того, man:strip[1] определяет, была ли уже удалена из программы отладочная информация, и в этом случае просто завершает свою работу. +Используйте man:file[1] для файла, чтобы определить, был ли он подвергнут удалению символов. man:file[1] сообщает, что бинарные файлы либо `stripped` (удалены символы), либо `not stripped` (символы не удалены). Кроме того, man:strip[1] обнаружит программы, которые уже были подвергнуты удалению символов, и завершит работу без ошибок. + +[IMPORTANT] +==== +Когда определён `WITH_DEBUG`, elf-файлы _не должны_ быть очищены. + +Переменные (`STRIP_CMD`, `INSTALL_PROGRAM`, `INSTALL_LIB`, ...) и crossref:uses[uses,`USES`], предоставляемые фреймворком, обрабатывают это автоматически. + +Некоторое программное обеспечение добавляет `-s` к своим `LDFLAGS`. В этом случае либо удалите `-s`, если установлен `WITH_DEBUG`, либо удалите его безусловно и используйте `STRIP_CMD` в `post-install`. +==== [[install-copytree]] === Установка целого дерева файлов -Иногда должно быть установлено большое количество файлов с сохранением их иерархической организации. Например, копирование дерева каталогов целиком из `WRKSRC` в целевой каталог внутри `PREFIX`. Обратите внимание, что `PREFIX`, `EXAMPLESDIR`, `DATADIR` и другие переменные пути всегда должны предваряться `STAGEDIR`, чтобы не ломать staging (смотрите <>). +Иногда необходимо установить большое количество файлов с сохранением их иерархической структуры. Например, копирование всего дерева каталогов из `WRKSRC` в целевой каталог под `PREFIX`. Обратите внимание, что `PREFIX`, `EXAMPLESDIR`, `DATADIR` и другие переменные путей всегда должны предваряться `STAGEDIR` для соблюдения процедуры промежуточной установки (см. crossref:special[staging,Промежуточная установка]). -Для этой ситуации существует два макроса. Преимущество от использования этих макросов вместо команды `cp` в том, что они гарантируют установку правильного владельца и прав на конечные файлы. Первый макрос, `COPYTREE_BIN`, делает все устанавливаемые файлы исполняемыми, что подходит для установки в [.filename]#PREFIX/bin#. Второй макрос, `COPYTREE_SHARE`, не устанавливает на файлы права исполнения, и, таким образом, подходит для установки файлов внутри каталога [.filename]#PREFIX/share#. +Для этой ситуации существуют два макроса. Преимущество использования этих макросов вместо `cp` заключается в том, что они гарантируют целевым файлам правильные значения владельца и разрешений. Первый макрос, `COPYTREE_BIN`, устанавливает все установленные файлы как исполняемые, что делает его подходящим для установки в [.filename]#PREFIX/bin#. Второй макрос, `COPYTREE_SHARE#, не устанавливает исполняемые разрешения для файлов и, следовательно, подходит для установки файлов в [.filename]#PREFIX/share#. [.programlisting] .... @@ -2295,7 +4789,7 @@ (cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}) .... -В этом примере устанавливается содержимое каталога [.filename]#examples# из установочных файлов производителя в надлежащее место для примеров вашего порта. +Этот пример установит содержимое каталога [.filename]#examples# из дистрибутива вендора в соответствующее расположение примеров порта. [.programlisting] .... @@ -2304,9 +4798,9 @@ (cd ${WRKSRC}/temperatures && ${COPYTREE_SHARE} "June July August" ${STAGEDIR}${DATADIR}/summer) .... -А в этом примере будут установлены данные летних месяцев в подкаталог [.filename]#summer# каталога [.filename]#DATADIR#. +И этот пример установит данные летних месяцев в подкаталог [.filename]#summer# каталога [.filename]#DATADIR#. -В качестве третьего параметра в макросе `COPYTREE_*` можно передать дополнительные параметры `find`. Например, чтобы в первом примере установить все файлы кроме файлов Makefile, можно использовать следующую команду. +Дополнительные аргументы `find` могут быть переданы через третий аргумент макросов `COPYTREE_*`. Например, чтобы установить все файлы из первого примера, кроме Makefiles, можно использовать следующие команды. [.programlisting] .... @@ -2316,50 +4810,51 @@ ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} "! -name Makefile") .... -Эти макросы не производят добавление устанавливаемых файлов в [.filename]#pkg-plist#. Они должны быть добавлены туда вручную. Необязательные файлы документации (`PORTDOCS`, смотрите <>) и примеров (`PORTEXAMPLES`) всегда должны предваряться в [.filename]#pkg-plist# префиксами `%%PORTDOCS%%` или `%%PORTEXAMPLES%%`. +Эти макросы не добавляют установленные файлы в [.filename]#pkg-plist#. Их необходимо добавлять вручную. Для дополнительной документации (`PORTDOCS`, см. crossref:makefiles[install-documentation, Установка дополнительной документации]) и примеров (`PORTEXAMPLES`), префиксы `%%PORTDOCS%%` или `%%PORTEXAMPLES%%` должны быть добавлены в [.filename]#pkg-plist#. [[install-documentation]] === Установка дополнительной документации -Если с вашим программным обеспечением поставляется некоторая документация, отличающаяся от стандартных страниц Справочника и файлов info, которая, как вы думаете, будет полезна пользователям, установите ее в каталог [.filename]#PREFIX/shared/doc#. Это может быть сделано, как и в предыдущем разделе, в цели `post-install`. +Если у программного обеспечения есть документация, помимо стандартных страниц man и info, которая может быть полезна пользователю, установите её в `DOCSDIR`. Это можно сделать, как и в предыдущем пункте, в цели `post-install`. -Создайте для вашего порта новый каталог. Имя каталога должно соответствовать тому, что представляет из себя порт. Обычно это означает `PORTNAME`. Однако, если вы думаете, что пользователь захочет иметь разные версии порта, установленные одновременно, то вы можете использовать полное имя `PKGNAME`. +Создайте новый каталог для порта. Имя каталога — `DOCSDIR`. Обычно оно равно `PORTNAME`. Однако, если пользователю может потребоваться установка разных версий порта одновременно, можно использовать полное имя `PKGNAME`. -Поскольку устанавливаются только файлы, перечисленные в [.filename]#pkg-plist#, безопасным способом будет устанавливать документацию в `STAGEDIR` всегда (смотрите crossref:special[staging, Staging]). Следовательно, блоки `.if` нужны только для файлов достаточно большого размера, установка которых влечёт значительные накладные расходы на операции ввода/вывода. +Поскольку устанавливаются только файлы, перечисленные в [.filename]#pkg-plist#, можно безопасно всегда устанавливать документацию в `STAGEDIR` (см. crossref:special[staging,Staging]). Поэтому блоки `.if` требуются только в тех случаях, когда устанавливаемые файлы достаточно велики, чтобы вызвать значительные накладные расходы на ввод-вывод. [.programlisting] .... post-install: ${MKDIR} ${STAGEDIR}${DOCSDIR} - ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/docs/xvdocs.ps ${STAGEDIR}${DOCSDIR} .... -Вот несколько полезных переменных и то, как они преобразуются по умолчанию при использовании в [.filename]#Makefile#: +С другой стороны, если в порте есть опция DOCS, установите документацию в цели `post-install-DOCS-on`. Эти цели описаны в crossref:makefiles[options-targets, Дополнительные цели сборки, `_target_-_OPT_-on` и `_target_-_OPT_-off`]. + +Вот несколько полезных переменных и их стандартное раскрытие при использовании в [.filename]#Makefile#: -* `DATADIR` преобразуется в [.filename]#PREFIX/shared/PORTNAME#. -* `DATADIR_REL` преобразуется в [.filename]#share/PORTNAME#. -* `DOCSDIR` преобразуется в [.filename]#PREFIX/shared/doc/PORTNAME#. -* `DOCSDIR_REL` преобразуется в [.filename]#share/doc/PORTNAME#. -* `EXAMPLESDIR` преобразуется в [.filename]#PREFIX/shared/examples/PORTNAME#. -* `EXAMPLESDIR_REL` преобразуется в [.filename]#share/examples/PORTNAME#. +* `DATADIR` раскрывается в [.filename]#PREFIX/share/PORTNAME#. +* `DATADIR_REL` раскрывается в [.filename]#share/PORTNAME#. +* `DOCSDIR` раскрывается в [.filename]#PREFIX/share/doc/PORTNAME#. +* `DOCSDIR_REL` раскрывается в [.filename]#share/doc/PORTNAME#. +* `EXAMPLESDIR` раскрывается в [.filename]#PREFIX/share/examples/PORTNAME#. +* `EXAMPLESDIR_REL` раскрывается в [.filename]#share/examples/PORTNAME#. [NOTE] ==== -Параметр `DOCS` управляет установкой дополнительной документации в `DOCSDIR`. Это не относится к стандартным страницам справочника и страницам info. Все, что устанавливается в `DATADIR` и `EXAMPLESDIR`, соответственно управляется через параметры `DATA` и `EXAMPLES`. +Опция `DOCS` управляет только дополнительной документацией, устанавливаемой в `DOCSDIR`. Она не применяется к стандартным man-страницам и info-страницам. Содержимое, устанавливаемое в `EXAMPLESDIR`, контролируется опцией `EXAMPLES`. ==== -Эти переменные экспортируются в `PLIST_SUB`. Их значения появятся там в виде имён путей относительно [.filename]#PREFIX#, если это возможно. То есть [.filename]#share/doc/PORTNAME# в списке сборки по умолчанию будет заменен на `%%DOCSDIR%%`, и так далее. (Дополнительную информацию о подстановке в [.filename]#pkg-plist# можно найти <>.) +Эти переменные экспортируются в `PLIST_SUB`. Их значения будут представлены там в виде путей относительно [.filename]#PREFIX#, если это возможно. То есть, [.filename]#share/doc/PORTNAME# будет заменено на `%%DOCSDIR%%` в списке упаковки по умолчанию и так далее. (Подробнее о подстановках в [.filename]#pkg-plist# см. crossref:plist[plist-sub,здесь].) -Все условно устанавливаемые файлы и каталоги с документацией должны быть перечислены в файле [.filename]#pkg-plist# с префиксом `%%PORTDOCS%%`, например: +Все условно устанавливаемые файлы и каталоги документации включаются в [.filename]#pkg-plist# с префиксом `%%PORTDOCS%%`, например: [.programlisting] .... %%PORTDOCS%%%%DOCSDIR%%/AUTHORS %%PORTDOCS%%%%DOCSDIR%%/CONTACT -%%PORTDOCS%%@dirrm %%DOCSDIR%% .... -В качестве альтернативы перечислению файлов документации в файле [.filename]#pkg-plist#, порт может указать в переменной `PORTDOCS` список имён файлов и глобальных шаблонов командного процессора для добавления в окончательный список сборки. Имена будут задаваться относительно `DOCSDIR`. Таким образом, порт, использующий `PORTDOCS` и нестандартное местоположение документации, должен задавать соответствующим образом и `DOCSDIR`. Если каталог указан в `PORTDOCS` или соответствует шаблону для этой переменной, то полное поддерево с входящими в него файлами и каталогами будет регистрироваться в окончательном списке сборки. Если параметр `DOCS` не задан, то файлы и каталоги, перечисленные в `PORTDOCS`, не будут установлены и добавлены в список сборки порта. Установка документации в `PORTDOCS`, как это показано выше, остаётся за самим портом. Типичный пример использования `PORTDOCS` выглядит следующим образом: +В качестве альтернативы перечислению файлов документации в [.filename]#pkg-plist#, порт может установить переменную `PORTDOCS` в список имён файлов и шаблонов имен файлов shell для добавления в итоговый список упаковки. Имена будут относительны к `DOCSDIR`. Поэтому порт, использующий `PORTDOCS` и нестандартное расположение документации, должен соответствующим образом установить `DOCSDIR`. Если в `PORTDOCS` указан каталог или он соответствует шаблону из этой переменной, всё поддерево содержащихся файлов и каталогов будет зарегистрировано в итоговом списке упаковки. Если опция `DOCS` отключена, файлы и каталоги, перечисленные в `PORTDOCS`, не будут установлены или добавлены в список упаковки порта. Установка документации в `PORTDOCS`, как показано выше, остаётся на усмотрение самого порта. Типичный пример использования `PORTDOCS`: [.programlisting] .... @@ -2368,12 +4863,57 @@ [NOTE] ==== -Эквивалентами `PORTDOCS` для файлов, устанавливаемых в `DATADIR` и `EXAMPLESDIR` являются `PORTDATA` и `PORTEXAMPLES` соответственно. +Эквивалентами `PORTDOCS` для файлов, установленных в `DATADIR` и `EXAMPLESDIR`, являются `PORTDATA` и `PORTEXAMPLES` соответственно. -Во время установки выводится содержимое [.filename]#pkg-message#. За подробной информацией обратитесь к <>. Файл [.filename]#pkg-message# не нужно добавлять в [.filename]#pkg-plist#. +Содержимое файла [.filename]#pkg-message# отображается при установке. Подробности см. в разделе crossref:pkg-files[porting-message,использование файла [.filename]#pkg-message#]. Файл [.filename]#pkg-message# не нужно добавлять в [.filename]#pkg-plist#. ==== [[install-subdirs]] -=== Подкаталоги внутри PREFIX +=== Подкаталоги в `PREFIX` + +Попробуйте сделать так, чтобы порт размещал файлы в правильных подкаталогах `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# в качестве места назначения для своих файлов. + +[[binary-alias]] +== Используйте `BINARY_ALIAS` для переименования команд вместо исправления сборки + +Когда определена переменная `BINARY_ALIAS`, будут созданы символьные ссылки на указанные команды в каталоге, который будет добавлен в начало переменной `PATH`. + +Используйте это для замены жёстко заданных команд, от которых зависит этап сборки, без необходимости исправлять какие-либо файлы сборки. + +[[binary-alias-ex1]] +.Использование `BINARY_ALIAS` для предоставления `gsed` в качестве `sed` +[example] +==== +Некоторые порты ожидают, что `sed` будет вести себя как GNU sed и используют возможности, которые man:sed[1] не предоставляет. GNU sed доступен в пакете package:textproc/gsed[] на FreeBSD. + +Используйте `BINARY_ALIAS` для замены `sed` на `gsed` на время сборки: + +[.programlisting] +.... +BUILD_DEPENDS= gsed:textproc/gsed +... +BINARY_ALIAS= sed=gsed +.... + +==== + +[[binary-alias-ex2]] +.Использование `BINARY_ALIAS` для создания псевдонимов жестко заданных команд `python3` +[example] +==== +Порт, в котором есть жёсткая ссылка на `python3` в скриптах сборки, требует его наличия в `PATH` во время сборки. Используйте `BINARY_ALIAS` для создания псевдонима, указывающего на нужный бинарный файл Python 3: + +[.programlisting] +.... +USES= python:3.4+,build +... +BINARY_ALIAS= python3=${PYTHON_CMD} +.... + +См. crossref:special[using-python,Использование Python] для получения дополнительной информации о `USES=python`. +==== -Попробуйте поместить все файлы порта в правильных подкаталогах каталога `PREFIX`. Некоторые порты игнорируют все установки и помещают все в подкаталог с именем порта, что неправильно. Также многие порты помещают все, кроме бинарных файлов, файлов заголовков и страниц Справочника, в подкаталог каталога [.filename]#lib#, что не очень хорошо работает с подходом BSD. Многие файлы должны быть перемещены в одно из следующих местоположений: [.filename]#etc# (настроечные/конфигурационные файлы), [.filename]#libexec# (выполнимые файлы, запускаемые из других программ), [.filename]#sbin# (исполнимые файлы для администраторов/менеджеров системы), [.filename]#info# (документация в формате info для просмотрщика info) или [.filename]#share# (независимые от архитектуры файлы). Обратитесь к man:hier[7] для прояснения деталей; правила, покрывающие [.filename]#/usr#, достаточно хорошо подходят также и к [.filename]#/usr/local#. Исключением являются порты, имеющие дело с "новостями" USENET. Они могут использовать каталог [.filename]#PREFIX/news# для установки своих файлов. +[NOTE] +==== +Бинарные псевдонимы создаются после обработки зависимостей, указанных через `BUILD_DEPENDS` и `LIB_DEPENDS`, но до цели `configure`. Это приводит к различным ограничениям. Например, программы, установленные через `TEST_DEPENDS`, нельзя использовать для создания бинарного псевдонима, так как тестовые зависимости, указанные таким образом, обрабатываются после создания бинарных псевдонимов. +==== diff --git a/documentation/content/ru/books/porters-handbook/makefiles/_index.po b/documentation/content/ru/books/porters-handbook/makefiles/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/makefiles/_index.po @@ -0,0 +1,14066 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-08-19 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1 +#, no-wrap +msgid "Configuring the Makefile for FreeBSD Ports" +msgstr "Настройка Makefile для портов FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1 +#, no-wrap +msgid "Chapter 5. Configuring the Makefile" +msgstr "Глава 5. Настройка Makefile" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:14 +#, no-wrap +msgid "Configuring the Makefile" +msgstr "Настройка Makefile" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:55 +msgid "" +"Configuring the [.filename]#Makefile# is pretty simple, and again we suggest " +"looking at existing examples before starting. Also, there is a " +"crossref:porting-samplem[porting-samplem,sample Makefile] in this handbook, " +"so take a look and please follow the ordering of variables and sections in " +"that template to make the port easier for others to read." +msgstr "" +"Настройка [.filename]#Makefile# довольно проста, и мы снова рекомендуем " +"изучить существующие примеры перед началом. Также в этом руководстве есть " +"crossref:porting-samplem[porting-samplem,пример Makefile], поэтому " +"ознакомьтесь с ним и, пожалуйста, соблюдайте порядок переменных и разделов в " +"этом шаблоне, чтобы порт был удобнее для чтения другими." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:57 +msgid "" +"Consider these problems in sequence during the design of the new " +"[.filename]#Makefile#:" +msgstr "" +"Рассмотрите эти проблемы последовательно при разработке нового " +"[.filename]#Makefile#:" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:59 +#, no-wrap +msgid "The Original Source" +msgstr "Оригинальный Источник" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:63 +msgid "" +"Does it live in `DISTDIR` as a standard ``gzip``ped tarball named something " +"like [.filename]#foozolix-1.2.tar.gz#? If so, go on to the next step. If " +"not, the distribution file format might require overriding one or more of " +"`DISTVERSION`, `DISTNAME`, `EXTRACT_CMD`, `EXTRACT_BEFORE_ARGS`, " +"`EXTRACT_AFTER_ARGS`, `EXTRACT_SUFX`, or `DISTFILES`." +msgstr "" +"Находится ли он в `DISTDIR` в виде стандартного архива ``gzip`` с именем " +"вроде [.filename]#foozolix-1.2.tar.gz#? Если да, переходите к следующему " +"шагу. Если нет, возможно, для формата имени файла дистрибутива потребуется " +"переопределить одну или несколько переменных: `DISTVERSION`, `DISTNAME`, " +"`EXTRACT_CMD`, `EXTRACT_BEFORE_ARGS`, `EXTRACT_AFTER_ARGS`, `EXTRACT_SUFX` " +"или `DISTFILES`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:66 +msgid "" +"In the worst case, create a custom `do-extract` target to override the " +"default. This is rarely, if ever, necessary." +msgstr "" +"В худшем случае создайте пользовательскую цель `do-extract`, чтобы " +"переопределить стандартную. Это редко, если вообще когда-либо, необходимо." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:68 +#, no-wrap +msgid "Naming" +msgstr "Именование" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:71 +msgid "" +"The first part of the port's [.filename]#Makefile# names the port, describes " +"its version number, and lists it in the correct category." +msgstr "" +"Первая часть [.filename]#Makefile# порта указывает его название, описывает " +"номер версии и помещает его в соответствующую категорию." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:73 +#, no-wrap +msgid "`PORTNAME`" +msgstr "`PORTNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:77 +msgid "" +"Set `PORTNAME` to the base name of the software. It is used as the base for " +"the FreeBSD package, and for crossref:makefiles[makefile-" +"distname,`DISTNAME`]." +msgstr "" +"Установите `PORTNAME` как базовое имя программы. Оно используется в качестве " +"основы для пакета FreeBSD и для crossref:makefiles[makefile-" +"distname,`DISTNAME`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:84 +msgid "" +"The package name must be unique across the entire ports tree. Make sure " +"that the `PORTNAME` is not already in use by an existing port, and that no " +"other port already has the same `PKGBASE`. If the name has already been " +"used, add either crossref:makefiles[porting-pkgnameprefix-" +"suffix,`PKGNAMEPREFIX` or `PKGNAMESUFFIX`]." +msgstr "" +"Название пакета должно быть уникальным во всём дереве портов. Убедитесь, что " +"`PORTNAME` ещё не используется существующим портом и что никакой другой порт " +"уже не имеет такой же `PKGBASE`. Если имя уже занято, добавьте либо " +"crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`, либо " +"`PKGNAMESUFFIX`]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:87 +#, no-wrap +msgid "Versions, `DISTVERSION` _or_ `PORTVERSION`" +msgstr "Версии, `DISTVERSION` _или_ `PORTVERSION`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:90 +msgid "Set `DISTVERSION` to the version number of the software." +msgstr "Установите `DISTVERSION` в номер версии программы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:94 +msgid "" +"`PORTVERSION` is the version used for the FreeBSD package. It will be " +"automatically derived from `DISTVERSION` to be compatible with FreeBSD's " +"package versioning scheme. If the version contains _letters_, it might be " +"needed to set `PORTVERSION` and not `DISTVERSION`." +msgstr "" +"`PORTVERSION` — это версия, используемая для пакета FreeBSD. Она будет " +"автоматически вычислена из `DISTVERSION` в соответствии со схемой " +"версионирования пакетов FreeBSD. Если версия содержит _буквы_, может " +"потребоваться задать `PORTVERSION` вместо `DISTVERSION`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:98 +msgid "Only one of `PORTVERSION` and `DISTVERSION` can be set at a time." +msgstr "" +"Только одна из переменных `PORTVERSION` и `DISTVERSION` может быть " +"установлена одновременно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:101 +msgid "" +"From time to time, some software will use a version scheme that is not " +"compatible with how `DISTVERSION` translates in `PORTVERSION`." +msgstr "" +"Время от времени некоторые программы используют схему версионирования, " +"которая несовместима с тем, как `DISTVERSION` преобразуется в `PORTVERSION`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:106 +msgid "" +"When updating a port, it is possible to use the `-t` argument of man:pkg-" +"version[8] to check if the new version is greater or lesser than before. " +"See below on how to use man:pkg-version[8] to compare versions." +msgstr "" +"При обновлении порта можно использовать аргумент `-t` утилиты man:pkg-" +"version[8], чтобы проверить, является ли новая версия больше или меньше " +"предыдущей. Смотрите ниже, как использовать man:pkg-version[8] для сравнения " +"версий." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:109 +#, no-wrap +msgid "Using man:pkg-version[8] to Compare Versions" +msgstr "Использование man:pkg-version[8] для сравнения версий" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:113 +msgid "" +"`pkg version -t` takes two versions as arguments, it will respond with `<`, " +"`=` or `>` if the first version is less, equal, or more than the second " +"version, respectively." +msgstr "" +"`pkg version -t` принимает две версии в качестве аргументов и возвращает " +"`<`, `=` или `>`, если первая версия меньше, равна или больше второй версии " +"соответственно." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:119 +#, no-wrap +msgid "" +"% pkg version -t 1.2 1.3\n" +"< <.>\n" +"% pkg version -t 1.2 1.2\n" +msgstr "" +"% pkg version -t 1.2 1.3\n" +"< <.>\n" +"% pkg version -t 1.2 1.2\n" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:119 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:121 +#, no-wrap +msgid "<.>" +msgstr "<.>" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:121 +msgid "% pkg version -t 1.2 1.2.0" +msgstr "% pkg version -t 1.2 1.2.0" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:128 +msgid "" +"% pkg version -t 1.2 1.2.p1 > <.> % pkg version -t 1.2.a1 1.2.b1 < <.> % pkg " +"version -t 1.2 1.2p1 < <.>" +msgstr "" +"% pkg version -t 1.2 1.2.p1\n" +"> <.>\n" +"% pkg version -t 1.2.a1 1.2.b1\n" +"< <.>\n" +"% pkg version -t 1.2 1.2p1\n" +"< <.>" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:131 +msgid "`1.2` is before `1.3`." +msgstr "`1.2` идёт перед `1.3`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:132 +msgid "`1.2` and `1.2` are equal as they have the same version." +msgstr "`1.2` и `1.2` равны, так как имеют одинаковую версию." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:133 +msgid "`1.2` and `1.2.0` are equal as nothing equals zero." +msgstr "`1.2` и `1.2.0` равны, так как ноль ничего не значит." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:134 +msgid "`1.2` is after `1.2.p1` as `.p1`, think \"pre-release 1\"." +msgstr "" +"`1.2` идёт после `1.2.p1`, так как `.p1` означает «pre-release 1» " +"(предрелизная версия 1)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:135 +msgid "" +"`1.2.a1` is before `1.2.b1`, think \"alpha\" and \"beta\", and `a` is before " +"`b`." +msgstr "" +"`1.2.a1` предшествует `1.2.b1`, представьте \"alpha\" и \"beta\", где `a` " +"идёт перед `b`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:136 +msgid "" +"`1.2` is before `1.2p1` as `2p1`, think \"2, patch level 1\" which is a " +"version after any `2.X` but before `3`." +msgstr "" +"`1.2` находится перед `1.2p1`, так же как `2p1` (читается как \"2, уровень " +"исправления 1\") — это версия, следующая после любой `2.X`, но перед `3`." + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:141 +msgid "" +"In here, the `a`, `b`, and `p` are used as if meaning \"alpha\", \"beta\" or " +"\"pre-release\" and \"patch level\", but they are only letters and are " +"sorted alphabetically, so any letter can be used, and they will be sorted " +"appropriately." +msgstr "" +"Здесь `a`, `b` и `p` используются так, как если бы они означали \"альфа\", " +"\"бета\" или \"пре-релиз\" и \"уровень патча\", но на самом деле это просто " +"буквы, которые сортируются в алфавитном порядке, поэтому можно использовать " +"любую букву, и они будут отсортированы соответствующим образом." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:145 +#, no-wrap +msgid "Examples of `DISTVERSION` and the Derived `PORTVERSION`" +msgstr "Примеры `DISTVERSION` и производной `PORTVERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:149 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:499 +#, no-wrap +msgid "DISTVERSION" +msgstr "DISTVERSION" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:151 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:500 +#, no-wrap +msgid "PORTVERSION" +msgstr ".PORTVERSION" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:152 +#, no-wrap +msgid "0.7.1d" +msgstr "0.7.1d" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:154 +#, no-wrap +msgid "0.7.1.d" +msgstr "0.7.1.d" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:155 +#, no-wrap +msgid "10Alpha3" +msgstr "10Alpha3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:157 +#, no-wrap +msgid "10.a3" +msgstr "10.a3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:158 +#, no-wrap +msgid "3Beta7-pre2" +msgstr "3Beta7-pre2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:160 +#, no-wrap +msgid "3.b7.p2" +msgstr "3.b7.p2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:161 +#, no-wrap +msgid "8:f_17" +msgstr "8:f_17" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:162 +#, no-wrap +msgid "8f.17" +msgstr "8f.17" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:165 +#, no-wrap +msgid "Using `DISTVERSION`" +msgstr "Использование `DISTVERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:169 +msgid "" +"When the version only contains numbers separated by dots, dashes or " +"underscores, use `DISTVERSION`." +msgstr "" +"Если версия содержит только числа, разделённые точками, тире или " +"подчёркиваниями, используйте `DISTVERSION`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:174 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:177 +msgid "It will generate a `PORTVERSION` of `1.2.4`." +msgstr "Это сгенерирует `PORTVERSION` равный `1.2.4`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:180 +#, no-wrap +msgid "Using `DISTVERSION` When the Version Starts with a Letter or a Prefix" +msgstr "Использование `DISTVERSION` когда версия начинается с буквы или префикса" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:184 +msgid "" +"When the version starts or ends with a letter, or a prefix or a suffix that " +"is not part of the version, use `DISTVERSIONPREFIX`, `DISTVERSION`, and " +"`DISTVERSIONSUFFIX`." +msgstr "" +"Когда версия начинается или заканчивается буквой, или префиксом, или " +"суффиксом, которые не являются частью версии, используйте " +"`DISTVERSIONPREFIX`, `DISTVERSION` и `DISTVERSIONSUFFIX`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:186 +msgid "If the version is `v1.2-4`:" +msgstr "Если версия `v1.2-4`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:192 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t1_2_4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t1_2_4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:196 +msgid "" +"Some of the time, projects using GitHub will use their name in their " +"versions. For example, the version could be `nekoto-1.2-4`:" +msgstr "" +"Некоторые проекты, использующие GitHub, могут включать своё название в " +"версии. Например, версия может выглядеть как `nekoto-1.2-4`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:202 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2_4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2_4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:205 +msgid "" +"Those projects also sometimes use some string at the end of the version, for " +"example, `1.2-4_RELEASE`:" +msgstr "" +"Эти проекты также иногда используют строку в конце версии, например, " +"`1.2-4_RELEASE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:211 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:214 +msgid "Or they do both, for example, `nekoto-1.2-4_RELEASE`:" +msgstr "Или они делают и то, и другое, например, `nekoto-1.2-4_RELEASE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:221 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:224 +msgid "" +"`DISTVERSIONPREFIX` and `DISTVERSIONSUFFIX` will not be used while " +"constructing `PORTVERSION`, but only used in `DISTNAME`." +msgstr "" +"`DISTVERSIONPREFIX` и `DISTVERSIONSUFFIX` не будут использоваться при " +"формировании `PORTVERSION`, а только в `DISTNAME`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:226 +msgid "All will generate a `PORTVERSION` of `1.2.4`." +msgstr "Все сгенерируют `PORTVERSION` равный `1.2.4`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:229 +#, no-wrap +msgid "Using `DISTVERSION` When the Version Contains Letters Meaning \"alpha\", \"beta\", or \"pre-release\"" +msgstr "Использование `DISTVERSION`, когда версия содержит буквы, означающие \"alpha\", \"beta\" или \"pre-release\"" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:233 +msgid "" +"When the version contains numbers separated by dots, dashes or underscores, " +"and letters are used to mean \"alpha\", \"beta\" or \"pre-release\", which " +"is, before the version without the letters, use `DISTVERSION`." +msgstr "" +"Если версия содержит числа, разделённые точками, тире или подчёркиваниями, а " +"буквы используются для обозначения \"альфа\", \"бета\" или \"предварительной " +"версии\" (то есть до версии без букв), используйте `DISTVERSION`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:238 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-pre4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-pre4\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:244 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2p4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2p4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:247 +msgid "" +"Both will generate a `PORTVERSION` of `1.2.p4` which is before than 1.2. " +"man:pkg-version[8] can be used to check that fact:" +msgstr "" +"Оба варианта создадут `PORTVERSION` равную `1.2.p4`, что предшествует версии " +"1.2. Для проверки этого факта можно использовать man:pkg-version[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:252 +#, no-wrap +msgid "" +"% pkg version -t 1.2.p4 1.2\n" +"<\n" +msgstr "" +"% pkg version -t 1.2.p4 1.2\n" +"<\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:257 +#, no-wrap +msgid "Not Using `DISTVERSION` When the Version Contains Letters Meaning \"Patch Level\"" +msgstr "Не использовать `DISTVERSION`, если версия содержит буквы, означающие \"уровень патча\"" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:261 +msgid "" +"When the version contains letters that are not meant as \"alpha\", \"beta\", " +"or \"pre\", but more in a \"patch level\", and meaning after the version " +"without the letters, use `PORTVERSION`." +msgstr "" +"Если версия содержит буквы, которые не означают \"alpha\", \"beta\" или " +"\"pre\", а скорее указывают на \"уровень исправления\" и следуют после " +"версии без букв, используйте `PORTVERSION`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:266 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"PORTVERSION=\t1.2p4\n" +msgstr "" +"PORTNAME= nekoto\n" +"PORTVERSION=\t1.2p4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:270 +msgid "" +"In this case, using `DISTVERSION` is not possible because it would generate " +"a version of `1.2.p4` which would be before `1.2` and not after. man:pkg-" +"version[8] will verify this:" +msgstr "" +"В данном случае использование `DISTVERSION` невозможно, так как это приведёт " +"к генерации версии `1.2.p4`, которая будет считаться более ранней, чем " +"`1.2`, а не более поздней. man:pkg-version[8] подтвердит это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:277 +#, no-wrap +msgid "" +"% pkg version -t 1.2 1.2.p4\n" +"> <.>\n" +"% pkg version -t 1.2 1.2p4\n" +"< <.>\n" +msgstr "" +"% pkg version -t 1.2 1.2.p4\n" +"> <.>\n" +"% pkg version -t 1.2 1.2p4\n" +"< <.>\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:280 +msgid "`1.2` is after `1.2.p4`, which is _wrong_ in this case." +msgstr "`1.2` идёт после `1.2.p4`, что в данном случае _неверно_." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:281 +msgid "`1.2` is before `1.2p4`, which is what was needed." +msgstr "`1.2` находится перед `1.2p4`, что и требовалось." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:287 +msgid "" +"For some more advanced examples of setting `PORTVERSION`, when the " +"software's versioning is really not compatible with FreeBSD's, or `DISTNAME` " +"when the distribution file does not contain the version itself, see " +"crossref:makefiles[makefile-distname, `DISTNAME`]." +msgstr "" +"Для более сложных примеров настройки `PORTVERSION`, когда версия " +"программного обеспечения действительно несовместима с FreeBSD, или " +"`DISTNAME`, когда файл дистрибутива не содержит саму версию, см. " +"crossref:makefiles[makefile-distname, `DISTNAME`]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:289 +#, no-wrap +msgid "`PORTREVISION` and `PORTEPOCH`" +msgstr "`PORTREVISION` и `PORTEPOCH`" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:292 +#, no-wrap +msgid "`PORTREVISION`" +msgstr "`PORTREVISION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:296 +msgid "" +"`PORTREVISION` is a monotonically increasing value which is reset to 0 with " +"every increase of `DISTVERSION`, typically every time there is a new " +"official vendor release. If `PORTREVISION` is non-zero, the value is " +"appended to the package name. Changes to `PORTREVISION` are used by " +"automated tools like man:pkg-version[8] to determine that a new package is " +"available." +msgstr "" +"`PORTREVISION` — это монотонно возрастающее значение, которое сбрасывается в " +"0 при каждом увеличении `DISTVERSION`, обычно при каждом новом официальном " +"выпуске от поставщика. Если `PORTREVISION` не равен нулю, его значение " +"добавляется к имени пакета. Изменения `PORTREVISION` используются " +"автоматизированными инструментами, такими как man:pkg-version[8], для " +"определения доступности нового пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:300 +msgid "" +"`PORTREVISION` must be increased each time a change is made to the port that " +"changes the generated package in any way. That includes changes that only " +"affect a package built with non-default crossref:makefiles[makefile-" +"options,options]." +msgstr "" +"`PORTREVISION` должен быть увеличен каждый раз, когда в порт вносятся " +"изменения, которые так или иначе влияют на сгенерированный пакет. Это " +"включает изменения, затрагивающие только пакеты, собранные с нестандартными " +"crossref:makefiles[makefile-options,опциями]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:302 +msgid "Examples of when `PORTREVISION` must be bumped:" +msgstr "Примеры случаев, когда необходимо увеличить `PORTREVISION`:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:304 +msgid "" +"Addition of patches to correct security vulnerabilities, bugs, or to add new " +"functionality to the port." +msgstr "" +"Добавление исправлений для устранения уязвимостей безопасности, ошибок или " +"для добавления новой функциональности в порт." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:305 +msgid "" +"Changes to the port [.filename]#Makefile# to enable or disable compile-time " +"options in the package." +msgstr "" +"Изменения в [.filename]#Makefile# порта для включения или отключения " +"параметров сборки в пакете." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:306 +msgid "" +"Changes in the packing list or the install-time behavior of the package. For " +"example, a change to a script which generates initial data for the package, " +"like man:ssh[1] host keys." +msgstr "" +"Изменения в списке файлов пакета или в поведении во время установки. " +"Например, изменение скрипта, который генерирует начальные данные для пакета, " +"такие как ключи хоста man:ssh[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:307 +msgid "" +"Version bump of a port's shared library dependency (in this case, someone " +"trying to install the old package after installing a newer version of the " +"dependency will fail since it will look for the old libfoo.x instead of " +"libfoo.(x+1))." +msgstr "" +"Увеличение версии зависимости порта от общей библиотеки (в данном случае, " +"попытка установить старый пакет после установки более новой версии " +"зависимости завершится неудачей, так как будет искаться старая версия " +"libfoo.x вместо libfoo.(x+1))." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:308 +msgid "" +"Silent changes to the port distfile which have significant functional " +"differences. For example, changes to the distfile requiring a correction to " +"[.filename]#distinfo# with no corresponding change to `DISTVERSION`, where a " +"`diff -ru` of the old and new versions shows non-trivial changes to the code." +msgstr "" +"Тихие изменения в дистрибутивном файле порта, которые имеют значительные " +"функциональные отличия. Например, изменения в дистрибутивном файле, " +"требующие корректировки файла [.filename]#distinfo# без соответствующего " +"изменения `DISTVERSION`, когда сравнение `diff -ru` старой и новой версий " +"показывает нетривиальные изменения в коде." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:309 +msgid "Changes to `MAINTAINER`." +msgstr "Изменения в `MAINTAINER`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:311 +msgid "Examples of changes which do not require a `PORTREVISION` bump:" +msgstr "Примеры изменений, которые не требуют увеличения `PORTREVISION`:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:313 +msgid "" +"Style changes to the port skeleton with no functional change to what appears " +"in the resulting package." +msgstr "" +"Стилевые изменения в каркасе портов без функциональных изменений в итоговом " +"пакете." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:314 +msgid "" +"Changes to `MASTER_SITES` or other functional changes to the port which do " +"not affect the resulting package." +msgstr "" +"Изменения в `MASTER_SITES` или другие функциональные изменения порта, " +"которые не влияют на итоговый пакет." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:315 +msgid "" +"Trivial patches to the distfile such as correction of typos, which are not " +"important enough that users of the package have to go to the trouble of " +"upgrading." +msgstr "" +"Тривиальные исправления в дистрибутивном файле, такие как исправление " +"опечаток, которые не настолько важны, чтобы пользователи пакета были " +"вынуждены тратить время на обновление." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:316 +msgid "" +"Build fixes which cause a package to become compilable where it was " +"previously failing. As long as the changes do not introduce any functional " +"change on any other platforms on which the port did previously build. Since " +"`PORTREVISION` reflects the content of the package, if the package was not " +"previously buildable then there is no need to increase `PORTREVISION` to " +"mark a change." +msgstr "" +"Исправления сборки, которые позволяют пакету компилироваться там, где ранее " +"это не удавалось. При условии, что изменения не вносят функциональных " +"изменений на других платформах, где порт ранее собирался. Поскольку " +"`PORTREVISION` отражает содержимое пакета, если пакет ранее не мог быть " +"собран, то нет необходимости увеличивать `PORTREVISION` для обозначения " +"изменений." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:321 +msgid "" +"A rule of thumb is to decide whether a change committed to a port is " +"something which _some_ people would benefit from having. Either because of " +"an enhancement, fix, or by virtue that the new package will actually work at " +"all. Then weigh that against that fact that it will cause everyone who " +"regularly updates their ports tree to be compelled to update. If yes, " +"`PORTREVISION` must be bumped." +msgstr "" +"Эмпирическое правило заключается в том, чтобы решить, является ли изменение, " +"внесённое в порт, чем-то, что принесёт пользу _некоторым_ пользователям. " +"Будь то улучшение, исправление или просто факт, что новый пакет вообще будет " +"работать. Затем необходимо сопоставить это с тем, что всем, кто регулярно " +"обновляет своё дерево портов, придётся выполнить обновление. Если ответ " +"положительный, необходимо увеличить `PORTREVISION`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:326 +msgid "" +"People using binary packages will _never_ see the update if `PORTREVISION` " +"is not bumped. Without increasing `PORTREVISION`, the package builders have " +"no way to detect the change and thus, will not rebuild the package." +msgstr "" +"Пользователи бинарных пакетов _никогда_ не увидят обновления, если " +"`PORTREVISION` не увеличен. Без увеличения `PORTREVISION` сборщики пакетов " +"не могут обнаружить изменение и, следовательно, не пересоберут пакет." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:329 +#, no-wrap +msgid "`PORTEPOCH`" +msgstr "`PORTEPOCH`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:333 +msgid "" +"From time to time a software vendor or FreeBSD porter will do something " +"silly and release a version of their software which is actually numerically " +"less than the previous version. An example of this is a port which goes " +"from foo-20000801 to foo-1.0 (the former will be incorrectly treated as a " +"newer version since 20000801 is a numerically greater value than 1)." +msgstr "" +"Время от времени разработчики программного обеспечения или сопровождающие " +"портов FreeBSD совершают ошибку и выпускают версию своего ПО, которая " +"фактически имеет меньший номер по сравнению с предыдущей. Примером может " +"служить переход с foo-20000801 на foo-1.0 (первая версия будет ошибочно " +"считаться более новой, поскольку число 20000801 больше, чем 1.0)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:339 +msgid "" +"The results of version number comparisons are not always obvious. `pkg " +"version` (see man:pkg-version[8]) can be used to test the comparison of two " +"version number strings. For example:" +msgstr "" +"Результаты сравнения номеров версий не всегда очевидны. Команда `pkg " +"version` (см. man:pkg-version[8]) может быть использована для проверки " +"сравнения двух строк с номерами версий. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:344 +#, no-wrap +msgid "" +"% pkg version -t 0.031 0.29\n" +">\n" +msgstr "" +"% pkg version -t 0.031 0.29\n" +">\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:347 +msgid "" +"The `>` output indicates that version 0.031 is considered greater than " +"version 0.29, which may not have been obvious to the porter." +msgstr "" +"Символ `>` в выводе указывает, что версия 0.031 считается больше, чем версия " +"0.29, что могло быть неочевидно для сопровождающего." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:354 +msgid "" +"In situations such as this, `PORTEPOCH` must be increased. If `PORTEPOCH` " +"is nonzero it is appended to the package name as described in section 0 " +"above. `PORTEPOCH` must never be decreased or reset to zero, because that " +"would cause comparison to a package from an earlier epoch to fail. For " +"example, the package would not be detected as out of date. The new version " +"number, `1.0,1` in the above example, is still numerically less than the " +"previous version, 20000801, but the `,1` suffix is treated specially by " +"automated tools and found to be greater than the implied suffix `,0` on the " +"earlier package." +msgstr "" +"В таких ситуациях необходимо увеличить `PORTEPOCH`. Если `PORTEPOCH` не " +"равен нулю, он добавляется к имени пакета, как описано в разделе 0 выше. " +"`PORTEPOCH` никогда не должен уменьшаться или сбрасываться до нуля, потому " +"что это приведёт к ошибке при сравнении с пакетом из более ранней эпохи. " +"Например, пакет не будет обнаружен как устаревший. Новый номер версии, " +"`1.0,1` в приведённом выше примере, всё ещё численно меньше предыдущей " +"версии, 20000801, но суффикс `,1` обрабатывается автоматизированными " +"инструментами особым образом и считается большим, чем подразумеваемый " +"суффикс `,0` у предыдущего пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:357 +msgid "" +"Dropping or resetting `PORTEPOCH` incorrectly leads to no end of grief. If " +"the discussion above was not clear enough, please consult the {freebsd-" +"ports}." +msgstr "" +"Неправильное удаление или сброс `PORTEPOCH` приводит к бесконечным " +"проблемам. Если приведённое выше объяснение недостаточно ясно, обратитесь к " +"{freebsd-ports}." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:361 +msgid "" +"It is expected that `PORTEPOCH` will not be used for the majority of ports, " +"and that sensible use of `DISTVERSION`, or that use `PORTVERSION` carefully, " +"can often preempt it becoming necessary if a future release of the software " +"changes the version structure. However, care is needed by FreeBSD porters " +"when a vendor release is made without an official version number - such as a " +"code \"snapshot\" release. The temptation is to label the release with the " +"release date, which will cause problems as in the example above when a new " +"\"official\" release is made." +msgstr "" +"Ожидается, что `PORTEPOCH` не будет использоваться для большинства портов, и " +"что разумное использование `DISTVERSION` или аккуратное применение " +"`PORTVERSION` часто может предотвратить необходимость его использования, " +"если будущий выпуск программного обеспечения изменит структуру версий. " +"Однако разработчикам портов FreeBSD следует быть осторожными, когда вендор " +"выпускает релиз без официального номера версии — например, релиз в виде " +"\"снимка\" кода. Возникает соблазн обозначить такой релиз датой выпуска, что " +"вызовет проблемы, как в примере выше, когда будет сделан новый " +"\"официальный\" релиз." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:364 +msgid "" +"For example, if a snapshot release is made on the date `20000917`, and the " +"previous version of the software was version `1.2`, do not use `20000917` " +"for `DISTVERSION`. The correct way is a `DISTVERSION` of `1.2.20000917`, or " +"similar, so that the succeeding release, say `1.3`, is still a numerically " +"greater value." +msgstr "" +"Например, если снимок выпущен на дату `20000917`, а предыдущая версия " +"программного обеспечения была `1.2`, не следует использовать `20000917` для " +"`DISTVERSION`. Правильным будет указать `DISTVERSION` как `1.2.20000917` или " +"подобное, чтобы следующая версия, например `1.3`, оставалась численно " +"большей." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:366 +#, no-wrap +msgid "Example of `PORTREVISION` and `PORTEPOCH` Usage" +msgstr "Пример использования `PORTREVISION` и `PORTEPOCH`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:369 +msgid "" +"The `gtkmumble` port, version `0.10`, is committed to the ports collection:" +msgstr "Порт `gtkmumble` версии `0.10` добавлен в коллекцию портов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:374 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:377 +msgid "`PKGNAME` becomes `gtkmumble-0.10`." +msgstr "`PKGNAME` становится `gtkmumble-0.10`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:380 +msgid "" +"A security hole is discovered which requires a local FreeBSD patch. " +"`PORTREVISION` is bumped accordingly." +msgstr "" +"Обнаружена уязвимость в безопасности, требующая локального исправления " +"FreeBSD. `PORTREVISION` соответствующим образом увеличивается." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:386 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" +"PORTREVISION=\t1\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" +"PORTREVISION=\t1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:389 +msgid "`PKGNAME` becomes `gtkmumble-0.10_1`" +msgstr "`PKGNAME` принимает значение `gtkmumble-0.10_1`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:393 +msgid "" +"A new version is released by the vendor, numbered `0.2` (it turns out the " +"author actually intended `0.10` to actually mean `0.1.0`, not \"what comes " +"after 0.9\" - oops, too late now). Since the new minor version `2` is " +"numerically less than the previous version `10`, `PORTEPOCH` must be bumped " +"to manually force the new package to be detected as \"newer\". Since it is " +"a new vendor release of the code, `PORTREVISION` is reset to 0 (or removed " +"from the [.filename]#Makefile#)." +msgstr "" +"Выпущена новая версия от поставщика под номером `0.2` (оказывается, автор " +"изначально подразумевал, что `0.10` на самом деле означает `0.1.0`, а не " +"\"то, что идет после 0.9\" — увы, теперь уже поздно). Поскольку новая " +"минорная версия `2` численно меньше предыдущей версии `10`, необходимо " +"увеличить `PORTEPOCH`, чтобы вручную заставить систему распознавать новый " +"пакет как \"более новый\". Так как это новый релиз кода от поставщика, " +"`PORTREVISION` сбрасывается до 0 (или удаляется из [.filename]#Makefile#)." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:399 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.2\n" +"PORTEPOCH=\t1\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.2\n" +"PORTEPOCH=\t1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:402 +msgid "`PKGNAME` becomes `gtkmumble-0.2,1`" +msgstr "`PKGNAME` становится `gtkmumble-0.2,1`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:405 +msgid "" +"The next release is 0.3. Since `PORTEPOCH` never decreases, the version " +"variables are now:" +msgstr "" +"Следующий выпуск — 0.3. Поскольку `PORTEPOCH` никогда не уменьшается, " +"переменные версий теперь выглядят так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:411 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.3\n" +"PORTEPOCH=\t1\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.3\n" +"PORTEPOCH=\t1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:414 +msgid "`PKGNAME` becomes `gtkmumble-0.3,1`" +msgstr "`PKGNAME` принимает значение `gtkmumble-0.3,1`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:419 +msgid "" +"If `PORTEPOCH` were reset to `0` with this upgrade, someone who had " +"installed the `gtkmumble-0.10_1` package would not detect the " +"`gtkmumble-0.3` package as newer, since `3` is still numerically less than " +"`10`. Remember, this is the whole point of `PORTEPOCH` in the first place." +msgstr "" +"Если бы `PORTEPOCH` был сброшен в `0` при этом обновлении, пользователь, " +"установивший пакет `gtkmumble-0.10_1`, не увидел бы пакет `gtkmumble-0.3` " +"как более новый, поскольку `3` всё ещё численно меньше, чем `10`. Помните, в " +"этом и заключается вся суть `PORTEPOCH` изначально." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:422 +#, no-wrap +msgid "`PKGNAMEPREFIX` and `PKGNAMESUFFIX`" +msgstr "`PKGNAMEPREFIX` и `PKGNAMESUFFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:429 +msgid "" +"Two optional variables, `PKGNAMEPREFIX` and `PKGNAMESUFFIX`, are combined " +"with `PORTNAME` and `PORTVERSION` to form `PKGNAME` as `${PKGNAMEPREFIX}$" +"{PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Make sure this conforms to our " +"crossref:makefiles[porting-pkgname,guidelines for a good package name]. In " +"particular, the use of a hyphen (`-`) in `PORTVERSION` is _not_ allowed. " +"Also, if the package name has the _language-_ or the _-compiled.specifics_ " +"part (see below), use `PKGNAMEPREFIX` and `PKGNAMESUFFIX`, respectively. Do " +"not make them part of `PORTNAME`." +msgstr "" +"Две необязательные переменные, `PKGNAMEPREFIX` и `PKGNAMESUFFIX`, " +"объединяются с `PORTNAME` и `PORTVERSION` для формирования `PKGNAME` в виде " +"`${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Убедитесь, что " +"это соответствует нашим crossref:makefiles[porting-pkgname,рекомендациям по " +"именованию пакетов]. В частности, использование дефиса (`-`) в `PORTVERSION` " +"_не_ допускается. Кроме того, если имя пакета содержит часть _language-_ или " +"_-compiled.specifics_ (см. ниже), используйте `PKGNAMEPREFIX` и " +"`PKGNAMESUFFIX` соответственно. Не включайте их в `PORTNAME`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:431 +#, no-wrap +msgid "Package Naming Conventions" +msgstr "Соглашения о наименовании пакетов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:435 +msgid "" +"These are the conventions to follow when naming packages. This is to make " +"the package directory easy to scan, as there are already thousands of " +"packages and users are going to turn away if they hurt their eyes!" +msgstr "" +"Вот соглашения, которым следует придерживаться при наименовании пакетов. Это " +"сделано для того, чтобы каталог пакетов было легко просматривать, поскольку " +"там уже тысячи пакетов, и пользователи могут отказаться от их использования, " +"если это будет напрягать их глаза!" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:437 +msgid "" +"Package names take the form of [.filename]#language_region-name-" +"compiled.specifics-version.numbers#." +msgstr "" +"Имена пакетов имеют формат [.filename]#language_region-name-" +"compiled.specifics-version.numbers#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:440 +msgid "" +"The package name is defined as `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-$" +"{PORTVERSION}`. Make sure to set the variables to conform to that format." +msgstr "" +"Имя пакета определяется как `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-$" +"{PORTVERSION}`. Убедитесь, что переменные заданы в соответствии с этим " +"форматом." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:442 +#, no-wrap +msgid "[.filename]#language_region-#" +msgstr "[.filename]#language_region-#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:446 +msgid "" +"FreeBSD strives to support the native language of its users. The _language-" +"_ part is a two letter abbreviation of the natural language defined by " +"ISO-639 when the port is specific to a certain language. Examples are `ja` " +"for Japanese, `ru` for Russian, `vi` for Vietnamese, `zh` for Chinese, `ko` " +"for Korean and `de` for German." +msgstr "" +"FreeBSD стремится поддерживать родной язык своих пользователей. Часть " +"_language-_ представляет собой двухбуквенное сокращение естественного языка, " +"определённое стандартом ISO-639, когда порт относится к определённому " +"языку. Примерами являются `ja` для японского, `ru` для русского, `vi` для " +"вьетнамского, `zh` для китайского, `ko` для корейского и `de` для немецкого." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:449 +msgid "" +"If the port is specific to a certain region within the language area, add " +"the two letter country code as well. Examples are `en_US` for US English " +"and `fr_CH` for Swiss French." +msgstr "" +"Если порт относится к определённому региону в языковой зоне, добавьте также " +"двухбуквенный код страны. Например, `en_US` для американского английского и " +"`fr_CH` для швейцарского французского." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:451 +msgid "The _language-_ part is set in `PKGNAMEPREFIX`." +msgstr "Часть _language-_ задается в `PKGNAMEPREFIX`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:453 +#, no-wrap +msgid "[.filename]#name#" +msgstr "[.filename]#name#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:458 +msgid "" +"Make sure that the port's name and version are clearly separated and placed " +"into `PORTNAME` and `DISTVERSION`. The only reason for `PORTNAME` to " +"contain a version part is if the upstream distribution is really named that " +"way, as in the package:textproc/libxml2[] or package:japanese/kinput2-" +"freewnn[] ports. Otherwise, `PORTNAME` cannot contain any version-specific " +"information. It is quite normal for several ports to have the same " +"`PORTNAME`, as the package:www/apache*[] ports do; in that case, different " +"versions (and different index entries) are distinguished by `PKGNAMEPREFIX` " +"and `PKGNAMESUFFIX` values." +msgstr "" +"Убедитесь, что название порта и его версия четко разделены и указаны в " +"`PORTNAME` и `DISTVERSION`. Единственная причина, по которой `PORTNAME` " +"может содержать часть версии, — это если вышестоящее распространяемое ПО " +"действительно так названо, как в портах package:textproc/libxml2[] или " +"package:japanese/kinput2-freewnn[]. В противном случае `PORTNAME` не может " +"содержать информацию о версии. Довольно нормально, когда несколько портов " +"имеют одинаковый `PORTNAME`, как это делают порты package:www/apache*[]; в " +"таком случае разные версии (и разные записи в индексе) различаются " +"значениями `PKGNAMEPREFIX` и `PKGNAMESUFFIX`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:461 +msgid "" +"There is a tradition of naming `Perl 5` modules by prepending `p5-` and " +"converting the double-colon separator to a hyphen. For example, the " +"`Data::Dumper` module becomes `p5-Data-Dumper`." +msgstr "" +"Существует традиция называть модули `Perl 5`, добавляя префикс `p5-` и " +"заменя разделитель в виде двойного двоеточия на дефис. Например, модуль " +"`Data::Dumper` становится `p5-Data-Dumper`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:462 +#, no-wrap +msgid "[.filename]#-compiled.specifics#" +msgstr "[.filename]#-compiled.specifics#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:467 +msgid "" +"If the port can be built with different crossref:makefiles[makefile-" +"masterdir,hardcoded defaults] (usually part of the directory name in a " +"family of ports), the _-compiled.specifics_ part states the compiled-in " +"defaults. The hyphen is optional. Examples are paper size and font units." +msgstr "" +"Если порт может быть собран с различными crossref:makefiles[makefile-" +"masterdir,жестко заданными значениями по умолчанию] (обычно это часть имени " +"каталога в семействе портов), часть _-compiled.specifics_ указывает " +"скомпилированные значения по умолчанию. Дефис является необязательным. " +"Примерами могут служить размер бумаги и единицы измерения шрифтов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:469 +msgid "The _-compiled.specifics_ part is set in `PKGNAMESUFFIX`." +msgstr "Часть _-compiled.specifics_ задаётся в `PKGNAMESUFFIX`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:471 +#, no-wrap +msgid "[.filename]#-version.numbers#" +msgstr "[.filename]#-version.numbers#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:477 +msgid "" +"The version string follows a dash (`-`) and is a period-separated list of " +"integers and single lowercase alphabetics. In particular, it is not " +"permissible to have another dash inside the version string. The only " +"exception is the string `pl` (meaning \"patchlevel\"), which can be used " +"_only_ when there are no major and minor version numbers in the software. " +"If the software version has strings like \"alpha\", \"beta\", \"rc\", or " +"\"pre\", take the first letter and put it immediately after a period. If " +"the version string continues after those names, the numbers follow the " +"single alphabet without an extra period between them (for example, `1.0b2`)." +msgstr "" +"Строка версии следует после тире (`-`) и представляет собой разделённый " +"точками список целых чисел и строчных букв латинского алфавита. В частности, " +"не допускается использование дополнительных тире внутри строки версии. " +"Единственное исключение — строка `pl` (означающая \"уровень исправления\"), " +"которую можно использовать _только_ в случае отсутствия у программного " +"обеспечения номеров основной и дополнительной версий. Если в версии " +"программного обеспечения встречаются строки типа \"alpha\", \"beta\", \"rc\" " +"или \"pre\", следует взять первую букву и поместить её сразу после точки. " +"Если после таких названий строка версии продолжается, числа следуют за " +"буквой без дополнительной точки между ними (например, `1.0b2`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:481 +msgid "" +"The idea is to make it easier to sort ports by looking at the version " +"string. In particular, make sure version number components are always " +"delimited by a period, and if the date is part of the string, use the " +"`d__yyyy.mm.dd__` format, not `_dd.mm.yyyy_` or the non-Y2K compliant " +"`_yy.mm.dd_` format. It is important to prefix the version with a letter, " +"here `d` (for date), in case a release with an actual version number is " +"made, which would be numerically less than `_yyyy_`." +msgstr "" +"Идея заключается в упрощении сортировки портов за счёт анализа строки " +"версии. В частности, необходимо убедиться, что компоненты номера версии " +"всегда разделены точкой, а если дата является частью строки, использовать " +"формат `d__yyyy.mm.dd__`, а не `_dd.mm.yyyy_` или не соответствующий " +"стандарту Y2K формат `_yy.mm.dd_`. Важно добавлять перед версией букву, в " +"данном случае `d` (от слова \"дата\"), на случай, если будет выпущена версия " +"с фактическим номером, который численно окажется меньше `_yyyy_`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:487 +msgid "" +"Package name must be unique among all of the ports tree, check that there is " +"not already a port with the same `PORTNAME` and if there is add one of " +"crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX` or " +"`PKGNAMESUFFIX`]." +msgstr "" +"Название пакета должно быть уникальным среди всех портов в дереве. " +"Убедитесь, что порт с таким же `PORTNAME` ещё не существует, и если он есть, " +"добавьте один из crossref:makefiles[porting-pkgnameprefix-" +"suffix,`PKGNAMEPREFIX` или `PKGNAMESUFFIX`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:490 +msgid "" +"Here are some (real) examples on how to convert the name as called by the " +"software authors to a suitable package name, for each line, only one of " +"`DISTVERSION` or `PORTVERSION` is set in, depending on which would be used " +"in the port's [.filename]#Makefile#:" +msgstr "" +"Вот несколько (реальных) примеров преобразования названия, указанного " +"авторами программного обеспечения, в подходящее имя пакета. В каждой строке " +"указана только одна из переменных `DISTVERSION` или `PORTVERSION`, в " +"зависимости от того, какая используется в [.filename]#Makefile# порта:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:491 +#, no-wrap +msgid "Package Naming Examples" +msgstr "Примеры наименования пакетов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:495 +#, no-wrap +msgid "Distribution Name" +msgstr "Имя дистрибутива" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:496 +#, no-wrap +msgid "PKGNAMEPREFIX" +msgstr "PKGNAMEPREFIX" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:497 +#, no-wrap +msgid "PORTNAME" +msgstr "PORTNAME" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:498 +#, no-wrap +msgid "PKGNAMESUFFIX" +msgstr "PKGNAMESUFFIX" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:502 +#, no-wrap +msgid "Reason or comment" +msgstr "Причина или комментарий" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:503 +#, no-wrap +msgid "mule-2.2.2" +msgstr "mule-2.2.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:504 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:506 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:512 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:520 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:522 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:528 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:530 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:536 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:538 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:544 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:546 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:552 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:554 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:560 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:562 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:568 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:570 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:576 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:578 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:586 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:592 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:600 +#, no-wrap +msgid "(empty)" +msgstr "(пусто)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:505 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:513 +#, no-wrap +msgid "mule" +msgstr "mule" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:507 +#, no-wrap +msgid "2.2.2" +msgstr "2.2.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:510 +#, no-wrap +msgid "No changes required" +msgstr "Никаких изменений не требуется" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:511 +#, no-wrap +msgid "mule-1.0.1" +msgstr "mule-1.0.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:514 +#, no-wrap +msgid "1" +msgstr "1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:515 +#, no-wrap +msgid "1.0.1" +msgstr "1.0.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:518 +#, no-wrap +msgid "This is version 1 of mule, and version 2 already exists" +msgstr "Это версия 1 mule, а версия 2 уже существует" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:519 +#, no-wrap +msgid "EmiClock-1.0.2" +msgstr "EmiClock-1.0.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:521 +#, no-wrap +msgid "emiclock" +msgstr "emiclock" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:523 +#, no-wrap +msgid "1.0.2" +msgstr "1.0.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:526 +#, no-wrap +msgid "No uppercase names for single programs" +msgstr "Нет имен в верхнем регистре для отдельных программ" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:527 +#, no-wrap +msgid "rdist-1.3alpha" +msgstr "rdist-1.3alpha" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:529 +#, no-wrap +msgid "rdist" +msgstr "rdist" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:531 +#, no-wrap +msgid "1.3alpha" +msgstr "1.3alpha" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:534 +#, no-wrap +msgid "Version will be `1.3.a`" +msgstr "Версия будет `1.3.a`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:535 +#, no-wrap +msgid "es-0.9-beta1" +msgstr "es-0.9-beta1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:537 +#, no-wrap +msgid "es" +msgstr "es" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:539 +#, no-wrap +msgid "0.9-beta1" +msgstr "0.9-beta1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:542 +#, no-wrap +msgid "Version will be `0.9.b1`" +msgstr "Версия будет `0.9.b1`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:543 +#, no-wrap +msgid "mailman-2.0rc3" +msgstr "mailman-2.0rc3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:545 +#, no-wrap +msgid "mailman" +msgstr "mailman" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:547 +#, no-wrap +msgid "2.0rc3" +msgstr "2.0rc3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:550 +#, no-wrap +msgid "Version will be `2.0.r3`" +msgstr "Версия будет `2.0.r3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:551 +#, no-wrap +msgid "v3.3beta021.src" +msgstr "v3.3beta021.src" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:553 +#, no-wrap +msgid "tiff" +msgstr "tiff" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:556 +#, no-wrap +msgid "3.3" +msgstr "3.3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:558 +#, no-wrap +msgid "What the heck was that anyway?" +msgstr "Что это вообще было?" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:559 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:561 +#, no-wrap +msgid "tvtwm" +msgstr "tvtwm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:564 +#, no-wrap +msgid "p11" +msgstr "p11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:566 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:574 +#, no-wrap +msgid "No version in the filename, use what upstream says it is" +msgstr "Нет версии в имени файла, используйте то, что указано в исходном коде" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:567 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:569 +#, no-wrap +msgid "piewm" +msgstr "piewm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:571 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:603 +#, no-wrap +msgid "1.0" +msgstr "1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:575 +#, no-wrap +msgid "xvgr-2.10pl1" +msgstr "xvgr-2.10pl1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:577 +#, no-wrap +msgid "xvgr" +msgstr "xvgr" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:580 +#, no-wrap +msgid "2.10.pl1" +msgstr "2.10.pl1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:582 +#, no-wrap +msgid "In that case, `pl1` means patch level, so using DISTVERSION is not possible." +msgstr "В таком случае, `pl1` означает уровень патча, поэтому использование DISTVERSION невозможно." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:583 +#, no-wrap +msgid "gawk-2.15.6" +msgstr "gawk-2.15.6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:584 +#, no-wrap +msgid "ja-" +msgstr "ja-" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:585 +#, no-wrap +msgid "gawk" +msgstr "gawk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:587 +#, no-wrap +msgid "2.15.6" +msgstr "2.15.6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:590 +#, no-wrap +msgid "Japanese language version" +msgstr "Японская языковая версия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:591 +#, no-wrap +msgid "psutils-1.13" +msgstr "psutils-1.13" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:593 +#, no-wrap +msgid "psutils" +msgstr "psutils" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:594 +#, no-wrap +msgid "-letter" +msgstr "-letter" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:595 +#, no-wrap +msgid "1.13" +msgstr "1.13" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:598 +#, no-wrap +msgid "Paper size hardcoded at package build time" +msgstr "Размер бумаги жестко задан во время сборки пакета" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:599 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:601 +#, no-wrap +msgid "pkfonts" +msgstr "pkfonts" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:602 +#, no-wrap +msgid "300" +msgstr "300" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:605 +#, no-wrap +msgid "Package for 300dpi fonts" +msgstr "Пакет для шрифтов с разрешением 300dpi" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:609 +msgid "" +"If there is absolutely no trace of version information in the original " +"source and it is unlikely that the original author will ever release another " +"version, just set the version string to `1.0` (like the `piewm` example " +"above). Otherwise, ask the original author or use the date string the " +"source file was released on (`d__yyyy.mm.dd__`, or `d__yyyymmdd__`) as the " +"version." +msgstr "" +"Если в исходном источнике полностью отсутствует информация о версии и " +"маловероятно, что автор когда-либо выпустит новую версию, просто укажите " +"строку версии как `1.0` (как в примере с `piewm` выше). В противном случае, " +"спросите автора или используйте дату выпуска исходного файла в формате " +"`d__yyyy.mm.dd__` или `d__yyyymmdd__` в качестве версии." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:614 +msgid "" +"Use any letter. Here, `d` here stands for date, if the source is a Git " +"repository, `g` followed by the commit date is commonly used, using `s` for " +"snapshot is also common." +msgstr "" +"Используйте любую букву. Здесь `d` означает дату, если источник — это " +"репозиторий Git, часто используется `g` с последующей датой коммита, также " +"распространено использование `s` для снимка." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:617 +#, no-wrap +msgid "Categorization" +msgstr "Категоризация" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:620 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4867 +#, no-wrap +msgid "`CATEGORIES`" +msgstr "`CATEGORIES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:626 +msgid "" +"When a package is created, it is put under [.filename]#/usr/ports/packages/" +"All# and links are made from one or more subdirectories of [.filename]#/usr/" +"ports/packages#. The names of these subdirectories are specified by the " +"variable `CATEGORIES`. It is intended to make life easier for the user when " +"he is wading through the pile of packages on the FTP site or the CDROM. " +"Please take a look at the crossref:makefiles[porting-categories,current list " +"of categories] and pick the ones that are suitable for the port." +msgstr "" +"При создании пакета он помещается в [.filename]#/usr/ports/packages/All#, и " +"ссылки на него создаются в одной или нескольких поддиректориях [.filename]#/" +"usr/ports/packages#. Имена этих поддиректорий задаются переменной " +"`CATEGORIES`. Это предназначено для облегчения поиска пакетов пользователем " +"при просмотре большого количества пакетов на FTP-сайте или CDROM. " +"Пожалуйста, ознакомьтесь с crossref:makefiles[porting-categories,текущим " +"списком категорий] и выберите подходящие для данного порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:630 +msgid "" +"This list also determines where in the ports tree the port is imported. If " +"there is more than one category here, the port files must be put in the " +"subdirectory with the name of the first category. See " +"crossref:makefiles[choosing-categories,below] for more discussion about how " +"to pick the right categories." +msgstr "" +"Этот список также определяет, где в дереве портов будет размещён порт. Если " +"здесь указано несколько категорий, файлы порта должны быть помещены в " +"подкаталог с названием первой категории. Дополнительные сведения о выборе " +"подходящих категорий см. в crossref:makefiles[choosing-categories,ниже]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:632 +#, no-wrap +msgid "Current List of Categories" +msgstr "Текущий список категорий" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:637 +msgid "" +"Here is the current list of port categories. Those marked with an asterisk " +"(`*`) are _virtual_ categories-those that do not have a corresponding " +"subdirectory in the ports tree. They are only used as secondary categories, " +"and only for search purposes." +msgstr "" +"Вот текущий список категорий портов. Категории, помеченные звёздочкой (`*`), " +"являются _виртуальными_ — они не имеют соответствующего подкаталога в дереве " +"портов. Они используются только как вторичные категории и исключительно для " +"целей поиска." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:641 +msgid "" +"For non-virtual categories, there is a one-line description in `COMMENT` in " +"that subdirectory's [.filename]#Makefile#." +msgstr "" +"Для невиртуальных категорий в `COMMENT` в [.filename]#Makefile# " +"соответствующего подкаталога содержится однострочное описание." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:647 +#, no-wrap +msgid "Category" +msgstr "Категория" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:648 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1473 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1882 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:650 +#, no-wrap +msgid "Notes" +msgstr "Заметки" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:651 +#, no-wrap +msgid "[.filename]#accessibility#" +msgstr "[.filename]#accessibility#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:652 +#, no-wrap +msgid "Ports to help disabled users." +msgstr "Порты для помощи пользователям с ограниченными возможностями." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:655 +#, no-wrap +msgid "[.filename]#afterstep#`*`" +msgstr "[.filename]#afterstep#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:656 +#, no-wrap +msgid "Ports to support the http://www.afterstep.org/[AfterStep] window manager." +msgstr "Порты для поддержки оконного менеджера http://www.afterstep.org/[AfterStep]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:659 +#, no-wrap +msgid "[.filename]#arabic#" +msgstr "[.filename]#arabic#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:660 +#, no-wrap +msgid "Arabic language support." +msgstr "Поддержка арабского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:663 +#, no-wrap +msgid "[.filename]#archivers#" +msgstr "[.filename]#archivers#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:664 +#, no-wrap +msgid "Archiving tools." +msgstr "Инструменты для архивирования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:667 +#, no-wrap +msgid "[.filename]#astro#" +msgstr "[.filename]#astro#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:668 +#, no-wrap +msgid "Astronomical ports." +msgstr "Астрономические порты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:671 +#, no-wrap +msgid "[.filename]#audio#" +msgstr "[.filename]#audio#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:672 +#, no-wrap +msgid "Sound support." +msgstr "Поддержка звука." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:675 +#, no-wrap +msgid "[.filename]#benchmarks#" +msgstr "[.filename]#benchmarks#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:676 +#, no-wrap +msgid "Benchmarking utilities." +msgstr "Утилиты для тестирования производительности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:679 +#, no-wrap +msgid "[.filename]#biology#" +msgstr "[.filename]#biology#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:680 +#, no-wrap +msgid "Biology-related software." +msgstr "Программное обеспечение, связанное с биологией." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:683 +#, no-wrap +msgid "[.filename]#cad#" +msgstr "[.filename]#cad#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:684 +#, no-wrap +msgid "Computer aided design tools." +msgstr "Компьютерные средства автоматизированного проектирования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:687 +#, no-wrap +msgid "[.filename]#chinese#" +msgstr "[.filename]#chinese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:688 +#, no-wrap +msgid "Chinese language support." +msgstr "Поддержка китайского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:691 +#, no-wrap +msgid "[.filename]#comms#" +msgstr "[.filename]#comms#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:692 +#, no-wrap +msgid "Communication software." +msgstr "Программное обеспечение для связи." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:694 +#, no-wrap +msgid "Mostly software to talk to the serial port." +msgstr "В основном программное обеспечение для работы с последовательным портом." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:695 +#, no-wrap +msgid "[.filename]#converters#" +msgstr "[.filename]#converters#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:696 +#, no-wrap +msgid "Character code converters." +msgstr "Преобразователи символьных кодировок." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:699 +#, no-wrap +msgid "[.filename]#databases#" +msgstr "[.filename]#databases#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:700 +#, no-wrap +msgid "Databases." +msgstr "Базы данных." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:703 +#, no-wrap +msgid "[.filename]#deskutils#" +msgstr "[.filename]#deskutils#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:704 +#, no-wrap +msgid "Things that used to be on the desktop before computers were invented." +msgstr "Вещи, которые раньше находились на рабочем столе до изобретения компьютеров." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:707 +#, no-wrap +msgid "[.filename]#devel#" +msgstr "[.filename]#devel#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:708 +#, no-wrap +msgid "Development utilities." +msgstr "Средства разработки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:710 +#, no-wrap +msgid "Do not put libraries here just because they are libraries. They should _not_ be in this category unless they truly do not belong anywhere else." +msgstr "Не размещайте библиотеки здесь только потому, что они являются библиотеками. Они _не_ должны быть в этой категории, если только они действительно не подходят никуда больше." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:711 +#, no-wrap +msgid "[.filename]#dns#" +msgstr "[.filename]#dns#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:712 +#, no-wrap +msgid "DNS-related software." +msgstr "Программное обеспечение, связанное с DNS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:715 +#, no-wrap +msgid "[.filename]#docs#`*`" +msgstr "[.filename]#docs#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:716 +#, no-wrap +msgid "Meta-ports for FreeBSD documentation." +msgstr "Мета-порты для документации FreeBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:719 +#, no-wrap +msgid "[.filename]#editors#" +msgstr "[.filename]#editors#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:720 +#, no-wrap +msgid "General editors." +msgstr "Общие редакторы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:722 +#, no-wrap +msgid "Specialized editors go in the section for those tools. For example, a mathematical-formula editor will go in [.filename]#math#, and have [.filename]#editors# as a second category." +msgstr "Специализированные редакторы помещаются в раздел соответствующих инструментов. Например, редактор математических формул будет помещён в [.filename]#math#, а [.filename]#editors# будет для него второй категорией." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:723 +#, no-wrap +msgid "[.filename]#education#`*`" +msgstr "[.filename]#education#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:724 +#, no-wrap +msgid "Education-related software." +msgstr "Программное обеспечение для образования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:726 +#, no-wrap +msgid "This includes applications, utilities, or games primarily or substantially designed to help the user learn a specific topic or study in general. It also includes course-writing applications, course-delivery applications, and classroom or school management applications" +msgstr "Это включает приложения, утилиты или игры, разработанные в первую очередь или в значительной степени для помощи пользователю в изучении конкретной темы или обучении в целом. Также сюда входят приложения для создания курсов, приложения для предоставления курсов и приложения для управления классом или школой" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:727 +#, no-wrap +msgid "[.filename]#elisp#`*`" +msgstr "[.filename]#elisp#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:728 +#, no-wrap +msgid "Emacs-lisp ports." +msgstr "Порты Emacs-lisp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:731 +#, no-wrap +msgid "[.filename]#emulators#" +msgstr "[.filename]#emulators#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:732 +#, no-wrap +msgid "Emulators for other operating systems." +msgstr "Эмуляторы других операционных систем." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:734 +#, no-wrap +msgid "Terminal emulators do _not_ belong here. X-based ones go to [.filename]#x11# and text-based ones to either [.filename]#comms# or [.filename]#misc#, depending on the exact functionality." +msgstr "Терминальные эмуляторы _не_ относятся сюда. Основанные на X идут в [.filename]#x11#, а текстовые — либо в [.filename]#comms#, либо в [.filename]#misc#, в зависимости от конкретной функциональности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:735 +#, no-wrap +msgid "[.filename]#enlightenment#`*`" +msgstr "[.filename]#enlightenment#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:736 +#, no-wrap +msgid "Ports related to the Enlightenment window manager." +msgstr "Порты, связанные с оконным менеджером Enlightenment." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:739 +#, no-wrap +msgid "[.filename]#filesystems#" +msgstr "[.filename]#filesystems#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:740 +#, no-wrap +msgid "File systems and related utilities." +msgstr "Файловые системы и связанные утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:743 +#, no-wrap +msgid "[.filename]#finance#" +msgstr "[.filename]#finance#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:744 +#, no-wrap +msgid "Monetary, financial and related applications." +msgstr "Монетарные, финансовые и связанные с ними приложения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:747 +#, no-wrap +msgid "[.filename]#french#" +msgstr "[.filename]#french#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:748 +#, no-wrap +msgid "French language support." +msgstr "Поддержка французского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:751 +#, no-wrap +msgid "[.filename]#ftp#" +msgstr "[.filename]#ftp#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:752 +#, no-wrap +msgid "FTP client and server utilities." +msgstr "Клиентские и серверные утилиты FTP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:754 +#, no-wrap +msgid "If the port speaks both FTP and HTTP, put it in [.filename]#ftp# with a secondary category of [.filename]#www#." +msgstr "Если порт поддерживает как FTP, так и HTTP, поместите его в [.filename]#ftp# с дополнительной категорией [.filename]#www#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:755 +#, no-wrap +msgid "[.filename]#games#" +msgstr "[.filename]#games#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:756 +#, no-wrap +msgid "Games." +msgstr "Игры." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:759 +#, no-wrap +msgid "[.filename]#geography#`*`" +msgstr "[.filename]#география#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:760 +#, no-wrap +msgid "Geography-related software." +msgstr "Программное обеспечение, связанное с географией." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:763 +#, no-wrap +msgid "[.filename]#german#" +msgstr "[.filename]#german#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:764 +#, no-wrap +msgid "German language support." +msgstr "Поддержка немецкого языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:767 +#, no-wrap +msgid "[.filename]#gnome#`*`" +msgstr "[.filename]#gnome#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:768 +#, no-wrap +msgid "Ports from the https://www.gnome.org/[GNOME] Project." +msgstr "Порты из проекта https://www.gnome.org/[GNOME]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:771 +#, no-wrap +msgid "[.filename]#gnustep#`*`" +msgstr "[.filename]#gnustep#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:772 +#, no-wrap +msgid "Software related to the GNUstep desktop environment." +msgstr "Программное обеспечение, связанное со средой рабочего стола GNUstep." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:775 +#, no-wrap +msgid "[.filename]#graphics#" +msgstr "[.filename]#graphics#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:776 +#, no-wrap +msgid "Graphics utilities." +msgstr "Графические утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:779 +#, no-wrap +msgid "[.filename]#hamradio#`*`" +msgstr "[.filename]#hamradio#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:780 +#, no-wrap +msgid "Software for amateur radio." +msgstr "Программное обеспечение для радиолюбителей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:783 +#, no-wrap +msgid "[.filename]#haskell#`*`" +msgstr "[.filename]#haskell#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:784 +#, no-wrap +msgid "Software related to the Haskell language." +msgstr "Программное обеспечение, связанное с языком Haskell." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:787 +#, no-wrap +msgid "[.filename]#hebrew#" +msgstr "[.filename]#hebrew#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:788 +#, no-wrap +msgid "Hebrew language support." +msgstr "Поддержка иврита." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:791 +#, no-wrap +msgid "[.filename]#hungarian#" +msgstr "[.filename]#hungarian#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:792 +#, no-wrap +msgid "Hungarian language support." +msgstr "Венгерская языковая поддержка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:795 +#, no-wrap +msgid "[.filename]#irc#" +msgstr "[.filename]#irc#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:796 +#, no-wrap +msgid "Internet Relay Chat utilities." +msgstr "Утилиты Internet Relay Chat." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:799 +#, no-wrap +msgid "[.filename]#japanese#" +msgstr "[.filename]#japanese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:800 +#, no-wrap +msgid "Japanese language support." +msgstr "Поддержка японского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:803 +#, no-wrap +msgid "[.filename]#java#" +msgstr "[.filename]#java#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:804 +#, no-wrap +msgid "Software related to the Java(TM) language." +msgstr "Программное обеспечение, связанное с языком Java(TM)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:806 +#, no-wrap +msgid "The [.filename]#java# category must not be the only one for a port. Save for ports directly related to the Java language, porters are also encouraged not to use [.filename]#java# as the main category of a port." +msgstr "Категория [.filename]#java# не должна быть единственной для порта. За исключением портов, непосредственно связанных с языком Java, разработчикам также рекомендуется не использовать [.filename]#java# в качестве основной категории для порта." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:807 +#, no-wrap +msgid "[.filename]#kde#`*`" +msgstr "[.filename]#kde#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:808 +#, no-wrap +msgid "Ports from the https://www.kde.org/[KDE] Project (generic)." +msgstr "Порты проекта https://www.kde.org/[KDE] (общие)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:811 +#, no-wrap +msgid "[.filename]#kde-applications#`*`" +msgstr "[.filename]#kde-приложения#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:812 +#, no-wrap +msgid "Applications from the https://www.kde.org/[KDE] Project." +msgstr "Приложения от проекта https://www.kde.org/[KDE]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:815 +#, no-wrap +msgid "[.filename]#kde-frameworks#`*`" +msgstr "[.filename]#kde-frameworks#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:816 +#, no-wrap +msgid "Add-on libraries from the https://www.kde.org/[KDE] Project for programming with Qt." +msgstr "Дополнительные библиотеки от проекта https://www.kde.org/[KDE] для программирования с использованием Qt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:819 +#, no-wrap +msgid "[.filename]#kde-plasma#`*`" +msgstr "[.filename]#kde-plasma#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:820 +#, no-wrap +msgid "Desktop from the https://www.kde.org/[KDE] Project." +msgstr "Рабочий стол от проекта https://www.kde.org/[KDE]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:823 +#, no-wrap +msgid "[.filename]#kld#`*`" +msgstr "[.filename]#kld#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:824 +#, no-wrap +msgid "Kernel loadable modules." +msgstr "Загружаемые модули ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:827 +#, no-wrap +msgid "[.filename]#korean#" +msgstr "[.filename]#korean#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:828 +#, no-wrap +msgid "Korean language support." +msgstr "Поддержка корейского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:831 +#, no-wrap +msgid "[.filename]#lang#" +msgstr "[.filename]#lang#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:832 +#, no-wrap +msgid "Programming languages." +msgstr "Языки программирования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:835 +#, no-wrap +msgid "[.filename]#linux#`*`" +msgstr "[.filename]#linux#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:836 +#, no-wrap +msgid "Linux applications and support utilities." +msgstr "Приложения и вспомогательные утилиты Linux." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:839 +#, no-wrap +msgid "[.filename]#lisp#`*`" +msgstr "[.filename]#lisp#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:840 +#, no-wrap +msgid "Software related to the Lisp language." +msgstr "Программное обеспечение, связанное с языком Lisp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:843 +#, no-wrap +msgid "[.filename]#mail#" +msgstr "[.filename]#mail#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:844 +#, no-wrap +msgid "Mail software." +msgstr "Почтовое программное обеспечение." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:847 +#, no-wrap +msgid "[.filename]#mate#`*`" +msgstr "[.filename]#mate#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:848 +#, no-wrap +msgid "Ports related to the MATE desktop environment, a fork of GNOME 2." +msgstr "Порты, связанные с окружением рабочего стола MATE, форком GNOME 2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:851 +#, no-wrap +msgid "[.filename]#math#" +msgstr "[.filename]#math#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:852 +#, no-wrap +msgid "Numerical computation software and other utilities for mathematics." +msgstr "Численные расчеты и другие математические утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:855 +#, no-wrap +msgid "[.filename]#mbone#`*`" +msgstr "[.filename]#mbone#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:856 +#, no-wrap +msgid "MBone applications." +msgstr "Приложения MBone." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:859 +#, no-wrap +msgid "[.filename]#misc#" +msgstr "[.filename]#misc#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:860 +#, no-wrap +msgid "Miscellaneous utilities" +msgstr "Различные утилиты" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:862 +#, no-wrap +msgid "Things that do not belong anywhere else. If at all possible, try to find a better category for the port than `misc`, as ports tend to be overlooked in here." +msgstr "Вещи, которые не подходят никуда больше. По возможности, попытайтесь найти для порта категорию лучше, чем `misc`, так как порты здесь часто остаются без внимания." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:863 +#, no-wrap +msgid "[.filename]#multimedia#" +msgstr "[.filename]#multimedia#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:864 +#, no-wrap +msgid "Multimedia software." +msgstr "Мультимедийное программное обеспечение." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:867 +#, no-wrap +msgid "[.filename]#net#" +msgstr "[.filename]#net#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:868 +#, no-wrap +msgid "Miscellaneous networking software." +msgstr "Различное сетевое программное обеспечение." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:871 +#, no-wrap +msgid "[.filename]#net-im#" +msgstr "[.filename]#net-im#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:872 +#, no-wrap +msgid "Instant messaging software." +msgstr "Программное обеспечение для обмена мгновенными сообщениями." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:875 +#, no-wrap +msgid "[.filename]#net-mgmt#" +msgstr "[.filename]#net-mgmt#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:876 +#, no-wrap +msgid "Networking management software." +msgstr "Программное обеспечение для управления сетями." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:879 +#, no-wrap +msgid "[.filename]#net-p2p#" +msgstr "[.filename]#net-p2p#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:880 +#, no-wrap +msgid "Peer to peer network applications." +msgstr "Одноранговые сетевые приложения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:883 +#, no-wrap +msgid "[.filename]#net-vpn#`*`" +msgstr "[.filename]#сеть-vpn#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:884 +#, no-wrap +msgid "Virtual Private Network applications." +msgstr "Виртуальные частные сети." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:887 +#, no-wrap +msgid "[.filename]#news#" +msgstr "[.filename]#news#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:888 +#, no-wrap +msgid "USENET news software." +msgstr "Программное обеспечение для USENET-новостей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:891 +#, no-wrap +msgid "[.filename]#parallel#`*`" +msgstr "[.filename]#parallel#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:892 +#, no-wrap +msgid "Applications dealing with parallelism in computing." +msgstr "Приложения, работающие с параллелизмом в вычислениях." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:895 +#, no-wrap +msgid "[.filename]#pear#`*`" +msgstr "[.filename]#pear#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:896 +#, no-wrap +msgid "Ports related to the Pear PHP framework." +msgstr "Порты, связанные с PHP-фреймворком Pear." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:899 +#, no-wrap +msgid "[.filename]#perl5#`*`" +msgstr "[.filename]#perl5#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:900 +#, no-wrap +msgid "Ports that require Perl version 5 to run." +msgstr "Порты, требующие Perl версии 5 для работы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:903 +#, no-wrap +msgid "[.filename]#plan9#`*`" +msgstr "[.filename]#plan9#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:904 +#, no-wrap +msgid "Various programs from https://9p.io/wiki/plan9/Download/index.html[Plan9]." +msgstr "Различные программы с https://9p.io/wiki/plan9/Download/index.html[Plan9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:907 +#, no-wrap +msgid "[.filename]#polish#" +msgstr "[.filename]#polish#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:908 +#, no-wrap +msgid "Polish language support." +msgstr "Поддержка польского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:911 +#, no-wrap +msgid "[.filename]#ports-mgmt#" +msgstr "[.filename]#ports-mgmt#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:912 +#, no-wrap +msgid "Ports for managing, installing and developing FreeBSD ports and packages." +msgstr "Порты для управления, установки и разработки портов и пакетов FreeBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:915 +#, no-wrap +msgid "[.filename]#portuguese#" +msgstr "[.filename]#portuguese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:916 +#, no-wrap +msgid "Portuguese language support." +msgstr "Поддержка португальского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:919 +#, no-wrap +msgid "[.filename]#print#" +msgstr "[.filename]#print#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:920 +#, no-wrap +msgid "Printing software." +msgstr "Программное обеспечение для печати." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:922 +#, no-wrap +msgid "Desktop publishing tools (previewers, etc.) belong here too." +msgstr "Инструменты для настольных издательских систем (превьюеры и т. д.) также относятся сюда." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:923 +#, no-wrap +msgid "[.filename]#python#`*`" +msgstr "[.filename]#python#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:924 +#, no-wrap +msgid "Software related to the https://www.python.org/[Python] language." +msgstr "Программное обеспечение, связанное с языком https://www.python.org/[Python]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:927 +#, no-wrap +msgid "[.filename]#ruby#`*`" +msgstr "[.filename]#ruby#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:928 +#, no-wrap +msgid "Software related to the https://www.ruby-lang.org/[Ruby] language." +msgstr "Программное обеспечение, связанное с языком https://www.ruby-lang.org/[Ruby]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:931 +#, no-wrap +msgid "[.filename]#rubygems#`*`" +msgstr "[.filename]#rubygems#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:932 +#, no-wrap +msgid "Ports of https://www.rubygems.org/[RubyGems] packages." +msgstr "Порты пакетов https://www.rubygems.org/[RubyGems]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:935 +#, no-wrap +msgid "[.filename]#russian#" +msgstr "[.filename]#russian#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:936 +#, no-wrap +msgid "Russian language support." +msgstr "Поддержка русского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:939 +#, no-wrap +msgid "[.filename]#scheme#`*`" +msgstr "[.filename]#scheme#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:940 +#, no-wrap +msgid "Software related to the Scheme language." +msgstr "Программное обеспечение, связанное с языком Scheme." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:943 +#, no-wrap +msgid "[.filename]#science#" +msgstr "[.filename]#science#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:944 +#, no-wrap +msgid "Scientific ports that do not fit into other categories such as [.filename]#astro#, [.filename]#biology# and [.filename]#math#." +msgstr "Научные порты, которые не входят в другие категории, такие как [.filename]#astro#, [.filename]#biology# и [.filename]#math#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:947 +#, no-wrap +msgid "[.filename]#security#" +msgstr "[.filename]#security#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:948 +#, no-wrap +msgid "Security utilities." +msgstr "Средства обеспечения безопасности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:951 +#, no-wrap +msgid "[.filename]#shells#" +msgstr "[.filename]#shells#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:952 +#, no-wrap +msgid "Command line shells." +msgstr "Командные оболочки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:955 +#, no-wrap +msgid "[.filename]#spanish#`*`" +msgstr "[.filename]#spanish#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:956 +#, no-wrap +msgid "Spanish language support." +msgstr "Поддержка испанского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:959 +#, no-wrap +msgid "[.filename]#sysutils#" +msgstr "[.filename]#sysutils#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:960 +#, no-wrap +msgid "System utilities." +msgstr "Системные утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:963 +#, no-wrap +msgid "[.filename]#tcl#`*`" +msgstr "[.filename]#tcl#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:964 +#, no-wrap +msgid "Ports that use Tcl to run." +msgstr "Порты, использующие Tcl для запуска." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:967 +#, no-wrap +msgid "[.filename]#textproc#" +msgstr "[.filename]#textproc#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:968 +#, no-wrap +msgid "Text processing utilities." +msgstr "Средства обработки текста." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:970 +#, no-wrap +msgid "It does not include desktop publishing tools, which go to [.filename]#print#." +msgstr "Он не включает инструменты для настольных издательских систем, которые помещаются в [.filename]#print#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:971 +#, no-wrap +msgid "[.filename]#tk#`*`" +msgstr "[.filename]#tk#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:972 +#, no-wrap +msgid "Ports that use Tk to run." +msgstr "Порты, использующие Tk для работы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:975 +#, no-wrap +msgid "[.filename]#ukrainian#" +msgstr "[.filename]#ukrainian#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:976 +#, no-wrap +msgid "Ukrainian language support." +msgstr "Поддержка украинского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:979 +#, no-wrap +msgid "[.filename]#vietnamese#" +msgstr "[.filename]#vietnamese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:980 +#, no-wrap +msgid "Vietnamese language support." +msgstr "Поддержка вьетнамского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:983 +#, no-wrap +msgid "[.filename]#wayland#`*`" +msgstr "[.filename]#wayland#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:984 +#, no-wrap +msgid "Ports to support the Wayland display server." +msgstr "Порты для поддержки сервера дисплея Wayland." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:987 +#, no-wrap +msgid "[.filename]#windowmaker#`*`" +msgstr "[.filename]#windowmaker#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:988 +#, no-wrap +msgid "Ports to support the Window Maker window manager." +msgstr "Порты для поддержки оконного менеджера Window Maker." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:991 +#, no-wrap +msgid "[.filename]#www#" +msgstr "[.filename]#www#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:992 +#, no-wrap +msgid "Software related to the World Wide Web." +msgstr "Программное обеспечение, связанное с Всемирной паутиной." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:994 +#, no-wrap +msgid "HTML language support belongs here too." +msgstr "Поддержка языка HTML также относится сюда." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:995 +#, no-wrap +msgid "[.filename]#x11#" +msgstr "[.filename]#x11#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:996 +#, no-wrap +msgid "The X Window System and friends." +msgstr "Система X Window и связанные компоненты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:998 +#, no-wrap +msgid "This category is only for software that directly supports the window system. Do not put regular X applications here. Most of them go into other [.filename]#x11-*# categories (see below)." +msgstr "Эта категория предназначена только для программного обеспечения, которое напрямую поддерживает оконную систему. Не помещайте сюда обычные X-приложения. Большинство из них относятся к другим категориям [.filename]#x11-*# (см. ниже)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:999 +#, no-wrap +msgid "[.filename]#x11-clocks#" +msgstr "[.filename]#x11-clocks#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1000 +#, no-wrap +msgid "X11 clocks." +msgstr "Часы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1003 +#, no-wrap +msgid "[.filename]#x11-drivers#" +msgstr "[.filename]#x11-drivers#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1004 +#, no-wrap +msgid "X11 drivers." +msgstr "Драйверы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1007 +#, no-wrap +msgid "[.filename]#x11-fm#" +msgstr "[.filename]#x11-fm#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1008 +#, no-wrap +msgid "X11 file managers." +msgstr "Менеджеры файлов X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1011 +#, no-wrap +msgid "[.filename]#x11-fonts#" +msgstr "[.filename]#x11-fonts#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1012 +#, no-wrap +msgid "X11 fonts and font utilities." +msgstr "Шрифты и утилиты для работы со шрифтами в X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1015 +#, no-wrap +msgid "[.filename]#x11-servers#" +msgstr "[.filename]#x11-servers#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1016 +#, no-wrap +msgid "X11 servers." +msgstr "Серверы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1019 +#, no-wrap +msgid "[.filename]#x11-themes#" +msgstr "[.filename]#x11-themes#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1020 +#, no-wrap +msgid "X11 themes." +msgstr "Темы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1023 +#, no-wrap +msgid "[.filename]#x11-toolkits#" +msgstr "[.filename]#x11-toolkits#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1024 +#, no-wrap +msgid "X11 toolkits." +msgstr "Инструментарии X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1027 +#, no-wrap +msgid "[.filename]#x11-wm#" +msgstr "[.filename]#x11-wm#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1028 +#, no-wrap +msgid "X11 window managers." +msgstr "Оконные менеджеры X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1031 +#, no-wrap +msgid "[.filename]#xfce#`*`" +msgstr "[.filename]#xfce#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1032 +#, no-wrap +msgid "Ports related to the https://www.xfce.org/[Xfce] desktop environment." +msgstr "Порты, связанные с окружением рабочего стола https://www.xfce.org/[Xfce]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1035 +#, no-wrap +msgid "[.filename]#zope#`*`" +msgstr "[.filename]#zope#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1036 +#, no-wrap +msgid "https://www.zope.org/[Zope] support." +msgstr "https://www.zope.org/[Zope] поддержка." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1040 +#, no-wrap +msgid "Choosing the Right Category" +msgstr "Выбор подходящей категории" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1045 +msgid "" +"As many of the categories overlap, choosing which of the categories will be " +"the primary category of the port can be tedious. There are several rules " +"that govern this issue. Here is the list of priorities, in decreasing order " +"of precedence:" +msgstr "" +"Поскольку многие категории пересекаются, выбор основной категории для порта " +"может быть утомительным. Существует несколько правил, регулирующих этот " +"вопрос. Вот список приоритетов в порядке убывания важности:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1048 +msgid "" +"The first category must be a physical category (see " +"crossref:makefiles[porting-categories,above]). This is necessary to make the " +"packaging work. Virtual categories and physical categories may be intermixed " +"after that." +msgstr "" +"Первая категория должна быть физической (см. crossref:makefiles[porting-" +"categories,выше]). Это необходимо для работы упаковки. Виртуальные категории " +"и физические категории могут чередоваться после этого." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1049 +msgid "" +"Language specific categories always come first. For example, if the port " +"installs Japanese X11 fonts, then the `CATEGORIES` line would read " +"[.filename]#japanese x11-fonts#." +msgstr "" +"Языковые категории всегда указываются первыми. Например, если порт " +"устанавливает японские шрифты для X11, то строка `CATEGORIES` будет " +"выглядеть так: [.filename]#japanese x11-fonts#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1050 +msgid "" +"Specific categories are listed before less-specific ones. For instance, an " +"HTML editor is listed as [.filename]#www editors#, not the other way around. " +"Also, do not list [.filename]#net# when the port belongs to any of " +"[.filename]#irc#, [.filename]#mail#, [.filename]#news#, " +"[.filename]#security#, or [.filename]#www#, as [.filename]#net# is included " +"implicitly." +msgstr "" +"Конкретные категории перечислены перед менее специфичными. Например, HTML-" +"редактор указывается как [.filename]#www editors#, а не наоборот. Также не " +"следует указывать [.filename]#net#, если порт принадлежит к любой из " +"категорий [.filename]#irc#, [.filename]#mail#, [.filename]#news#, " +"[.filename]#security# или [.filename]#www#, так как [.filename]#net# " +"подразумевается автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1051 +msgid "" +"[.filename]#x11# is used as a secondary category only when the primary " +"category is a natural language. In particular, do not put [.filename]#x11# " +"in the category line for X applications." +msgstr "" +"[.filename]#x11# используется как вторичная категория только в случае, когда " +"основной категорией указан естественный язык. В частности, не указывайте " +"[.filename]#x11# в строке категории для X-приложений." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1052 +msgid "" +"Emacs modes are placed in the same ports category as the application " +"supported by the mode, not in [.filename]#editors#. For example, an Emacs " +"mode to edit source files of some programming language goes into " +"[.filename]#lang#." +msgstr "" +"Режимы Emacs размещаются в той же категории портов, что и приложение, " +"поддерживаемое данным режимом, а не в [.filename]#editors#. Например, режим " +"Emacs для редактирования исходных файлов какого-либо языка программирования " +"попадает в [.filename]#lang#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1053 +msgid "" +"Ports installing loadable kernel modules also have the virtual category " +"[.filename]#kld# in their `CATEGORIES` line. This is one of the things " +"handled automatically by adding `USES=kmod`." +msgstr "" +"Порты, устанавливающие загружаемые модули ядра, также имеют виртуальную " +"категорию [.filename]#kld# в строке `CATEGORIES`. Это одна из вещей, " +"автоматически обрабатываемых при добавлении `USES=kmod`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1054 +msgid "" +"[.filename]#misc# does not appear with any other non-virtual category. If " +"there is `misc` with something else in `CATEGORIES`, that means `misc` can " +"safely be deleted and the port placed only in the other subdirectory." +msgstr "" +"[.filename]#misc# не встречается вместе с другими невиртуальными " +"категориями. Если `misc` указан вместе с чем-то еще в `CATEGORIES`, это " +"означает, что `misc` можно безопасно удалить, а порт разместить только в " +"другом подкаталоге." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1055 +msgid "" +"If the port truly does not belong anywhere else, put it in [.filename]#misc#." +msgstr "" +"Если порт действительно не подходит никуда больше, поместите его в " +"[.filename]#misc#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1059 +msgid "" +"If the category is not clearly defined, please put a comment to that effect " +"in the https://bugs.freebsd.org/submit/[port submission] in the bug database " +"so we can discuss it before we import it. As a committer, send a note to " +"the {freebsd-ports} so we can discuss it first. Too often, new ports are " +"imported to the wrong category only to be moved right away." +msgstr "" +"Если категория не определена четко, пожалуйста, укажите это в комментарии " +"при https://bugs.freebsd.org/submit/[отправке порта] в баг-трекере, чтобы мы " +"могли обсудить её перед импортом. Как коммиттер, отправьте сообщение в " +"рассылку {freebsd-ports}, чтобы мы сначала обсудили это. Слишком часто новые " +"порты импортируются в неправильную категорию, после чего их сразу же " +"приходится перемещать." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1061 +#, no-wrap +msgid "Proposing a New Category" +msgstr "Предложение новой категории" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1066 +msgid "" +"As the Ports Collection has grown over time, various new categories have " +"been introduced. New categories can either be _virtual_ categories-those " +"that do not have a corresponding subdirectory in the ports tree- or " +"_physical_ categories-those that do. This section discusses the issues " +"involved in creating a new physical category. Read it thoroughly before " +"proposing a new one." +msgstr "" +"По мере роста Коллекции портов со временем были введены различные новые " +"категории. Новые категории могут быть _виртуальными_ — те, у которых нет " +"соответствующего подкаталога в дереве портов, или _физическими_ — те, у " +"которых он есть. В этом разделе обсуждаются вопросы, связанные с созданием " +"новой физической категории. Внимательно ознакомьтесь с ним, прежде чем " +"предлагать новую." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1068 +msgid "" +"Our existing practice has been to avoid creating a new physical category " +"unless either a large number of ports would logically belong to it, or the " +"ports that would belong to it are a logically distinct group that is of " +"limited general interest (for instance, categories related to spoken human " +"languages), or preferably both." +msgstr "" +"Наша текущая практика заключается в том, чтобы избегать создания новой " +"физической категории, если только либо большое количество портов логически " +"принадлежит к ней, либо порты, которые к ней относятся, представляют собой " +"логически обособленную группу, представляющую ограниченный общий интерес " +"(например, категории, связанные с разговорными человеческими языками), или, " +"желательно, оба условия одновременно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1072 +msgid "" +"The rationale for this is that such a change creates a extref:{committers-" +"guide}[fair amount of work, ports] for both the committers and also for all " +"users who track changes to the Ports Collection. In addition, proposed " +"category changes just naturally seem to attract controversy. (Perhaps this " +"is because there is no clear consensus on when a category is \"too big\", " +"nor whether categories should lend themselves to browsing (and thus what " +"number of categories would be an ideal number), and so forth.)" +msgstr "" +"Обоснование этого заключается в том, что такое изменение создает extref:" +"{committers-guide}[значительный объем работы, ports] как для коммитеров, так " +"и для всех пользователей, которые отслеживают изменения в Коллекции портов. " +"Кроме того, предлагаемые изменения категорий, как правило, вызывают споры. " +"(Возможно, это связано с отсутствием четкого консенсуса относительно того, " +"когда категория становится «слишком большой», а также относительно того, " +"должны ли категории способствовать удобству просмотра (и, следовательно, " +"какое количество категорий было бы идеальным), и так далее.)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1074 +msgid "Here is the procedure:" +msgstr "Вот процедура:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1077 +msgid "" +"Propose the new category on {freebsd-ports}. Include a detailed rationale " +"for the new category, including why the existing categories are not " +"sufficient, and the list of existing ports proposed to move. (If there are " +"new ports pending in Bugzilla that would fit this category, list them too.) " +"If you are the maintainer and/or submitter, respectively, mention that as it " +"may help the case." +msgstr "" +"Предложите новую категорию на {freebsd-ports}. Включите подробное " +"обоснование для новой категории, объясните, почему существующие категории " +"недостаточны, и укажите список существующих портов, предлагаемых к " +"перемещению. (Если в Bugzilla есть ожидающие рассмотрения новые порты, " +"которые подходят под эту категорию, также перечислите их.) Если вы являетесь " +"сопровождающим и/или подающим предложение, укажите это, так как это может " +"помочь в рассмотрении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1078 +msgid "Participate in the discussion." +msgstr "Участвуйте в обсуждении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1079 +msgid "" +"If it seems that there is support for the idea, file a PR which includes " +"both the rationale and the list of existing ports that need to be moved. " +"Ideally, this PR would also include these patches:" +msgstr "" +"Если кажется, что идея находит поддержку, оформите PR, включающий как " +"обоснование, так и список существующих портов, которые необходимо " +"переместить. В идеале, этот PR также должен содержать следующие исправления:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1081 +msgid "[.filename]##Makefile##s for the new ports once they are repocopied" +msgstr "" +"[.filename]##Makefile## для новых портов после копирования их репозитория" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1082 +msgid "[.filename]#Makefile# for the new category" +msgstr "[.filename]#Makefile# для новой категории" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1083 +msgid "[.filename]#Makefile# for the old ports' categories" +msgstr "[.filename]#Makefile# для старых категорий портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1084 +msgid "[.filename]##Makefile##s for ports that depend on the old ports" +msgstr "[.filename]##Makefile## для портов, зависящих от старых портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1085 +msgid "" +"(for extra credit, include the other files that have to change, as per the " +"procedure in the Committer's Guide.)" +msgstr "" +"(для дополнительной оценки включите другие файлы, которые необходимо " +"изменить, в соответствии с процедурой, описанной в Руководстве коммитера.)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1087 +msgid "" +"Since it affects the ports infrastructure and involves moving and patching " +"many ports but also possibly running regression tests on the build cluster, " +"assign the PR to the {portmgr}." +msgstr "" +"Поскольку это затрагивает инфраструктуру портов и включает перемещение и " +"исправление многих портов, а также, возможно, проведение регрессионных " +"тестов на сборочном кластере, назначьте PR для {portmgr}." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1088 +msgid "" +"If that PR is approved, a committer will need to follow the rest of the " +"procedure that is extref:{committers-guide}[outlined in the Committer's " +"Guide, ports]." +msgstr "" +"Если этот PR будет одобрен, коммиттер должен будет выполнить оставшуюся " +"часть процедуры, extref:{committers-guide}[описанной в Руководстве " +"коммиттера,ports]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1091 +msgid "" +"Proposing a new virtual category is similar to the above but much less " +"involved, since no ports will actually have to move. In this case, the only " +"patches to include in the PR would be those to add the new category to " +"`CATEGORIES` of the affected ports." +msgstr "" +"Предложение новой виртуальной категории аналогично описанному выше, но " +"гораздо менее трудоёмко, так как фактически не потребуется перемещать порты. " +"В этом случае единственные патчи, которые нужно включить в PR, — это " +"добавление новой категории в `CATEGORIES` затронутых портов." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1093 +#, no-wrap +msgid "Proposing Reorganizing All the Categories" +msgstr "Предложение о реорганизации всех категорий" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1099 +msgid "" +"Occasionally someone proposes reorganizing the categories with either a 2-" +"level structure, or some other kind of keyword structure. To date, nothing " +"has come of any of these proposals because, while they are very easy to " +"make, the effort involved to retrofit the entire existing ports collection " +"with any kind of reorganization is daunting to say the very least. Please " +"read the history of these proposals in the mailing list archives before " +"posting this idea. Furthermore, be prepared to be challenged to offer a " +"working prototype." +msgstr "" +"Изредка кто-то предлагает реорганизовать категории, используя либо " +"двухуровневую структуру, либо какую-либо другую структуру ключевых слов. На " +"сегодняшний день ни одно из этих предложений не было реализовано, потому " +"что, хотя их очень легко выдвинуть, усилия, необходимые для переработки всей " +"существующей коллекции портов в рамках любой реорганизации, пугают, мягко " +"говоря. Пожалуйста, ознакомьтесь с историей этих предложений в архивах " +"списка рассылки, прежде чем публиковать эту идею. Более того, будьте готовы " +"к тому, что вас попросят предоставить рабочий прототип." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1101 +#, no-wrap +msgid "The Distribution Files" +msgstr "Файлы дистрибутива" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1104 +msgid "" +"The second part of the [.filename]#Makefile# describes the files that must " +"be downloaded to build the port, and where they can be downloaded." +msgstr "" +"Вторая часть [.filename]#Makefile# описывает файлы, которые необходимо " +"загрузить для сборки порта, и места, откуда их можно скачать." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1106 +#, no-wrap +msgid "`DISTNAME`" +msgstr "`DISTNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1113 +msgid "" +"`DISTNAME` is the name of the port as called by the authors of the " +"software. `DISTNAME` defaults to `${PORTNAME}-${DISTVERSIONPREFIX}$" +"{DISTVERSION}${DISTVERSIONSUFFIX}`, and if not set, `DISTVERSION` defaults " +"to `${PORTVERSION}` so override `DISTNAME` only if necessary. `DISTNAME` is " +"only used in two places. First, the distribution file list (`DISTFILES`) " +"defaults to `${DISTNAME}${EXTRACT_SUFX}`. Second, the distribution file is " +"expected to extract into a subdirectory named `WRKSRC`, which defaults to " +"[.filename]#work/${DISTNAME}#." +msgstr "" +"`DISTNAME` — это имя порта, используемое авторами программного обеспечения. " +"По умолчанию `DISTNAME` имеет значение `${PORTNAME}-${DISTVERSIONPREFIX}$" +"{DISTVERSION}${DISTVERSIONSUFFIX}`, а если не задано, `DISTVERSION` по " +"умолчанию принимает значение `${PORTVERSION}`, поэтому переопределяйте " +"`DISTNAME` только при необходимости. `DISTNAME` используется только в двух " +"случаях. Во-первых, список файлов дистрибутива (`DISTFILES`) по умолчанию " +"имеет значение `${DISTNAME}${EXTRACT_SUFX}`. Во-вторых, ожидается, что файл " +"дистрибутива распакуется в подкаталог с именем `WRKSRC`, который по " +"умолчанию равен [.filename]#work/${DISTNAME}#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1116 +msgid "" +"Some vendor's distribution names which do not fit into the `${PORTNAME}-$" +"{PORTVERSION}`-scheme can be handled automatically by setting " +"`DISTVERSIONPREFIX`, `DISTVERSION`, and `DISTVERSIONSUFFIX`. `PORTVERSION` " +"will be derived from `DISTVERSION` automatically." +msgstr "" +"Некоторые названия дистрибутивов от поставщиков, которые не соответствуют " +"схеме `${PORTNAME}-${PORTVERSION}`, могут обрабатываться автоматически путем " +"установки `DISTVERSIONPREFIX`, `DISTVERSION` и `DISTVERSIONSUFFIX`. " +"`PORTVERSION` будет автоматически вычисляться из `DISTVERSION`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1121 +msgid "" +"Only one of `PORTVERSION` and `DISTVERSION` can be set at a time. If " +"`DISTVERSION` does not derive a correct `PORTVERSION`, do not use " +"`DISTVERSION`." +msgstr "" +"Только одна из переменных `PORTVERSION` и `DISTVERSION` может быть " +"установлена одновременно. Если `DISTVERSION` не определяет корректную " +"`PORTVERSION`, не используйте `DISTVERSION`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1125 +msgid "" +"If the upstream version scheme can be derived into a ports-compatible " +"version scheme, set some variable to the upstream version, _do not_ use " +"`DISTVERSION` as the variable name. Set `PORTVERSION` to the computed " +"version based on the variable you created, and set `DISTNAME` accordingly." +msgstr "" +"Если схема версий исходного проекта может быть преобразована в схему, " +"совместимую с портами, установите некоторую переменную в версию исходного " +"проекта, _не используйте_ имя переменной `DISTVERSION`. Установите " +"`PORTVERSION` в вычисленную версию на основе созданной вами переменной и " +"задайте `DISTNAME` соответствующим образом." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1127 +msgid "" +"If the upstream version scheme cannot easily be coerced into a ports-" +"compatible value, set `PORTVERSION` to a sensible value, and set `DISTNAME` " +"with `PORTNAME` with the verbatim upstream version." +msgstr "" +"Если схема версионирования вышестоящего проекта не может быть легко " +"преобразована в значение, совместимое с портами, установите `PORTVERSION` в " +"разумное значение и задайте `DISTNAME` как `PORTNAME` с дословной версией " +"вышестоящего проекта." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1129 +#, no-wrap +msgid "Deriving `PORTVERSION` Manually" +msgstr "Получение `PORTVERSION` вручную" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1135 +msgid "" +"BIND9 uses a version scheme that is not compatible with the ports versions " +"(it has `-` in its versions) and cannot be derived using `DISTVERSION` " +"because after the 9.9.9 release, it will release a \"patchlevels\" in the " +"form of `9.9.9-P1`. DISTVERSION would translate that into `9.9.9.p1`, " +"which, in the ports versioning scheme means 9.9.9 pre-release 1, which is " +"before 9.9.9 and not after. So `PORTVERSION` is manually derived from an " +"`ISCVERSION` variable to output `9.9.9p1`." +msgstr "" +"BIND9 использует схему версионирования, несовместимую с версиями портов (в " +"версиях используется `-`), и её нельзя получить с помощью `DISTVERSION`, так " +"как после выпуска 9.9.9 выходят «уровни исправлений» в формате `9.9.9-P1`. " +"`DISTVERSION` преобразует это в `9.9.9.p1`, что в схеме версионирования " +"портов означает 9.9.9 pre-release 1, то есть версию, предшествующую 9.9.9, а " +"не следующую за ней. Поэтому `PORTVERSION` вручную формируется из переменной " +"`ISCVERSION`, чтобы получить `9.9.9p1`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1137 +msgid "" +"The order into which the ports framework, and pkg, will sort versions is " +"checked using the `-t` argument of man:pkg-version[8]:" +msgstr "" +"Порядок, в котором система портов и pkg будут сортировать версии, " +"проверяется с помощью аргумента `-t` из man:pkg-version[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1144 +#, no-wrap +msgid "" +"% pkg version -t 9.9.9 9.9.9.p1\n" +"> <.>\n" +"% pkg version -t 9.9.9 9.9.9p1\n" +"< <.>\n" +msgstr "" +"% pkg version -t 9.9.9 9.9.9.p1\n" +"> <.>\n" +"% pkg version -t 9.9.9 9.9.9p1\n" +"< <.>\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1147 +msgid "" +"The `>` sign means that the first argument passed to `-t` is greater than " +"the second argument. `9.9.9` is after `9.9.9.p1`." +msgstr "" +"Знак `>` означает, что первый аргумент, переданный в `-t`, больше второго " +"аргумента. `9.9.9` находится после `9.9.9.p1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1148 +msgid "" +"The `<` sign means that the first argument passed to `-t` is less than the " +"second argument. `9.9.9` is before `9.9.9p1`." +msgstr "" +"Знак `<` означает, что первый аргумент, переданный в `-t`, меньше второго " +"аргумента. `9.9.9` находится перед `9.9.9p1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1150 +msgid "" +"In the port [.filename]#Makefile#, for example package:dns/bind99[], it is " +"achieved by:" +msgstr "" +"В файле [.filename]#Makefile# порта, например package:dns/bind99[], это " +"достигается с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1159 +#, no-wrap +msgid "" +"PORTNAME=\tbind\n" +"PORTVERSION=\t${ISCVERSION:S/-P/P/:S/b/.b/:S/a/.a/:S/rc/.rc/}\n" +"CATEGORIES=\tdns net\n" +"MASTER_SITES=\tISC/bind9/${ISCVERSION}\n" +"PKGNAMESUFFIX=\t99\n" +"DISTNAME=\t${PORTNAME}-${ISCVERSION}\n" +msgstr "" +"PORTNAME=\tbind\n" +"PORTVERSION=\t${ISCVERSION:S/-P/P/:S/b/.b/:S/a/.a/:S/rc/.rc/}\n" +"CATEGORIES=\tdns net\n" +"MASTER_SITES=\tISC/bind9/${ISCVERSION}\n" +"PKGNAMESUFFIX=\t99\n" +"DISTNAME=\t${PORTNAME}-${ISCVERSION}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1163 +#, no-wrap +msgid "" +"MAINTAINER=\tmat@FreeBSD.org\n" +"COMMENT=\tBIND DNS suite with updated DNSSEC and DNS64\n" +"WWW=\t\thttps://www.isc.org/bind/\n" +msgstr "" +"MAINTAINER=\tmat@FreeBSD.org\n" +"COMMENT=\tBIND DNS suite with updated DNSSEC and DNS64\n" +"WWW=\t\thttps://www.isc.org/bind/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1165 +#, no-wrap +msgid "LICENSE=\tISCL\n" +msgstr "LICENSE=\tISCL\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1168 +#, no-wrap +msgid "" +"# ISC releases things like 9.8.0-P1 or 9.8.1rc1, which our versioning does not like\n" +"ISCVERSION=\t9.9.9-P6\n" +msgstr "" +"# ISC releases things like 9.8.0-P1 or 9.8.1rc1, which our versioning does not like\n" +"ISCVERSION=\t9.9.9-P6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1174 +msgid "" +"Define upstream version in `ISCVERSION`, with a comment saying _why_ it is " +"needed. Use `ISCVERSION` to get a ports-compatible `PORTVERSION`. Use " +"`ISCVERSION` directly to get the correct URL for fetching the distribution " +"file. Use `ISCVERSION` directly to name the distribution file." +msgstr "" +"Определите версию вышестоящего пакета в `ISCVERSION`, с комментарием, " +"объясняющим, _почему_ это необходимо. Используйте `ISCVERSION` для получения " +"совместимого с портами `PORTVERSION`. Используйте `ISCVERSION` напрямую для " +"получения правильного URL для загрузки файла дистрибутива. Используйте " +"`ISCVERSION` напрямую для именования дистрибутивного файла." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1177 +#, no-wrap +msgid "Derive `DISTNAME` from `PORTVERSION`" +msgstr "Получить `DISTNAME` из `PORTVERSION`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1181 +msgid "" +"From time to time, the distribution file name has little or no relation to " +"the version of the software." +msgstr "" +"Время от времени имя файла дистрибутива имеет мало отношения или вообще " +"никакого отношения к версии программного обеспечения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1183 +msgid "" +"In package:comms/kermit[], only the last element of the version is present " +"in the distribution file:" +msgstr "" +"В пакете package:comms/kermit[], в файле дистрибутива присутствует только " +"последний элемент версии:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1191 +#, no-wrap +msgid "" +"PORTNAME=\tkermit\n" +"PORTVERSION=\t9.0.304\n" +"CATEGORIES=\tcomms ftp net\n" +"MASTER_SITES=\tftp://ftp.kermitproject.org/kermit/test/tar/\n" +"DISTNAME=\tcku${PORTVERSION:E}-dev20\n" +msgstr "" +"PORTNAME=\tkermit\n" +"PORTVERSION=\t9.0.304\n" +"CATEGORIES=\tcomms ftp net\n" +"MASTER_SITES=\tftp://ftp.kermitproject.org/kermit/test/tar/\n" +"DISTNAME=\tcku${PORTVERSION:E}-dev20\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1195 +msgid "" +"The `:E` man:make[1] modifier returns the suffix of the variable, in this " +"case, `304`. The distribution file is correctly generated as `cku304-" +"dev20.tar.gz`." +msgstr "" +"Модификатор `:E` man:make[1] возвращает суффикс переменной, в данном случае " +"`304`. Файл дистрибутива корректно создаётся как `cku304-dev20.tar.gz`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1198 +#, no-wrap +msgid "Exotic Case 1" +msgstr "Экзотический случай 1" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1202 +msgid "" +"Sometimes, there is no relation between the software name, its version, and " +"the distribution file it is distributed in." +msgstr "" +"Иногда нет связи между названием программы, её версией и файлом " +"дистрибутива, в котором она распространяется." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1204 +msgid "From package:audio/libworkman[]:" +msgstr "Из пакета package:audio/libworkman[]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1212 +#, no-wrap +msgid "" +"PORTNAME= libworkman\n" +"PORTVERSION= 1.4\n" +"CATEGORIES= audio\n" +"MASTER_SITES= LOCAL/jim\n" +"DISTNAME= ${PORTNAME}-1999-06-20\n" +msgstr "" +"PORTNAME= libworkman\n" +"PORTVERSION= 1.4\n" +"CATEGORIES= audio\n" +"MASTER_SITES= LOCAL/jim\n" +"DISTNAME= ${PORTNAME}-1999-06-20\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1217 +#, no-wrap +msgid "Exotic Case 2" +msgstr "Экзотический случай 2" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1222 +msgid "" +"In package:comms/librs232[], the distribution file is not versioned, so " +"using crossref:makefiles[makefile-dist_subdir,`DIST_SUBDIR`] is needed:" +msgstr "" +"В пакете package:comms/librs232[] файл дистрибутива не имеет версии, поэтому " +"необходимо использовать crossref:makefiles[makefile-" +"dist_subdir,`DIST_SUBDIR`]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1231 +#, no-wrap +msgid "" +"PORTNAME= librs232\n" +"PORTVERSION= 20160710\n" +"CATEGORIES= comms\n" +"MASTER_SITES= http://www.teuniz.net/RS-232/\n" +"DISTNAME= RS-232\n" +"DIST_SUBDIR=\t${PORTNAME}-${PORTVERSION}\n" +msgstr "" +"PORTNAME= librs232\n" +"PORTVERSION= 20160710\n" +"CATEGORIES= comms\n" +"MASTER_SITES= http://www.teuniz.net/RS-232/\n" +"DISTNAME= RS-232\n" +"DIST_SUBDIR=\t${PORTNAME}-${PORTVERSION}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1239 +msgid "" +"`PKGNAMEPREFIX` and `PKGNAMESUFFIX` do not affect `DISTNAME`. Also note " +"that if `WRKSRC` is equal to [.filename]#${WRKDIR}/${DISTNAME}# while the " +"original source archive is named something other than `${PORTNAME}-$" +"{PORTVERSION}${EXTRACT_SUFX}`, leave `DISTNAME` alone- defining only " +"`DISTFILES` is easier than both `DISTNAME` and `WRKSRC` (and possibly " +"`EXTRACT_SUFX`)." +msgstr "" +"`PKGNAMEPREFIX` и `PKGNAMESUFFIX` не влияют на `DISTNAME`. Также обратите " +"внимание, что если `WRKSRC` равно [.filename]#${WRKDIR}/${DISTNAME}#, а " +"исходный архив с исходным кодом называется иначе, чем `${PORTNAME}-$" +"{PORTVERSION}${EXTRACT_SUFX}`, оставьте `DISTNAME` без изменений — " +"определение только `DISTFILES` проще, чем определение и `DISTNAME`, и " +"`WRKSRC` (а возможно, и `EXTRACT_SUFX`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1242 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4897 +#, no-wrap +msgid "`MASTER_SITES`" +msgstr "`MASTER_SITES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1246 +msgid "" +"Record the directory part of the FTP/HTTP-URL pointing at the original " +"tarball in `MASTER_SITES`. Do not forget the trailing slash ([.filename]#/" +"#)!" +msgstr "" +"Запишите именем каталога из FTP/HTTP-URL, указывающего на исходный tarball, " +"в `MASTER_SITES`. Не забудьте завершающий слэш ([.filename]#/#)!" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1248 +msgid "" +"The `make` macros will try to use this specification for grabbing the " +"distribution file with `FETCH` if they cannot find it already on the system." +msgstr "" +"Макросы `make` будут пытаться использовать эту спецификацию для загрузки " +"файла дистрибутива с помощью `FETCH`, если не смогут найти его уже в системе." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1251 +msgid "" +"It is recommended that multiple sites are included on this list, preferably " +"from different continents. This will safeguard against wide-area network " +"problems." +msgstr "" +"Рекомендуется включать в этот список несколько сайтов, желательно с разных " +"континентов. Это обеспечит защиту от проблем в глобальной сети." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1259 +msgid "" +"`MASTER_SITES` must not be blank. It must point to the actual site hosting " +"the distribution files. It cannot point to web archives, or the FreeBSD " +"distribution files cache sites. The only exception to this rule is ports " +"that do not have any distribution files. For example, meta-ports do not " +"have any distribution files, so `MASTER_SITES` does not need to be set." +msgstr "" +"`MASTER_SITES` не должен быть пустым. Он должен указывать на реальный сайт, " +"где размещены файлы дистрибутива. Он не может указывать на веб-архивы или " +"кэшированные сайты с файлами дистрибутива FreeBSD. Единственное исключение " +"из этого правила — порты, у которых нет файлов дистрибутива. Например, мета-" +"порты не имеют файлов дистрибутива, поэтому `MASTER_SITES` не нужно задавать." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1262 +#, no-wrap +msgid "Using `MASTER_SITE_*` Variables" +msgstr "Использование переменных `MASTER_SITE_*`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1265 +msgid "" +"Shortcut abbreviations are available for popular archives like SourceForge " +"(`SOURCEFORGE`), GNU (`GNU`), or Perl CPAN (`PERL_CPAN`). `MASTER_SITES` can " +"use them directly:" +msgstr "" +"Для популярных архивов, таких как SourceForge (`SOURCEFORGE`), GNU (`GNU`) " +"или Perl CPAN (`PERL_CPAN`), доступны сокращённые обозначения. " +"`MASTER_SITES` может использовать их напрямую:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1269 +#, no-wrap +msgid "MASTER_SITES=\tGNU/make\n" +msgstr "MASTER_SITES=\tGNU/make\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1273 +msgid "" +"The older expanded format still works, but all ports have been converted to " +"the compact format. The expanded format looks like this:" +msgstr "" +"Старый расширенный формат по-прежнему работает, но все порты были " +"преобразованы в компактный формат. Расширенный формат выглядит следующим " +"образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1278 +#, no-wrap +msgid "" +"MASTER_SITES=\t\t${MASTER_SITE_GNU}\n" +"MASTER_SITE_SUBDIR=\tmake\n" +msgstr "" +"MASTER_SITES=\t\t${MASTER_SITE_GNU}\n" +"MASTER_SITE_SUBDIR=\tmake\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1282 +msgid "" +"These values and variables are defined in https://cgit.freebsd.org/ports/" +"tree/Mk/bsd.sites.mk[Mk/bsd.sites.mk]. New entries are added often, so make " +"sure to check the latest version of this file before submitting a port." +msgstr "" +"Эти значения и переменные определены в https://cgit.freebsd.org/ports/tree/" +"Mk/bsd.sites.mk[Mk/bsd.sites.mk]. Новые записи добавляются часто, поэтому " +"обязательно проверяйте последнюю версию этого файла перед отправкой порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1287 +msgid "" +"For any `MASTER_SITE_FOO` variable, the shorthand `_FOO_` can be used. For " +"example, use:" +msgstr "" +"Для любой переменной `MASTER_SITE_FOO` можно использовать сокращение " +"`_FOO_`. Например, используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1291 +#, no-wrap +msgid "MASTER_SITES=\tFOO\n" +msgstr "MASTER_SITES=\tFOO\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1294 +msgid "If `MASTER_SITE_SUBDIR` is needed, use this:" +msgstr "Если требуется `MASTER_SITE_SUBDIR`, используйте следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1298 +#, no-wrap +msgid "MASTER_SITES=\tFOO/bar\n" +msgstr "MASTER_SITES=\tFOO/bar\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1305 +msgid "" +"Some `MASTER_SITE_*` names are quite long, and for ease of use, shortcuts " +"have been defined:" +msgstr "" +"Некоторые имена `MASTER_SITE_*` довольно длинные, и для удобства " +"использования были определены сокращения:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1307 +#, no-wrap +msgid "Shortcuts for `MASTER_SITE_*` Macros" +msgstr "Сокращения для макросов `MASTER_SITE_*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1311 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1369 +#, no-wrap +msgid "Macro" +msgstr "Макрос" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1313 +#, no-wrap +msgid "Shortcut" +msgstr "Сокращение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1314 +#, no-wrap +msgid "`PERL_CPAN`" +msgstr "`PERL_CPAN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1316 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1387 +#, no-wrap +msgid "`CPAN`" +msgstr "`CPAN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1317 +#, no-wrap +msgid "`GITHUB`" +msgstr "`GITHUB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1319 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1408 +#, no-wrap +msgid "`GH`" +msgstr "`GH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1320 +#, no-wrap +msgid "`GITHUB_CLOUD`" +msgstr "`GITHUB_CLOUD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1322 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1411 +#, no-wrap +msgid "`GHC`" +msgstr "`GHC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1323 +#, no-wrap +msgid "`LIBREOFFICE_DEV`" +msgstr "`LIBREOFFICE_DEV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1325 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1429 +#, no-wrap +msgid "`LODEV`" +msgstr "`LODEV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1326 +#, no-wrap +msgid "`NETLIB`" +msgstr "`NETLIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1328 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1438 +#, no-wrap +msgid "`NL`" +msgstr "`NL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1329 +#, no-wrap +msgid "`RUBYGEMS`" +msgstr "`RUBYGEMS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1331 +#, no-wrap +msgid "`RG`" +msgstr "`RG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1332 +#, no-wrap +msgid "`SOURCEFORGE`" +msgstr "`SOURCEFORGE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1333 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1450 +#, no-wrap +msgid "`SF`" +msgstr "`SF`" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1337 +#, no-wrap +msgid "Magic MASTER_SITES Macros" +msgstr "Волшебные макросы MASTER_SITES" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1342 +msgid "" +"Several \"magic\" macros exist for popular sites with a predictable " +"directory structure. For these, just use the abbreviation and the system " +"will choose a subdirectory automatically. For a port named `Stardict`, of " +"version `1.2.3`, and hosted on SourceForge, adding this line:" +msgstr "" +"Существует несколько \"волшебных\" макросов для популярных сайтов с " +"предсказуемой структурой каталогов. Для них достаточно использовать " +"сокращение, и система автоматически выберет подкаталог. Например, для порта " +"с именем `Stardict`, версии `1.2.3`, размещенного на SourceForge, добавьте " +"следующую строку:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1346 +#, no-wrap +msgid "MASTER_SITES=\tSF\n" +msgstr "MASTER_SITES=\tSF\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1350 +msgid "" +"infers a subdirectory named `/project/stardict/stardict/1.2.3`. If the " +"inferred directory is incorrect, it can be overridden:" +msgstr "" +"подразумевает подкаталог с именем `/project/stardict/stardict/1.2.3`. Если " +"подразумеваемый каталог указан неверно, его можно переопределить:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1354 +#, no-wrap +msgid "MASTER_SITES=\tSF/stardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" +msgstr "MASTER_SITES=\tSF/stardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1357 +msgid "This can also be written as" +msgstr "Это также можно записать как" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1362 +#, no-wrap +msgid "" +"MASTER_SITES=\tSF\n" +"MASTER_SITE_SUBDIR=\tstardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" +msgstr "" +"MASTER_SITES=\tSF\n" +"MASTER_SITE_SUBDIR=\tstardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1365 +#, no-wrap +msgid "Magic `MASTER_SITES` Macros" +msgstr "Волшебные макросы `MASTER_SITES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1371 +#, no-wrap +msgid "Assumed subdirectory" +msgstr "Предполагаемая поддиректория" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1372 +#, no-wrap +msgid "`APACHE_COMMONS_BINARIES`" +msgstr "`APACHE_COMMONS_BINARIES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1374 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1377 +#, no-wrap +msgid "`${PORTNAME:S,commons-,,}`" +msgstr "`${PORTNAME:S,commons-,,}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1375 +#, no-wrap +msgid "`APACHE_COMMONS_SOURCE`" +msgstr "`APACHE_COMMONS_SOURCE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1378 +#, no-wrap +msgid "`APACHE_JAKARTA`" +msgstr "`APACHE_JAKARTA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1380 +#, no-wrap +msgid "`${PORTNAME:S,-,/,}/source`" +msgstr "`${PORTNAME:S,-,/,}/source`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1381 +#, no-wrap +msgid "`BERLIOS`" +msgstr "`BERLIOS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1383 +#, no-wrap +msgid "`${PORTNAME:tl}.berlios`" +msgstr "`${PORTNAME:tl}.berlios`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1384 +#, no-wrap +msgid "`CHEESESHOP`" +msgstr "`CHEESESHOP`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1386 +#, no-wrap +msgid "`source/${DISTNAME:C/(.).\\*/\\1/}/${DISTNAME:C/(.*)-[0-9].*/\\1/}`" +msgstr "`source/${DISTNAME:C/(.).\\*/\\1/}/${DISTNAME:C/(.*)-[0-9].*/\\1/}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1389 +#, no-wrap +msgid "`${PORTNAME:C/-.*//}`" +msgstr "`${PORTNAME:C/-.*//}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1390 +#, no-wrap +msgid "`DEBIAN`" +msgstr "`DEBIAN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1392 +#, no-wrap +msgid "`pool/main/${PORTNAME:C/^((lib)?.).*$/\\1/}/${PORTNAME}`" +msgstr "`pool/main/${PORTNAME:C/^((lib)?.).*$/\\1/}/${PORTNAME}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1393 +#, no-wrap +msgid "`FARSIGHT`" +msgstr "`FARSIGHT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1395 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1419 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1422 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1425 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1428 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1431 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1440 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1446 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1479 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1483 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1892 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1896 +#, no-wrap +msgid "`${PORTNAME}`" +msgstr "`${PORTNAME}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1396 +#, no-wrap +msgid "`FESTIVAL`" +msgstr "`FESTIVAL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1398 +#, no-wrap +msgid "`${PORTREVISION}`" +msgstr "`${PORTREVISION}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1399 +#, no-wrap +msgid "`GCC`" +msgstr "`GCC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1401 +#, no-wrap +msgid "`releases/${DISTNAME}`" +msgstr "`releases/${DISTNAME}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1402 +#, no-wrap +msgid "`GENTOO`" +msgstr "`GENTOO`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1404 +#, no-wrap +msgid "`distfiles`" +msgstr "`distfiles`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1405 +#, no-wrap +msgid "`GIMP`" +msgstr "`GIMP`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1407 +#, no-wrap +msgid "`${PORTNAME}/${PORTVERSION:R}/`" +msgstr "`${PORTNAME}/${PORTVERSION:R}/`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1410 +#, no-wrap +msgid "`${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/`" +msgstr "`${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1413 +#, no-wrap +msgid "`${GH_ACCOUNT}/${GH_PROJECT}/`" +msgstr "`${GH_ACCOUNT}/${GH_PROJECT}/`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1414 +#, no-wrap +msgid "`GNOME`" +msgstr "`GNOME`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1416 +#, no-wrap +msgid "`sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" +msgstr "`sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1417 +#, no-wrap +msgid "`GNU`" +msgstr "`GNU`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1420 +#, no-wrap +msgid "`GNUPG`" +msgstr "`GNUPG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1423 +#, no-wrap +msgid "`GNU_ALPHA`" +msgstr "`GNU_ALPHA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1426 +#, no-wrap +msgid "`HORDE`" +msgstr "`HORDE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1432 +#, no-wrap +msgid "`MATE`" +msgstr "`MATE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1434 +#, no-wrap +msgid "`${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" +msgstr "`${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1435 +#, no-wrap +msgid "`MOZDEV`" +msgstr "`MOZDEV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1437 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1449 +#, no-wrap +msgid "`${PORTNAME:tl}`" +msgstr "`${PORTNAME:tl}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1441 +#, no-wrap +msgid "`QT`" +msgstr "`QT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1443 +#, no-wrap +msgid "`archive/qt/${PORTVERSION:R}`" +msgstr "`archive/qt/${PORTVERSION:R}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1444 +#, no-wrap +msgid "`SAMBA`" +msgstr "`SAMBA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1447 +#, no-wrap +msgid "`SAVANNAH`" +msgstr "`SAVANNAH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1451 +#, no-wrap +msgid "`${PORTNAME:tl}/${PORTNAME:tl}/${PORTVERSION}`" +msgstr "`${PORTNAME:tl}/${PORTNAME:tl}/${PORTVERSION}`" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1454 +#, no-wrap +msgid "`USE_GITHUB`" +msgstr "`USE_GITHUB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1458 +msgid "" +"If the distribution file comes from a specific commit or tag on https://" +"github.com/[GitHub] for which there is no officially released file, there is " +"an easy way to set the right `DISTNAME` and `MASTER_SITES` automatically." +msgstr "" +"Если файл дистрибутива получен из определённого коммита или тега на https://" +"github.com/[GitHub], для которого нет официально выпущенного файла, " +"существует простой способ автоматически установить правильные значения " +"`DISTNAME` и `MASTER_SITES`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1463 +msgid "" +"As of 2023-02-21 link:https://github.blog/2023-02-21-update-on-the-future-" +"stability-of-source-code-archives-and-hashes/[GitHub] have announced that " +"source downloads will be stable for a year. Please switch to release assets " +"and if not available ask upstream to generate ones." +msgstr "" +"По состоянию на 2023-02-21 link:https://github.blog/2023-02-21-update-on-the-" +"future-stability-of-source-code-archives-and-hashes/[GitHub] объявили, что " +"загрузки исходного кода будут стабильными в течение года. Пожалуйста, " +"переключитесь на ресурсы выпусков (release assets), а если они недоступны, " +"запросите их создание у вышестоящих разработчиков." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1466 +msgid "These variables are available:" +msgstr "Доступны следующие переменные:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1468 +#, no-wrap +msgid "`USE_GITHUB` Description" +msgstr "`USE_GITHUB` Описание" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1472 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1881 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3681 +#, no-wrap +msgid "Variable" +msgstr "Переменная" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1475 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1884 +#, no-wrap +msgid "Default" +msgstr "По умолчанию" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1476 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4879 +#, no-wrap +msgid "`GH_ACCOUNT`" +msgstr "`GH_ACCOUNT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1477 +#, no-wrap +msgid "Account name of the GitHub user hosting the project" +msgstr "Имя учётной записи пользователя GitHub, который размещает проект" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1480 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4880 +#, no-wrap +msgid "`GH_PROJECT`" +msgstr "`GH_PROJECT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1481 +#, no-wrap +msgid "Name of the project on GitHub" +msgstr "Название проекта на GitHub" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1484 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4882 +#, no-wrap +msgid "`GH_TAGNAME`" +msgstr "`GH_TAGNAME`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1485 +#, no-wrap +msgid "Name of the tag to download (2.0.1, hash, ...) Using the name of a branch here is incorrect. It is also possible to use the hash of a commit id to do a snapshot." +msgstr "Имя тега для загрузки (2.0.1, хэш, ...) Использование имени ветки здесь некорректно. Также можно использовать хэш идентификатора коммита для создания снимка состояния." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1487 +#, no-wrap +msgid "`${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}`" +msgstr "`${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1488 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4881 +#, no-wrap +msgid "`GH_SUBDIR`" +msgstr "`GH_SUBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1491 +#, no-wrap +msgid "" +"When the software needs an additional distribution file to be extracted within\n" +"`${WRKSRC}`, this variable can be used. See the examples in\n" +"crossref:makefiles[makefile-master_sites-github-multiple, Fetching Multiple Files from GitHub] for more information." +msgstr "" +"Когда программному обеспечению требуется дополнительный файл дистрибутива для извлечения в\n" +"`${WRKSRC}`, можно использовать эту переменную. Примеры можно найти в\n" +"crossref:makefiles[makefile-master_sites-github-multiple, Загрузка нескольких файлов из GitHub] для получения дополнительной информации." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1493 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1906 +#, no-wrap +msgid "(none)" +msgstr "(отсутствует)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1494 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4883 +#, no-wrap +msgid "`GH_TUPLE`" +msgstr "`GH_TUPLE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1495 +#, no-wrap +msgid "`GH_TUPLE` allows putting `GH_ACCOUNT`, `GH_PROJECT`, `GH_TAGNAME`, and `GH_SUBDIR` into a single variable. The format is _account_`:`_project_`:`_tagname_`:`_group_`/`_subdir_. The `/`_subdir_ part is optional. It is helpful when there is more than one GitHub project from which to fetch." +msgstr "`GH_TUPLE` позволяет объединить `GH_ACCOUNT`, `GH_PROJECT`, `GH_TAGNAME` и `GH_SUBDIR` в одну переменную. Формат следующий: _account_`:`_project_`:`_tagname_`:`_group_`/`_subdir_. Часть `/`_subdir_ является необязательной. Это полезно, когда требуется получить несколько проектов с GitHub." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1501 +msgid "" +"Do not use `GH_TUPLE` for the default distribution file, as it has no " +"default." +msgstr "" +"Не используйте `GH_TUPLE` для файла дистрибутива по умолчанию, так как у " +"него нет значения по умолчанию." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1504 +#, no-wrap +msgid "Simple Use of `USE_GITHUB`" +msgstr "Простое использование `USE_GITHUB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1509 +msgid "" +"While trying to make a port for version `1.2.7` of pkg from the FreeBSD user " +"on github, at https://github.com/freebsd/pkg/[], The [.filename]#Makefile# " +"would end up looking like this (slightly stripped for the example):" +msgstr "" +"При попытке создать порт для версии `1.2.7` pkg от пользователя FreeBSD на " +"github, по адресу https://github.com/freebsd/pkg/[], файл " +"[.filename]#Makefile# в итоге будет выглядеть следующим образом " +"(незначительно сокращено для примера):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1514 +#, no-wrap +msgid "" +"PORTNAME=\tpkg\n" +"DISTVERSION=\t1.2.7\n" +msgstr "" +"PORTNAME=\tpkg\n" +"DISTVERSION=\t1.2.7\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1517 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1520 +msgid "" +"It will automatically have `MASTER_SITES` set to `GH` and `WRKSRC` to `$" +"{WRKDIR}/pkg-1.2.7`." +msgstr "" +"Он автоматически получит `MASTER_SITES` установленным в `GH` и `WRKSRC` в `$" +"{WRKDIR}/pkg-1.2.7`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1523 +#, no-wrap +msgid "More Complete Use of `USE_GITHUB`" +msgstr "Более полное использование `USE_GITHUB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1527 +msgid "" +"While trying to make a port for the bleeding edge version of pkg from the " +"FreeBSD user on github, at https://github.com/freebsd/pkg/[], the " +"[.filename]#Makefile# ends up looking like this (slightly stripped for the " +"example):" +msgstr "" +"При попытке создать порт для самой последней версии pkg от пользователя " +"FreeBSD на github, по адресу https://github.com/freebsd/pkg/[], файл " +"[.filename]#Makefile# в итоге выглядит следующим образом (незначительно " +"сокращено для примера):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1532 +#, no-wrap +msgid "" +"PORTNAME=\tpkg-devel\n" +"DISTVERSION=\t1.3.0.a.20140411\n" +msgstr "" +"PORTNAME=\tpkg-devel\n" +"DISTVERSION=\t1.3.0.a.20140411\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1537 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" +"GH_PROJECT=\tpkg\n" +"GH_TAGNAME=\t6dbb17b\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" +"GH_PROJECT=\tpkg\n" +"GH_TAGNAME=\t6dbb17b\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1540 +msgid "" +"It will automatically have `MASTER_SITES` set to `GH` and `WRKSRC` to `$" +"{WRKDIR}/pkg-6dbb17b`." +msgstr "" +"Он автоматически получит `MASTER_SITES` со значением `GH` и `WRKSRC` со " +"значением `${WRKDIR}/pkg-6dbb17b`." + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1544 +msgid "" +"`20140411` is the date of the commit referenced in `GH_TAGNAME`, not the " +"date the [.filename]#Makefile# is edited, or the date the commit is made." +msgstr "" +"`20140411` — это дата коммита, указанного в `GH_TAGNAME`, а не дата " +"редактирования файла [.filename]#Makefile# или дата создания коммита." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1549 +#, no-wrap +msgid "Use of `USE_GITHUB` with `DISTVERSIONPREFIX`" +msgstr "Использование `USE_GITHUB` с `DISTVERSIONPREFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1555 +msgid "" +"From time to time, `GH_TAGNAME` is a slight variation from `DISTVERSION`. " +"For example, if the version is `1.0.2`, the tag is `v1.0.2`. In those " +"cases, it is possible to use `DISTVERSIONPREFIX` or `DISTVERSIONSUFFIX`:" +msgstr "" +"Время от времени `GH_TAGNAME` немного отличается от `DISTVERSION`. Например, " +"если версия `1.0.2`, то тег будет `v1.0.2`. В таких случаях можно " +"использовать `DISTVERSIONPREFIX` или `DISTVERSIONSUFFIX`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1561 +#, no-wrap +msgid "" +"PORTNAME=\tfoo\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.0.2\n" +msgstr "" +"PORTNAME=\tfoo\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.0.2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1563 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1627 +#, no-wrap +msgid "USE_GITHUB=\tyes\n" +msgstr "USE_GITHUB=\tyes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1566 +msgid "" +"It will automatically set `GH_TAGNAME` to `v1.0.2`, while `WRKSRC` will be " +"kept to `${WRKDIR}/foo-1.0.2`." +msgstr "" +"Он автоматически установит `GH_TAGNAME` в `v1.0.2`, в то время как `WRKSRC` " +"останется `${WRKDIR}/foo-1.0.2`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1569 +#, no-wrap +msgid "Using `USE_GITHUB` When Upstream Does Not Use Versions" +msgstr "Использование `USE_GITHUB` при отсутствии версий у исходного проекта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1574 +msgid "" +"If there never was a version upstream, do not invent one like `0.1` or " +"`1.0`. Create the port with a `DISTVERSION` of `g__YYYYMMDD__`, where `g` " +"is for Git, and `_YYYYMMDD_` represents the date the commit referenced in " +"`GH_TAGNAME`." +msgstr "" +"Если никогда не было версии вышестоящего репозитория, не изобретайте её, " +"например `0.1` или `1.0`. Создайте порт с `DISTVERSION` в формате " +"`g__YYYYMMDD__`, где `g` означает Git, а `_YYYYMMDD_` представляет дату " +"коммита, указанного в `GH_TAGNAME`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1579 +#, no-wrap +msgid "" +"PORTNAME=\tbar\n" +"DISTVERSION=\tg20140411\n" +msgstr "" +"PORTNAME=\tbar\n" +"DISTVERSION=\tg20140411\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1582 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_TAGNAME=\tc472d66b\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_TAGNAME=\tc472d66b\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1586 +msgid "" +"This creates a versioning scheme that increases over time, and that is still " +"before version `0`. See crossref:makefiles[makefile-versions-ex-pkg-" +"version, this secion on how to compare versions] using man:pkg-version[8]):" +msgstr "" +"Это создаёт схему версионирования, которая увеличивается со временем и всё " +"ещё находится до версии `0`. Подробности об использовании man:pkg-version[8] " +"для сравнения версий смотрите в crossref:makefiles[makefile-versions-ex-pkg-" +"version, этой секции]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1591 +#, no-wrap +msgid "" +"% pkg version -t g20140411 0\n" +"<\n" +msgstr "" +"% pkg version -t g20140411 0\n" +"<\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1594 +msgid "" +"Which means using `PORTEPOCH` will not be needed in case upstream decides to " +"cut versions in the future." +msgstr "" +"Что означает, что использование `PORTEPOCH` не потребуется, если вышестоящий " +"проект решит сократить версии в будущем." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1597 +#, no-wrap +msgid "Using `USE_GITHUB` to Access a Commit Between Two Versions" +msgstr "Использование `USE_GITHUB` для доступа к коммиту между двумя версиями" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1601 +msgid "" +"If the current version of the software uses a Git tag, and the port needs to " +"be updated to a newer, intermediate version, without a tag, use man:git-" +"describe[1] to find out the version to use:" +msgstr "" +"Если текущая версия программного обеспечения использует тег Git, и порт " +"необходимо обновить до более новой промежуточной версии без тега, " +"используйте man:git-describe[1], чтобы определить версию для использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1606 +#, no-wrap +msgid "" +"% git describe --tags f0038b1\n" +"v0.7.3-14-gf0038b1\n" +msgstr "" +"% git describe --tags f0038b1\n" +"v0.7.3-14-gf0038b1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1609 +msgid "`v0.7.3-14-gf0038b1` can be split into three parts:" +msgstr "`v0.7.3-14-gf0038b1` можно разделить на три части:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1610 +#, no-wrap +msgid "`v0.7.3`" +msgstr "`v0.7.3`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1612 +msgid "" +"This is the last Git tag that appears in the commit history before the " +"requested commit." +msgstr "" +"Это последний тег Git, который появляется в истории коммитов перед " +"запрошенным коммитом." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1613 +#, no-wrap +msgid "`-14`" +msgstr "`-14`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1615 +msgid "" +"This means that the requested commit, `f0038b1`, is the 14th commit after " +"the `v0.7.3` tag." +msgstr "" +"Это означает, что запрошенный коммит `f0038b1` является 14-м коммитом после " +"тега `v0.7.3`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1616 +#, no-wrap +msgid "`-gf0038b1`" +msgstr "`-gf0038b1`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1618 +msgid "" +"The `-g` means \"Git\", and the `f0038b1` is the commit hash that this " +"reference points to." +msgstr "" +"`-g` означает \"Git\", а `f0038b1` — это хеш коммита, на который указывает " +"данная ссылка." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1625 +#, no-wrap +msgid "" +"PORTNAME=\tbar\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t0.7.3-14\n" +"DISTVERSIONSUFFIX= -gf0038b1\n" +msgstr "" +"PORTNAME=\tbar\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t0.7.3-14\n" +"DISTVERSIONSUFFIX= -gf0038b1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1631 +msgid "" +"This creates a versioning scheme that increases over time (well, over " +"commits), and does not conflict with the creation of a `0.7.4` version. See " +"crossref:makefiles[makefile-versions-ex-pkg-version, this section for how to " +"compare versions] using man:pkg-version[8]):" +msgstr "" +"Это создаёт схему версионирования, которая увеличивается со временем " +"(точнее, с коммитами) и не конфликтует с созданием версии `0.7.4`. " +"Подробности об использовании man:pkg-version[8] для сравнения версий " +"смотрите в crossref:makefiles[makefile-versions-ex-pkg-version, этой " +"секции] :" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1638 +#, no-wrap +msgid "" +"% pkg version -t 0.7.3 0.7.3.14\n" +"<\n" +"% pkg version -t 0.7.3.14 0.7.4\n" +"<\n" +msgstr "" +"% pkg version -t 0.7.3 0.7.3.14\n" +"<\n" +"% pkg version -t 0.7.3.14 0.7.4\n" +"<\n" + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1644 +msgid "" +"If the requested commit is the same as a tag, a shorter description is shown " +"by default. The longer version is equivalent:" +msgstr "" +"Если запрошенный коммит совпадает с тегом, по умолчанию отображается более " +"короткое описание. Полная версия эквивалентна:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1649 +#, no-wrap +msgid "" +"% git describe --tags c66c71d\n" +"v0.7.3\n" +msgstr "" +"% git describe --tags c66c71d\n" +"v0.7.3\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1652 +#, no-wrap +msgid "" +"% git describe --tags --long c66c71d\n" +"v0.7.3-0-gc66c71d\n" +msgstr "" +"% git describe --tags --long c66c71d\n" +"v0.7.3-0-gc66c71d\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1659 +#, no-wrap +msgid "Fetching Multiple Files from GitHub" +msgstr "Извлечение нескольких файлов из GitHub" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1663 +msgid "" +"The `USE_GITHUB` framework also supports fetching multiple distribution " +"files from different places in GitHub. It works in a way very similar to " +"crossref:makefiles[porting-master-sites-n, Multiple Distribution or Patches " +"Files from Multiple Locations]." +msgstr "" +"Фреймворк `USE_GITHUB` также поддерживает загрузку нескольких файлов " +"дистрибутива из разных мест в GitHub. Он работает очень похоже на " +"crossref:makefiles[porting-master-sites-n, Файлы дистрибуции или патчей из " +"нескольких мест]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1669 +msgid "" +"Multiple values are added to `GH_ACCOUNT`, `GH_PROJECT`, and `GH_TAGNAME`. " +"Each different value is assigned a group. The main value can either have no " +"group, or the `:DEFAULT` group. A value can be omitted if it is the same as " +"the default as listed in crossref:makefiles[makefile-master_sites-github-" +"description,`USE_GITHUB` Description]." +msgstr "" +"В `GH_ACCOUNT`, `GH_PROJECT` и `GH_TAGNAME` добавляются несколько значений. " +"Каждому различному значению присваивается группа. Основное значение может не " +"иметь группы или принадлежать группе `:DEFAULT`. Значение может быть " +"опущено, если оно совпадает со значением по умолчанию, указанным в " +"crossref:makefiles[makefile-master_sites-github-description,описании " +"`USE_GITHUB`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1672 +msgid "" +"`GH_TUPLE` can also be used when there are a lot of distribution files. It " +"helps keep the account, project, tagname, and group information at the same " +"place." +msgstr "" +"`GH_TUPLE` также можно использовать, когда имеется множество файлов " +"дистрибутива. Это помогает сохранять учётные данные, проект, имя тега и " +"информацию о группе в одном месте." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1675 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1979 +msgid "" +"For each group, a `${WRKSRC_group}` helper variable is created, containing " +"the directory into which the file has been extracted. The `${WRKSRC_group}` " +"variables can be used to move directories around during `post-extract`, or " +"add to `CONFIGURE_ARGS`, or whatever is needed so that the software builds " +"correctly." +msgstr "" +"Для каждой группы создаётся вспомогательная переменная `${WRKSRC_group}`, " +"содержащая каталог, в который был извлечён файл. Переменные `${WRKSRC_group}" +"` могут использоваться для перемещения каталогов во время `post-extract`, " +"добавления в `CONFIGURE_ARGS` или любых других действий, необходимых для " +"корректной сборки программного обеспечения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1680 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1984 +msgid "" +"The `:__group__` part _must_ be used for _only one_ distribution file. It " +"is used as a unique key and using it more than once will overwrite the " +"previous values." +msgstr "" +"Часть `:__group__` _должна_ использоваться _только для одного_ файла " +"дистрибутива. Она служит уникальным ключом, и её повторное использование " +"приведёт к перезаписи предыдущих значений." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1687 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1991 +msgid "" +"As this is only syntactic sugar above `DISTFILES` and `MASTER_SITES`, the " +"group names must adhere to the restrictions on group names outlined in " +"crossref:makefiles[porting-master-sites-n, Multiple Distribution or Patches " +"Files from Multiple Locations]" +msgstr "" +"Поскольку это всего лишь синтаксический сахар над `DISTFILES` и " +"`MASTER_SITES`, имена групп должны соответствовать ограничениям на имена " +"групп, описанным в crossref:makefiles[porting-master-sites-n, Файлы " +"дистрибутивов или патчей из нескольких источников]" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1691 +msgid "" +"When fetching multiple files from GitHub, sometimes the default distribution " +"file is not fetched from GitHub. To disable fetching the default " +"distribution, set:" +msgstr "" +"При получении нескольких файлов из GitHub иногда файл дистрибутива по " +"умолчанию не загружается из GitHub. Чтобы отключить загрузку файла " +"дистрибутива по умолчанию, установите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1695 +#, no-wrap +msgid "USE_GITHUB=\tnodefault\n" +msgstr "USE_GITHUB=\tnodefault\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1700 +msgid "" +"When using `USE_GITHUB=nodefault`, the [.filename]#Makefile# must set " +"`DISTFILES` in its crossref:porting-order[porting-order-portname,top block]. " +"The definition should be:" +msgstr "" +"При использовании `USE_GITHUB=nodefault` в [.filename]#Makefile# необходимо " +"указать `DISTFILES` в его crossref:porting-order[porting-order-" +"portname,верхнем блоке]. Определение должно быть следующим:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1704 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2010 +#, no-wrap +msgid "DISTFILES= ${DISTNAME}${EXTRACT_SUFX}\n" +msgstr "DISTFILES= ${DISTNAME}${EXTRACT_SUFX}\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1709 +#, no-wrap +msgid "Use of `USE_GITHUB` with Multiple Distribution Files" +msgstr "Использование `USE_GITHUB` с несколькими файлами дистрибутива" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1715 +msgid "" +"From time to time, there is a need to fetch more than one distribution " +"file. For example, when the upstream git repository uses submodules. This " +"can be done easily using groups in the `GH_*` variables:" +msgstr "" +"Время от времени возникает необходимость загрузить более одного файла " +"дистрибутива. Например, когда вышестоящий репозиторий git использует " +"подмодули. Это можно легко сделать с помощью групп в переменных `GH_*`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1720 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1766 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2026 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2072 +#, no-wrap +msgid "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0.2\n" +msgstr "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0.2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1726 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tbar:icons,contrib\n" +"GH_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GH_TAGNAME=\t1.0:icons fa579bc:contrib\n" +"GH_SUBDIR=\text/icons:icons\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tbar:icons,contrib\n" +"GH_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GH_TAGNAME=\t1.0:icons fa579bc:contrib\n" +"GH_SUBDIR=\text/icons:icons\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1728 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1772 +#, no-wrap +msgid "CONFIGURE_ARGS=\t--with-contrib=${WRKSRC_contrib}\n" +msgstr "CONFIGURE_ARGS=\t--with-contrib=${WRKSRC_contrib}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1735 +msgid "" +"This will fetch three distribution files from github. The default one comes " +"from [.filename]#foo/foo# and is version `1.0.2`. The second one, with the " +"`icons` group, comes from [.filename]#bar/foo-icons# and is in version " +"`1.0`. The third one comes from [.filename]#bar/foo-contrib# and uses the " +"Git commit `fa579bc`. The distribution files are named [.filename]#foo-" +"foo-1.0.2_GH0.tar.gz#, [.filename]#bar-foo-icons-1.0_GH0.tar.gz#, and " +"[.filename]#bar-foo-contrib-fa579bc_GH0.tar.gz#." +msgstr "" +"Это загрузит три файла дистрибутива с github. Стандартный берется из " +"[.filename]#foo/foo# и имеет версию `1.0.2`. Второй, с группой `icons`, " +"берется из [.filename]#bar/foo-icons# и имеет версию `1.0`. Третий берется " +"из [.filename]#bar/foo-contrib# и использует Git-коммит `fa579bc`. Файлы " +"дистрибутива называются [.filename]#foo-foo-1.0.2_GH0.tar.gz#, " +"[.filename]#bar-foo-icons-1.0_GH0.tar.gz# и [.filename]#bar-foo-contrib-" +"fa579bc_GH0.tar.gz#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1741 +msgid "" +"All the distribution files are extracted in `${WRKDIR}` in their respective " +"subdirectories. The default file is still extracted in `${WRKSRC}`, in this " +"case, [.filename]#${WRKDIR}/foo-1.0.2#. Each additional distribution file " +"is extracted in `${WRKSRC_group}`. Here, for the `icons` group, it is " +"called `${WRKSRC_icons}` and it contains [.filename]#${WRKDIR}/foo-" +"icons-1.0#. The file with the `contrib` group is called `${WRKSRC_contrib}` " +"and contains `${WRKDIR}/foo-contrib-fa579bc`." +msgstr "" +"Все файлы дистрибутива извлекаются в `${WRKDIR}` в соответствующих " +"подкаталогах. Основной файл по-прежнему извлекается в `${WRKSRC}`, в данном " +"случае, [.filename]#${WRKDIR}/foo-1.0.2#. Каждый дополнительный файл " +"дистрибутива извлекается в `${WRKSRC_group}`. Здесь, для группы `icons`, он " +"называется `${WRKSRC_icons}` и содержит [.filename]#${WRKDIR}/foo-" +"icons-1.0#. Файл с группой `contrib` называется `${WRKSRC_contrib}` и " +"содержит `${WRKDIR}/foo-contrib-fa579bc`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1745 +msgid "" +"The software's build system expects to find the icons in a [.filename]#ext/" +"icons# subdirectory in its sources, so `GH_SUBDIR` is used. `GH_SUBDIR` " +"makes sure that [.filename]#ext# exists, but that [.filename]#ext/icons# " +"does not already exist. Then it does this:" +msgstr "" +"Система сборки программы ожидает найти иконки в подкаталоге [.filename]#ext/" +"icons# в её исходниках, поэтому используется `GH_SUBDIR`. `GH_SUBDIR` " +"гарантирует, что [.filename]#ext# существует, но [.filename]#ext/icons# ещё " +"не существует. Затем он выполняет следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1750 +#, no-wrap +msgid "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" +msgstr "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1755 +#, no-wrap +msgid "Use of `USE_GITHUB` with Multiple Distribution Files Using `GH_TUPLE`" +msgstr "Использование `USE_GITHUB` с несколькими файлами дистрибутива с помощью `GH_TUPLE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1761 +msgid "" +"This is functionally equivalent to crossref:makefiles[makefile-master_sites-" +"github-multi,Use of `USE_GITHUB` with Multiple Distribution Files], but " +"using `GH_TUPLE`:" +msgstr "" +"Это функционально эквивалентно crossref:makefiles[makefile-master_sites-" +"github-multi,Использованию `USE_GITHUB` с несколькими файлами дистрибутива], " +"но с использованием `GH_TUPLE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1770 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tbar:foo-icons:1.0:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:fa579bc:contrib\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tbar:foo-icons:1.0:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:fa579bc:contrib\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1776 +msgid "" +"Grouping was used in the previous example with `bar:icons,contrib`. Some " +"redundant information is present with `GH_TUPLE` because grouping is not " +"possible." +msgstr "" +"В предыдущем примере использовалась группировка с `bar:icons,contrib`. В " +"`GH_TUPLE` присутствует избыточная информация, так как группировка " +"невозможна." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1779 +#, no-wrap +msgid "How to Use `USE_GITHUB` with Git Submodules?" +msgstr "Как использовать `USE_GITHUB` с подмодулями Git?" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1784 +msgid "" +"Ports with GitHub as an upstream repository sometimes use submodules. See " +"man:git-submodule[1] for more information." +msgstr "" +"Порты, использующие GitHub в качестве вышестоящего репозитория, иногда " +"применяют подмодули. Подробнее см. man:git-submodule[1]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1787 +msgid "" +"The problem with submodules is that each is a separate repository. As such, " +"they each must be fetched separately." +msgstr "" +"Проблема с подмодулями заключается в том, что каждый из них является " +"отдельным репозиторием. Таким образом, каждый из них должен быть загружен " +"отдельно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1792 +msgid "" +"Using package:finance/moneymanagerex[] as an example, its GitHub repository " +"is https://github.com/moneymanagerex/moneymanagerex/[]. It has a https://" +"github.com/moneymanagerex/moneymanagerex/blob/" +"master/.gitmodules[.gitmodules] file at the root. This file describes all " +"the submodules used in this repository, and lists additional repositories " +"needed. This file will tell what additional repositories are needed:" +msgstr "" +"В качестве примера используем пакет package:finance/moneymanagerex[], его " +"репозиторий на GitHub находится по адресу https://github.com/moneymanagerex/" +"moneymanagerex/[]. В корне репозитория есть файл https://github.com/" +"moneymanagerex/moneymanagerex/blob/master/.gitmodules[.gitmodules]. Этот " +"файл описывает все подмодули, используемые в данном репозитории, и " +"перечисляет дополнительные необходимые репозитории. Этот файл покажет, какие " +"дополнительные репозитории требуются:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1808 +#, no-wrap +msgid "" +"[submodule \"lib/wxsqlite3\"]\n" +"\tpath = lib/wxsqlite3\n" +"\turl = https://github.com/utelle/wxsqlite3.git\n" +"[submodule \"3rd/mongoose\"]\n" +"\tpath = 3rd/mongoose\n" +"\turl = https://github.com/cesanta/mongoose.git\n" +"[submodule \"3rd/LuaGlue\"]\n" +"\tpath = 3rd/LuaGlue\n" +"\turl = https://github.com/moneymanagerex/LuaGlue.git\n" +"[submodule \"3rd/cgitemplate\"]\n" +"\tpath = 3rd/cgitemplate\n" +"\turl = https://github.com/moneymanagerex/html-template.git\n" +"[...]\n" +msgstr "" +"[submodule \"lib/wxsqlite3\"]\n" +"\tpath = lib/wxsqlite3\n" +"\turl = https://github.com/utelle/wxsqlite3.git\n" +"[submodule \"3rd/mongoose\"]\n" +"\tpath = 3rd/mongoose\n" +"\turl = https://github.com/cesanta/mongoose.git\n" +"[submodule \"3rd/LuaGlue\"]\n" +"\tpath = 3rd/LuaGlue\n" +"\turl = https://github.com/moneymanagerex/LuaGlue.git\n" +"[submodule \"3rd/cgitemplate\"]\n" +"\tpath = 3rd/cgitemplate\n" +"\turl = https://github.com/moneymanagerex/html-template.git\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1812 +msgid "" +"The only information missing from that file is the commit hash or tag to use " +"as a version. This information is found after cloning the repository:" +msgstr "" +"Единственная информация, отсутствующая в этом файле, — это хэш коммита или " +"тег, который следует использовать в качестве версии. Эта информация " +"находится после клонирования репозитория:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1841 +#, no-wrap +msgid "" +"% git clone --recurse-submodules https://github.com/moneymanagerex/moneymanagerex.git\n" +"Cloning into 'moneymanagerex'...\n" +"remote: Counting objects: 32387, done.\n" +"[...]\n" +"Submodule '3rd/LuaGlue' (https://github.com/moneymanagerex/LuaGlue.git) registered for path '3rd/LuaGlue'\n" +"Submodule '3rd/cgitemplate' (https://github.com/moneymanagerex/html-template.git) registered for path '3rd/cgitemplate'\n" +"Submodule '3rd/mongoose' (https://github.com/cesanta/mongoose.git) registered for path '3rd/mongoose'\n" +"Submodule 'lib/wxsqlite3' (https://github.com/utelle/wxsqlite3.git) registered for path 'lib/wxsqlite3'\n" +"[...]\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/LuaGlue'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/cgitemplate'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/mongoose'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/lib/wxsqlite3'...\n" +"[...]\n" +"Submodule path '3rd/LuaGlue': checked out 'c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b'\n" +"Submodule path '3rd/cgitemplate': checked out 'cd434eeeb35904ebcd3d718ba29c281a649b192c'\n" +"Submodule path '3rd/mongoose': checked out '2140e5992ab9a3a9a34ce9a281abf57f00f95cda'\n" +"Submodule path 'lib/wxsqlite3': checked out 'fb66eb230d8aed21dec273b38c7c054dcb7d6b51'\n" +"[...]\n" +"% cd moneymanagerex\n" +"% git submodule status\n" +" c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b 3rd/LuaGlue (heads/master)\n" +" cd434eeeb35904ebcd3d718ba29c281a649b192c 3rd/cgitemplate (cd434ee)\n" +" 2140e5992ab9a3a9a34ce9a281abf57f00f95cda 3rd/mongoose (6.2-138-g2140e59)\n" +" fb66eb230d8aed21dec273b38c7c054dcb7d6b51 lib/wxsqlite3 (v3.4.0)\n" +"[...]\n" +msgstr "" +"% git clone --recurse-submodules https://github.com/moneymanagerex/moneymanagerex.git\n" +"Cloning into 'moneymanagerex'...\n" +"remote: Counting objects: 32387, done.\n" +"[...]\n" +"Submodule '3rd/LuaGlue' (https://github.com/moneymanagerex/LuaGlue.git) registered for path '3rd/LuaGlue'\n" +"Submodule '3rd/cgitemplate' (https://github.com/moneymanagerex/html-template.git) registered for path '3rd/cgitemplate'\n" +"Submodule '3rd/mongoose' (https://github.com/cesanta/mongoose.git) registered for path '3rd/mongoose'\n" +"Submodule 'lib/wxsqlite3' (https://github.com/utelle/wxsqlite3.git) registered for path 'lib/wxsqlite3'\n" +"[...]\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/LuaGlue'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/cgitemplate'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/mongoose'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/lib/wxsqlite3'...\n" +"[...]\n" +"Submodule path '3rd/LuaGlue': checked out 'c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b'\n" +"Submodule path '3rd/cgitemplate': checked out 'cd434eeeb35904ebcd3d718ba29c281a649b192c'\n" +"Submodule path '3rd/mongoose': checked out '2140e5992ab9a3a9a34ce9a281abf57f00f95cda'\n" +"Submodule path 'lib/wxsqlite3': checked out 'fb66eb230d8aed21dec273b38c7c054dcb7d6b51'\n" +"[...]\n" +"% cd moneymanagerex\n" +"% git submodule status\n" +" c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b 3rd/LuaGlue (heads/master)\n" +" cd434eeeb35904ebcd3d718ba29c281a649b192c 3rd/cgitemplate (cd434ee)\n" +" 2140e5992ab9a3a9a34ce9a281abf57f00f95cda 3rd/mongoose (6.2-138-g2140e59)\n" +" fb66eb230d8aed21dec273b38c7c054dcb7d6b51 lib/wxsqlite3 (v3.4.0)\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1845 +msgid "" +"It can also be found on GitHub. Each subdirectory that is a submodule is " +"shown as `_directory @ hash_`, for example, `mongoose @ 2140e59`." +msgstr "" +"Это также можно найти на GitHub. Каждый подкаталог, который является " +"подмодулем, отображается как `_директория @ хэш_`, например, `mongoose @ " +"2140e59`." + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1851 +msgid "" +"While getting the information from GitHub seems more straightforward, the " +"information found using `git submodule status` will provide more meaningful " +"information. For example, here, ``lib/wxsqlite3``'s commit hash `fb66eb2` " +"correspond to `v3.4.0`. Both can be used interchangeably, but when a tag is " +"available, use it." +msgstr "" +"Хотя получение информации из GitHub кажется более простым, данные, " +"полученные с помощью `git submodule status`, будут более информативными. " +"Например, здесь хеш коммита ``lib/wxsqlite3`` `fb66eb2` соответствует " +"`v3.4.0`. Оба варианта можно использовать взаимозаменяемо, но если доступен " +"тег, предпочтительнее использовать его." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1854 +msgid "" +"Now that all the required information has been gathered, the " +"[.filename]#Makefile# can be written (only GitHub-related lines are shown):" +msgstr "" +"Теперь, когда вся необходимая информация собрана, можно написать " +"[.filename]#Makefile# (показаны только строки, связанные с GitHub):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1860 +#, no-wrap +msgid "" +"PORTNAME=\tmoneymanagerex\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.3.0\n" +msgstr "" +"PORTNAME=\tmoneymanagerex\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.3.0\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1867 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tutelle:wxsqlite3:v3.4.0:wxsqlite3/lib/wxsqlite3 \\\n" +"\t\tmoneymanagerex:LuaGlue:c51d11a:lua_glue/3rd/LuaGlue \\\n" +"\t\tmoneymanagerex:html-template:cd434ee:html_template/3rd/cgitemplate \\\n" +"\t\tcesanta:mongoose:2140e59:mongoose/3rd/mongoose \\\n" +"\t\t[...]\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tutelle:wxsqlite3:v3.4.0:wxsqlite3/lib/wxsqlite3 \\\n" +"\t\tmoneymanagerex:LuaGlue:c51d11a:lua_glue/3rd/LuaGlue \\\n" +"\t\tmoneymanagerex:html-template:cd434ee:html_template/3rd/cgitemplate \\\n" +"\t\tcesanta:mongoose:2140e59:mongoose/3rd/mongoose \\\n" +"\t\t[...]\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1872 +#, no-wrap +msgid "`USE_GITLAB`" +msgstr "`USE_GITLAB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1875 +msgid "" +"Similar to GitHub, if the distribution file comes from https://gitlab.com/" +"[gitlab.com] or is hosting the GitLab software, these variables are " +"available for use and might need to be set." +msgstr "" +"Подобно GitHub, если файл дистрибутива поставляется с https://gitlab.com/" +"[gitlab.com] или использует программное обеспечение GitLab, эти переменные " +"доступны для использования и могут потребовать установки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1877 +#, no-wrap +msgid "`USE_GITLAB` Description" +msgstr "Описание `USE_GITLAB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1885 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4887 +#, no-wrap +msgid "`GL_SITE`" +msgstr "`GL_SITE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1886 +#, no-wrap +msgid "Site name hosting the GitLab project" +msgstr "Название сайта, на котором размещен проект GitLab" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1888 +#, no-wrap +msgid "https://gitlab.com/" +msgstr "https://gitlab.com/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1889 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4884 +#, no-wrap +msgid "`GL_ACCOUNT`" +msgstr "`GL_ACCOUNT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1890 +#, no-wrap +msgid "Account name of the GitLab user hosting the project" +msgstr "Имя учётной записи пользователя GitLab, размещающего проект" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1893 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4886 +#, no-wrap +msgid "`GL_PROJECT`" +msgstr "`GL_PROJECT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1894 +#, no-wrap +msgid "Name of the project on GitLab" +msgstr "Название проекта на GitLab" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1897 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4885 +#, no-wrap +msgid "`GL_COMMIT`" +msgstr "`GL_COMMIT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1898 +#, no-wrap +msgid "The commit hash to download. Must be the full 160 bit, 40 character hex sha1 hash. This is a required variable for GitLab." +msgstr "Хэш коммита для загрузки. Должен быть полным 160-битным, 40-символьным шестнадцатеричным хэшем sha1. Это обязательная переменная для GitLab." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1900 +#, no-wrap +msgid "`(none)`" +msgstr "`(нет)`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1901 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4888 +#, no-wrap +msgid "`GL_SUBDIR`" +msgstr "`GL_SUBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1904 +#, no-wrap +msgid "" +"When the software needs an additional distribution file to be extracted within\n" +"`${WRKSRC}`, this variable can be used. See the examples in\n" +"\tcrossref:makefiles[makefile-master_sites-gitlab-multiple, Fetching Multiple Files from GitLab] for more information." +msgstr "" +"Когда программному обеспечению требуется дополнительный файл дистрибутива для извлечения в\n" +"`${WRKSRC}`, можно использовать эту переменную. Примеры можно найти в\n" +"\tcrossref:makefiles[makefile-master_sites-gitlab-multiple, Загрузка нескольких файлов из GitLab] для получения дополнительной информации." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1907 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4889 +#, no-wrap +msgid "`GL_TUPLE`" +msgstr "`GL_TUPLE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1908 +#, no-wrap +msgid "`GL_TUPLE` allows putting `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT`, `GL_COMMIT`, and `GL_SUBDIR` into a single variable. The format is _site_`:`_account_`:`_project_`:`_commit_`:`_group_`/`_subdir_. The _site_`:` and `/`_subdir_ part is optional. It is helpful when there are more than one GitLab project from which to fetch." +msgstr "`GL_TUPLE` позволяет объединить `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT`, `GL_COMMIT` и `GL_SUBDIR` в одну переменную. Формат записи: _сайт_`:`_учётная запись_`:`_проект_`:`_коммит_`:`_группа_`/`_поддиректория_. Части _сайт_`:` и `/`_поддиректория_ являются необязательными. Это полезно, когда требуется загрузить данные из нескольких проектов GitLab." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1912 +#, no-wrap +msgid "Simple Use of `USE_GITLAB`" +msgstr "Простое использование `USE_GITLAB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1916 +msgid "" +"While trying to make a port for version `1.14` of libsignon-glib from the " +"accounts-sso user on gitlab.com, at https://gitlab.com/accounts-sso/" +"libsignon-glib/[], The [.filename]#Makefile# would end up looking like this " +"for fetching the distribution files:" +msgstr "" +"Пытаясь создать порт для версии `1.14` библиотеки libsignon-glib от " +"пользователя accounts-sso на gitlab.com, по адресу https://gitlab.com/" +"accounts-sso/libsignon-glib/[], файл [.filename]#Makefile# будет выглядеть " +"следующим образом для загрузки дистрибутивных файлов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1921 +#, no-wrap +msgid "" +"PORTNAME=\tlibsignon-glib\n" +"DISTVERSION=\t1.14\n" +msgstr "" +"PORTNAME=\tlibsignon-glib\n" +"DISTVERSION=\t1.14\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1925 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_ACCOUNT=\taccounts-sso\n" +"GL_COMMIT=\te90302e342bfd27bc8c9132ab9d0ea3d8723fd03\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_ACCOUNT=\taccounts-sso\n" +"GL_COMMIT=\te90302e342bfd27bc8c9132ab9d0ea3d8723fd03\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1928 +msgid "" +"It will automatically have `MASTER_SITES` set to https://gitlab.com/" +"[gitlab.com] and `WRKSRC` to `${WRKDIR}/libsignon-glib-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03`." +msgstr "" +"Он автоматически получит `MASTER_SITES`, установленный на https://gitlab.com/" +"[gitlab.com], и `WRKSRC` на `${WRKDIR}/libsignon-glib-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1931 +#, no-wrap +msgid "More Complete Use of `USE_GITLAB`" +msgstr "Более полное использование `USE_GITLAB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1936 +msgid "" +"A more complete use of the above if port had no versioning and foobar from " +"the foo user on project bar on a self hosted GitLab site `https://" +"gitlab.example.com/`, the [.filename]#Makefile# ends up looking like this " +"for fetching distribution files:" +msgstr "" +"Более полный пример использования вышеописанного, если порт не имеет " +"версионирования и foobar принадлежит пользователю foo в проекте bar на " +"самостоятельно размещенном сайте GitLab `https://gitlab.example.com/`, тогда " +"[.filename]#Makefile# будет выглядеть следующим образом для загрузки " +"дистрибутивных файлов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1941 +#, no-wrap +msgid "" +"PORTNAME=\tfoobar\n" +"DISTVERSION=\tg20170906\n" +msgstr "" +"PORTNAME=\tfoobar\n" +"DISTVERSION=\tg20170906\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1947 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com\n" +"GL_ACCOUNT=\tfoo\n" +"GL_PROJECT=\tbar\n" +"GL_COMMIT=\t9c1669ce60c3f4f5eb43df874d7314483fb3f8a6\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com\n" +"GL_ACCOUNT=\tfoo\n" +"GL_PROJECT=\tbar\n" +"GL_COMMIT=\t9c1669ce60c3f4f5eb43df874d7314483fb3f8a6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1950 +msgid "" +"It will have `MASTER_SITES` set to `\"https://gitlab.example.com\"` and " +"`WRKSRC` to `${WRKDIR}/" +"bar-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6`." +msgstr "" +"В нем будет установлено `MASTER_SITES` в `\"https://gitlab.example.com\"` и " +"`WRKSRC` в `${WRKDIR}/" +"bar-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6`." + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1954 +msgid "" +"`20170906` is the date of the commit referenced in `GL_COMMIT`, not the date " +"the [.filename]#Makefile# is edited, or the date the commit to the FreeBSD " +"ports tree is made." +msgstr "" +"`20170906` — это дата коммита, указанного в `GL_COMMIT`, а не дата " +"редактирования файла [.filename]#Makefile# или дата коммита в дерево портов " +"FreeBSD." + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1959 +msgid "" +"``GL_SITE``'s protocol, port and webroot can all be modified in the same " +"variable." +msgstr "" +"Протокол, порт и корневая директория веб-сервера ``GL_SITE`` могут быть " +"изменены в той же переменной." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1964 +#, no-wrap +msgid "Fetching Multiple Files from GitLab" +msgstr "Извлечение нескольких файлов из GitLab" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1969 +msgid "" +"The `USE_GITLAB` framework also supports fetching multiple distribution " +"files from different places from GitLab and GitLab hosted sites. It works " +"in a way very similar to crossref:makefiles[porting-master-sites-n, Multiple " +"Distribution or Patches Files from Multiple Locations] and " +"crossref:makefiles[makefile-master_sites-gitlab-multiple, Fetching Multiple " +"Files from GitLab]." +msgstr "" +"Фреймворк `USE_GITLAB` также поддерживает загрузку нескольких файлов " +"дистрибутивов из различных мест GitLab и сайтов, размещённых на GitLab. Он " +"работает очень похоже на crossref:makefiles[porting-master-sites-n, " +"Несколько файлов дистрибутивов или патчей из разных местоположений] и " +"crossref:makefiles[makefile-master_sites-gitlab-multiple, Загрузка " +"нескольких файлов из GitLab]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1973 +msgid "" +"Multiple values are added to `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT` and " +"`GL_COMMIT`. Each different value is assigned a group. " +"crossref:makefiles[makefile-master_sites-gitlab-description,`USE_GITLAB` " +"Description]." +msgstr "" +"В `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT` и `GL_COMMIT` добавляются " +"множественные значения. Каждое уникальное значение назначается группе. " +"crossref:makefiles[makefile-master_sites-gitlab-description,Описание " +"`USE_GITLAB`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1976 +msgid "" +"`GL_TUPLE` can also be used when there are a lot of distribution files. It " +"helps keep the site, account, project, commit, and group information at the " +"same place." +msgstr "" +"`GL_TUPLE` также может использоваться, когда имеется множество файлов " +"дистрибутива. Это помогает хранить информацию о сайте, учётной записи, " +"проекте, коммите и группе в одном месте." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1995 +msgid "" +"When fetching multiple files using GitLab, sometimes the default " +"distribution file is not fetched from a GitLab site. To disable fetching " +"the default distribution, set:" +msgstr "" +"При получении нескольких файлов с использованием GitLab иногда файл " +"дистрибутива по умолчанию не загружается с сайта GitLab. Чтобы отключить " +"загрузку файла дистрибутива по умолчанию, установите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1999 +#, no-wrap +msgid "USE_GITLAB=\tnodefault\n" +msgstr "USE_GITLAB=\tnodefault\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2006 +msgid "" +"When using `USE_GITLAB=nodefault`, the [.filename]#Makefile# must set " +"`DISTFILES` in its crossref:makefiles[porting-order-portname,top block]. " +"The definition should be:" +msgstr "" +"При использовании `USE_GITLAB=nodefault`, [.filename]#Makefile# должен " +"устанавливать `DISTFILES` в своем crossref:makefiles[porting-order-" +"portname,верхнем блоке]. Определение должно быть следующим:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2015 +#, no-wrap +msgid "Use of `USE_GITLAB` with Multiple Distribution Files" +msgstr "Использование `USE_GITLAB` с несколькими файлами дистрибутива" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2021 +msgid "" +"From time to time, there is a need to fetch more than one distribution " +"file. For example, when the upstream git repository uses submodules. This " +"can be done easily using groups in the `GL_*` variables:" +msgstr "" +"Время от времени возникает необходимость загрузить более одного файла " +"дистрибутива. Например, когда вышестоящий git-репозиторий использует " +"подмодули. Это можно легко сделать с помощью групп в переменных `GL_*`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2033 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com:9434/gitlab:icons\n" +"GL_ACCOUNT=\tbar:icons,contrib\n" +"GL_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b ae7368cab1ca7ca754b38d49da064df87968ffe4:icons 9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" +"GL_SUBDIR=\text/icons:icons\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com:9434/gitlab:icons\n" +"GL_ACCOUNT=\tbar:icons,contrib\n" +"GL_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b ae7368cab1ca7ca754b38d49da064df87968ffe4:icons 9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" +"GL_SUBDIR=\text/icons:icons\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2035 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2079 +#, no-wrap +msgid "CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib}\n" +msgstr "CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2042 +msgid "" +"This will fetch two distribution files from gitlab.com and one from " +"`gitlab.example.com` hosting GitLab. The default one comes from " +"[.filename]#https://gitlab.com/foo/foo# and commit is " +"`c189207a55da45305c884fe2b50e086fcad4724b`. The second one, with the " +"`icons` group, comes from [.filename]#https://gitlab.example.com:9434/gitlab/" +"bar/foo-icons# and commit is `ae7368cab1ca7ca754b38d49da064df87968ffe4`. " +"The third one comes from [.filename]#https://gitlab.com/bar/foo-contrib# and " +"is commit `9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`. The distribution " +"files are named [.filename]#foo-foo-" +"c189207a55da45305c884fe2b50e086fcad4724b_GL0.tar.gz#, [.filename]#bar-foo-" +"icons-ae7368cab1ca7ca754b38d49da064df87968ffe4_GL0.tar.gz#, and " +"[.filename]#bar-foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a_GL0.tar.gz#." +msgstr "" +"Это загрузит два файла дистрибутива с gitlab.com и один с " +"`gitlab.example.com`, где размещается GitLab. По умолчанию файл берется из " +"[.filename]#https://gitlab.com/foo/foo#, а коммит — " +"`c189207a55da45305c884fe2b50e086fcad4724b`. Второй файл, из группы `icons`, " +"берется из [.filename]#https://gitlab.example.com:9434/gitlab/bar/foo-" +"icons#, а коммит — `ae7368cab1ca7ca754b38d49da064df87968ffe4`. Третий файл " +"берется из [.filename]#https://gitlab.com/bar/foo-contrib#, а коммит — " +"`9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`. Файлы дистрибутива называются " +"[.filename]#foo-foo-c189207a55da45305c884fe2b50e086fcad4724b_GL0.tar.gz#, " +"[.filename]#bar-foo-icons-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4_GL0.tar.gz# и [.filename]#bar-foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a_GL0.tar.gz#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2048 +msgid "" +"All the distribution files are extracted in `${WRKDIR}` in their respective " +"subdirectories. The default file is still extracted in `${WRKSRC}`, in this " +"case, [.filename]#${WRKDIR}/foo-c189207a55da45305c884fe2b50e086fcad4724b-" +"c189207a55da45305c884fe2b50e086fcad4724b#. Each additional distribution " +"file is extracted in `${WRKSRC_group}`. Here, for the `icons` group, it is " +"called `${WRKSRC_icons}` and it contains [.filename]#${WRKDIR}/foo-icons-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4#. The file with the `contrib` " +"group is called `${WRKSRC_contrib}` and contains `${WRKDIR}/foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`." +msgstr "" +"Все файлы дистрибутива извлекаются в `${WRKDIR}` в соответствующих " +"подкаталогах. Основной файл по-прежнему извлекается в `${WRKSRC}`, в данном " +"случае это [.filename]#${WRKDIR}/foo-" +"c189207a55da45305c884fe2b50e086fcad4724b-" +"c189207a55da45305c884fe2b50e086fcad4724b#. Каждый дополнительный файл " +"дистрибутива извлекается в `${WRKSRC_group}`. Здесь для группы `icons` он " +"называется `${WRKSRC_icons}` и содержит [.filename]#${WRKDIR}/foo-icons-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4#. Файл группы `contrib` называется " +"`${WRKSRC_contrib}` и содержит `${WRKDIR}/foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2052 +msgid "" +"The software's build system expects to find the icons in a [.filename]#ext/" +"icons# subdirectory in its sources, so `GL_SUBDIR` is used. `GL_SUBDIR` " +"makes sure that [.filename]#ext# exists, but that [.filename]#ext/icons# " +"does not already exist. Then it does this:" +msgstr "" +"Система сборки программного обеспечения ожидает найти иконки в подкаталоге " +"[.filename]#ext/icons# в своих исходниках, поэтому используется `GL_SUBDIR`. " +"`GL_SUBDIR` гарантирует, что [.filename]#ext# существует, но [.filename]#ext/" +"icons# ещё не существует. Затем она выполняет следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2057 +#, no-wrap +msgid "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" +msgstr "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2062 +#, no-wrap +msgid "Use of `USE_GITLAB` with Multiple Distribution Files Using `GL_TUPLE`" +msgstr "Использование `USE_GITLAB` с несколькими файлами дистрибуции с помощью `GL_TUPLE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2067 +msgid "" +"This is functionally equivalent to crossref:makefiles[makefile-master_sites-" +"gitlab-multi,Use of `USE_GITLAB` with Multiple Distribution Files], but " +"using `GL_TUPLE`:" +msgstr "" +"Это функционально эквивалентно crossref:makefiles[makefile-master_sites-" +"gitlab-multi,Использование `USE_GITLAB` с несколькими файлами дистрибуции], " +"но с использованием `GL_TUPLE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2077 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b\n" +"GL_TUPLE=\thttps://gitlab.example.com:9434/gitlab:bar:foo-icons:ae7368cab1ca7ca754b38d49da064df87968ffe4:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b\n" +"GL_TUPLE=\thttps://gitlab.example.com:9434/gitlab:bar:foo-icons:ae7368cab1ca7ca754b38d49da064df87968ffe4:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2083 +msgid "" +"Grouping was used in the previous example with `bar:icons,contrib`. Some " +"redundant information is present with `GL_TUPLE` because grouping is not " +"possible." +msgstr "" +"В предыдущем примере использовалась группировка с `bar:icons,contrib`. " +"Некоторую избыточную информацию приходится указывать с `GL_TUPLE`, так как " +"группировка невозможна." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2086 +#, no-wrap +msgid "`EXTRACT_SUFX`" +msgstr "`EXTRACT_SUFX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2089 +msgid "" +"If there is one distribution file, and it uses an odd suffix to indicate the " +"compression mechanism, set `EXTRACT_SUFX`." +msgstr "" +"Если имеется один файл дистрибутива, и он использует нестандартное суффикс " +"для указания механизма сжатия, установите `EXTRACT_SUFX`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2091 +msgid "" +"For example, if the distribution file was named [.filename]#foo.tar.gzip# " +"instead of the more normal [.filename]#foo.tar.gz#, write:" +msgstr "" +"Например, если файл дистрибутива был назван [.filename]#foo.tar.gzip# вместо " +"более привычного [.filename]#foo.tar.gz#, напишите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2096 +#, no-wrap +msgid "" +"DISTNAME=\tfoo\n" +"EXTRACT_SUFX=\t.tar.gzip\n" +msgstr "" +"DISTNAME=\tfoo\n" +"EXTRACT_SUFX=\t.tar.gzip\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2100 +msgid "" +"The `USES=tar[:__xxx__]`, `USES=lha` or `USES=zip` automatically set " +"`EXTRACT_SUFX` to the most common archives extensions as necessary, see " +"crossref:uses[uses,Using `USES` Macros] for more details. If neither of " +"these are set then `EXTRACT_SUFX` defaults to `.tar.gz`." +msgstr "" +"`USES=tar[:__xxx__]`, `USES=lha` или `USES=zip` автоматически устанавливают " +"`EXTRACT_SUFX` в наиболее распространённые расширения архивов при " +"необходимости, подробнее см. crossref:uses[uses,Использование макросов " +"`USES`]. Если ни один из них не задан, `EXTRACT_SUFX` по умолчанию принимает " +"значение `.tar.gz`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2104 +msgid "As `EXTRACT_SUFX` is only used in `DISTFILES`, only set one of them.." +msgstr "" +"Как `EXTRACT_SUFX` используется только в `DISTFILES`, следует задавать " +"только один из них." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2107 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4876 +#, no-wrap +msgid "`DISTFILES`" +msgstr "`DISTFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2112 +msgid "" +"Sometimes the names of the files to be downloaded have no resemblance to the " +"name of the port. For example, it might be called " +"[.filename]#source.tar.gz# or similar. In other cases the application's " +"source code might be in several different archives, all of which must be " +"downloaded." +msgstr "" +"Иногда названия файлов для загрузки не имеют ничего общего с именем порта. " +"Например, файл может называться [.filename]#source.tar.gz# или подобным " +"образом. В других случаях исходный код приложения может быть разбит на " +"несколько различных архивов, все из которых необходимо загрузить." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2114 +msgid "" +"If this is the case, set `DISTFILES` to be a space separated list of all the " +"files that must be downloaded." +msgstr "" +"Если это так, установите `DISTFILES` как список разделённых пробелами " +"файлов, которые необходимо загрузить." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2118 +#, no-wrap +msgid "DISTFILES=\tsource1.tar.gz source2.tar.gz\n" +msgstr "DISTFILES=\tsource1.tar.gz source2.tar.gz\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2121 +msgid "" +"If not explicitly set, `DISTFILES` defaults to `${DISTNAME}${EXTRACT_SUFX}`." +msgstr "" +"Если явно не задано, `DISTFILES` по умолчанию равно `${DISTNAME}$" +"{EXTRACT_SUFX}`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2123 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4877 +#, no-wrap +msgid "`EXTRACT_ONLY`" +msgstr "`EXTRACT_ONLY`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2126 +msgid "" +"If only some of the `DISTFILES` must be extracted-for example, one of them " +"is the source code, while another is an uncompressed document-list the " +"filenames that must be extracted in `EXTRACT_ONLY`." +msgstr "" +"Если необходимо извлечь только некоторые из `DISTFILES` — например, один из " +"них является исходным кодом, а другой — несжатым документом — укажите имена " +"файлов, которые нужно извлечь, в `EXTRACT_ONLY`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2131 +#, no-wrap +msgid "" +"DISTFILES=\tsource.tar.gz manual.html\n" +"EXTRACT_ONLY=\tsource.tar.gz\n" +msgstr "" +"DISTFILES=\tsource.tar.gz manual.html\n" +"EXTRACT_ONLY=\tsource.tar.gz\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2134 +msgid "" +"When none of the `DISTFILES` need to be uncompressed, set `EXTRACT_ONLY` to " +"the empty string." +msgstr "" +"Если ни один из `DISTFILES` не требует распаковки, установите `EXTRACT_ONLY` " +"в пустую строку." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2138 +#, no-wrap +msgid "EXTRACT_ONLY=\n" +msgstr "EXTRACT_ONLY=\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2141 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4898 +#, no-wrap +msgid "`PATCHFILES`" +msgstr "`PATCHFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2144 +msgid "" +"If the port requires some additional patches that are available by FTP or " +"HTTP, set `PATCHFILES` to the names of the files and `PATCH_SITES` to the " +"URL of the directory that contains them (the format is the same as " +"`MASTER_SITES`)." +msgstr "" +"Если порт требует дополнительных исправлений, доступных через FTP или HTTP, " +"установите `PATCHFILES` в имена файлов, а `PATCH_SITES` — в URL каталога, " +"содержащего их (формат такой же, как у `MASTER_SITES`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2147 +msgid "" +"If the patch is not relative to the top of the source tree (that is, " +"`WRKSRC`) because it contains some extra pathnames, set `PATCH_DIST_STRIP` " +"accordingly. For instance, if all the pathnames in the patch have an extra " +"`foozolix-1.0/` in front of the filenames, then set `PATCH_DIST_STRIP=-p1`." +msgstr "" +"Если патч не относится к корню исходного дерева (то есть к `WRKSRC`), потому " +"что содержит дополнительные пути, установите `PATCH_DIST_STRIP` " +"соответствующим образом. Например, если все пути в патче имеют " +"дополнительный префикс `foozolix-1.0/` перед именами файлов, задайте " +"`PATCH_DIST_STRIP=-p1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2149 +msgid "" +"Do not worry if the patches are compressed; they will be decompressed " +"automatically if the filenames end with [.filename]#.Z#, [.filename]#.gz#, " +"[.filename]#.bz2# or [.filename]#.xz#." +msgstr "" +"Не беспокойтесь, если патчи сжаты; они будут автоматически распакованы, если " +"их имена заканчиваются на [.filename]#.Z#, [.filename]#.gz#, " +"[.filename]#.bz2# или [.filename]#.xz#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2155 +msgid "" +"If the patch is distributed with some other files, such as documentation, in " +"a compressed tarball, using `PATCHFILES` is not possible. If that is the " +"case, add the name and the location of the patch tarball to `DISTFILES` and " +"`MASTER_SITES`. Then, use `EXTRA_PATCHES` to point to those files and " +"[.filename]#bsd.port.mk# will automatically apply them. In particular, do " +"_not_ copy patch files into [.filename]#${PATCHDIR}#. That directory may " +"not be writable." +msgstr "" +"Если патч распространяется вместе с другими файлами, такими как " +"документация, в сжатом tarball, использование `PATCHFILES` невозможно. В " +"таком случае добавьте имя и расположение tarball с патчами в `DISTFILES` и " +"`MASTER_SITES`. Затем используйте `EXTRA_PATCHES`, чтобы указать на эти " +"файлы, и [.filename]#bsd.port.mk# автоматически применит их. В частности, " +"_не_ копируйте файлы патчей в [.filename]#${PATCHDIR}#. Этот каталог может " +"быть недоступен для записи." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2159 +msgid "" +"If there are multiple patches and they need mixed values for the strip " +"parameter, it can be added alongside the patch name in `PATCHFILES`, e.g:" +msgstr "" +"Если есть несколько патчей и для них требуются разные значения параметра " +"strip, его можно добавить рядом с именем патча в `PATCHFILES`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2163 +#, no-wrap +msgid "PATCHFILES=\tpatch1 patch2:-p1\n" +msgstr "PATCHFILES=\tpatch1 patch2:-p1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2166 +msgid "" +"This does not conflict with crossref:makefiles[porting-master-sites-n,the " +"master site grouping feature], adding a group also works:" +msgstr "" +"Это не конфликтует с crossref:makefiles[porting-master-sites-n,функцией " +"группировки мастер-сайтов], добавление группы также работает:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2170 +#, no-wrap +msgid "PATCHFILES=\tpatch2:-p1:source2\n" +msgstr "PATCHFILES=\tpatch2:-p1:source2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2178 +msgid "" +"The tarball will have been extracted alongside the regular source by then, " +"so there is no need to explicitly extract it if it is a regular compressed " +"tarball. Take extra care not to overwrite something that already exists in " +"that directory if extracting it manually. Also, do not forget to add a " +"command to remove the copied patch in the `pre-clean` target." +msgstr "" +"Tarball уже будет распакован вместе с обычными исходными кодами, поэтому нет " +"необходимости явно его распаковывать, если это обычный сжатый tarball. " +"Будьте особенно осторожны, чтобы не перезаписать существующие файлы в этом " +"каталоге при ручной распаковке. Также не забудьте добавить команду для " +"удаления скопированного патча в цель `pre-clean`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2181 +#, no-wrap +msgid "Multiple Distribution or Patches Files from Multiple Locations" +msgstr "Несколько файлов дистрибутивов или исправлений из нескольких местоположений" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2184 +msgid "" +"(Consider this to be a somewhat \"advanced topic\"; those new to this " +"document may wish to skip this section at first)." +msgstr "" +"(Считайте, что это несколько «продвинутая тема»; тем, кто впервые читает " +"этот документ, возможно, стоит сначала пропустить этот раздел)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2187 +msgid "" +"This section has information on the fetching mechanism known as both " +"`MASTER_SITES:n` and `MASTER_SITES_NN`. We will refer to this mechanism as " +"`MASTER_SITES:n`." +msgstr "" +"Этот раздел содержит информацию о механизме загрузки, известном как " +"`MASTER_SITES:n` и `MASTER_SITES_NN`. Мы будем называть этот механизм " +"`MASTER_SITES:n`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2192 +msgid "" +"A little background first. OpenBSD has a neat feature inside `DISTFILES` " +"and `PATCHFILES` which allows files and patches to be postfixed with `:n` " +"identifiers. Here, `n` can be any word containing `[0-9a-zA-Z_]` and denote " +"a group designation. For example:" +msgstr "" +"Небольшая предыстория. В OpenBSD есть удобная функция внутри `DISTFILES` и " +"`PATCHFILES`, которая позволяет добавлять постфикс `:n` к файлам и патчам. " +"Здесь `n` может быть любым словом, содержащим `[0-9a-zA-Z_]`, и обозначать " +"группу. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2196 +#, no-wrap +msgid "DISTFILES=\talpha:0 beta:1\n" +msgstr "DISTFILES=\talpha:0 beta:1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2199 +msgid "" +"In OpenBSD, distribution file [.filename]#alpha# will be associated with " +"variable `MASTER_SITES0` instead of our common `MASTER_SITES` and " +"[.filename]#beta# with `MASTER_SITES1`." +msgstr "" +"В OpenBSD файл дистрибутива [.filename]#alpha# будет связан с переменной " +"`MASTER_SITES0`, а не с нашей общей `MASTER_SITES`, а [.filename]#beta# — с " +"`MASTER_SITES1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2201 +msgid "" +"This is a very interesting feature which can decrease that endless search " +"for the correct download site." +msgstr "" +"Это очень интересная функция, которая может сократить бесконечные поиски " +"нужного сайта для загрузки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2204 +msgid "" +"Just picture 2 files in `DISTFILES` and 20 sites in `MASTER_SITES`, the " +"sites slow as hell where [.filename]#beta# is carried by all sites in " +"`MASTER_SITES`, and [.filename]#alpha# can only be found in the 20th site. " +"It would be such a waste to check all of them if the maintainer knew this " +"beforehand, would it not? Not a good start for that lovely weekend!" +msgstr "" +"Представьте 2 файла в `DISTFILES` и 20 сайтов в `MASTER_SITES`, причём сайты " +"медленные как черепаха, где [.filename]#beta# есть на всех сайтах из " +"`MASTER_SITES`, а [.filename]#alpha# можно найти только на 20-м сайте. Было " +"бы так обидно проверять их все, если бы сопровождающий знал это заранее, не " +"так ли? Не самое лучшее начало для чудесных выходных!" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2207 +msgid "" +"Now that you have the idea, just imagine more `DISTFILES` and more " +"`MASTER_SITES`. Surely our \"distfiles survey meister\" would appreciate " +"the relief to network strain that this would bring." +msgstr "" +"Теперь, когда вы поняли идею, представьте больше `DISTFILES` и больше " +"`MASTER_SITES`. Безусловно, наш \"мастер по исследованию distfiles\" оценил " +"бы снижение нагрузки на сеть, которое это принесло бы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2210 +msgid "" +"In the next sections, information will follow on the FreeBSD implementation " +"of this idea. We improved a bit on OpenBSD's concept." +msgstr "" +"В следующих разделах будет приведена информация о реализации этой идеи в " +"FreeBSD. Мы немного улучшили концепцию OpenBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2215 +msgid "" +"The group names cannot have dashes in them (`-`), in fact, they cannot have " +"any characters out of the `[a-zA-Z0-9_]` range. This is because, while " +"man:make[1] is ok with variable names containing dashes, man:sh[1] is not." +msgstr "" +"Имена групп не могут содержать дефисы (`-`), более того, они не могут " +"содержать любые символы вне диапазона `[a-zA-Z0-9_]`. Это связано с тем, " +"что, хотя man:make[1] допускает использование имён переменных с дефисами, " +"man:sh[1] — нет." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2218 +#, no-wrap +msgid "Simplified Information" +msgstr "Упрощенная информация" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2225 +msgid "" +"This section explains how to quickly prepare fine grained fetching of " +"multiple distribution files and patches from different sites and " +"subdirectories. We describe here a case of simplified `MASTER_SITES:n` " +"usage. This will be sufficient for most scenarios. More detailed " +"information are available in crossref:makefiles[ports-master-sites-n-" +"detailed, Detailed Information]." +msgstr "" +"В этом разделе объясняется, как быстро настроить детализированное получение " +"нескольких файлов дистрибутивов и патчей с разных сайтов и подкаталогов. " +"Здесь описывается случай упрощённого использования `MASTER_SITES:n`. Этого " +"будет достаточно для большинства сценариев. Более подробная информация " +"доступна в crossref:makefiles[ports-master-sites-n-detailed, Подробная " +"Информация]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2229 +msgid "" +"Some applications consist of multiple distribution files that must be " +"downloaded from a number of different sites. For example, Ghostscript " +"consists of the core of the program, and then a large number of driver files " +"that are used depending on the user's printer. Some of these driver files " +"are supplied with the core, but many others must be downloaded from a " +"variety of different sites." +msgstr "" +"Некоторые приложения состоят из нескольких распространяемых файлов, которые " +"необходимо загрузить с различных сайтов. Например, Ghostscript включает " +"основную часть программы и множество драйверов, используемых в зависимости " +"от принтера пользователя. Некоторые из этих драйверов поставляются вместе с " +"основной частью, но многие другие необходимо загружать с различных сайтов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2232 +msgid "" +"To support this, each entry in `DISTFILES` may be followed by a colon and a " +"\"group name\". Each site listed in `MASTER_SITES` is then followed by a " +"colon, and the group that indicates which distribution files are downloaded " +"from this site." +msgstr "" +"Для поддержки этого, каждая запись в `DISTFILES` может сопровождаться " +"двоеточием и \"именем группы\". Затем каждый сайт, указанный в " +"`MASTER_SITES`, сопровождается двоеточием и группой, которая указывает, " +"какие файлы дистрибутива загружаются с данного сайта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2236 +msgid "" +"For example, consider an application with the source split in two parts, " +"[.filename]#source1.tar.gz# and [.filename]#source2.tar.gz#, which must be " +"downloaded from two different sites. The port's [.filename]#Makefile# would " +"include lines like crossref:makefiles[ports-master-sites-n-example-simple-" +"use-one-file-per-site,Simplified Use of `MASTER_SITES:n` with One File Per " +"Site]." +msgstr "" +"Например, рассмотрим приложение, исходный код которого разделён на две " +"части: [.filename]#source1.tar.gz# и [.filename]#source2.tar.gz#, которые " +"необходимо загрузить с двух разных сайтов. В [.filename]#Makefile# порта " +"будут присутствовать строки, подобные crossref:makefiles[ports-master-sites-" +"n-example-simple-use-one-file-per-site,Упрощённое использование " +"`MASTER_SITES:n` с одним файлом на сайт]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2238 +#, no-wrap +msgid "Simplified Use of `MASTER_SITES:n` with One File Per Site" +msgstr "Упрощённое использование `MASTER_SITES:n` с одним файлом на сайт" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2248 +#, no-wrap +msgid "" +"MASTER_SITES=\tftp://ftp1.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2\n" +msgstr "" +"MASTER_SITES=\tftp://ftp1.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2256 +msgid "" +"Multiple distribution files can have the same group. Continuing the " +"previous example, suppose that there was a third distfile, " +"[.filename]#source3.tar.gz#, that is downloaded from `ftp.example2.com`. " +"The [.filename]#Makefile# would then be written like " +"crossref:makefiles[ports-master-sites-n-example-simple-use-more-than-one-" +"file-per-site,Simplified Use of `MASTER_SITES:n` with More Than One File Per " +"Site]." +msgstr "" +"Несколько файлов дистрибутивов могут принадлежать одной группе. Продолжая " +"предыдущий пример, предположим, что существует третий файл дистрибутива " +"[.filename]#source3.tar.gz#, который загружается с `ftp.example2.com`. Тогда " +"[.filename]#Makefile# будет записан, как показано в crossref:makefiles[ports-" +"master-sites-n-example-simple-use-more-than-one-file-per-site,Упрощённое " +"использование `MASTER_SITES:n` с несколькими файлами на один сайт]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2258 +#, no-wrap +msgid "Simplified Use of `MASTER_SITES:n` with More Than One File Per Site" +msgstr "Упрощённое использование `MASTER_SITES:n` с несколькими файлами на одном сайте" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2269 +#, no-wrap +msgid "" +"MASTER_SITES=\tftp://ftp.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2 \\\n" +"\t\tsource3.tar.gz:source2\n" +msgstr "" +"MASTER_SITES=\tftp://ftp.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2 \\\n" +"\t\tsource3.tar.gz:source2\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2274 +#, no-wrap +msgid "Detailed Information" +msgstr "Подробная информация" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2277 +msgid "" +"Okay, so the previous example did not reflect the new port's needs? In this " +"section we will explain in detail how the fine grained fetching mechanism " +"`MASTER_SITES:n` works and how it can be used." +msgstr "" +"Хорошо, значит, предыдущий пример не отражал потребности нового порта? В " +"этом разделе мы подробно объясним, как работает механизм детализированного " +"получения `MASTER_SITES:n` и как его можно использовать." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2279 +msgid "" +"Elements can be postfixed with `:__n__` where _n_ is `[^:,]\\+`, that is, " +"_n_ could conceptually be any alphanumeric string but we will limit it to " +"`[a-zA-Z_][0-9a-zA-Z_]+` for now." +msgstr "" +"Элементы могут иметь постфикс `:__n__`, где _n_ — это `[^:,]+`, то есть _n_ " +"концептуально может быть любой буквенно-цифровой строкой, но пока мы " +"ограничим её `[a-zA-Z_][0-9a-zA-Z_]+`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2281 +msgid "" +"Moreover, string matching is case sensitive; that is, `n` is different from " +"`N`." +msgstr "" +"Более того, сравнение строк чувствительно к регистру; то есть, `n` " +"отличается от `N`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2287 +msgid "" +"However, these words cannot be used for postfixing purposes since they yield " +"special meaning: `default`, `all` and `ALL` (they are used internally in " +"item crossref:makefiles[porting-master-sites-n-what-changes-in-port-targets, " +"ii]). Furthermore, `DEFAULT` is a special purpose word (check item " +"crossref:makefiles[porting-master-sites-n-DEFAULT-group,3])." +msgstr "" +"Однако эти слова не могут использоваться для постфиксных целей, так как " +"имеют специальное значение: `default`, `all` и `ALL` (они используются " +"внутри системы, см. crossref:makefiles[porting-master-sites-n-what-changes-" +"in-port-targets, ii]). Кроме того, `DEFAULT` является словом специального " +"назначения (проверьте пункт crossref:makefiles[porting-master-sites-n-" +"DEFAULT-group,3])." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2288 +msgid "" +"Elements postfixed with `:n` belong to the group `n`, `:m` belong to group " +"`m` and so forth." +msgstr "" +"Элементы с постфиксом `:n` принадлежат группе `n`, `:m` — группе `m` и так " +"далее." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2294 +msgid "" +"Elements without a postfix are groupless, they all belong to the special " +"group `DEFAULT`. Any elements postfixed with `DEFAULT`, is just being " +"redundant unless an element belongs to both `DEFAULT` and other groups at " +"the same time (check item crossref:makefiles[porting-master-sites-n-comma-" +"operator,5])." +msgstr "" +"Элементы без постфикса не принадлежат к группам, все они относятся к " +"специальной группе `DEFAULT`. Элементы с постфиксом `DEFAULT` избыточны, за " +"исключением случаев, когда элемент одновременно принадлежит и к `DEFAULT`, и " +"к другим группам (см. пункт crossref:makefiles[porting-master-sites-n-comma-" +"operator,5])." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2296 +msgid "These examples are equivalent but the first one is preferred:" +msgstr "Эти примеры эквивалентны, но первый предпочтительнее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2300 +#, no-wrap +msgid "MASTER_SITES=\talpha\n" +msgstr "MASTER_SITES=\talpha\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2305 +#, no-wrap +msgid "MASTER_SITES=\talpha:DEFAULT\n" +msgstr "MASTER_SITES=\talpha:DEFAULT\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2308 +msgid "" +"Groups are not exclusive, an element may belong to several different groups " +"at the same time and a group can either have either several different " +"elements or none at all." +msgstr "" +"Группы не являются исключительными, элемент может принадлежать нескольким " +"разным группам одновременно, а группа может содержать несколько разных " +"элементов или не содержать их вовсе." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2311 +msgid "" +"When an element belongs to several groups at the same time, use the comma " +"operator (`,`)." +msgstr "" +"Когда элемент принадлежит нескольким группам одновременно, используйте " +"оператор запятую (`,`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2314 +msgid "" +"Instead of repeating it several times, each time with a different postfix, " +"we can list several groups at once in a single postfix. For instance, " +"`:m,n,o` marks an element that belongs to group `m`, `n` and `o`." +msgstr "" +"Вместо повторения несколько раз, каждый раз с разным постфиксом, мы можем " +"перечислить несколько групп сразу в одном постфиксе. Например, `:m,n,o` " +"обозначает элемент, принадлежащий группам `m`, `n` и `o`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2316 +msgid "All these examples are equivalent but the last one is preferred:" +msgstr "Все эти примеры эквивалентны, но последний является предпочтительным:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2320 +#, no-wrap +msgid "MASTER_SITES=\talpha alpha:SOME_SITE\n" +msgstr "MASTER_SITES=\talpha alpha:SOME_SITE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2325 +#, no-wrap +msgid "MASTER_SITES=\talpha:DEFAULT alpha:SOME_SITE\n" +msgstr "MASTER_SITES=\talpha:DEFAULT alpha:SOME_SITE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2330 +#, no-wrap +msgid "MASTER_SITES=\talpha:SOME_SITE,DEFAULT\n" +msgstr "MASTER_SITES=\talpha:SOME_SITE,DEFAULT\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2335 +#, no-wrap +msgid "MASTER_SITES=\talpha:DEFAULT,SOME_SITE\n" +msgstr "MASTER_SITES=\talpha:DEFAULT,SOME_SITE\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2338 +msgid "" +"All sites within a given group are sorted according to `MASTER_SORT_AWK`. " +"All groups within `MASTER_SITES` and `PATCH_SITES` are sorted as well." +msgstr "" +"Все сайты в заданной группе сортируются согласно `MASTER_SORT_AWK`. Все " +"группы в `MASTER_SITES` и `PATCH_SITES` также сортируются." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2341 +msgid "" +"Group semantics can be used in any of the variables `MASTER_SITES`, " +"`PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES`, and " +"`PATCHFILES` according to this syntax:" +msgstr "" +"Семантика групп может использоваться в любых переменных `MASTER_SITES`, " +"`PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES` и " +"`PATCHFILES` согласно следующему синтаксису:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2355 +msgid "" +"All `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR` and " +"`PATCH_SITE_SUBDIR` elements must be terminated with the forward slash `/` " +"character. If any elements belong to any groups, the group postfix `:__n__` " +"must come right after the terminator `/`. The `MASTER_SITES:n` mechanism " +"relies on the existence of the terminator `/` to avoid confusing elements " +"where a `:n` is a valid part of the element with occurrences where `:n` " +"denotes group `n`. For compatibility purposes, since the `/` terminator was " +"not required before in both `MASTER_SITE_SUBDIR` and `PATCH_SITE_SUBDIR` " +"elements, if the postfix immediate preceding character is not a `/` then " +"`:n` will be considered a valid part of the element instead of a group " +"postfix even if an element is postfixed with `:n`. See both " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-master-site-" +"subdir,Detailed Use of `MASTER_SITES:n` in `MASTER_SITE_SUBDIR`] and " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-complete-" +"example-master-sites,Detailed Use of `MASTER_SITES:n` with Comma Operator, " +"Multiple Files, Multiple Sites and Multiple Subdirectories]." +msgstr "" +"Все элементы `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR` и " +"`PATCH_SITE_SUBDIR` должны заканчиваться символом дробной черты `/`. Если " +"элементы принадлежат к какой-либо группе, постфикс группы `:__n__` должен " +"следовать сразу после завершающего символа `/`. Механизм `MASTER_SITES:n` " +"полагается на наличие завершающего символа `/`, чтобы избежать путаницы " +"между элементами, где `:n` является допустимой частью элемента, и случаями, " +"где `:n` обозначает группу `n`. В целях совместимости, поскольку ранее " +"завершающий символ `/` не требовался в элементах `MASTER_SITE_SUBDIR` и " +"`PATCH_SITE_SUBDIR`, если символ, непосредственно предшествующий постфиксу, " +"не является `/`, то `:n` будет считаться допустимой частью элемента, а не " +"постфиксом группы, даже если элемент оканчивается на `:n`. См. оба раздела " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-master-site-" +"subdir,Подробное использование `MASTER_SITES:n` в `MASTER_SITE_SUBDIR`] и " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-complete-" +"example-master-sites,Подробное использование `MASTER_SITES:n` с оператором " +"запятая, несколькими файлами, несколькими сайтами и несколькими " +"подкаталогами]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2357 +#, no-wrap +msgid "Detailed Use of `MASTER_SITES:n` in `MASTER_SITE_SUBDIR`" +msgstr "Подробное использование `MASTER_SITES:n` в `MASTER_SITE_SUBDIR`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2364 +#, no-wrap +msgid "MASTER_SITE_SUBDIR=\told:n new/:NEW\n" +msgstr "MASTER_SITE_SUBDIR=\told:n new/:NEW\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2367 +msgid "Directories within group `DEFAULT` -> old:n" +msgstr "Каталоги в группе `DEFAULT` -> old:n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2368 +msgid "Directories within group `NEW` -> new" +msgstr "Каталоги в группе `NEW` -> new" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2372 +#, no-wrap +msgid "Detailed Use of `MASTER_SITES:n` with Comma Operator, Multiple Files, Multiple Sites and Multiple Subdirectories" +msgstr "Подробное использование `MASTER_SITES:n` с оператором запятая, несколькими файлами, сайтами и подкаталогами" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2390 +#, no-wrap +msgid "" +"MASTER_SITES=\thttp://site1/%SUBDIR%/ http://site2/:DEFAULT \\\n" +"\t\thttp://site3/:group3 http://site4/:group4 \\\n" +"\t\thttp://site5/:group5 http://site6/:group6 \\\n" +"\t\thttp://site7/:DEFAULT,group6 \\\n" +"\t\thttp://site8/%SUBDIR%/:group6,group7 \\\n" +"\t\thttp://site9/:group8\n" +"DISTFILES=\tfile1 file2:DEFAULT file3:group3 \\\n" +"\t\tfile4:group4,group5,group6 file5:grouping \\\n" +"\t\tfile6:group7\n" +"MASTER_SITE_SUBDIR=\tdirectory-trial:1 directory-n/:groupn \\\n" +"\t\tdirectory-one/:group6,DEFAULT \\\n" +"\t\tdirectory\n" +msgstr "" +"MASTER_SITES=\thttp://site1/%SUBDIR%/ http://site2/:DEFAULT \\\n" +"\t\thttp://site3/:group3 http://site4/:group4 \\\n" +"\t\thttp://site5/:group5 http://site6/:group6 \\\n" +"\t\thttp://site7/:DEFAULT,group6 \\\n" +"\t\thttp://site8/%SUBDIR%/:group6,group7 \\\n" +"\t\thttp://site9/:group8\n" +"DISTFILES=\tfile1 file2:DEFAULT file3:group3 \\\n" +"\t\tfile4:group4,group5,group6 file5:grouping \\\n" +"\t\tfile6:group7\n" +"MASTER_SITE_SUBDIR=\tdirectory-trial:1 directory-n/:groupn \\\n" +"\t\tdirectory-one/:group6,DEFAULT \\\n" +"\t\tdirectory\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2394 +msgid "" +"The previous example results in this fine grained fetching. Sites are " +"listed in the exact order they will be used." +msgstr "" +"Предыдущий пример приводит к такой детализированной загрузке файлов. Сайты " +"перечислены в точном порядке их использования." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2396 +msgid "[.filename]#file1# will be fetched from" +msgstr "[.filename]#file1# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2398 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2408 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2418 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2424 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2434 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2439 +msgid "`MASTER_SITE_OVERRIDE`" +msgstr "`MASTER_SITE_OVERRIDE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2399 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2409 +msgid "http://site1/directory-trial:1/" +msgstr "http://site1/directory-trial:1/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2400 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2410 +msgid "http://site1/directory-one/" +msgstr "http://site1/directory-one/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2401 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2411 +msgid "http://site1/directory/" +msgstr "http://site1/directory/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2402 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2412 +msgid "http://site2/" +msgstr "http://site2/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2403 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2413 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2428 +msgid "http://site7/" +msgstr "http://site7/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2404 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2414 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2420 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2430 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2435 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2441 +msgid "`MASTER_SITE_BACKUP`" +msgstr "`MASTER_SITE_BACKUP`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2406 +msgid "" +"[.filename]#file2# will be fetched exactly as [.filename]#file1# since they " +"both belong to the same group" +msgstr "" +"[.filename]#file2# будет загружен точно так же, как [.filename]#file1#, " +"поскольку они оба принадлежат к одной и той же группе" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2416 +msgid "[.filename]#file3# will be fetched from" +msgstr "[.filename]#file3# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2419 +msgid "http://site3/" +msgstr "http://site3/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2422 +msgid "[.filename]#file4# will be fetched from" +msgstr "[.filename]#file4# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2425 +msgid "http://site4/" +msgstr "http://site4/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2426 +msgid "http://site5/" +msgstr "http://site5/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2427 +msgid "http://site6/" +msgstr "http://site6/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2429 +msgid "http://site8/directory-one/" +msgstr "http://site8/directory-one/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2432 +msgid "[.filename]#file5# will be fetched from" +msgstr "[.filename]#file5# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2437 +msgid "[.filename]#file6# will be fetched from" +msgstr "[.filename]#file6# будет получен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2440 +msgid "http://site8/" +msgstr "http://site8/" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2445 +msgid "" +"How do I group one of the special macros from [.filename]#bsd.sites.mk#, for " +"example, SourceForge (`SF`)?" +msgstr "" +"Как сгруппировать один из специальных макросов из [.filename]#bsd.sites.mk#, " +"например, SourceForge (`SF`)?" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2449 +msgid "" +"This has been simplified as much as possible. See crossref:makefiles[ports-" +"master-sites-n-example-detailed-use-master-site-sourceforge,Detailed Use of " +"`MASTER_SITES:n` with SourceForge (`SF`)]." +msgstr "" +"Это максимально упрощено. См. crossref:makefiles[ports-master-sites-n-" +"example-detailed-use-master-site-sourceforge,Подробное использование " +"`MASTER_SITES:n` с SourceForge (`SF`)]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2451 +#, no-wrap +msgid "Detailed Use of `MASTER_SITES:n` with SourceForge (`SF`)" +msgstr "Подробное использование `MASTER_SITES:n` с SourceForge (`SF`)" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2459 +#, no-wrap +msgid "" +"MASTER_SITES=\thttp://site1/ SF/something/1.0:sourceforge,TEST\n" +"DISTFILES=\tsomething.tar.gz:sourceforge\n" +msgstr "" +"MASTER_SITES=\thttp://site1/ SF/something/1.0:sourceforge,TEST\n" +"DISTFILES=\tsomething.tar.gz:sourceforge\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2462 +msgid "" +"[.filename]#something.tar.gz# will be fetched from all sites within " +"SourceForge." +msgstr "" +"[.filename]#something.tar.gz# будет загружен со всех сайтов в пределах " +"SourceForge." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2464 +msgid "How do I use this with `PATCH*`?" +msgstr "Как использовать это с `PATCH*`?" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2468 +msgid "" +"All examples were done with `MASTER*` but they work exactly the same for " +"`PATCH*` ones as can be seen in crossref:makefiles[ports-master-sites-n-" +"example-detailed-use-patch-sites,Simplified Use of `MASTER_SITES:n` with " +"`PATCH_SITES`]." +msgstr "" +"Все примеры были выполнены с `MASTER*`, но они работают точно так же для " +"`PATCH*`, как можно увидеть в crossref:makefiles[ports-master-sites-n-" +"example-detailed-use-patch-sites,Упрощённое использование `MASTER_SITES:n` с " +"`PATCH_SITES`]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2470 +#, no-wrap +msgid "Simplified Use of `MASTER_SITES:n` with `PATCH_SITES`" +msgstr "Упрощённое использование `MASTER_SITES:n` с `PATCH_SITES`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2478 +#, no-wrap +msgid "" +"PATCH_SITES=\thttp://site1/ http://site2/:test\n" +"PATCHFILES=\tpatch1:test\n" +msgstr "" +"PATCH_SITES=\thttp://site1/ http://site2/:test\n" +"PATCHFILES=\tpatch1:test\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2483 +#, no-wrap +msgid "What Does Change for Ports? What Does Not?" +msgstr "Что меняется для портов? Что остается неизменным?" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2490 +msgid "" +"All current ports remain the same. The `MASTER_SITES:n` feature code is only " +"activated if there are elements postfixed with `:__n__` like elements " +"according to the aforementioned syntax rules, especially as shown in item " +"crossref:makefiles[porting-master-sites-n-group-semantics, 7]." +msgstr "" +"Все текущие порты остаются без изменений. Функция `MASTER_SITES:n` " +"активируется только при наличии элементов с постфиксом `:__n__`, " +"соответствующих указанным выше синтаксическим правилам, в частности, как " +"показано в пункте crossref:makefiles[porting-master-sites-n-group-semantics, " +"7]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2493 +msgid "" +"The port targets remain the same: `checksum`, `makesum`, `patch`, " +"`configure`, `build`, etc. With the obvious exceptions of `do-fetch`, `fetch-" +"list`, `master-sites` and `patch-sites`." +msgstr "" +"Порты сохраняют те же цели: `checksum`, `makesum`, `patch`, `configure`, " +"`build` и т.д., за исключением очевидных случаев: `do-fetch`, `fetch-list`, " +"`master-sites` и `patch-sites`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2499 +msgid "" +"`do-fetch`: deploys the new grouping postfixed `DISTFILES` and `PATCHFILES` " +"with their matching group elements within both `MASTER_SITES` and " +"`PATCH_SITES` which use matching group elements within both " +"`MASTER_SITE_SUBDIR` and `PATCH_SITE_SUBDIR`. Check crossref:makefiles[ports-" +"master-sites-n-example-detailed-use-complete-example-master-sites,Detailed " +"Use of `MASTER_SITES:n` with Comma Operator, Multiple Files, Multiple Sites " +"and Multiple Subdirectories]." +msgstr "" +"`do-fetch`: развертывает новую группировку с постфиксом `DISTFILES` и " +"`PATCHFILES` с соответствующими групповыми элементами в `MASTER_SITES` и " +"`PATCH_SITES`, которые используют соответствующие групповые элементы в " +"`MASTER_SITE_SUBDIR` и `PATCH_SITE_SUBDIR`. Проверьте " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-complete-" +"example-master-sites,Подробное использование `MASTER_SITES:n` с оператором " +"запятой, множественными файлами, множественными сайтами и множественными " +"подкаталогами]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2500 +msgid "" +"`fetch-list`: works like old `fetch-list` with the exception that it groups " +"just like `do-fetch`." +msgstr "" +"`fetch-list`: работает как старый `fetch-list`, за исключением того, что " +"группировка происходит так же, как в `do-fetch`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2501 +msgid "" +"`master-sites` and `patch-sites`: (incompatible with older versions) only " +"return the elements of group `DEFAULT`; in fact, they execute targets " +"`master-sites-default` and `patch-sites-default` respectively." +msgstr "" +"`master-sites` и `patch-sites`: (несовместимо с более старыми версиями) " +"возвращают только элементы группы `DEFAULT`; фактически они выполняют цели " +"`master-sites-default` и `patch-sites-default` соответственно." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2506 +msgid "" +"Furthermore, using target either `master-sites-all` or `patch-sites-all` is " +"preferred to directly checking either `MASTER_SITES` or `PATCH_SITES`. " +"Also, directly checking is not guaranteed to work in any future versions. " +"Check item crossref:makefiles[porting-master-sites-n-new-port-targets-master-" +"sites-all, B] for more information on these new port targets." +msgstr "" +"Кроме того, предпочтительнее использовать цель `master-sites-all` или `patch-" +"sites-all`, чем напрямую проверять `MASTER_SITES` или `PATCH_SITES`. Кроме " +"того, прямая проверка не гарантирует работу в будущих версиях. Для получения " +"дополнительной информации об этих новых целях портов см. пункт " +"crossref:makefiles[porting-master-sites-n-new-port-targets-master-sites-all, " +"B]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2508 +msgid "New port targets" +msgstr "Новые цели портов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2509 +msgid "" +"There are `master-sites-_n_` and `patch-sites-_n_` targets which will list " +"the elements of the respective group _n_ within `MASTER_SITES` and " +"`PATCH_SITES` respectively. For instance, both `master-sites-DEFAULT` and " +"`patch-sites-DEFAULT` will return the elements of group `DEFAULT`, `master-" +"sites-test` and `patch-sites-test` of group `test`, and thereon." +msgstr "" +"Существуют цели `master-sites-_n_` и `patch-sites-_n_`, которые будут " +"выводить элементы соответствующей группы _n_ в `MASTER_SITES` и " +"`PATCH_SITES` соответственно. Например, и `master-sites-DEFAULT`, и `patch-" +"sites-DEFAULT` вернут элементы группы `DEFAULT`, `master-sites-test` и " +"`patch-sites-test` — группы `test`, и так далее." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2512 +msgid "" +"There are new targets `master-sites-all` and `patch-sites-all` which do the " +"work of the old `master-sites` and `patch-sites` ones. They return the " +"elements of all groups as if they all belonged to the same group with the " +"caveat that it lists as many `MASTER_SITE_BACKUP` and `MASTER_SITE_OVERRIDE` " +"as there are groups defined within either `DISTFILES` or `PATCHFILES`; " +"respectively for `master-sites-all` and `patch-sites-all`." +msgstr "" +"Существуют новые цели `master-sites-all` и `patch-sites-all`, которые " +"выполняют работу старых `master-sites` и `patch-sites`. Они возвращают " +"элементы всех групп, как если бы они все принадлежали одной группе, с " +"оговоркой, что перечисляется столько же `MASTER_SITE_BACKUP` и " +"`MASTER_SITE_OVERRIDE`, сколько определено групп в `DISTFILES` или " +"`PATCHFILES`; соответственно для `master-sites-all` и `patch-sites-all`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2514 +#, no-wrap +msgid "`DIST_SUBDIR`" +msgstr "`DIST_SUBDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2519 +msgid "" +"Do not let the port clutter [.filename]#/usr/ports/distfiles#. If the port " +"requires a lot of files to be fetched, or contains a file that has a name " +"that might conflict with other ports (for example, [.filename]#Makefile#), " +"set `DIST_SUBDIR` to the name of the port (`${PORTNAME}` or `${PKGNAMEPREFIX}" +"${PORTNAME}` are fine). This will change `DISTDIR` from the default " +"[.filename]#/usr/ports/distfiles# to [.filename]#/usr/ports/distfiles/$" +"{DIST_SUBDIR}#, and in effect puts everything that is required for the port " +"into that subdirectory." +msgstr "" +"Не допускайте захламления портом каталога [.filename]#/usr/ports/distfiles#. " +"Если порт требует загрузки большого количества файлов или содержит файл с " +"именем, которое может конфликтовать с другими портами (например, " +"[.filename]#Makefile#), установите `DIST_SUBDIR` в имя порта (подойдут `$" +"{PORTNAME}` или `${PKGNAMEPREFIX}${PORTNAME}`). Это изменит `DISTDIR` со " +"значения по умолчанию [.filename]#/usr/ports/distfiles# на [.filename]#/usr/" +"ports/distfiles/${DIST_SUBDIR}#, фактически помещая все необходимые для " +"порта файлы в этот подкаталог." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2521 +msgid "" +"It will also look at the subdirectory with the same name on the backup " +"master site at http://distcache.FreeBSD.org[http://distcache.FreeBSD.org] " +"(Setting `DISTDIR` explicitly in [.filename]#Makefile# will not accomplish " +"this, so please use `DIST_SUBDIR`.)" +msgstr "" +"Также будет проверяться подкаталог с тем же именем на основном резервном " +"сайте по адресу http://distcache.FreeBSD.org[http://distcache.FreeBSD.org] " +"(Явное указание `DISTDIR` в [.filename]#Makefile# не решит эту задачу, " +"поэтому используйте `DIST_SUBDIR`.)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2525 +msgid "" +"This does not affect `MASTER_SITES` defined in the [.filename]#Makefile#." +msgstr "" +"Это не влияет на сайты в `MASTER_SITES`, определённые в " +"[.filename]#Makefile#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2528 +#, no-wrap +msgid "`MAINTAINER`" +msgstr "`MAINTAINER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2531 +msgid "Set your mail-address here. Please. _:-)_" +msgstr "Установите здесь свой адрес электронной почты. Пожалуйста. _:-)_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2536 +msgid "" +"Only a single address without the comment part is allowed as a `MAINTAINER` " +"value. The format used is `user@hostname.domain`. Please do not include " +"any descriptive text such as a real name in this entry. That merely " +"confuses the Ports infrastructure and most tools using it." +msgstr "" +"Только один адрес без комментария допускается в качестве значения " +"`MAINTAINER`. Используемый формат: `user@hostname.domain`. Пожалуйста, не " +"включайте в эту запись описательный текст, например, настоящее имя. Это " +"только вносит путаницу в инфраструктуру Ports и большинство инструментов, " +"которые её используют." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2539 +msgid "" +"The maintainer is responsible for keeping the port up to date and making " +"sure that it works correctly. For a detailed description of the " +"responsibilities of a port maintainer, refer to extref:{contributing}[The " +"challenge for port maintainers, maintain-port]." +msgstr "" +"Ответственный за поддержку порта обязан поддерживать порт в актуальном " +"состоянии и обеспечивать его корректную работу. Подробное описание " +"обязанностей ответственного за поддержку порта приведено в разделе extref:" +"{contributing}[Задача для сопровождающих портов,maintain-port]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2548 +msgid "" +"A maintainer volunteers to keep a port in good working order. Maintainers " +"have the primary responsibility for their ports, but not exclusive " +"ownership. Ports exist for the benefit of the community and, in reality, " +"belong to the community. What this means is that people other than the " +"maintainer can make changes to a port. Large changes to the Ports " +"Collection might require changes to many ports. The FreeBSD Ports " +"Management Team or members of other teams might modify ports to fix " +"dependency issues or other problems, like a version bump for a shared " +"library update." +msgstr "" +"Сопровождающий добровольно поддерживает порт в рабочем состоянии. " +"Сопровождающие несут основную ответственность за свои порты, но не имеют " +"исключительных прав на них. Порты существуют для пользы сообщества и, по " +"сути, принадлежат сообществу. Это означает, что люди, не являющиеся " +"сопровождающими, также могут вносить изменения в порт. Крупные изменения в " +"коллекции портов могут потребовать правок во многих портах. Команда " +"управления портами FreeBSD или члены других команд могут изменять порты для " +"исправления проблем с зависимостями или других проблем, таких как обновление " +"версии динамической библиотеки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2551 +msgid "" +"Some types of fixes have \"blanket approval\" from the {portmgr}, allowing " +"any committer to fix those categories of problems on any port. These fixes " +"do not need approval from the maintainer." +msgstr "" +"Некоторые типы исправлений имеют \"автоматическое согласование\" от " +"{portmgr}, что позволяет любому коммитеру исправлять эти категории проблем в " +"любом порте. Такие исправления не требуют одобрения от сопровождающего." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2554 +msgid "" +"Blanket approval for most ports applies to fixes like infrastructure " +"changes, or trivial and _tested_ build and runtime fixes. The current list " +"is available in extref:{committers-guide}[Ports section of the Committer's " +"Guide, ports-qa-misc-blanket-approval]." +msgstr "" +"Автоматическое согласование для большинства портов применяется к " +"исправлениям, таким как изменения инфраструктуры, или тривиальным и " +"_проверенным_ исправлениям сборки и выполнения. Текущий список доступен в " +"extref:{committers-guide}[разделе Портов Руководства коммиттера, ports-qa-" +"misc-blanket-approval]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2561 +msgid "" +"Other changes to the port will be sent to the maintainer for review and " +"approval before being committed. If the maintainer does not respond to an " +"update request after two weeks (excluding major public holidays), then that " +"is considered a maintainer timeout, and the update can be made without " +"explicit maintainer approval. If the maintainer does not respond within " +"three months, or if there have been three consecutive timeouts, then that " +"maintainer is considered absent without leave, and all of their ports can be " +"assigned back to the pool. Exceptions to this are anything maintained by " +"the {portmgr}, or the {security-officer}. No unauthorized commits may ever " +"be made to ports maintained by those groups." +msgstr "" +"Другие изменения в порте будут отправлены сопровождающему на проверку и " +"утверждение перед внесением. Если сопровождающий не отвечает на запрос об " +"обновлении в течение двух недель (за исключением основных государственных " +"праздников), это считается превышением времени ожидания сопровождающего, и " +"обновление может быть внесено без его явного одобрения. Если сопровождающий " +"не отвечает в течение трех месяцев или если произошло три последовательных " +"превышения времени ожидания, то сопровождающий считается отсутствующим без " +"уведомления, и все его порты могут быть возвращены в общий пул. Исключениями " +"являются порты, сопровождаемые {portmgr} или {security-officer}. Никакие " +"несанкционированные изменения не могут быть внесены в порты, сопровождаемые " +"этими группами." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2565 +msgid "" +"We reserve the right to modify the maintainer's submission to better match " +"existing policies and style of the Ports Collection without explicit " +"blessing from the submitter or the maintainer. Also, large infrastructural " +"changes can result in a port being modified without the maintainer's " +"consent. These kinds of changes will never affect the port's functionality." +msgstr "" +"Мы оставляем за собой право изменять представленные сопровождающим " +"материалы, чтобы лучше соответствовать существующим политикам и стилю " +"Коллекции портов, без явного одобрения отправителя или сопровождающего. " +"Кроме того, масштабные инфраструктурные изменения могут привести к " +"модификации порта без согласия сопровождающего. Подобные изменения никогда " +"не повлияют на функциональность порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2567 +msgid "" +"The {portmgr} reserves the right to revoke or override anyone's " +"maintainership for any reason, and the {security-officer} reserves the right " +"to revoke or override maintainership for security reasons." +msgstr "" +"{portmgr} оставляет за собой право отозвать или изменить права " +"сопровождающего по любой причине, а {security-officer} оставляет за собой " +"право отозвать или изменить права сопровождающего по соображениям " +"безопасности." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2569 +#, no-wrap +msgid "`COMMENT`" +msgstr "`COMMENT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2573 +msgid "" +"The comment is a one-line description of a port shown by `pkg info`. Please " +"follow these rules when composing it:" +msgstr "" +"Комментарий — это однострочное описание порта, отображаемое командой `pkg " +"info`. При составлении придерживайтесь следующих правил:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2575 +msgid "The COMMENT string should be 70 characters or less." +msgstr "Строка COMMENT должна быть не длиннее 70 символов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2576 +msgid "Do _not_ include the package name or version number of software." +msgstr "" +"Не включайте название пакета или номер версии программного обеспечения." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2577 +msgid "The comment must begin with a capital and end without a period." +msgstr "" +"Комментарий должен начинаться с заглавной буквы и заканчиваться без точки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2578 +msgid "Do not start with an indefinite article (that is, A or An)." +msgstr "Не начинайте с неопределённого артикля (то есть A или An)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2579 +msgid "Capitalize names such as Apache, JavaScript, or Perl." +msgstr "" +"Пишите названия с заглавной буквы, например: Apache, JavaScript или Perl." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2580 +msgid "Use a serial comma for lists of words: \"green, red, and blue.\"" +msgstr "Используйте запятую для списков слов: \"green, red, and blue.\"" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2581 +msgid "Check for spelling errors." +msgstr "Проверяйте на наличие орфографических ошибок." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2583 +msgid "Here is an example:" +msgstr "Вот пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2587 +#, no-wrap +msgid "COMMENT=\tCat chasing a mouse all over the screen\n" +msgstr "COMMENT=\tCat chasing a mouse all over the screen\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2590 +msgid "" +"The COMMENT variable immediately follows the MAINTAINER variable in the " +"[.filename]#Makefile#." +msgstr "" +"Переменная COMMENT следует сразу за переменной MAINTAINER в файле " +"[.filename]#Makefile#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2592 +#, no-wrap +msgid "Project website" +msgstr "Веб-сайт проекта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2595 +msgid "" +"Each port should point to a website that provides more information about the " +"software." +msgstr "" +"Каждый порт должен указывать на веб-сайт, предоставляющий дополнительную " +"информацию о программном обеспечении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2597 +msgid "" +"Whenever possible, this should be the official project website maintained by " +"the developers of the software." +msgstr "" +"Везде, где это возможно, следует использовать официальный сайт проекта, " +"поддерживаемый разработчиками программного обеспечения." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2601 +#, no-wrap +msgid "WWW=\t\thttps://ffmpeg.org/\n" +msgstr "WWW=\t\thttps://ffmpeg.org/\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2604 +msgid "" +"But it can also be a directory or resource in the source code repository:" +msgstr "" +"Но это также может быть каталог или ресурс в репозитории исходного кода:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2608 +#, no-wrap +msgid "WWW=\t\thttps://sourceforge.net/projects/mpd/\n" +msgstr "WWW=\t\thttps://sourceforge.net/projects/mpd/\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2611 +msgid "" +"The WWW variable immediately follows the COMMENT variable in the " +"[.filename]#Makefile#." +msgstr "" +"Переменная WWW следует сразу за переменной COMMENT в файле " +"[.filename]#Makefile#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2614 +msgid "" +"If the same content can be accessed via HTTP and HTTPS, the URL starting " +"with `https://` shall be used. If the URI is the root of the website or " +"directory, it must be terminated with a slash." +msgstr "" +"Если один и тот же контент доступен по HTTP и HTTPS, следует использовать " +"URL, начинающийся с `https://`. Если URI является корнем веб-сайта или " +"директории, он должен заканчиваться косой чертой." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2618 +msgid "" +"This information used to be placed into the last line of the [.filename]#pkg-" +"descr# file. It has been moved into the Makefile for easier maintenance and " +"processing. Having a `WWW:` line at the end of the [.filename]#pkg-descr# " +"file is deprecated." +msgstr "" +"Эта информация ранее размещалась в последней строке файла [.filename]#pkg-" +"descr#. Она была перенесена в Makefile для удобства обслуживания и " +"обработки. Наличие строки `WWW:` в конце файла [.filename]#pkg-descr# " +"считается устаревшим." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2620 +#, no-wrap +msgid "Licenses" +msgstr "Лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2624 +msgid "" +"Each port must document the license under which it is available. If it is " +"not an OSI approved license it must also document any restrictions on " +"redistribution." +msgstr "" +"Каждый порт должен содержать документацию о лицензии, под которой он " +"распространяется. Если лицензия не одобрена OSI, необходимо также указать " +"любые ограничения на распространение." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2626 +#, no-wrap +msgid "`LICENSE`" +msgstr "`LICENSE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2629 +msgid "" +"A short name for the license or licenses if more than one license apply." +msgstr "" +"Краткое название лицензии или лицензий, если применяется более одной " +"лицензии." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2631 +msgid "" +"If it is one of the licenses listed in crossref:makefiles[licenses-license-" +"list,Predefined License List], only `LICENSE_FILE` and `LICENSE_DISTFILES` " +"variables can be set." +msgstr "" +"Если это одна из лицензий, перечисленных в crossref:makefiles[licenses-" +"license-list,Предопределенный список лицензий], можно задать только " +"переменные `LICENSE_FILE` и `LICENSE_DISTFILES`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2635 +msgid "" +"If this is a license that has not been defined in the ports framework (see " +"crossref:makefiles[licenses-license-list,Predefined License List]), the " +"`LICENSE_PERMS` and `LICENSE_NAME` must be set, along with either " +"`LICENSE_FILE` or `LICENSE_TEXT`. `LICENSE_DISTFILES` and `LICENSE_GROUPS` " +"can also be set, but are not required." +msgstr "" +"Если это лицензия, которая не определена в рамках портов (см. " +"crossref:makefiles[licenses-license-list,Список предопределённых лицензий]), " +"необходимо задать `LICENSE_PERMS` и `LICENSE_NAME`, а также `LICENSE_FILE` " +"или `LICENSE_TEXT`. Также можно задать `LICENSE_DISTFILES` и " +"`LICENSE_GROUPS`, но это не обязательно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2638 +msgid "" +"The predefined licenses are shown in crossref:makefiles[licenses-license-" +"list,Predefined License List]. The current list is always available in " +"[.filename]#Mk/bsd.licenses.db.mk#." +msgstr "" +"Предопределенные лицензии показаны в crossref:makefiles[licenses-license-" +"list,Список предопределенных лицензий]. Текущий список всегда доступен в " +"[.filename]#Mk/bsd.licenses.db.mk#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2640 +#, no-wrap +msgid "Simplest Usage, Predefined Licenses" +msgstr "Простейшее использование, предопределённые лицензии" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2645 +msgid "" +"When the [.filename]#README# of some software says \"This software is under " +"the terms of the GNU Lesser General Public License as published by the Free " +"Software Foundation; either version 2.1 of the License, or (at your option) " +"any later version.\" but does not provide the license file, use this:" +msgstr "" +"Когда в файле [.filename]#README# какого-либо программного обеспечения " +"указано: «Данное программное обеспечение распространяется на условиях GNU " +"Lesser General Public License, опубликованной Free Software Foundation; либо " +"версии 2.1 Лицензии, либо (по вашему выбору) любой более поздней версии», но " +"сам файл лицензии не предоставлен, используйте следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2649 +#, no-wrap +msgid "LICENSE=\tLGPL21+\n" +msgstr "LICENSE=\tLGPL21+\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2652 +msgid "When the software provides the license file, use this:" +msgstr "" +"Когда программное обеспечение предоставляет файл лицензии, используйте это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2657 +#, no-wrap +msgid "" +"LICENSE=\tLGPL21+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" +msgstr "" +"LICENSE=\tLGPL21+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2662 +msgid "" +"For the predefined licenses, the default permissions are `dist-mirror dist-" +"sell pkg-mirror pkg-sell auto-accept`." +msgstr "" +"Для предопределённых лицензий права по умолчанию: `dist-mirror dist-sell pkg-" +"mirror pkg-sell auto-accept`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2664 +#, no-wrap +msgid "Predefined License List" +msgstr "Предопределенный список лицензий" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2668 +#, no-wrap +msgid "Short Name" +msgstr "Короткое имя" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2669 +#, no-wrap +msgid "Name" +msgstr "Имя" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2670 +#, no-wrap +msgid "Group" +msgstr "Группа" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2672 +#, no-wrap +msgid "Permissions" +msgstr "Разрешения" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2673 +#, no-wrap +msgid "`AGPLv3`" +msgstr "`AGPLv3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2674 +#, no-wrap +msgid "GNU Affero General Public License version 3" +msgstr "Универсальная общественная лицензия GNU Affero версии 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2675 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2680 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2705 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2905 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2920 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2925 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2930 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2935 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2940 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2945 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2950 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2955 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2960 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2970 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2975 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2980 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2985 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2990 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2995 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3105 +#, no-wrap +msgid "`FSF GPL OSI`" +msgstr "`FSF GPL OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2677 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2682 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2687 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2692 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2697 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2702 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2707 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2712 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2717 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2722 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2727 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2732 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2737 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2742 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2747 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2752 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2757 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2762 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2842 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2847 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2852 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2857 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2862 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2867 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2872 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2877 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2882 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2887 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2892 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2897 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2902 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2907 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2912 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2917 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2922 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2927 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2932 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2937 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2942 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2947 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2952 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2957 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2962 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2967 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2972 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2977 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2982 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2987 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2992 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2997 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3037 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3042 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3047 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3052 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3057 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3067 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3072 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3077 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3082 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3087 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3092 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3097 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3102 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3107 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3112 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3117 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3122 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3127 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3132 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3137 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3141 +#, no-wrap +msgid "(default)" +msgstr "(по умолчанию)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2678 +#, no-wrap +msgid "`AGPLv3+`" +msgstr "`AGPLv3+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2679 +#, no-wrap +msgid "GNU Affero General Public License version 3 (or later)" +msgstr "Универсальная общественная лицензия GNU Affero версии 3 (или позднее)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2683 +#, no-wrap +msgid "`APACHE10`" +msgstr "`APACHE10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2684 +#, no-wrap +msgid "Apache License 1.0" +msgstr "Apache License 1.0" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2685 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2730 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2915 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3080 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3115 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3264 +#, no-wrap +msgid "`FSF`" +msgstr "`FSF`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2688 +#, no-wrap +msgid "`APACHE11`" +msgstr "`APACHE11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2689 +#, no-wrap +msgid "Apache License 1.1" +msgstr "Apache License 1.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2690 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2695 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2895 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2900 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2910 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3000 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3005 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3010 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3015 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3020 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3025 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3030 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3040 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3045 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3050 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3090 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3095 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3100 +#, no-wrap +msgid "`FSF OSI`" +msgstr "`FSF OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2693 +#, no-wrap +msgid "`APACHE20`" +msgstr "`APACHE20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2694 +#, no-wrap +msgid "Apache License 2.0" +msgstr "Apache License 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2698 +#, no-wrap +msgid "`ART10`" +msgstr "`ART10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2699 +#, no-wrap +msgid "Artistic License version 1.0" +msgstr "Художественная лицензия версия 1.0" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2700 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2710 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3272 +#, no-wrap +msgid "`OSI`" +msgstr "`OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2703 +#, no-wrap +msgid "`ART20`" +msgstr "`ART20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2704 +#, no-wrap +msgid "Artistic License version 2.0" +msgstr "Художественная лицензия версии 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2708 +#, no-wrap +msgid "`ARTPERL10`" +msgstr "`ARTPERL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2709 +#, no-wrap +msgid "Artistic License (perl) version 1.0" +msgstr "Художественная лицензия (perl) версия 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2713 +#, no-wrap +msgid "`BSD`" +msgstr "`BSD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2714 +#, no-wrap +msgid "BSD license Generic Version (deprecated)" +msgstr "Лицензия BSD, общая версия (устарела)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2715 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2720 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2725 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2735 +#, no-wrap +msgid "`FSF OSI COPYFREE`" +msgstr "`FSF OSI COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2718 +#, no-wrap +msgid "`BSD2CLAUSE`" +msgstr "`BSD2CLAUSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2719 +#, no-wrap +msgid "BSD 2-clause \"Simplified\" License" +msgstr "BSD 2-пунктная лицензия \"Упрощенная\"" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2723 +#, no-wrap +msgid "`BSD3CLAUSE`" +msgstr "`BSD3CLAUSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2724 +#, no-wrap +msgid "BSD 3-clause \"New\" or \"Revised\" License" +msgstr "BSD 3-пунктная лицензия \"Новая\" или \"Пересмотренная\"" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2728 +#, no-wrap +msgid "`BSD4CLAUSE`" +msgstr "`BSD4CLAUSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2729 +#, no-wrap +msgid "BSD 4-clause \"Original\" or \"Old\" License" +msgstr "BSD 4-пунктная лицензия \"Оригинальная\" или \"Старая\"" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2733 +#, no-wrap +msgid "`BSL`" +msgstr "`BSL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2734 +#, no-wrap +msgid "Boost Software License" +msgstr "Лицензия программного обеспечения Boost" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2738 +#, no-wrap +msgid "`CC-BY-1.0`" +msgstr "`CC-BY-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2739 +#, no-wrap +msgid "Creative Commons Attribution 1.0" +msgstr "Creative Commons с указанием авторства 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2743 +#, no-wrap +msgid "`CC-BY-2.0`" +msgstr "`CC-BY-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2744 +#, no-wrap +msgid "Creative Commons Attribution 2.0" +msgstr "Creative Commons с указанием авторства 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2748 +#, no-wrap +msgid "`CC-BY-2.5`" +msgstr "`CC-BY-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2749 +#, no-wrap +msgid "Creative Commons Attribution 2.5" +msgstr "Creative Commons с указанием авторства 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2753 +#, no-wrap +msgid "`CC-BY-3.0`" +msgstr "`CC-BY-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2754 +#, no-wrap +msgid "Creative Commons Attribution 3.0" +msgstr "Creative Commons с указанием авторства 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2758 +#, no-wrap +msgid "`CC-BY-4.0`" +msgstr "`CC-BY-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2759 +#, no-wrap +msgid "Creative Commons Attribution 4.0" +msgstr "Creative Commons с указанием авторства 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2763 +#, no-wrap +msgid "`CC-BY-NC-1.0`" +msgstr "`CC-BY-NC-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2764 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 1.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2767 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2772 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2777 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2782 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2787 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2792 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2797 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2802 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2807 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2812 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2817 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2822 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2827 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2832 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2837 +#, no-wrap +msgid "`dist-mirror``pkg-mirror``auto-accept`" +msgstr "`dist-mirror``pkg-mirror``auto-accept`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2768 +#, no-wrap +msgid "`CC-BY-NC-2.0`" +msgstr "`CC-BY-NC-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2769 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 2.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2773 +#, no-wrap +msgid "`CC-BY-NC-2.5`" +msgstr "`CC-BY-NC-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2774 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 2.5" +msgstr "Creative Commons с указанием авторства – некоммерческая 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2778 +#, no-wrap +msgid "`CC-BY-NC-3.0`" +msgstr "`CC-BY-NC-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2779 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 3.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2783 +#, no-wrap +msgid "`CC-BY-NC-4.0`" +msgstr "`CC-BY-NC-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2784 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 4.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2788 +#, no-wrap +msgid "`CC-BY-NC-ND-1.0`" +msgstr "`CC-BY-NC-ND-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2789 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 1.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2793 +#, no-wrap +msgid "`CC-BY-NC-ND-2.0`" +msgstr "`CC-BY-NC-ND-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2794 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 2.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2798 +#, no-wrap +msgid "`CC-BY-NC-ND-2.5`" +msgstr "`CC-BY-NC-ND-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2799 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 2.5" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2803 +#, no-wrap +msgid "`CC-BY-NC-ND-3.0`" +msgstr "`CC-BY-NC-ND-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2804 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 3.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2808 +#, no-wrap +msgid "`CC-BY-NC-ND-4.0`" +msgstr "`CC-BY-NC-ND-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2809 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 4.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2813 +#, no-wrap +msgid "`CC-BY-NC-SA-1.0`" +msgstr "`CC-BY-NC-SA-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2814 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 1.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2818 +#, no-wrap +msgid "`CC-BY-NC-SA-2.0`" +msgstr "`CC-BY-NC-SA-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2819 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 2.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2823 +#, no-wrap +msgid "`CC-BY-NC-SA-2.5`" +msgstr "`CC-BY-NC-SA-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2824 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 2.5" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2828 +#, no-wrap +msgid "`CC-BY-NC-SA-3.0`" +msgstr "`CC-BY-NC-SA-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2829 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 3.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2833 +#, no-wrap +msgid "`CC-BY-NC-SA-4.0`" +msgstr "`CC-BY-NC-SA-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2834 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 4.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2838 +#, no-wrap +msgid "`CC-BY-ND-1.0`" +msgstr "`CC-BY-ND-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2839 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 1.0" +msgstr "Creative Commons с указанием авторства – без производных 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2843 +#, no-wrap +msgid "`CC-BY-ND-2.0`" +msgstr "`CC-BY-ND-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2844 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 2.0" +msgstr "Creative Commons с указанием авторства – без производных 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2848 +#, no-wrap +msgid "`CC-BY-ND-2.5`" +msgstr "`CC-BY-ND-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2849 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 2.5" +msgstr "Creative Commons с указанием авторства – без производных 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2853 +#, no-wrap +msgid "`CC-BY-ND-3.0`" +msgstr "`CC-BY-ND-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2854 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 3.0" +msgstr "Creative Commons с указанием авторства – без производных 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2858 +#, no-wrap +msgid "`CC-BY-ND-4.0`" +msgstr "`CC-BY-ND-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2859 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 4.0" +msgstr "Creative Commons с указанием авторства – без производных 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2863 +#, no-wrap +msgid "`CC-BY-SA-1.0`" +msgstr "`CC-BY-SA-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2864 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 1.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2868 +#, no-wrap +msgid "`CC-BY-SA-2.0`" +msgstr "`CC-BY-SA-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2869 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 2.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2873 +#, no-wrap +msgid "`CC-BY-SA-2.5`" +msgstr "`CC-BY-SA-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2874 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 2.5" +msgstr "Creative Commons с указанием авторства – на тех же условиях 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2878 +#, no-wrap +msgid "`CC-BY-SA-3.0`" +msgstr "`CC-BY-SA-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2879 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 3.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2883 +#, no-wrap +msgid "`CC-BY-SA-4.0`" +msgstr "`CC-BY-SA-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2884 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 4.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2888 +#, no-wrap +msgid "`CC0-1.0`" +msgstr "`CC0-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2889 +#, no-wrap +msgid "Creative Commons Zero v1.0 Universal" +msgstr "Creative Commons Zero v1.0 Universal (Отказ от прав 1.0 Универсальная)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2890 +#, no-wrap +msgid "`FSF GPL COPYFREE`" +msgstr "`FSF GPL COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2893 +#, no-wrap +msgid "`CDDL`" +msgstr "`CDDL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2894 +#, no-wrap +msgid "Common Development and Distribution License" +msgstr "Лицензия на совместную разработку и распространение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2898 +#, no-wrap +msgid "`CPAL-1.0`" +msgstr "`CPAL-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2899 +#, no-wrap +msgid "Common Public Attribution License" +msgstr "Публичная лицензия общего распространения с указанием авторства" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2903 +#, no-wrap +msgid "`ClArtistic`" +msgstr "`ClArtistic`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2904 +#, no-wrap +msgid "Clarified Artistic License" +msgstr "Уточнённая художественная лицензия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2908 +#, no-wrap +msgid "`EPL`" +msgstr "`EPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2909 +#, no-wrap +msgid "Eclipse Public License" +msgstr "Публичная лицензия Eclipse" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2913 +#, no-wrap +msgid "`GFDL`" +msgstr "`GFDL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2914 +#, no-wrap +msgid "GNU Free Documentation License" +msgstr "GNU Свободная лицензия на документацию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2918 +#, no-wrap +msgid "`GMGPL`" +msgstr "`GMGPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2919 +#, no-wrap +msgid "GNAT Modified General Public License" +msgstr "Модифицированная Общедоступная лицензия GNAT" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2923 +#, no-wrap +msgid "`GPLv1`" +msgstr "`GPLv1`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2924 +#, no-wrap +msgid "GNU General Public License version 1" +msgstr "Универсальная общественная лицензия GNU версии 1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2928 +#, no-wrap +msgid "`GPLv1+`" +msgstr "`GPLv1+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2929 +#, no-wrap +msgid "GNU General Public License version 1 (or later)" +msgstr "Универсальная общественная лицензия GNU версии 1 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2933 +#, no-wrap +msgid "`GPLv2`" +msgstr "`GPLv2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2934 +#, no-wrap +msgid "GNU General Public License version 2" +msgstr "Универсальная общественная лицензия GNU версии 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2938 +#, no-wrap +msgid "`GPLv2+`" +msgstr "`GPLv2+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2939 +#, no-wrap +msgid "GNU General Public License version 2 (or later)" +msgstr "Универсальная общественная лицензия GNU версии 2 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2943 +#, no-wrap +msgid "`GPLv3`" +msgstr "`GPLv3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2944 +#, no-wrap +msgid "GNU General Public License version 3" +msgstr "Универсальная общественная лицензия GNU версии 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2948 +#, no-wrap +msgid "`GPLv3+`" +msgstr "`GPLv3+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2949 +#, no-wrap +msgid "GNU General Public License version 3 (or later)" +msgstr "Универсальная общественная лицензия GNU версии 3 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2953 +#, no-wrap +msgid "`GPLv3RLE`" +msgstr "`GPLv3RLE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2954 +#, no-wrap +msgid "GNU GPL version 3 Runtime Library Exception" +msgstr "Исключение для библиотеки времени выполнения GNU GPL версии 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2958 +#, no-wrap +msgid "`GPLv3RLE+`" +msgstr "`GPLv3RLE+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2959 +#, no-wrap +msgid "GNU GPL version 3 Runtime Library Exception (or later)" +msgstr "Исключение для библиотеки времени выполнения GNU GPL версии 3 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2963 +#, no-wrap +msgid "`ISCL`" +msgstr "`ISCL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2964 +#, no-wrap +msgid "Internet Systems Consortium License" +msgstr "Лицензия Internet Systems Consortium" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2965 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3110 +#, no-wrap +msgid "`FSF GPL OSI COPYFREE`" +msgstr "`FSF GPL OSI COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2968 +#, no-wrap +msgid "`LGPL20`" +msgstr "`LGPL20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2969 +#, no-wrap +msgid "GNU Library General Public License version 2.0" +msgstr "Общедоступная лицензия GNU для библиотек, версия 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2973 +#, no-wrap +msgid "`LGPL20+`" +msgstr "`LGPL20+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2974 +#, no-wrap +msgid "GNU Library General Public License version 2.0 (or later)" +msgstr "Общедоступная лицензия GNU для библиотек, версия 2.0 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2978 +#, no-wrap +msgid "`LGPL21`" +msgstr "`LGPL21`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2979 +#, no-wrap +msgid "GNU Lesser General Public License version 2.1" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 2.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2983 +#, no-wrap +msgid "`LGPL21+`" +msgstr "`LGPL21+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2984 +#, no-wrap +msgid "GNU Lesser General Public License version 2.1 (or later)" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 2.1 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2988 +#, no-wrap +msgid "`LGPL3`" +msgstr "`LGPL3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2989 +#, no-wrap +msgid "GNU Lesser General Public License version 3" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2993 +#, no-wrap +msgid "`LGPL3+`" +msgstr "`LGPL3+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2994 +#, no-wrap +msgid "GNU Lesser General Public License version 3 (or later)" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 3 (или более поздней)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2998 +#, no-wrap +msgid "`LPPL10`" +msgstr "`LPPL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2999 +#, no-wrap +msgid "LaTeX Project Public License version 1.0" +msgstr "Публичная лицензия проекта LaTeX, версия 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3002 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3007 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3012 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3017 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3022 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3027 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3032 +#, no-wrap +msgid "`dist-mirror dist-sell`" +msgstr "`dist-mirror dist-sell`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3003 +#, no-wrap +msgid "`LPPL11`" +msgstr "`LPPL11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3004 +#, no-wrap +msgid "LaTeX Project Public License version 1.1" +msgstr "Публичная лицензия проекта LaTeX, версия 1.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3008 +#, no-wrap +msgid "`LPPL12`" +msgstr "`LPPL12`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3009 +#, no-wrap +msgid "LaTeX Project Public License version 1.2" +msgstr "Публичная лицензия проекта LaTeX, версия 1.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3013 +#, no-wrap +msgid "`LPPL13`" +msgstr "`LPPL13`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3014 +#, no-wrap +msgid "LaTeX Project Public License version 1.3" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3018 +#, no-wrap +msgid "`LPPL13a`" +msgstr "`LPPL13a`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3019 +#, no-wrap +msgid "LaTeX Project Public License version 1.3a" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3a" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3023 +#, no-wrap +msgid "`LPPL13b`" +msgstr "`LPPL13b`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3024 +#, no-wrap +msgid "LaTeX Project Public License version 1.3b" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3b" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3028 +#, no-wrap +msgid "`LPPL13c`" +msgstr "`LPPL13c`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3029 +#, no-wrap +msgid "LaTeX Project Public License version 1.3c" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3c" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3033 +#, no-wrap +msgid "`MIT`" +msgstr "`MIT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3034 +#, no-wrap +msgid "MIT license / X11 license" +msgstr "Лицензия MIT / Лицензия X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3035 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3055 +#, no-wrap +msgid "`COPYFREE FSF GPL OSI`" +msgstr "`COPYFREE FSF GPL OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3038 +#, no-wrap +msgid "`MPL10`" +msgstr "`MPL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3039 +#, no-wrap +msgid "Mozilla Public License version 1.0" +msgstr "Публичная лицензия Mozilla, версия 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3043 +#, no-wrap +msgid "`MPL11`" +msgstr "`MPL11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3044 +#, no-wrap +msgid "Mozilla Public License version 1.1" +msgstr "Публичная лицензия Mozilla, версия 1.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3048 +#, no-wrap +msgid "`MPL20`" +msgstr "`MPL20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3049 +#, no-wrap +msgid "Mozilla Public License version 2.0" +msgstr "Публичная лицензия Mozilla, версия 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3053 +#, no-wrap +msgid "`NCSA`" +msgstr "`NCSA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3054 +#, no-wrap +msgid "University of Illinois/NCSA Open Source License" +msgstr "Открытая лицензия Университета Иллинойса/NCSA" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3058 +#, no-wrap +msgid "`NONE`" +msgstr "`NONE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3059 +#, no-wrap +msgid "No license specified" +msgstr "Лицензия не указана" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3062 +#, no-wrap +msgid "`none`" +msgstr "`none`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3063 +#, no-wrap +msgid "`OFL10`" +msgstr "`OFL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3064 +#, no-wrap +msgid "SIL Open Font License version 1.0 (https://scripts.sil.org/OFL/)" +msgstr "Лицензия SIL Open Font версия 1.0 (https://scripts.sil.org/OFL/)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3065 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3070 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3280 +#, no-wrap +msgid "`FONTS`" +msgstr "`FONTS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3068 +#, no-wrap +msgid "`OFL11`" +msgstr "`OFL11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3069 +#, no-wrap +msgid "SIL Open Font License version 1.1 (https://scripts.sil.org/OFL/)" +msgstr "Лицензия SIL Open Font версия 1.1 (https://scripts.sil.org/OFL/)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3073 +#, no-wrap +msgid "`OWL`" +msgstr "`OWL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3074 +#, no-wrap +msgid "Open Works License (owl.apotheon.org)" +msgstr "Лицензия Открытых Произведений (owl.apotheon.org)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3075 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3276 +#, no-wrap +msgid "`COPYFREE`" +msgstr "`COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3078 +#, no-wrap +msgid "`OpenSSL`" +msgstr "`OpenSSL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3079 +#, no-wrap +msgid "OpenSSL License" +msgstr "Лицензия OpenSSL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3083 +#, no-wrap +msgid "`PD`" +msgstr "`PD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3084 +#, no-wrap +msgid "Public Domain" +msgstr "Общественное достояние" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3085 +#, no-wrap +msgid "`GPL COPYFREE`" +msgstr "`GPL COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3088 +#, no-wrap +msgid "`PHP202`" +msgstr "`PHP202`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3089 +#, no-wrap +msgid "PHP License version 2.02" +msgstr "Лицензия PHP версии 2.02" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3093 +#, no-wrap +msgid "`PHP30`" +msgstr "`PHP30`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3094 +#, no-wrap +msgid "PHP License version 3.0" +msgstr "Лицензия PHP версии 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3098 +#, no-wrap +msgid "`PHP301`" +msgstr "`PHP301`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3099 +#, no-wrap +msgid "PHP License version 3.01" +msgstr "Лицензия PHP версии 3.01" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3103 +#, no-wrap +msgid "`PSFL`" +msgstr "`PSFL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3104 +#, no-wrap +msgid "Python Software Foundation License" +msgstr "Лицензия Python Software Foundation" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3108 +#, no-wrap +msgid "`PostgreSQL`" +msgstr "`PostgreSQL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3109 +#, no-wrap +msgid "PostgreSQL License" +msgstr "Лицензия PostgreSQL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3113 +#, no-wrap +msgid "`RUBY`" +msgstr "`RUBY`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3114 +#, no-wrap +msgid "Ruby License" +msgstr "Лицензия Ruby" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3118 +#, no-wrap +msgid "`UNLICENSE`" +msgstr "`UNLICENSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3119 +#, no-wrap +msgid "The Unlicense" +msgstr "Отказ от лицензии (The Unlicense)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3120 +#, no-wrap +msgid "`COPYFREE FSF GPL`" +msgstr "`COPYFREE FSF GPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3123 +#, no-wrap +msgid "`WTFPL`" +msgstr "`WTFPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3124 +#, no-wrap +msgid "Do What the Fuck You Want To Public License version 2" +msgstr "Публичная лицензия \"Делай что хочешь\" версия 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3125 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3130 +#, no-wrap +msgid "`GPL FSF COPYFREE`" +msgstr "`GPL FSF COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3128 +#, no-wrap +msgid "`WTFPL1`" +msgstr "`WTFPL1`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3129 +#, no-wrap +msgid "Do What the Fuck You Want To Public License version 1" +msgstr "Публичная лицензия \"Делай что хочешь\" версия 1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3133 +#, no-wrap +msgid "`ZLIB`" +msgstr "`ZLIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3134 +#, no-wrap +msgid "zlib License" +msgstr "Лицензия zlib" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3135 +#, no-wrap +msgid "`GPL FSF OSI`" +msgstr "`GPL FSF OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3138 +#, no-wrap +msgid "`ZPL21`" +msgstr "`ZPL21`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3139 +#, no-wrap +msgid "Zope Public License version 2.1" +msgstr "Публичная лицензия Zope версия 2.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3140 +#, no-wrap +msgid "`GPL OSI`" +msgstr "`GPL OSI`" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3144 +#, no-wrap +msgid "`LICENSE_PERMS` and `LICENSE_PERMS_NAME_`" +msgstr "`LICENSE_PERMS` и `LICENSE_PERMS_NAME_`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3147 +msgid "Permissions. use `none` if empty." +msgstr "Разрешения. Используйте `none`, если пусто." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3148 +#, no-wrap +msgid "License Permissions List" +msgstr "Список разрешений лицензии" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3150 +#, no-wrap +msgid "`dist-mirror`" +msgstr "`dist-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3153 +msgid "" +"Redistribution of the distribution files is permitted. The distribution " +"files will be added to the FreeBSD `MASTER_SITE_BACKUP` CDN." +msgstr "" +"Разрешается распространение дистрибутивных файлов. Дистрибутивные файлы " +"будут добавлены в CDN `MASTER_SITE_BACKUP` FreeBSD." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3155 +#, no-wrap +msgid "`no-dist-mirror`" +msgstr "`no-dist-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3159 +msgid "" +"Redistribution of the distribution files is prohibited. This is equivalent " +"to setting crossref:special[porting-restrictions-restricted,`RESTRICTED`]. " +"The distribution files will _not_ be added to the FreeBSD " +"`MASTER_SITE_BACKUP` CDN." +msgstr "" +"Распространение дистрибутивных файлов запрещено. Это эквивалентно установке " +"crossref:special[porting-restrictions-restricted,`RESTRICTED`]. " +"Дистрибутивные файлы _не_ будут добавлены в CDN `MASTER_SITE_BACKUP` FreeBSD." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3161 +#, no-wrap +msgid "`dist-sell`" +msgstr "`dist-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3164 +msgid "" +"Selling of distribution files is permitted. The distribution files will be " +"present on the installer images." +msgstr "" +"Продажа файлов дистрибутива разрешена. Файлы дистрибутива будут " +"присутствовать на образах установщика." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3166 +#, no-wrap +msgid "`no-dist-sell`" +msgstr "`no-dist-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3169 +msgid "" +"Selling of distribution files is prohibited. This is equivalent to setting " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]." +msgstr "" +"Продажа файлов дистрибутива запрещена. Это эквивалентно установке " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3171 +#, no-wrap +msgid "`pkg-mirror`" +msgstr "`pkg-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3174 +msgid "" +"Free redistribution of package is permitted. The package will be " +"distributed on the FreeBSD package CDN https://pkg.freebsd.org/[https://" +"pkg.freebsd.org/]." +msgstr "" +"Свободное распространение пакета разрешено. Пакет будет распространяться " +"через CDN пакетов FreeBSD https://pkg.freebsd.org/[https://pkg.freebsd.org/]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3176 +#, no-wrap +msgid "`no-pkg-mirror`" +msgstr "`no-pkg-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3180 +msgid "" +"Free redistribution of package is prohibited. Equivalent to setting " +"crossref:special[porting-restrictions-no_package,`NO_PACKAGE`]. The package " +"will _not_ be distributed from the FreeBSD package CDN https://" +"pkg.freebsd.org/[https://pkg.freebsd.org/]." +msgstr "" +"Свободное распространение пакета запрещено. Эквивалентно установке " +"crossref:special[porting-restrictions-no_package,`NO_PACKAGE`]. Пакет _не_ " +"будет распространяться через FreeBSD CDN для пакетов https://pkg.freebsd.org/" +"[https://pkg.freebsd.org/]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3182 +#, no-wrap +msgid "`pkg-sell`" +msgstr "`pkg-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3185 +msgid "" +"Selling of package is permitted. The package will be present on the " +"installer images." +msgstr "" +"Продажа пакета разрешена. Пакет будет присутствовать на образах установщика." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3187 +#, no-wrap +msgid "`no-pkg-sell`" +msgstr "`no-pkg-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3191 +msgid "" +"Selling of package is prohibited. This is equivalent to setting " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]. The package " +"will _not_ be present on the installer images." +msgstr "" +"Продажа пакета запрещена. Это эквивалентно установке " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]. Пакет _не_ будет " +"присутствовать на образах установщика." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3193 +#, no-wrap +msgid "`auto-accept`" +msgstr "`auto-accept`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3197 +msgid "" +"License is accepted by default. Prompts to accept a license are not " +"displayed unless the user has defined `LICENSES_ASK`. Use this unless the " +"license states the user must accept the terms of the license." +msgstr "" +"Лицензия принимается по умолчанию. Запросы на принятие лицензии не " +"отображаются, если пользователь не определил `LICENSES_ASK`. Используйте " +"это, если в лицензии не указано, что пользователь должен принять условия " +"лицензии." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3199 +#, no-wrap +msgid "`no-auto-accept`" +msgstr "`no-auto-accept`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3203 +msgid "" +"License is not accepted by default. The user will always be asked to " +"confirm the acceptance of this license. This must be used if the license " +"states that the user must accept its terms." +msgstr "" +"Лицензия не принимается по умолчанию. Пользователь всегда будет запрошен на " +"подтверждение принятия данной лицензии. Это должно использоваться, если " +"лицензия требует, чтобы пользователь принял её условия." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3205 +msgid "" +"When both `_permission_` and `no-_permission_` is present the `no-" +"_permission_` will cancel `_permission_`." +msgstr "" +"Когда присутствуют и `_permission_`, и `no-_permission_`, то `no-" +"_permission_` отменяет `_permission_`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3207 +msgid "" +"When `_permission_` is not present, it is considered to be a `no-" +"_permission_`." +msgstr "Когда `_permission_` отсутствует, это считается как `no-_permission_`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3211 +msgid "" +"Some missing permissions will prevent a port (and all ports depending on it) " +"from being usable by package users:" +msgstr "" +"Некоторые отсутствующие разрешения могут сделать порт (и все зависящие от " +"него порты) непригодными для использования пользователями пакетов:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3213 +msgid "" +"A port without the `auto-accept` permission will never be be built and all " +"the ports depending on it will be ignored." +msgstr "" +"Порт без разрешения `auto-accept` никогда не будет собран, и все зависящие " +"от него порты будут проигнорированы." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3215 +msgid "" +"A port without the `pkg-mirror` permission, and any ports that depend on it, " +"will be removed after the build, thus ensuring they are not distributed." +msgstr "" +"Порт без разрешения `pkg-mirror`, а также любые порты, зависящие от него, " +"будут удалены после сборки, что гарантирует их отсутствие в дистрибуции." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3218 +#, no-wrap +msgid "Nonstandard License" +msgstr "Нестандартная лицензия" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3222 +msgid "" +"Read the terms of the license and translate those using the available " +"permissions." +msgstr "" +"Прочитайте условия лицензии и переведите их, используя доступные разрешения." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3230 +#, no-wrap +msgid "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" +msgstr "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3235 +#, no-wrap +msgid "Standard and Nonstandard Licenses" +msgstr "Стандартные и нестандартные лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3241 +msgid "" +"Read the terms of the license and express those using the available " +"permissions. In case of doubt, please ask for guidance on the {freebsd-" +"ports}." +msgstr "" +"Прочитайте условия лицензии и укажите их, используя доступные разрешения. В " +"случае сомнений обратитесь за разъяснениями на {freebsd-ports}." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3249 +#, no-wrap +msgid "" +"LICENSE= WARSOW GPLv2\n" +"LICENSE_COMB= multi\n" +"LICENSE_NAME_WARSOW= Warsow Content License\n" +"LICENSE_FILE_WARSOW= ${WRKSRC}/docs/license.txt\n" +"LICENSE_PERMS_WARSOW= dist-mirror pkg-mirror auto-accept\n" +msgstr "" +"LICENSE= WARSOW GPLv2\n" +"LICENSE_COMB= multi\n" +"LICENSE_NAME_WARSOW= Warsow Content License\n" +"LICENSE_FILE_WARSOW= ${WRKSRC}/docs/license.txt\n" +"LICENSE_PERMS_WARSOW= dist-mirror pkg-mirror auto-accept\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3255 +msgid "" +"When the permissions of the GPLv2 and the UNKNOWN licenses are mixed, the " +"port ends up with `dist-mirror dist-sell pkg-mirror pkg-sell auto-accept " +"dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept`. The `no-" +"_permissions_` cancel the _permissions_. The resulting list of permissions " +"are _dist-mirror pkg-mirror auto-accept_. The distribution files and the " +"packages will not be available on the installer images." +msgstr "" +"Когда разрешения лицензий GPLv2 и UNKNOWN смешиваются, порт получает `dist-" +"mirror dist-sell pkg-mirror pkg-sell auto-accept dist-mirror no-dist-sell " +"pkg-mirror no-pkg-sell auto-accept`. Опции `no-_разрешения_` отменяют " +"соответствующие _разрешения_. Итоговый список разрешений: _dist-mirror pkg-" +"mirror auto-accept_. Файлы дистрибутива и пакеты не будут доступны в образах " +"установщика." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3258 +#, no-wrap +msgid "`LICENSE_GROUPS` and `LICENSE_GROUPS_NAME`" +msgstr "`LICENSE_GROUPS` и `LICENSE_GROUPS_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3261 +msgid "Groups the license belongs." +msgstr "Группы, к которым принадлежит лицензия." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3262 +#, no-wrap +msgid "Predefined License Groups List" +msgstr "Список предопределенных групп лицензий" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3266 +msgid "" +"Free Software Foundation Approved, see the https://www.fsf.org/licensing/" +"[FSF Licensing & Compliance Team]." +msgstr "" +"Одобрено Free Software Foundation, см. https://www.fsf.org/licensing/" +"[Команда по лицензированию и соответствию FSF]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3268 +#, no-wrap +msgid "`GPL`" +msgstr "`GPL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3270 +msgid "GPL Compatible" +msgstr "Совместимые с GPL" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3274 +msgid "" +"OSI Approved, see the Open Source Initiative https://opensource.org/licenses/" +"[Open Source Licenses] page." +msgstr "" +"Одобрено OSI, см. страницу https://opensource.org/licenses/[Открытых " +"лицензий]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3278 +msgid "" +"Comply with Copyfree Standard Definition, see the https://copyfree.org/" +"standard/licenses/[Copyfree Licenses] page." +msgstr "" +"Соответствует определению стандарта Copyfree, см. страницу https://" +"copyfree.org/standard/licenses/[лицензий Copyfree]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3282 +msgid "Font licenses" +msgstr "Лицензии на шрифты" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3284 +#, no-wrap +msgid "`LICENSE_NAME` and `LICENSE_NAME_NAME`" +msgstr "`LICENSE_NAME` и `LICENSE_NAME_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3287 +msgid "Full name of the license." +msgstr "Полное название лицензии." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3289 +#, no-wrap +msgid "`LICENSE_NAME`" +msgstr "`LICENSE_NAME`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3299 +#, no-wrap +msgid "" +"LICENSE= UNRAR\n" +"LICENSE_NAME= UnRAR License\n" +"LICENSE_FILE= ${WRKSRC}/license.txt\n" +"LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept\n" +msgstr "" +"LICENSE= UNRAR\n" +"LICENSE_NAME= UnRAR License\n" +"LICENSE_FILE= ${WRKSRC}/license.txt\n" +"LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3304 +#, no-wrap +msgid "`LICENSE_FILE` and `LICENSE_FILE_NAME`" +msgstr "`LICENSE_FILE` и `LICENSE_FILE_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3309 +msgid "" +"Full path to the file containing the license text, usually [.filename]#$" +"{WRKSRC}/some/file#. If the file is not in the distfile, and its content is " +"too long to be put in crossref:makefiles[licenses-" +"license_text,`LICENSE_TEXT`], put it in a new file in [.filename]#${FILESDIR}" +"#." +msgstr "" +"Полный путь к файлу, содержащему текст лицензии, обычно [.filename]#$" +"{WRKSRC}/some/file#. Если файл отсутствует в дистрибутиве, а его содержимое " +"слишком длинное для размещения в crossref:makefiles[licenses-" +"license_text,`LICENSE_TEXT`], поместите его в новый файл в [.filename]#$" +"{FILESDIR}#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3311 +#, no-wrap +msgid "`LICENSE_FILE`" +msgstr "`LICENSE_FILE`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3319 +#, no-wrap +msgid "" +"LICENSE=\tGPLv3+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" +msgstr "" +"LICENSE=\tGPLv3+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3324 +#, no-wrap +msgid "`LICENSE_TEXT` and `LICENSE_TEXT_NAME`" +msgstr "`LICENSE_TEXT` и `LICENSE_TEXT_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3328 +msgid "" +"Text to use as a license. Useful when the license is not in the " +"distribution files and its text is short." +msgstr "" +"Текст для использования в качестве лицензии. Полезно, когда лицензия " +"отсутствует в файлах дистрибутива и её текст краток." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3330 +#, no-wrap +msgid "`LICENSE_TEXT`" +msgstr "`LICENSE_TEXT`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3341 +#, no-wrap +msgid "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only,\\\n" +" and THERE IS NO WARRANTY FOR THIS PROGRAM.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" +msgstr "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only,\\\n" +" and THERE IS NO WARRANTY FOR THIS PROGRAM.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3346 +#, no-wrap +msgid "`LICENSE_DISTFILES` and `LICENSE_DISTFILES_NAME`" +msgstr "`LICENSE_DISTFILES` и `LICENSE_DISTFILES_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3350 +msgid "" +"The distribution files to which the licenses apply. Defaults to all the " +"distribution files." +msgstr "" +"Файлы дистрибутива, к которым применяются лицензии. По умолчанию — все файлы " +"дистрибутива." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3352 +#, no-wrap +msgid "`LICENSE_DISTFILES`" +msgstr "`LICENSE_DISTFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3357 +msgid "" +"Used when the distribution files do not all have the same license. For " +"example, one has a code license, and another has some artwork that cannot be " +"redistributed:" +msgstr "" +"Используется, когда файлы дистрибутива имеют разные лицензии. Например, один " +"файл имеет лицензию на код, а другой содержит некоторые произведения " +"искусства, которые нельзя распространять:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3362 +#, no-wrap +msgid "" +"MASTER_SITES= SF/some-game\n" +"DISTFILES= ${DISTNAME}${EXTRACT_SUFX} artwork.zip\n" +msgstr "" +"MASTER_SITES= SF/some-game\n" +"DISTFILES= ${DISTNAME}${EXTRACT_SUFX} artwork.zip\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3370 +#, no-wrap +msgid "" +"LICENSE= BSD3CLAUSE ARTWORK\n" +"LICENSE_COMB= dual\n" +"LICENSE_NAME_ARTWORK= The game artwork license\n" +"LICENSE_TEXT_ARTWORK= The README says that the files cannot be redistributed\n" +"LICENSE_PERMS_ARTWORK= pkg-mirror pkg-sell auto-accept\n" +"LICENSE_DISTFILES_BSD3CLAUSE= ${DISTNAME}${EXTRACT_SUFX}\n" +"LICENSE_DISTFILES_ARTWORK= artwork.zip\n" +msgstr "" +"LICENSE= BSD3CLAUSE ARTWORK\n" +"LICENSE_COMB= dual\n" +"LICENSE_NAME_ARTWORK= The game artwork license\n" +"LICENSE_TEXT_ARTWORK= The README says that the files cannot be redistributed\n" +"LICENSE_PERMS_ARTWORK= pkg-mirror pkg-sell auto-accept\n" +"LICENSE_DISTFILES_BSD3CLAUSE= ${DISTNAME}${EXTRACT_SUFX}\n" +"LICENSE_DISTFILES_ARTWORK= artwork.zip\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3375 +#, no-wrap +msgid "`LICENSE_COMB`" +msgstr "`LICENSE_COMB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3380 +msgid "" +"Set to `multi` if all licenses apply. Set to `dual` if any license " +"applies. Defaults to `single`." +msgstr "" +"Установите значение `multi`, если применяются все лицензии. Установите " +"значение `dual`, если применяется любая из лицензий. По умолчанию " +"используется значение `single`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3382 +#, no-wrap +msgid "Dual Licenses" +msgstr "Двойные лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3389 +msgid "" +"When a port says \"This software may be distributed under the GNU General " +"Public License or the Artistic License\", it means that either license can " +"be used. Use this:" +msgstr "" +"Когда порт содержит указание «Это программное обеспечение может " +"распространяться под GNU General Public License или Artistic License», это " +"означает, что можно использовать любую из этих лицензий. Используйте " +"следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3394 +#, no-wrap +msgid "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" +msgstr "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3397 +msgid "If license files are provided, use this:" +msgstr "Если предоставлены файлы лицензий, используйте это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3404 +#, no-wrap +msgid "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" +"LICENSE_FILE_ART10= ${WRKSRC}/Artistic\n" +"LICENSE_FILE_GPLv1= ${WRKSRC}/Copying\n" +msgstr "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" +"LICENSE_FILE_ART10= ${WRKSRC}/Artistic\n" +"LICENSE_FILE_GPLv1= ${WRKSRC}/Copying\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3409 +#, no-wrap +msgid "Multiple Licenses" +msgstr "Множественные лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3414 +msgid "" +"When part of a port has one license, and another part has a different " +"license, use `multi`:" +msgstr "" +"Если часть порта имеет одну лицензию, а другая часть — другую, используйте " +"`multi`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3419 +#, no-wrap +msgid "" +"LICENSE=\tGPLv2 LGPL21+\n" +"LICENSE_COMB=\tmulti\n" +msgstr "" +"LICENSE=\tGPLv2 LGPL21+\n" +"LICENSE_COMB=\tmulti\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3424 +#, no-wrap +msgid "`PORTSCOUT`" +msgstr "`PORTSCOUT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3427 +msgid "" +"Portscout is an automated distfile check utility for the FreeBSD Ports " +"Collection, described in detail in crossref:keeping-up[distfile-" +"survey,Portscout: the FreeBSD Ports Distfile Scanner]." +msgstr "" +"Portscout — это автоматизированная утилита проверки distfile для Коллекции " +"портов FreeBSD, подробно описанная в crossref:keeping-up[distfile-" +"survey,Portscout: сканирование distfile портов FreeBSD]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3429 +msgid "" +"`PORTSCOUT` defines special conditions within which the Portscout distfile " +"scanner is restricted." +msgstr "" +"`PORTSCOUT` определяет специальные условия, в рамках которых работа сканера " +"дистрибутивных файлов Portscout ограничена." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3431 +msgid "Situations where `PORTSCOUT` is set include:" +msgstr "Ситуации, когда установлена переменная `PORTSCOUT`, включают:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3433 +msgid "" +"When distfiles have to be ignored for specific versions. For example, to " +"exclude version _8.2_ and version _8.3_ from distfile version checks because " +"they are known to be broken, add:" +msgstr "" +"Когда необходимо игнорировать distfiles для определённых версий. Например, " +"чтобы исключить версию _8.2_ и версию _8.3_ из проверок версий distfiles, " +"так как известно, что они неработоспособны, добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3437 +#, no-wrap +msgid "PORTSCOUT=\tskipv:8.2,8.3\n" +msgstr "PORTSCOUT=\tskipv:8.2,8.3\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3440 +msgid "" +"When distfile version checks have to be disabled completely. For example, if " +"a port is not going to be updated ever again, add:" +msgstr "" +"Когда проверки версий distfile необходимо полностью отключить. Например, " +"если порт больше не будет обновляться, добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3444 +#, no-wrap +msgid "PORTSCOUT=\tignore:1\n" +msgstr "PORTSCOUT=\tignore:1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3447 +msgid "" +"When specific versions or specific major and minor revisions of a distfile " +"must be checked. For example, if only version _0.6.4_ must be monitored " +"because newer versions have compatibility issues with FreeBSD, add:" +msgstr "" +"Когда необходимо проверять конкретные версии или определенные мажорные и " +"минорные редакции distfile. Например, если нужно отслеживать только версию " +"_0.6.4_, потому что более новые версии имеют проблемы совместимости с " +"FreeBSD, добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3451 +#, no-wrap +msgid "PORTSCOUT=\tlimit:^0\\.6\\.4\n" +msgstr "PORTSCOUT=\tlimit:^0\\.6\\.4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3454 +msgid "" +"When URLs listing the available versions differ from the download URLs. For " +"example, to limit distfile version checks to the download page for the " +"package:databases/pgtune[] port, add:" +msgstr "" +"Когда URL-адреса, перечисляющие доступные версии, отличаются от URL-адресов " +"загрузки. Например, чтобы ограничить проверку версий distfile страницей " +"загрузки для пакета: package:databases/pgtune[] добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3458 +#, no-wrap +msgid "PORTSCOUT=\tsite:http://www.renpy.org/dl/release/\n" +msgstr "PORTSCOUT=\tsite:http://www.renpy.org/dl/release/\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3461 +#, no-wrap +msgid "Dependencies" +msgstr "Зависимости" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3468 +msgid "" +"Many ports depend on other ports. This is a very convenient feature of most " +"Unix-like operating systems, including FreeBSD. Multiple ports can share a " +"common dependency, rather than bundling that dependency with every port or " +"package that needs it. There are seven variables that can be used to ensure " +"that all the required bits will be on the user's machine. There are also " +"some pre-supported dependency variables for common cases, plus a few more to " +"control the behavior of dependencies." +msgstr "" +"Многие порты зависят от других портов. Это очень удобная особенность " +"большинства Unix-подобных операционных систем, включая FreeBSD. Несколько " +"портов могут использовать общую зависимость вместо того, чтобы включать эту " +"зависимость в каждый порт или пакет, который в ней нуждается. Существует " +"семь переменных, которые можно использовать для обеспечения наличия всех " +"необходимых компонентов на машине пользователя. Также есть предопределенные " +"переменные зависимостей для распространенных случаев и несколько " +"дополнительных для управления поведением зависимостей." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3474 +msgid "" +"When software has extra dependencies that provide extra features, the base " +"dependencies listed in `*_DEPENDS` should include the extra dependencies " +"that would benefit most users. The base dependencies should never be a " +"\"minimal\" dependency set. The goal is not to include every dependency " +"possible. Only include those that will benefit most people." +msgstr "" +"Когда у программного обеспечения есть дополнительные зависимости, " +"предоставляющие дополнительные возможности, основные зависимости, " +"перечисленные в `*_DEPENDS`, должны включать те дополнительные зависимости, " +"которые будут полезны большинству пользователей. Основные зависимости " +"никогда не должны быть \"минимальным\" набором зависимостей. Цель состоит не " +"в том, чтобы включить все возможные зависимости. Включайте только те, " +"которые будут полезны большинству людей." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3477 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4830 +#, no-wrap +msgid "`LIB_DEPENDS`" +msgstr "`LIB_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3482 +msgid "" +"This variable specifies the shared libraries this port depends on. It is a " +"list of `_lib:dir_` tuples where `_lib_` is the name of the shared library, " +"`_dir_` is the directory in which to find it in case it is not available. " +"For example," +msgstr "" +"Эта переменная определяет разделяемые библиотеки, от которых зависит данный " +"порт. Это список кортежей вида `_lib:dir_`, где `_lib_` — имя разделяемой " +"библиотеки, а `_dir_` — директория, в которой её следует искать, если она " +"недоступна. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3486 +#, no-wrap +msgid "LIB_DEPENDS= libjpeg.so:graphics/jpeg\n" +msgstr "LIB_DEPENDS= libjpeg.so:graphics/jpeg\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3489 +msgid "" +"will check for a shared jpeg library with any version, and descend into the " +"[.filename]#graphics/jpeg# subdirectory of the ports tree to build and " +"install it if it is not found." +msgstr "" +"проверит наличие общей библиотеки jpeg с любой версией и перейдет в " +"подкаталог [.filename]#graphics/jpeg# дерева портов, чтобы собрать и " +"установить её, если она не найдена." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3492 +msgid "" +"The dependency is checked twice, once from within the `build` target and " +"then from within the `install` target. Also, the name of the dependency is " +"put into the package so that `pkg install` (see man:pkg-install[8]) will " +"automatically install it if it is not on the user's system." +msgstr "" +"Зависимость проверяется дважды: один раз внутри цели `build` и затем внутри " +"цели `install`. Также имя зависимости добавляется в пакет, чтобы `pkg " +"install` (см. man:pkg-install[8]) автоматически установил её, если её нет в " +"системе пользователя." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3494 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4831 +#, no-wrap +msgid "`RUN_DEPENDS`" +msgstr "`RUN_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3499 +msgid "" +"This variable specifies executables or files this port depends on during run-" +"time. It is a list of ``_path:dir_``[:``_target_``] tuples where `_path_` " +"is the name of the executable or file, _dir_ is the directory in which to " +"find it in case it is not available, and _target_ is the target to call in " +"that directory. If _path_ starts with a slash (`/`), it is treated as a " +"file and its existence is tested with `test -e`; otherwise, it is assumed to " +"be an executable, and `which -s` is used to determine if the program exists " +"in the search path." +msgstr "" +"Эта переменная определяет исполняемые файлы или файлы, от которых зависит " +"порт во время выполнения. Это список кортежей ``_path:dir_``[:``_target_``], " +"где `_path_` — это имя исполняемого файла или файла, _dir_ — директория, в " +"которой его следует искать, если он недоступен, а _target_ — цель, которую " +"нужно вызвать в этой директории. Если _path_ начинается с косой черты (`/`), " +"он считается файлом, и его существование проверяется с помощью `test -e`; в " +"противном случае предполагается, что это исполняемый файл, и `which -s` " +"используется для проверки наличия программы в пути поиска." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3501 +msgid "For example," +msgstr "Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3506 +#, no-wrap +msgid "" +"RUN_DEPENDS=\t${LOCALBASE}/news/bin/innd:news/inn \\\n" +"\t\txmlcatmgr:textproc/xmlcatmgr\n" +msgstr "" +"RUN_DEPENDS=\t${LOCALBASE}/news/bin/innd:news/inn \\\n" +"\t\txmlcatmgr:textproc/xmlcatmgr\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3510 +msgid "" +"will check if the file or directory [.filename]#/usr/local/news/bin/innd# " +"exists, and build and install it from the [.filename]#news/inn# subdirectory " +"of the ports tree if it is not found. It will also see if an executable " +"called `xmlcatmgr` is in the search path, and descend into " +"[.filename]#textproc/xmlcatmgr# to build and install it if it is not found." +msgstr "" +"проверит, существует ли файл или каталог [.filename]#/usr/local/news/bin/" +"innd#, и соберет и установит его из подкаталога [.filename]#news/inn# дерева " +"портов, если он не найден. Также будет проверено, находится ли исполняемый " +"файл `xmlcatmgr` в пути поиска, и если он не найден, будет выполнен переход " +"в [.filename]#textproc/xmlcatmgr# для сборки и установки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3515 +msgid "" +"In this case, `innd` is actually an executable; if an executable is in a " +"place that is not expected to be in the search path, use the full pathname." +msgstr "" +"В этом случае `innd` является исполняемым файлом; если исполняемый файл " +"находится в месте, которое не ожидается в пути поиска, используйте полный " +"путь." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3520 +msgid "The official search `PATH` used on the ports build cluster is" +msgstr "Официальный путь поиска `PATH`, используемый в кластере сборки портов" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3524 +#, no-wrap +msgid "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin\n" +msgstr "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3531 +msgid "" +"The dependency is checked from within the `install` target. Also, the name " +"of the dependency is put into the package so that `pkg install` (see man:pkg-" +"install[8]) will automatically install it if it is not on the user's " +"system. The _target_ part can be omitted if it is the same as " +"`DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется внутри цели `install`. Также имя зависимости " +"добавляется в пакет, чтобы команда `pkg install` (см. man:pkg-install[8]) " +"автоматически установила её, если она отсутствует в системе пользователя. " +"Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3534 +msgid "" +"A quite common situation is when `RUN_DEPENDS` is literally the same as " +"`BUILD_DEPENDS`, especially if ported software is written in a scripted " +"language or if it requires the same build and run-time environment. In this " +"case, it is both tempting and intuitive to directly assign one to the other:" +msgstr "" +"Довольно распространённая ситуация, когда `RUN_DEPENDS` буквально совпадает " +"с `BUILD_DEPENDS`, особенно если портируемое программное обеспечение " +"написано на скриптовом языке или требует одинаковой среды для сборки и " +"выполнения. В этом случае возникает соблазн и интуитивное желание напрямую " +"присвоить одно другому:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3538 +#, no-wrap +msgid "RUN_DEPENDS=\t${BUILD_DEPENDS}\n" +msgstr "RUN_DEPENDS=\t${BUILD_DEPENDS}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3545 +msgid "" +"However, such assignment can pollute run-time dependencies with entries not " +"defined in the port's original `BUILD_DEPENDS`. This happens because of " +"man:make[1]'s lazy evaluation of variable assignment. Consider a " +"[.filename]#Makefile# with `USE_*`, which are processed by [.filename]#ports/" +"Mk/bsd.*.mk# to augment initial build dependencies. For example, `USES= " +"gmake` adds package:devel/gmake[] to `BUILD_DEPENDS`. To prevent such " +"additional dependencies from polluting `RUN_DEPENDS`, create another " +"variable with the current content of `BUILD_DEPENDS` and assign it to both " +"`BUILD_DEPENDS` and `RUN_DEPENDS`:" +msgstr "" +"Однако такое присваивание может загрязнить зависимости во время выполнения " +"записями, не определёнными в оригинальном `BUILD_DEPENDS` порта. Это " +"происходит из-за ленивого вычисления присваивания переменных в man:make[1]. " +"Рассмотрим [.filename]#Makefile# с `USE_*`, которые обрабатываются " +"[.filename]#ports/Mk/bsd.*.mk# для добавления начальных зависимостей сборки. " +"Например, `USES= gmake` добавляет package:devel/gmake[] в `BUILD_DEPENDS`. " +"Чтобы предотвратить попадание таких дополнительных зависимостей в " +"`RUN_DEPENDS`, создайте другую переменную с текущим содержимым " +"`BUILD_DEPENDS` и присвойте её как `BUILD_DEPENDS`, так и `RUN_DEPENDS`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3552 +#, no-wrap +msgid "" +"MY_DEPENDS=\tsome:devel/some \\\n" +"\t\tother:lang/other\n" +"BUILD_DEPENDS=\t${MY_DEPENDS}\n" +"RUN_DEPENDS=\t${MY_DEPENDS}\n" +msgstr "" +"MY_DEPENDS=\tsome:devel/some \\\n" +"\t\tother:lang/other\n" +"BUILD_DEPENDS=\t${MY_DEPENDS}\n" +"RUN_DEPENDS=\t${MY_DEPENDS}\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3558 +msgid "" +"_Do not_ use `:=` to assign `BUILD_DEPENDS` to `RUN_DEPENDS` or vice-versa. " +"All variables are expanded immediately, which is exactly the wrong thing to " +"do and almost always a failure." +msgstr "" +"_Не используйте_ `:=` для присваивания `BUILD_DEPENDS` в `RUN_DEPENDS` или " +"наоборот. Все переменные раскрываются немедленно, что является совершенно " +"неправильным и почти всегда приводит к ошибке." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3561 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4829 +#, no-wrap +msgid "`BUILD_DEPENDS`" +msgstr "`BUILD_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3566 +msgid "" +"This variable specifies executables or files this port requires to build. " +"Like `RUN_DEPENDS`, it is a list of ``_path:dir_``[:``_target_``] tuples. " +"For example," +msgstr "" +"Эта переменная указывает исполняемые файлы или файлы, необходимые для сборки " +"данного порта. Как и `RUN_DEPENDS`, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3570 +#, no-wrap +msgid "BUILD_DEPENDS=\tunzip:archivers/unzip\n" +msgstr "BUILD_DEPENDS=\tunzip:archivers/unzip\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3573 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3611 +msgid "" +"will check for an executable called `unzip`, and descend into the " +"[.filename]#archivers/unzip# subdirectory of the ports tree to build and " +"install it if it is not found." +msgstr "" +"проверит наличие исполняемого файла с именем `unzip` и перейдет в подкаталог " +"[.filename]#archivers/unzip# дерева портов, чтобы собрать и установить его, " +"если он не будет найден." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3579 +msgid "" +"\"build\" here means everything from extraction to compilation. The " +"dependency is checked from within the `extract` target. The _target_ part " +"can be omitted if it is the same as `DEPENDS_TARGET`" +msgstr "" +"\"build\" здесь означает все процессы от извлечения до компиляции. " +"Зависимость проверяется внутри цели `extract`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3582 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4828 +#, no-wrap +msgid "`FETCH_DEPENDS`" +msgstr "`FETCH_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3587 +msgid "" +"This variable specifies executables or files this port requires to fetch. " +"Like the previous two, it is a list of ``_path:dir_``[:``_target_``] " +"tuples. For example," +msgstr "" +"Эта переменная определяет исполняемые файлы или файлы, необходимые для " +"загрузки этого порта. Как и предыдущие две, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3591 +#, no-wrap +msgid "FETCH_DEPENDS=\tncftp2:net/ncftp2\n" +msgstr "FETCH_DEPENDS=\tncftp2:net/ncftp2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3594 +msgid "" +"will check for an executable called `ncftp2`, and descend into the " +"[.filename]#net/ncftp2# subdirectory of the ports tree to build and install " +"it if it is not found." +msgstr "" +"проверит наличие исполняемого файла с именем `ncftp2` и перейдет в " +"подкаталог [.filename]#net/ncftp2# дерева портов для сборки и установки, " +"если файл не будет найден." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3597 +msgid "" +"The dependency is checked from within the `fetch` target. The _target_ part " +"can be omitted if it is the same as `DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется внутри цели `fetch`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3599 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4826 +#, no-wrap +msgid "`EXTRACT_DEPENDS`" +msgstr "`EXTRACT_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3604 +msgid "" +"This variable specifies executables or files this port requires for " +"extraction. Like the previous, it is a list of " +"``_path:dir_``[:``_target_``] tuples. For example," +msgstr "" +"Эта переменная указывает исполняемые файлы или файлы, которые требуются для " +"извлечения данного порта. Как и предыдущая, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3608 +#, no-wrap +msgid "EXTRACT_DEPENDS=\tunzip:archivers/unzip\n" +msgstr "EXTRACT_DEPENDS=\tunzip:archivers/unzip\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3614 +msgid "" +"The dependency is checked from within the `extract` target. The _target_ " +"part can be omitted if it is the same as `DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется внутри цели `extract`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3618 +msgid "" +"Use this variable only if the extraction does not already work (the default " +"assumes `tar`) and cannot be made to work using `USES=tar`, `USES=lha` or " +"`USES=zip` described in crossref:uses[uses,Using `USES` Macros]." +msgstr "" +"Используйте эту переменную только если извлечение уже не работает (по " +"умолчанию предполагается `tar`) и не может быть исправлено с помощью " +"`USES=tar`, `USES=lha` или `USES=zip`, как описано в " +"crossref:uses[uses,Использование макросов `USES`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3621 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4827 +#, no-wrap +msgid "`PATCH_DEPENDS`" +msgstr "`PATCH_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3625 +msgid "" +"This variable specifies executables or files this port requires to patch. " +"Like the previous, it is a list of ``_path:dir_``[:``_target_``] tuples. For " +"example," +msgstr "" +"Эта переменная указывает исполняемые файлы или файлы, которые требуются " +"этому порту для применения патчей. Как и предыдущая, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3629 +#, no-wrap +msgid "PATCH_DEPENDS=\t${NONEXISTENT}:java/jfc:extract\n" +msgstr "PATCH_DEPENDS=\t${NONEXISTENT}:java/jfc:extract\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3632 +msgid "" +"will descend into the [.filename]#java/jfc# subdirectory of the ports tree " +"to extract it." +msgstr "" +"будет спускаться в подкаталог [.filename]#java/jfc# дерева портов для его " +"извлечения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3635 +msgid "" +"The dependency is checked from within the `patch` target. The _target_ part " +"can be omitted if it is the same as `DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется в рамках цели `patch`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3637 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4908 +#, no-wrap +msgid "`USES`" +msgstr "`USES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3641 +msgid "" +"Parameters can be added to define different features and dependencies used " +"by the port. They are specified by adding this line to the " +"[.filename]#Makefile#:" +msgstr "" +"Параметры могут быть добавлены для определения различных функций и " +"зависимостей, используемых портом. Они указываются путем добавления этой " +"строки в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3645 +#, no-wrap +msgid "USES= feature[:arguments]\n" +msgstr "USES= feature[:arguments]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3648 +msgid "" +"For the complete list of values, please see crossref:uses[uses,Using `USES` " +"Macros]." +msgstr "" +"Для полного списка значений обратитесь к crossref:uses[uses,Использование " +"макросов `USES`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3652 +msgid "" +"`USES` cannot be assigned after inclusion of [.filename]#bsd.port.pre.mk#." +msgstr "`USES` нельзя назначать после включения [.filename]#bsd.port.pre.mk#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3655 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3677 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4205 +#, no-wrap +msgid "`USE_*`" +msgstr "`USE_*`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3662 +msgid "" +"Several variables exist to define common dependencies shared by many ports. " +"Their use is optional, but helps to reduce the verbosity of the port " +"[.filename]##Makefile##s. Each of them is styled as `USE_*`. These " +"variables may be used only in the port [.filename]##Makefile##s and " +"[.filename]#ports/Mk/bsd.*.mk#. They are not meant for user-settable " +"options - use `PORT_OPTIONS` for that purpose." +msgstr "" +"Существует несколько переменных для определения общих зависимостей, " +"используемых многими портами. Их использование необязательно, но помогает " +"сократить многословность [.filename]##Makefile## портов. Каждая из них " +"оформлена как `USE_*`. Эти переменные могут использоваться только в " +"[.filename]##Makefile## портов и [.filename]#ports/Mk/bsd.*.mk#. Они не " +"предназначены для настраиваемых пользователем опций — для этой цели " +"используйте `PORT_OPTIONS`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3667 +msgid "" +"It is _always_ incorrect to set any `USE_*` in [.filename]#/etc/make.conf#. " +"For instance, setting" +msgstr "" +"Всегда неправильно устанавливать любые `USE_*` в [.filename]#/etc/" +"make.conf#. Например, установка" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3671 +#, no-wrap +msgid "USE_GCC=X.Y\n" +msgstr "USE_GCC=X.Y\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3674 +msgid "" +"(where X.Y is version number) would add a dependency on gccXY for every " +"port, including `lang/gccXY` itself!" +msgstr "" +"(где X.Y — номер версии) добавит зависимость от gccXY для каждого порта, " +"включая сам `lang/gccXY`!" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3683 +#, no-wrap +msgid "Means" +msgstr "Значение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3684 +#, no-wrap +msgid "`USE_GCC`" +msgstr "`USE_GCC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3709 +#, no-wrap +msgid "" +"The port requires GCC (`gcc` or `{g-plus-plus}`) to build.\n" +"Some ports need a specific, old GCC version, some require modern, recent versions.\n" +"It is typically set to `yes` (means always use stable, modern GCC from ports per `GCC_DEFAULT` in [.filename]#Mk/bsd.default-versions.mk#).\n" +"This is also the default value.\n" +"The exact version can also be specified, with a value such as `10`.\n" +"GCC from the base system is used when it satisfies the requested version, otherwise an appropriate compiler is built from ports, and `CC` and `CXX` are adjusted accordingly.\n" +"The `:build` argument following the version specifier adds only a build time dependency to the port.\n" +"\n" +"For example:\n" +"[example]\n" +"====\n" +"[.programlisting]\n" +"....\n" +"USE_GCC=yes\t\t# port requires a current version of GCC\n" +"USE_GCC=11:build\t# port requires GCC 11 at build time only\n" +"....\n" +"====\n" +"\n" +"[NOTE]\n" +"====\n" +"`USE_GCC=any` is deprecated and should not be used in new ports\n" +"====" +msgstr "" +"Порт требует GCC (`gcc` или `{g-plus-plus}`) для сборки.\n" +"Некоторые порты нуждаются в определённой, старой версии GCC, другие требуют современных, актуальных версий.\n" +"Обычно устанавливается в `yes` (означает всегда использовать стабильную, современную версию GCC из портов, согласно `GCC_DEFAULT` в [.filename]#Mk/bsd.default-versions.mk#).\n" +"Это также значение по умолчанию.\n" +"Точная версия также может быть указана, например, значением `10`.\n" +"GCC из базовой системы используется, если он удовлетворяет запрашиваемой версии, в противном случае подходящий компилятор собирается из портов, а `CC` и `CXX` корректируются соответствующим образом.\n" +"Аргумент `:build`, следующий за указанием версии, добавляет только зависимость во время сборки порта.\n" +"\n" +"Например:\n" +"[example]\n" +"====\n" +"[.programlisting]\n" +"....\n" +"USE_GCC=yes\t\t# порт требует текущей версии GCC\n" +"USE_GCC=11:build\t# порт требует GCC 11 только во время сборки\n" +"....\n" +"====\n" +"\n" +"[NOTE]\n" +"====\n" +"`USE_GCC=any` устарел и не должен использоваться в новых портах\n" +"====" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3718 +msgid "" +"Variables related to gmake and [.filename]#configure# are described in " +"crossref:special[building,Building Mechanisms], while autoconf, automake and " +"libtool are described in crossref:special[using-autotools,Using GNU " +"Autotools]. Perl related variables are described in crossref:special[using-" +"perl,Using Perl]. X11 variables are listed in crossref:special[using-" +"x11,Using X11]. crossref:special[using-gnome,Using Gnome] deals with GNOME " +"and crossref:special[using-kde,Using KDE] with KDE related variables. " +"crossref:special[using-java,Using Java] documents Java variables, while " +"crossref:special[using-php,Web Applications, Apache and PHP] contains " +"information on Apache, PHP and PEAR modules. Python is discussed in " +"crossref:special[using-python,Using Python], while Ruby in " +"crossref:special[using-ruby,Using Ruby]. crossref:special[using-sdl,Using " +"SDL] provides variables used for SDL applications and finally, " +"crossref:special[using-xfce,Using Xfce] contains information on Xfce." +msgstr "" +"Переменные, связанные с gmake и [.filename]#configure#, описаны в " +"crossref:special[building,Механизмы сборки], тогда как autoconf, automake и " +"libtool описаны в crossref:special[using-autotools,Использование GNU " +"Autotools]. Переменные, связанные с Perl, описаны в crossref:special[using-" +"perl,Использование Perl]. Переменные X11 перечислены в " +"crossref:special[using-x11,Использование X11]. crossref:special[using-" +"gnome,Использование GNOME] посвящено GNOME, а crossref:special[using-" +"kde,Использование KDE] — переменным, связанным с KDE. crossref:special[using-" +"java,Использование Java] документирует переменные Java, тогда как " +"crossref:special[using-php,Веб-приложения, Apache и PHP] содержит информацию " +"о модулях Apache, PHP и PEAR. Python обсуждается в crossref:special[using-" +"python,Использование Python], а Ruby — в crossref:special[using-" +"ruby,Использование Ruby]. crossref:special[using-sdl,Использование SDL] " +"предоставляет переменные, используемые для приложений SDL, и, наконец, " +"crossref:special[using-xfce,Использование Xfce] содержит информацию о Xfce." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3720 +#, no-wrap +msgid "Minimal Version of a Dependency" +msgstr "Минимальная версия зависимого пакета" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3723 +msgid "" +"A minimal version of a dependency can be specified in any `*_DEPENDS` except " +"`LIB_DEPENDS` using this syntax:" +msgstr "" +"Минимальная версия зависимого пакета может быть указана в любом `*_DEPENDS`, " +"кроме `LIB_DEPENDS`, используя следующий синтаксис:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3727 +#, no-wrap +msgid "p5-Spiffy>=0.26:devel/p5-Spiffy\n" +msgstr "p5-Spiffy>=0.26:devel/p5-Spiffy\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3731 +msgid "" +"The first field contains a dependent package name, which must match the " +"entry in the package database, a comparison sign, and a package version. " +"The dependency is satisfied if p5-Spiffy-0.26 or newer is installed on the " +"machine." +msgstr "" +"Первое поле содержит имя зависимого пакета, которое должно соответствовать " +"записи в базе данных пакетов, знак сравнения и версию пакета. Зависимость " +"считается удовлетворённой, если на машине установлен p5-Spiffy-0.26 или " +"новее." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3733 +#, no-wrap +msgid "Notes on Dependencies" +msgstr "Заметки о зависимостях" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3739 +msgid "" +"As mentioned above, the default target to call when a dependency is required " +"is `DEPENDS_TARGET`. It defaults to `install`. This is a user variable; it " +"is never defined in a port's [.filename]#Makefile#. If the port needs a " +"special way to handle a dependency, use the `:target` part of `*_DEPENDS` " +"instead of redefining `DEPENDS_TARGET`." +msgstr "" +"Как упомянуто выше, цель по умолчанию, вызываемая при необходимости " +"зависимости, — это `DEPENDS_TARGET`. По умолчанию она установлена в " +"`install`. Это пользовательская переменная; она никогда не определяется в " +"[.filename]#Makefile# порта. Если порту требуется особый способ обработки " +"зависимости, используйте часть `:target` в `*_DEPENDS` вместо " +"переопределения `DEPENDS_TARGET`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3743 +msgid "" +"When running `make clean`, the port dependencies are automatically cleaned " +"too. If this is not desirable, define `NOCLEANDEPENDS` in the environment. " +"This may be particularly desirable if the port has something that takes a " +"long time to rebuild in its dependency list, such as KDE, GNOME or Mozilla." +msgstr "" +"При выполнении `make clean` зависимости портов также автоматически " +"очищаются. Если это нежелательно, определите переменную `NOCLEANDEPENDS` в " +"окружении. Это может быть особенно полезно, если среди зависимостей порта " +"есть что-то, что требует много времени для пересборки, например KDE, GNOME " +"или Mozilla." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3748 +msgid "" +"To depend on another port unconditionally, use the variable `${NONEXISTENT}` " +"as the first field of `BUILD_DEPENDS` or `RUN_DEPENDS`. Use this only when " +"the source of the other port is needed. Compilation time can be saved by " +"specifying the target too. For instance" +msgstr "" +"Для безусловной зависимости от другого порта используйте переменную `$" +"{NONEXISTENT}` в качестве первого поля `BUILD_DEPENDS` или `RUN_DEPENDS`. " +"Используйте это только в случае, когда необходим исходный код другого порта. " +"Время компиляции можно сократить, указав также цель. Например" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3752 +#, no-wrap +msgid "BUILD_DEPENDS=\t${NONEXISTENT}:graphics/jpeg:extract\n" +msgstr "BUILD_DEPENDS=\t${NONEXISTENT}:graphics/jpeg:extract\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3755 +msgid "will always descend to the `jpeg` port and extract it." +msgstr "всегда будет переходить к порту `jpeg` и извлекать его." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3757 +#, no-wrap +msgid "Circular Dependencies Are Fatal" +msgstr "Циклические зависимости фатальны" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3762 +msgid "Do not introduce any circular dependencies into the ports tree!" +msgstr "Не создавайте циклических зависимостей в дереве портов!" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3769 +msgid "" +"The ports building technology does not tolerate circular dependencies. If " +"one is introduced, someone, somewhere in the world, will have their FreeBSD " +"installation broken almost immediately, with many others quickly to follow. " +"These can really be hard to detect. If in doubt, before making that change, " +"make sure to run: `cd /usr/ports; make index`. That process can be quite " +"slow on older machines, but it may be able to save a large number of people, " +"including yourself, a lot of grief in the process." +msgstr "" +"Технология сборки портов не допускает циклических зависимостей. Если такая " +"зависимость будет добавлена, у кого-то в мире почти сразу окажется сломанной " +"установка FreeBSD, а за этим последуют многие другие. Подобные проблемы " +"бывает очень сложно обнаружить. Если есть сомнения, перед внесением " +"изменений обязательно выполните: `cd /usr/ports; make index`. Этот процесс " +"может быть довольно медленным на старых машинах, но он способен избавить " +"множество людей, включая вас, от серьёзных проблем." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3771 +#, no-wrap +msgid "Problems Caused by Automatic Dependencies" +msgstr "Проблемы, вызванные автоматическими зависимостями" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3776 +msgid "" +"Dependencies must be declared either explicitly or by using the " +"crossref:makefiles[makefile-options,OPTIONS framework]. Using other methods " +"like automatic detection complicates indexing, which causes problems for " +"port and package management." +msgstr "" +"Зависимости должны быть объявлены явно или с использованием " +"crossref:makefiles[makefile-options,OPTIONS framework]. Использование других " +"методов, таких как автоматическое обнаружение, усложняет индексацию, что " +"вызывает проблемы для управления портами и пакетами." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3778 +#, no-wrap +msgid "Wrong Declaration of an Optional Dependency" +msgstr "Неправильное объявление необязательной зависимости" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3785 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3789 +#, no-wrap +msgid "" +".if exists(${LOCALBASE}/bin/foo)\n" +"LIB_DEPENDS=\tlibbar.so:foo/bar\n" +".endif\n" +msgstr "" +".if exists(${LOCALBASE}/bin/foo)\n" +"LIB_DEPENDS=\tlibbar.so:foo/bar\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3798 +msgid "" +"The problem with trying to automatically add dependencies is that files and " +"settings outside an individual port can change at any time. For example: an " +"index is built, then a batch of ports are installed. But one of the ports " +"installs the tested file. The index is now incorrect, because an installed " +"port unexpectedly has a new dependency. The index may still be wrong even " +"after rebuilding if other ports also determine their need for dependencies " +"based on the existence of other files." +msgstr "" +"Проблема с попыткой автоматического добавления зависимостей заключается в " +"том, что файлы и настройки за пределами отдельного порта могут измениться в " +"любой момент. Например: индекс строится, затем устанавливается группа " +"портов. Но один из портов устанавливает проверяемый файл. Теперь индекс " +"неверен, потому что у установленного порта неожиданно появилась новая " +"зависимость. Индекс может оставаться неверным даже после пересборки, если " +"другие порты также определяют свою потребность в зависимостях на основе " +"существования других файлов." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3800 +#, no-wrap +msgid "Correct Declaration of an Optional Dependency" +msgstr "Правильное объявление необязательной зависимости" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3808 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tBAR\n" +"BAR_DESC=\tCalling cellphones via bar\n" +msgstr "" +"OPTIONS_DEFINE=\tBAR\n" +"BAR_DESC=\tCalling cellphones via bar\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3810 +#, no-wrap +msgid "BAR_LIB_DEPENDS=\tlibbar.so:foo/bar\n" +msgstr "BAR_LIB_DEPENDS=\tlibbar.so:foo/bar\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3817 +msgid "" +"Testing option variables is the correct method. It will not cause " +"inconsistencies in the index of a batch of ports, provided the options were " +"defined prior to the index build. Simple scripts can then be used to " +"automate the building, installation, and updating of these ports and their " +"packages." +msgstr "" +"Проверка переменных опций является правильным методом. Это не вызовет " +"несоответствий в индексе группы портов, при условии что опции были " +"определены до сборки индекса. Затем можно использовать простые скрипты для " +"автоматизации сборки, установки и обновления этих портов и их пакетов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3819 +#, no-wrap +msgid "Slave Ports and `MASTERDIR`" +msgstr "Подчиненные порты и `MASTERDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3826 +msgid "" +"If the port needs to build slightly different versions of packages by having " +"a variable (for instance, resolution, or paper size) take different values, " +"create one subdirectory per package to make it easier for users to see what " +"to do, but try to share as many files as possible between ports. Typically, " +"by using variables cleverly, only a very short [.filename]#Makefile# is " +"needed in all but one of the directories. In the sole " +"[.filename]#Makefile#, use `MASTERDIR` to specify the directory where the " +"rest of the files are. Also, use a variable as part of " +"crossref:makefiles[porting-pkgname,`PKGNAMESUFFIX`] so the packages will " +"have different names." +msgstr "" +"Если порту необходимо собирать немного разные версии пакетов, используя " +"переменную (например, разрешение или размер бумаги) с разными значениями, " +"создайте по одному подкаталогу для каждого пакета, чтобы пользователям было " +"проще понять, что делать, но старайтесь максимально использовать общие файлы " +"между портами. Обычно, при грамотном использовании переменных, во всех " +"каталогах, кроме одного, требуется лишь очень короткий " +"[.filename]#Makefile#. В единственном [.filename]#Makefile# укажите " +"директорию с остальными файлами с помощью `MASTERDIR`. Также используйте " +"переменную как часть crossref:makefiles[porting-pkgname,`PKGNAMESUFFIX`], " +"чтобы пакеты имели разные имена." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3829 +msgid "" +"This will be best demonstrated by an example. This is part of " +"[.filename]#print/pkfonts300/Makefile#;" +msgstr "" +"Это лучше всего продемонстрировать на примере. Это часть файла " +"[.filename]#print/pkfonts300/Makefile#;" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3835 +#, no-wrap +msgid "" +"PORTNAME=\tpkfonts${RESOLUTION}\n" +"PORTVERSION=\t1.0\n" +"DISTFILES=\tpk${RESOLUTION}.tar.gz\n" +msgstr "" +"PORTNAME=\tpkfonts${RESOLUTION}\n" +"PORTVERSION=\t1.0\n" +"DISTFILES=\tpk${RESOLUTION}.tar.gz\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3837 +#, no-wrap +msgid "PLIST=\t\t${PKGDIR}/pkg-plist.${RESOLUTION}\n" +msgstr "PLIST=\t\t${PKGDIR}/pkg-plist.${RESOLUTION}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3850 +#, no-wrap +msgid "" +".if !defined(RESOLUTION)\n" +"RESOLUTION=\t300\n" +".else\n" +".if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \\\n" +"\t${RESOLUTION} != 300 && ${RESOLUTION} != 360 && \\\n" +"\t${RESOLUTION} != 400 && ${RESOLUTION} != 600\n" +".BEGIN:\n" +"\t@${ECHO_MSG} \"Error: invalid value for RESOLUTION: \\\"${RESOLUTION}\\\"\"\n" +"\t@${ECHO_MSG} \"Possible values are: 118, 240, 300, 360, 400 and 600.\"\n" +"\t@${FALSE}\n" +".endif\n" +".endif\n" +msgstr "" +".if !defined(RESOLUTION)\n" +"RESOLUTION=\t300\n" +".else\n" +".if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \\\n" +"\t${RESOLUTION} != 300 && ${RESOLUTION} != 360 && \\\n" +"\t${RESOLUTION} != 400 && ${RESOLUTION} != 600\n" +".BEGIN:\n" +"\t@${ECHO_MSG} \"Error: invalid value for RESOLUTION: \\\"${RESOLUTION}\\\"\"\n" +"\t@${ECHO_MSG} \"Possible values are: 118, 240, 300, 360, 400 and 600.\"\n" +"\t@${FALSE}\n" +".endif\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3854 +msgid "" +"package:print/pkfonts300[] also has all the regular patches, package files, " +"etc. Running `make` there, it will take the default value for the " +"resolution (300) and build the port normally." +msgstr "" +"Пакет `package:print/pkfonts300[]` также содержит все обычные исправления, " +"файлы пакетов и т.д. При запуске `make` в этом месте будет взято значение " +"разрешения по умолчанию (300), и порт будет собран в обычном режиме." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3856 +msgid "" +"As for other resolutions, this is the _entire_ [.filename]#print/pkfonts360/" +"Makefile#:" +msgstr "" +"Что касается других разрешений, это _полный_ [.filename]#print/pkfonts360/" +"Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3861 +#, no-wrap +msgid "" +"RESOLUTION=\t360\n" +"MASTERDIR=\t${.CURDIR}/../pkfonts300\n" +msgstr "" +"RESOLUTION=\t360\n" +"MASTERDIR=\t${.CURDIR}/../pkfonts300\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3863 +#, no-wrap +msgid ".include\t\"${MASTERDIR}/Makefile\"\n" +msgstr ".include\t\"${MASTERDIR}/Makefile\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3868 +msgid "" +"([.filename]#print/pkfonts118/Makefile#, [.filename]#print/pkfonts600/" +"Makefile#, and all the other are similar). `MASTERDIR` definition tells " +"[.filename]#bsd.port.mk# that the regular set of subdirectories like " +"`FILESDIR` and `SCRIPTDIR` are to be found under [.filename]#pkfonts300#. " +"The `RESOLUTION=360` line will override the `RESOLUTION=300` line in " +"[.filename]#pkfonts300/Makefile# and the port will be built with resolution " +"set to 360." +msgstr "" +"([.filename]#print/pkfonts118/Makefile#, [.filename]#print/pkfonts600/" +"Makefile# и все остальные аналогичны). Определение `MASTERDIR` указывает " +"[.filename]#bsd.port.mk#, что стандартный набор подкаталогов, таких как " +"`FILESDIR` и `SCRIPTDIR`, следует искать в [.filename]#pkfonts300#. Строка " +"`RESOLUTION=360` переопределит строку `RESOLUTION=300` в " +"[.filename]#pkfonts300/Makefile#, и порт будет собран с разрешением, " +"установленным на 360." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3870 +#, no-wrap +msgid "Man Pages" +msgstr "Страницы Cправочника" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3875 +msgid "" +"If the port anchors its man tree somewhere other than `PREFIX`, use " +"`MANDIRS` to specify those directories. Note that the files corresponding " +"to manual pages must be placed in [.filename]#pkg-plist# along with the rest " +"of the files. The purpose of `MANDIRS` is to enable automatic compression " +"of manual pages, therefore the file names are suffixed with [.filename]#.gz#." +msgstr "" +"Если порт размещает дерево man в другом месте, отличном от `PREFIX`, " +"используйте `MANDIRS` для указания этих каталогов. Обратите внимание, что " +"файлы, соответствующие страницам руководства, должны быть добавлены в " +"[.filename]#pkg-plist# вместе с остальными файлами. Назначение `MANDIRS` — " +"обеспечить автоматическое сжатие страниц руководства, поэтому имена файлов " +"имеют суффикс [.filename]#.gz#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3877 +#, no-wrap +msgid "Info Files" +msgstr "Файлы информации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3884 +msgid "" +"If the package needs to install GNU info files, list them in `INFO` (without " +"the trailing `.info`), one entry per document. These files are assumed to " +"be installed to [.filename]#PREFIX/INFO_PATH#. Change `INFO_PATH` if the " +"package uses a different location. However, this is not recommended. These " +"entries contain just the path relative to [.filename]#PREFIX/INFO_PATH#. " +"For example, package:lang/gcc34[] installs info files to [.filename]#PREFIX/" +"INFO_PATH/gcc34#, and `INFO` will be something like this:" +msgstr "" +"Если пакету требуется установить файлы GNU info, перечислите их в `INFO` " +"(без завершающего `.info`), по одному документу на строку. Предполагается, " +"что эти файлы будут установлены в [.filename]#PREFIX/INFO_PATH#. Измените " +"`INFO_PATH`, если пакет использует другое расположение. Однако это не " +"рекомендуется. Эти записи содержат только путь относительно " +"[.filename]#PREFIX/INFO_PATH#. Например, пакет package:lang/gcc34[] " +"устанавливает файлы info в [.filename]#PREFIX/INFO_PATH/gcc34#, и `INFO` " +"будет выглядеть примерно так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3888 +#, no-wrap +msgid "INFO=\tgcc34/cpp gcc34/cppinternals gcc34/g77 ...\n" +msgstr "INFO=\tgcc34/cpp gcc34/cppinternals gcc34/g77 ...\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3891 +msgid "" +"Appropriate installation/de-installation code will be automatically added to " +"the temporary [.filename]#pkg-plist# before package registration." +msgstr "" +"Соответствующий код установки/удаления будет автоматически добавлен во " +"временный файл [.filename]#pkg-plist# перед регистрацией пакета." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3893 +#, no-wrap +msgid "Makefile Options" +msgstr "Параметры Makefile" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3898 +msgid "" +"Many applications can be built with optional or differing configurations. " +"Examples include choice of natural (human) language, GUI versus command-" +"line, or type of database to support. Users may need a different " +"configuration than the default, so the ports system provides hooks the port " +"author can use to control which variant will be built. Supporting these " +"options properly will make users happy, and effectively provide two or more " +"ports for the price of one." +msgstr "" +"Многие приложения могут быть собраны с дополнительными или различными " +"конфигурациями. Примеры включают выбор естественного (человеческого) языка, " +"графический интерфейс или командная строка, тип поддерживаемой базы данных. " +"Пользователям может потребоваться конфигурация, отличная от стандартной, " +"поэтому система портов предоставляет хуки, которые автор порта может " +"использовать для управления вариантом сборки. Правильная поддержка этих " +"опций сделает пользователей счастливыми и эффективно предоставит два или " +"более порта по цене одного." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3900 +#, no-wrap +msgid "`OPTIONS`" +msgstr "`OPTIONS`" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3903 +#, no-wrap +msgid "Background" +msgstr "Пояснения" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3909 +msgid "" +"`OPTIONS_*` give the user installing the port a dialog showing the available " +"options, and then saves those options to [.filename]#${PORT_DBDIR}/$" +"{OPTIONS_NAME}/options#. The next time the port is built, the options are " +"reused. `PORT_DBDIR` defaults to [.filename]#/var/db/ports#. " +"`OPTIONS_NAME` is to the port origin with an underscore as the space " +"separator, for example, for package:dns/bind99[] it will be `dns_bind99`." +msgstr "" +"`OPTIONS_*` предоставляют пользователю, устанавливающему порт, диалоговое " +"окно с доступными опциями, после чего сохраняют выбранные опции в " +"[.filename]#${PORT_DBDIR}/${OPTIONS_NAME}/options#. При следующей сборке " +"порта эти опции будут использованы повторно. `PORT_DBDIR` по умолчанию имеет " +"значение [.filename]#/var/db/ports#. `OPTIONS_NAME` соответствует имени " +"порта (origin) с заменой разделителя на подчёркивания, например, для " +"package:dns/bind99[] это будет `dns_bind99`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3913 +msgid "" +"When the user runs `make config` (or runs `make build` for the first time), " +"the framework checks for [.filename]#${PORT_DBDIR}/${OPTIONS_NAME}/" +"options#. If that file does not exist, the values of `OPTIONS_*` are used, " +"and a dialog box is displayed where the options can be enabled or disabled. " +"Then [.filename]#options# is saved and the configured variables are used " +"when building the port." +msgstr "" +"Когда пользователь запускает `make config` (или впервые запускает `make " +"build`), система проверяет наличие файла [.filename]#${PORT_DBDIR}/$" +"{OPTIONS_NAME}/options#. Если этот файл не существует, используются значения " +"`OPTIONS_*`, и отображается диалоговое окно, где можно включить или " +"отключить опции. Затем файл [.filename]#options# сохраняется, а настроенные " +"переменные используются при сборке порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3915 +msgid "" +"If a new version of the port adds new `OPTIONS`, the dialog will be " +"presented to the user with the saved values of old `OPTIONS` prefilled." +msgstr "" +"Если новая версия порта добавляет новые `OPTIONS`, пользователю будет " +"показан диалог с сохранёнными значениями старых `OPTIONS`, заполненными " +"заранее." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3918 +msgid "" +"`make showconfig` shows the saved configuration. Use `make rmconfig` to " +"remove the saved configuration." +msgstr "" +"`make showconfig` показывает сохранённую конфигурацию. Используйте `make " +"rmconfig` для удаления сохранённой конфигурации." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3920 +#, no-wrap +msgid "Syntax" +msgstr "Синтаксис" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3924 +msgid "" +"`OPTIONS_DEFINE` contains a list of `OPTIONS` to be used. These are " +"independent of each other and are not grouped:" +msgstr "" +"`OPTIONS_DEFINE` содержит список `OPTIONS`, которые будут использоваться. " +"Они независимы друг от друга и не сгруппированы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3928 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4357 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4654 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4711 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4775 +#, no-wrap +msgid "OPTIONS_DEFINE=\tOPT1 OPT2\n" +msgstr "OPTIONS_DEFINE=\tOPT1 OPT2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3931 +msgid "" +"Once defined, `OPTIONS` are described (optional, but strongly recommended):" +msgstr "" +"После определения `OPTIONS` описываются (необязательно, но настоятельно " +"рекомендуется):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3940 +#, no-wrap +msgid "" +"OPT1_DESC=\tDescribe OPT1\n" +"OPT2_DESC=\tDescribe OPT2\n" +"OPT3_DESC=\tDescribe OPT3\n" +"OPT4_DESC=\tDescribe OPT4\n" +"OPT5_DESC=\tDescribe OPT5\n" +"OPT6_DESC=\tDescribe OPT6\n" +msgstr "" +"OPT1_DESC=\tDescribe OPT1\n" +"OPT2_DESC=\tDescribe OPT2\n" +"OPT3_DESC=\tDescribe OPT3\n" +"OPT4_DESC=\tDescribe OPT4\n" +"OPT5_DESC=\tDescribe OPT5\n" +"OPT6_DESC=\tDescribe OPT6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3944 +msgid "" +"[.filename]#ports/Mk/bsd.options.desc.mk# has descriptions for many common " +"`OPTIONS`. While often useful, override them if the description is " +"insufficient for the port." +msgstr "" +"[.filename]#ports/Mk/bsd.options.desc.mk# содержит описания для многих " +"распространённых `OPTIONS`. Хотя они часто полезны, переопределите их, если " +"описание недостаточно для порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3950 +msgid "" +"When describing options, view it from the perspective of the user: \"What " +"functionality does it change?\" and \"Why would I want to enable this?\" Do " +"not just repeat the name. For example, describing the `NLS` option as " +"\"include NLS support\" does not help the user, who can already see the " +"option name but may not know what it means. Describing it as \"Native " +"Language Support via gettext utilities\" is much more helpful." +msgstr "" +"При описании параметров рассматривайте их с точки зрения пользователя: " +"«Какую функциональность это изменяет?» и «Зачем мне включать этот параметр?» " +"Не просто повторяйте название. Например, описание параметра `NLS` как " +"«включить поддержку NLS» не помогает пользователю, который уже видит " +"название параметра, но может не знать, что оно означает. Описание вроде " +"«Поддержка родного языка с помощью утилиты gettext» гораздо полезнее." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3956 +msgid "" +"Option names are always in all uppercase. They cannot use mixed case or " +"lowercase." +msgstr "" +"Названия параметров всегда пишутся в верхнем регистре. Они не могут " +"использовать смешанный регистр или нижний регистр." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3959 +msgid "" +"`OPTIONS` can be grouped as radio choices, where only one choice from each " +"group is allowed:" +msgstr "" +"`OPTIONS` могут быть сгруппированы как переключаемые варианты, где " +"допускается только один выбор из каждой группы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3964 +#, no-wrap +msgid "" +"OPTIONS_SINGLE=\t\tSG1\n" +"OPTIONS_SINGLE_SG1=\tOPT3 OPT4\n" +msgstr "" +"OPTIONS_SINGLE=\t\tSG1\n" +"OPTIONS_SINGLE_SG1=\tOPT3 OPT4\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3970 +msgid "" +"There _must_ be one of each `OPTIONS_SINGLE` group selected at all times for " +"the options to be valid. One option of each group _must_ be added to " +"`OPTIONS_DEFAULT`." +msgstr "" +"В каждый момент времени _должна_ быть выбрана одна опция из каждой группы " +"`OPTIONS_SINGLE`, чтобы параметры были действительными. Один вариант из " +"каждой группы _должен_ быть добавлен в `OPTIONS_DEFAULT`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3973 +msgid "" +"`OPTIONS` can be grouped as radio choices, where none or only one choice " +"from each group is allowed:" +msgstr "" +"`OPTIONS` могут быть сгруппированы как переключаемые варианты, где ни один " +"или только один вариант из каждой группы разрешён:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3978 +#, no-wrap +msgid "" +"OPTIONS_RADIO=\t\tRG1\n" +"OPTIONS_RADIO_RG1=\tOPT7 OPT8\n" +msgstr "" +"OPTIONS_RADIO=\t\tRG1\n" +"OPTIONS_RADIO_RG1=\tOPT7 OPT8\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3981 +msgid "" +"`OPTIONS` can also be grouped as \"multiple-choice\" lists, where _at least " +"one_ option must be enabled:" +msgstr "" +"`OPTIONS` также могут быть сгруппированы в виде списков \"множественного " +"выбора\", где _хотя бы одна_ опция должна быть включена:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3986 +#, no-wrap +msgid "" +"OPTIONS_MULTI=\t\tMG1\n" +"OPTIONS_MULTI_MG1=\tOPT5 OPT6\n" +msgstr "" +"OPTIONS_MULTI=\t\tMG1\n" +"OPTIONS_MULTI_MG1=\tOPT5 OPT6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3989 +msgid "" +"`OPTIONS` can also be grouped as \"multiple-choice\" lists, where none or " +"any option can be enabled:" +msgstr "" +"`OPTIONS` также могут быть сгруппированы в виде списков \"множественного " +"выбора\", где ни одна или любые опции могут быть включены:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3994 +#, no-wrap +msgid "" +"OPTIONS_GROUP=\t\tGG1\n" +"OPTIONS_GROUP_GG1=\tOPT9 OPT10\n" +msgstr "" +"OPTIONS_GROUP=\t\tGG1\n" +"OPTIONS_GROUP_GG1=\tOPT9 OPT10\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3997 +msgid "" +"`OPTIONS` are unset by default, unless they are listed in `OPTIONS_DEFAULT`:" +msgstr "" +"`OPTIONS` по умолчанию не установлены, если они не перечислены в " +"`OPTIONS_DEFAULT`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4001 +#, no-wrap +msgid "OPTIONS_DEFAULT=\tOPT1 OPT3 OPT6\n" +msgstr "OPTIONS_DEFAULT=\tOPT1 OPT3 OPT6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4007 +msgid "" +"`OPTIONS` definitions must appear before the inclusion of " +"[.filename]#bsd.port.options.mk#. `PORT_OPTIONS` values can only be tested " +"after the inclusion of [.filename]#bsd.port.options.mk#. Inclusion of " +"[.filename]#bsd.port.pre.mk# can be used instead, too, and is still widely " +"used in ports written before the introduction of " +"[.filename]#bsd.port.options.mk#. But be aware that some variables will not " +"work as expected after the inclusion of [.filename]#bsd.port.pre.mk#, " +"typically some `USE_*` flags." +msgstr "" +"Определения `OPTIONS` должны быть указаны до включения файла " +"[.filename]#bsd.port.options.mk#. Значения `PORT_OPTIONS` можно проверять " +"только после включения [.filename]#bsd.port.options.mk#. Включение " +"[.filename]#bsd.port.pre.mk# также может использоваться и до сих пор широко " +"применяется в портах, написанных до введения " +"[.filename]#bsd.port.options.mk#. Однако следует учитывать, что некоторые " +"переменные не будут работать как ожидается после включения " +"[.filename]#bsd.port.pre.mk#, обычно это некоторые флаги `USE_*`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4009 +#, no-wrap +msgid "Simple Use of `OPTIONS`" +msgstr "Простое использование `OPTIONS`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4017 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tFOO BAR\n" +"OPTIONS_DEFAULT=FOO\n" +msgstr "" +"OPTIONS_DEFINE=\tFOO BAR\n" +"OPTIONS_DEFAULT=FOO\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4020 +#, no-wrap +msgid "" +"FOO_DESC=\tOption foo support\n" +"BAR_DESC=\tFeature bar support\n" +msgstr "" +"FOO_DESC=\tOption foo support\n" +"BAR_DESC=\tFeature bar support\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4024 +#, no-wrap +msgid "" +"# Will add --with-foo / --without-foo\n" +"FOO_CONFIGURE_WITH=\tfoo\n" +"BAR_RUN_DEPENDS=\tbar:bar/bar\n" +msgstr "" +"# Will add --with-foo / --without-foo\n" +"FOO_CONFIGURE_WITH=\tfoo\n" +"BAR_RUN_DEPENDS=\tbar:bar/bar\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4026 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4090 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4031 +#, no-wrap +msgid "Check for Unset Port `OPTIONS`" +msgstr "Проверка неустановленных `OPTIONS` порта" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4040 +#, no-wrap +msgid "" +".if ! ${PORT_OPTIONS:MEXAMPLES}\n" +"CONFIGURE_ARGS+=--without-examples\n" +".endif\n" +msgstr "" +".if ! ${PORT_OPTIONS:MEXAMPLES}\n" +"CONFIGURE_ARGS+=--without-examples\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4044 +msgid "" +"The form shown above is discouraged. The preferred method is using a " +"configure knob to really enable and disable the feature to match the option:" +msgstr "" +"Приведённая выше форма не рекомендуется. Предпочтительный метод — " +"использование параметра configure для фактического включения и отключения " +"функции в соответствии с опцией:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4049 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4086 +#, no-wrap +msgid "" +"# Will add --with-examples / --without-examples\n" +"EXAMPLES_CONFIGURE_WITH=\texamples\n" +msgstr "" +"# Will add --with-examples / --without-examples\n" +"EXAMPLES_CONFIGURE_WITH=\texamples\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4054 +#, no-wrap +msgid "Practical Use of `OPTIONS`" +msgstr "Пример реального использования `OPTIONS`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4062 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\t\tEXAMPLES\n" +"OPTIONS_DEFAULT=\tPGSQL LDAP SSL\n" +msgstr "" +"OPTIONS_DEFINE=\t\tEXAMPLES\n" +"OPTIONS_DEFAULT=\tPGSQL LDAP SSL\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4065 +#, no-wrap +msgid "" +"OPTIONS_SINGLE=\t\tBACKEND\n" +"OPTIONS_SINGLE_BACKEND=\tMYSQL PGSQL BDB\n" +msgstr "" +"OPTIONS_SINGLE=\t\tBACKEND\n" +"OPTIONS_SINGLE_BACKEND=\tMYSQL PGSQL BDB\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4068 +#, no-wrap +msgid "" +"OPTIONS_MULTI=\t\tAUTH\n" +"OPTIONS_MULTI_AUTH=\tLDAP PAM SSL\n" +msgstr "" +"OPTIONS_MULTI=\t\tAUTH\n" +"OPTIONS_MULTI_AUTH=\tLDAP PAM SSL\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4076 +#, no-wrap +msgid "" +"EXAMPLES_DESC=\t\tInstall extra examples\n" +"MYSQL_DESC=\t\tUse MySQL as backend\n" +"PGSQL_DESC=\t\tUse PostgreSQL as backend\n" +"BDB_DESC=\t\tUse Berkeley DB as backend\n" +"LDAP_DESC=\t\tBuild with LDAP authentication support\n" +"PAM_DESC=\t\tBuild with PAM support\n" +"SSL_DESC=\t\tBuild with OpenSSL support\n" +msgstr "" +"EXAMPLES_DESC=\t\tInstall extra examples\n" +"MYSQL_DESC=\t\tUse MySQL as backend\n" +"PGSQL_DESC=\t\tUse PostgreSQL as backend\n" +"BDB_DESC=\t\tUse Berkeley DB as backend\n" +"LDAP_DESC=\t\tBuild with LDAP authentication support\n" +"PAM_DESC=\t\tBuild with PAM support\n" +"SSL_DESC=\t\tBuild with OpenSSL support\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4081 +#, no-wrap +msgid "" +"# Will add USE_PGSQL=yes\n" +"PGSQL_USE=\tpgsql=yes\n" +"# Will add --enable-postgres / --disable-postgres\n" +"PGSQL_CONFIGURE_ENABLE=\tpostgres\n" +msgstr "" +"# Will add USE_PGSQL=yes\n" +"PGSQL_USE=\tpgsql=yes\n" +"# Will add --enable-postgres / --disable-postgres\n" +"PGSQL_CONFIGURE_ENABLE=\tpostgres\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4083 +#, no-wrap +msgid "ICU_LIB_DEPENDS=\tlibicuuc.so:devel/icu\n" +msgstr "ICU_LIB_DEPENDS=\tlibicuuc.so:devel/icu\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4088 +#, no-wrap +msgid "# Check other OPTIONS\n" +msgstr "# Check other OPTIONS\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4095 +#, no-wrap +msgid "Default Options" +msgstr "Опции по умолчанию" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4098 +msgid "These options are always on by default." +msgstr "Эти опции всегда включены по умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4100 +msgid "`DOCS` - build and install documentation." +msgstr "`DOCS` — сборка и установка документации." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4101 +msgid "`NLS` - Native Language Support." +msgstr "`NLS` — Поддержка родного языка." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4102 +msgid "`EXAMPLES` - build and install examples." +msgstr "`EXAMPLES` — сборка и установка примеров." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4103 +msgid "`IPV6` - IPv6 protocol support." +msgstr "`IPV6` — Поддержка протокола IPv6." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4108 +msgid "" +"There is no need to add these to `OPTIONS_DEFAULT`. To have them active, " +"and show up in the options selection dialog, however, they must be added to " +"`OPTIONS_DEFINE`." +msgstr "" +"Нет необходимости добавлять их в `OPTIONS_DEFAULT`. Однако, чтобы они были " +"активны и отображались в диалоге выбора опций, их необходимо добавить в " +"`OPTIONS_DEFINE`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4111 +#, no-wrap +msgid "Feature Auto-Activation" +msgstr "Автоматическая активация функций" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4115 +msgid "" +"When using a GNU configure script, keep an eye on which optional features " +"are activated by auto-detection. Explicitly disable optional features that " +"are not needed by adding `--without-xxx` or `--disable-xxx` in " +"`CONFIGURE_ARGS`." +msgstr "" +"При использовании скрипта GNU configure следите за тем, какие дополнительные " +"функции активируются автоматическим определением. Явно отключите ненужные " +"дополнительные функции, добавив `--without-xxx` или `--disable-xxx` в " +"`CONFIGURE_ARGS`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4117 +#, no-wrap +msgid "Wrong Handling of an Option" +msgstr "Неправильная обработка опции" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4127 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MFOO}\n" +"LIB_DEPENDS+=\t\tlibfoo.so:devel/foo\n" +"CONFIGURE_ARGS+=\t--enable-foo\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MFOO}\n" +"LIB_DEPENDS+=\t\tlibfoo.so:devel/foo\n" +"CONFIGURE_ARGS+=\t--enable-foo\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4135 +msgid "" +"In the example above, imagine a library libfoo is installed on the system. " +"The user does not want this application to use libfoo, so he toggled the " +"option off in the `make config` dialog. But the application's configure " +"script detects the library present in the system and includes its support in " +"the resulting executable. Now when the user decides to remove libfoo from " +"the system, the ports system does not protest (no dependency on libfoo was " +"recorded) but the application breaks." +msgstr "" +"В приведённом выше примере представьте, что библиотека libfoo установлена в " +"системе. Пользователь не хочет, чтобы это приложение использовало libfoo, " +"поэтому он отключил соответствующую опцию в диалоге `make config`. Однако " +"скрипт configure приложения обнаруживает библиотеку в системе и включает её " +"поддержку в итоговом исполняемом файле. Теперь, когда пользователь решает " +"удалить libfoo из системы, система портов не протестует (зависимость от " +"libfoo не была записана), но приложение перестаёт работать." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4137 +#, no-wrap +msgid "Correct Handling of an Option" +msgstr "Правильная обработка опции" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4146 +#, no-wrap +msgid "" +"FOO_LIB_DEPENDS=\t\tlibfoo.so:devel/foo\n" +"# Will add --enable-foo / --disable-foo\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" +msgstr "" +"FOO_LIB_DEPENDS=\t\tlibfoo.so:devel/foo\n" +"# Will add --enable-foo / --disable-foo\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4154 +msgid "" +"Under some circumstances, the shorthand conditional syntax can cause " +"problems with complex constructs. The errors are usually `Malformed " +"conditional`, an alternative syntax can be used." +msgstr "" +"В некоторых случаях сокращенный синтаксис условных выражений может вызывать " +"проблемы со сложными конструкциями. Ошибки обычно имеют вид `Malformed " +"conditional`, тогда можно использовать альтернативный синтаксис." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4158 +#, no-wrap +msgid ".if !empty(VARIABLE:MVALUE)\n" +msgstr ".if !empty(VARIABLE:MVALUE)\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4161 +msgid "as an alternative to" +msgstr "в качестве альтернативы" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4165 +#, no-wrap +msgid ".if ${VARIABLE:MVALUE}\n" +msgstr ".if ${VARIABLE:MVALUE}\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4170 +#, no-wrap +msgid "Options Helpers" +msgstr "Помощники параметров" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4174 +msgid "" +"There are some macros to help simplify conditional values which differ based " +"on the options set. For easier access, a comprehensive list is provided:" +msgstr "" +"Существуют макросы, которые помогают упростить условные значения, " +"различающиеся в зависимости от установленных опций. Для удобства приведён " +"полный список:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4175 +#, no-wrap +msgid "`PLIST_SUB`, `SUB_LIST`" +msgstr "`PLIST_SUB`, `SUB_LIST`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4177 +msgid "" +"For automatic `%%_OPT_%%` and `%%NO__OPT__%%` generation, see " +"crossref:makefiles[options_sub, `OPTIONS_SUB`]." +msgstr "" +"Для автоматической генерации `%%_OPT_%%` и `%%NO__OPT__%%` см. " +"crossref:makefiles[options_sub, `OPTIONS_SUB`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4179 +msgid "" +"For more complex usage, see crossref:makefiles[options-variables, Generic " +"Variables Replacement, `OPT_VARIABLE` and `OPT_VARIABLE_OFF`]." +msgstr "" +"Для более сложных случаев использования см. crossref:makefiles[options-" +"variables, Замена общих переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4180 +#, no-wrap +msgid "`CONFIGURE_ARGS`" +msgstr "`CONFIGURE_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4182 +msgid "" +"For `--enable-_x_` and `--disable-_x_`, see crossref:makefiles[options-" +"configure_enable, `OPT_CONFIGURE_ENABLE`]." +msgstr "" +"Для информации о `--enable-_x_` и `--disable-_x_` см. " +"crossref:makefiles[options-configure_enable, `OPT_CONFIGURE_ENABLE`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4184 +msgid "" +"For `--with-_x_` and `--without-_x_`, see crossref:makefiles[options-" +"configure_with, `OPT_CONFIGURE_WITH`]." +msgstr "" +"О `--with-_x_` и `--without-_x_` см. crossref:makefiles[options-" +"configure_with, `OPT_CONFIGURE_WITH`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4186 +msgid "" +"For all other cases, see crossref:makefiles[options-configure_on, " +"`OPT_CONFIGURE_ON` and `OPT_CONFIGURE_OFF`]." +msgstr "" +"Во всех остальных случаях см. crossref:makefiles[options-configure_on, " +"`OPT_CONFIGURE_ON` и `OPT_CONFIGURE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4187 +#, no-wrap +msgid "`CMAKE_ARGS`" +msgstr "`CMAKE_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4190 +msgid "" +"For arguments that are booleans (`on`, `off`, `true`, `false`, `0`, `1`) see " +"crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` and " +"`OPT_CMAKE_BOOL_OFF`]." +msgstr "" +"Для аргументов, которые являются булевыми значениями (`on`, `off`, `true`, " +"`false`, `0`, `1`), см. crossref:makefiles[options-cmake_bool, " +"`OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4192 +msgid "" +"For all other cases, see crossref:makefiles[options-cmake_on, `OPT_CMAKE_ON` " +"and `OPT_CMAKE_OFF`]." +msgstr "" +"Для всех остальных случаев см. crossref:makefiles[options-cmake_on, " +"`OPT_CMAKE_ON` и `OPT_CMAKE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4193 +#, no-wrap +msgid "`MESON_ARGS`" +msgstr "`MESON_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4195 +msgid "" +"For arguments that take `true` or `false`, see crossref:makefiles[options-" +"meson_true, `OPT_MESON_TRUE` and `OPT_MESON_FALSE`]." +msgstr "" +"Для аргументов, принимающих `true` или `false`, см. " +"crossref:makefiles[options-meson_true, `OPT_MESON_TRUE` и `OPT_MESON_FALSE`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4197 +msgid "" +"For arguments that take `yes` or `no`, use crossref:makefiles[options-" +"meson_yes, `OPT_MESON_YES` and `OPT_MESON_NO`]." +msgstr "" +"Для аргументов, принимающих `yes` или `no`, используйте " +"crossref:makefiles[options-meson_yes, `OPT_MESON_YES` и `OPT_MESON_NO`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4199 +msgid "" +"For arguments that take `enabled` or `disabled`, see " +"crossref:makefiles[options-meson_enabled, `OPT_MESON_ENABLED` and " +"`OPT_MESON_DISABLED`]." +msgstr "" +"Для аргументов, принимающих `enabled` или `disabled`, см. " +"crossref:makefiles[options-meson_enabled, `OPT_MESON_ENABLED` и " +"`OPT_MESON_DISABLED`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4201 +msgid "" +"For all other cases, use crossref:makefiles[options-meson_on, `OPT_MESON_ON` " +"and `OPT_MESON_OFF`]." +msgstr "" +"Во всех остальных случаях используйте crossref:makefiles[options-meson_on, " +"`OPT_MESON_ON` и `OPT_MESON_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4202 +#, no-wrap +msgid "`QMAKE_ARGS`" +msgstr "`QMAKE_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4204 +msgid "" +"See crossref:makefiles[options-qmake_on, `OPT_QMAKE_ON` and `OPT_QMAKE_OFF`]." +msgstr "" +"См. crossref:makefiles[options-qmake_on, `OPT_QMAKE_ON` и `OPT_QMAKE_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4207 +msgid "See crossref:makefiles[options-use, `OPT_USE` and `OPT_USE_OFF`]." +msgstr "См. crossref:makefiles[options-use, `OPT_USE` и `OPT_USE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4208 +#, no-wrap +msgid "`*_DEPENDS`" +msgstr "`*_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4210 +msgid "" +"See crossref:makefiles[options-dependencies, Dependencies, `OPT_DEPTYPE` and " +"`OPT_DEPTYPE_OFF`]." +msgstr "" +"См. crossref:makefiles[options-dependencies, Зависимости, `OPT_DEPTYPE` и " +"`OPT_DEPTYPE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4211 +#, no-wrap +msgid "`*` (Any variable)" +msgstr "`*` (Любая переменная)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4214 +msgid "" +"The most used variables have direct helpers, see crossref:makefiles[options-" +"variables, Generic Variables Replacement, `OPT_VARIABLE` and " +"`OPT_VARIABLE_OFF`]." +msgstr "" +"Наиболее используемые переменные имеют своих помощников, см. " +"crossref:makefiles[options-variables, Замена Общих Переменных, " +"`OPT_VARIABLE` и `OPT_VARIABLE_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4216 +msgid "" +"For any variable without a specific helper, see crossref:makefiles[options-" +"vars, `OPT_VARS` and `OPT_VARS_OFF`]." +msgstr "" +"Для любой переменной без специального помощника см. " +"crossref:makefiles[options-vars, `OPT_VARS` и `OPT_VARS_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4217 +#, no-wrap +msgid "Options dependencies" +msgstr "Зависимости параметров" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4220 +msgid "" +"When an option need another option to work, see crossref:makefiles[options-" +"implies, `OPT_IMPLIES`]." +msgstr "" +"Когда для работы опции требуется другая опция, см. " +"crossref:makefiles[options-implies, `OPT_IMPLIES`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4221 +#, no-wrap +msgid "Options conflicts" +msgstr "Конфликты опций" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4224 +msgid "" +"When an option cannot work if another is also enabled, see " +"crossref:makefiles[options-prevents, `OPT_PREVENTS` and `OPT_PREVENTS_MSG`]." +msgstr "" +"Когда опция не может работать, если включена другая, см. " +"crossref:makefiles[options-prevents, `OPT_PREVENTS` и `OPT_PREVENTS_MSG`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4225 +#, no-wrap +msgid "Build targets" +msgstr "Цели сборки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4228 +msgid "" +"When an option need some extra processing, see crossref:makefiles[options-" +"targets, Additional Build Targets, `_target_-_OPT_-on` and `_target_-_OPT_-" +"off`]." +msgstr "" +"Когда для опции требуется дополнительная обработка, см. " +"crossref:makefiles[options-targets, Дополнительные цели сборки, `_target_-" +"_OPT_-on` и `_target_-_OPT_-off`]." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4230 +#, no-wrap +msgid "`OPTIONS_SUB`" +msgstr "`OPTIONS_SUB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4233 +msgid "" +"If `OPTIONS_SUB` is set to `yes` then each of the options added to " +"`OPTIONS_DEFINE` will be added to `PLIST_SUB` and `SUB_LIST`, for example:" +msgstr "" +"Если `OPTIONS_SUB` установлен в `yes`, то каждая из опций, добавленных в " +"`OPTIONS_DEFINE`, будет добавлена в `PLIST_SUB` и `SUB_LIST`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4238 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPTIONS_SUB=\tyes\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPTIONS_SUB=\tyes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4241 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4280 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4316 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4353 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4388 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4425 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4461 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4495 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4525 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4557 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4589 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4618 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4771 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4844 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4921 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5011 +msgid "is equivalent to:" +msgstr "эквивалентно:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4245 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4284 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4320 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4392 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4429 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4465 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4499 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4529 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4561 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4593 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4622 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4848 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4925 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5002 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5015 +#, no-wrap +msgid "OPTIONS_DEFINE=\tOPT1\n" +msgstr "OPTIONS_DEFINE=\tOPT1\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4247 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4286 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4322 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4359 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4394 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4431 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4467 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4501 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4531 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4563 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4595 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4624 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4656 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4713 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4779 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4850 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4927 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5017 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4255 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"PLIST_SUB+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +"SUB_LIST+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +".else\n" +"PLIST_SUB+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +"SUB_LIST+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"PLIST_SUB+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +"SUB_LIST+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +".else\n" +"PLIST_SUB+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +"SUB_LIST+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4261 +msgid "" +"The value of `OPTIONS_SUB` is ignored. Setting it to any value will add " +"`PLIST_SUB` and `SUB_LIST` entries for _all_ options." +msgstr "" +"Значение `OPTIONS_SUB` игнорируется. Установка любого значения добавит " +"записи `PLIST_SUB` и `SUB_LIST` для _всех_ опций." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4264 +#, no-wrap +msgid "`OPT_USE` and `OPT_USE_OFF`" +msgstr "`OPT_USE` и `OPT_USE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4270 +msgid "" +"When option _OPT_ is selected, for each `_key=value_` pair in ``OPT_USE``, " +"_value_ is appended to the corresponding `USE_KEY`. If _value_ has spaces " +"in it, replace them with commas and they will be changed back to spaces " +"during processing. `OPT_USE_OFF` works the same way, but when `OPT` is " +"_not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждой пары `_ключ=значение_` в ``OPT_USE``, " +"_значение_ добавляется к соответствующему `USE_KEY`. Если _значение_ " +"содержит пробелы, замените их запятыми, и они будут преобразованы обратно в " +"пробелы во время обработки. `OPT_USE_OFF` работает аналогично, но когда " +"`OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4277 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\txorg\n" +"OPT1_USE=\tmysql=yes xorg=x11,xextproto,xext,xrandr\n" +"OPT1_USE_OFF=\topenssl=yes\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\txorg\n" +"OPT1_USE=\tmysql=yes xorg=x11,xextproto,xext,xrandr\n" +"OPT1_USE_OFF=\topenssl=yes\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4294 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USE_MYSQL=\tyes\n" +"USES+=\t\txorg\n" +"USE_XORG=\tx11 xextproto xext xrandr\n" +".else\n" +"USE_OPENSSL=\tyes\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USE_MYSQL=\tyes\n" +"USES+=\t\txorg\n" +"USE_XORG=\tx11 xextproto xext xrandr\n" +".else\n" +"USE_OPENSSL=\tyes\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4297 +#, no-wrap +msgid "`CONFIGURE_ARGS` Helpers" +msgstr "Помощники `CONFIGURE_ARGS`" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4300 +#, no-wrap +msgid "`OPT_CONFIGURE_ENABLE`" +msgstr "`OPT_CONFIGURE_ENABLE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4307 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_CONFIGURE_ENABLE` " +"then `--enable-_entry_` is appended to `CONFIGURE_ARGS`. When option _OPT_ " +"is _not_ selected, `--disable-_entry_` is appended to `CONFIGURE_ARGS`. An " +"optional argument can be specified with an `=` symbol. This argument is " +"only appended to the `--enable-_entry_` configure option. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_CONFIGURE_ENABLE` к " +"`CONFIGURE_ARGS` добавляется `--enable-_элемент_`. Если опция _OPT_ _не_ " +"выбрана, к `CONFIGURE_ARGS` добавляется `--disable-_элемент_`. " +"Необязательный аргумент может быть указан с помощью символа `=`. Этот " +"аргумент добавляется только к опции конфигурации `--enable-_элемент_`. " +"Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4313 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_ENABLE=\ttest1 test2\n" +"OPT2_CONFIGURE_ENABLE=\ttest2=exhaustive\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_ENABLE=\ttest1 test2\n" +"OPT2_CONFIGURE_ENABLE=\ttest2=exhaustive\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4328 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-test1 --enable-test2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test1 --disable-test2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-test1 --enable-test2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test1 --disable-test2\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4334 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--enable-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--enable-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test2\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4337 +#, no-wrap +msgid "`OPT_CONFIGURE_WITH`" +msgstr "`OPT_CONFIGURE_WITH`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4344 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `_OPT_CONFIGURE_WITH` " +"then `--with-_entry_` is appended to `CONFIGURE_ARGS`. When option _OPT_ is " +"_not_ selected, `--without-_entry_` is appended to `CONFIGURE_ARGS`. An " +"optional argument can be specified with an `=` symbol. This argument is " +"only appended to the `--with-_entry_` configure option. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `_OPT_CONFIGURE_WITH` к " +"`CONFIGURE_ARGS` добавляется `--with-_элемент_`. Если опция _OPT_ _не_ " +"выбрана, к `CONFIGURE_ARGS` добавляется `--without-_элемент_`. " +"Необязательный аргумент можно указать с помощью символа `=`. Этот аргумент " +"добавляется только к опции конфигурации `--with-_элемент_`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4350 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_WITH=\ttest1\n" +"OPT2_CONFIGURE_WITH=\ttest2=exhaustive\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_WITH=\ttest1\n" +"OPT2_CONFIGURE_WITH=\ttest2=exhaustive\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4365 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--with-test1\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test1\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--with-test1\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test1\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4371 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--with-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--with-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test2\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4374 +#, no-wrap +msgid "`OPT_CONFIGURE_ON` and `OPT_CONFIGURE_OFF`" +msgstr "`OPT_CONFIGURE_ON` и `OPT_CONFIGURE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4379 +msgid "" +"When option _OPT_ is selected, the value of `OPT_CONFIGURE_ON`, if defined, " +"is appended to `CONFIGURE_ARGS`. `OPT_CONFIGURE_OFF` works the same way, " +"but when `OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_CONFIGURE_ON`, если оно определено, " +"добавляется к `CONFIGURE_ARGS`. `OPT_CONFIGURE_OFF` работает аналогично, но " +"когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4385 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CONFIGURE_ON=\t--add-test\n" +"OPT1_CONFIGURE_OFF=\t--no-test\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CONFIGURE_ON=\t--add-test\n" +"OPT1_CONFIGURE_OFF=\t--no-test\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4400 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--add-test\n" +".else\n" +"CONFIGURE_ARGS+=\t--no-test\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--add-test\n" +".else\n" +"CONFIGURE_ARGS+=\t--no-test\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4406 +msgid "" +"Most of the time, the helpers in crossref:makefiles[options-" +"configure_enable, `OPT_CONFIGURE_ENABLE`] and crossref:makefiles[options-" +"configure_with, `OPT_CONFIGURE_WITH`] provide a shorter and more " +"comprehensive functionality." +msgstr "" +"В большинстве случаев помощники crossref:makefiles[options-configure_enable, " +"`OPT_CONFIGURE_ENABLE`] и crossref:makefiles[options-configure_with, " +"`OPT_CONFIGURE_WITH`] предоставляют более короткий и понятный функционал." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4409 +#, no-wrap +msgid "`CMAKE_ARGS` Helpers" +msgstr "Помощники `CMAKE_ARGS`" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4412 +#, no-wrap +msgid "`OPT_CMAKE_ON` and `OPT_CMAKE_OFF`" +msgstr "`OPT_CMAKE_ON` и `OPT_CMAKE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4416 +msgid "" +"When option _OPT_ is selected, the value of `OPT_CMAKE_ON`, if defined, is " +"appended to `CMAKE_ARGS`. `OPT_CMAKE_OFF` works the same way, but when `OPT` " +"is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_CMAKE_ON`, если оно определено, " +"добавляется к `CMAKE_ARGS`. `OPT_CMAKE_OFF` работает аналогично, но когда " +"`OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4422 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_ON=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +"OPT1_CMAKE_OFF=\t-DOPTIMIZE:BOOL=true\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_ON=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +"OPT1_CMAKE_OFF=\t-DOPTIMIZE:BOOL=true\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4437 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +".else\n" +"CMAKE_ARGS+=\t-DOPTIMIZE:BOOL=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +".else\n" +"CMAKE_ARGS+=\t-DOPTIMIZE:BOOL=true\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4443 +msgid "" +"See crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` and " +"`OPT_CMAKE_BOOL_OFF`] for a shorter helper when the value is boolean." +msgstr "" +"См. crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` и " +"`OPT_CMAKE_BOOL_OFF`] для более краткой записи, когда значение является " +"булевым." + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4446 +#, no-wrap +msgid "`OPT_CMAKE_BOOL` and `OPT_CMAKE_BOOL_OFF`" +msgstr "`OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4452 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_CMAKE_BOOL` then `-" +"D_entry_:BOOL=true` is appended to `CMAKE_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_:BOOL=false` is appended to `CONFIGURE_ARGS`. " +"`OPT_CMAKE_BOOL_OFF` is the opposite, `-D_entry_:BOOL=false` is appended to " +"`CMAKE_ARGS` when the option is selected, and `-D_entry_:BOOL=true` when the " +"option is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_CMAKE_BOOL` " +"добавляется `-D_элемент_:BOOL=true` к `CMAKE_ARGS`. Если опция _OPT_ _не_ " +"выбрана, `-D_элемент_:BOOL=false` добавляется к `CONFIGURE_ARGS`. " +"`OPT_CMAKE_BOOL_OFF` работает наоборот: `-D_элемент_:BOOL=false` добавляется " +"к `CMAKE_ARGS`, когда опция выбрана, и `-D_элемент_:BOOL=true`, когда опция " +"_не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4458 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_BOOL=\tTEST DEBUG\n" +"OPT1_CMAKE_BOOL_OFF=\tOPTIMIZE\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_BOOL=\tTEST DEBUG\n" +"OPT1_CMAKE_BOOL_OFF=\tOPTIMIZE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4475 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true \\\n" +"\t\t-DOPTIMIZE:BOOL=false\n" +".else\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=false -DDEBUG:BOOL=false \\\n" +"\t\t-DOPTIMIZE:BOOL=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true \\\n" +"\t\t-DOPTIMIZE:BOOL=false\n" +".else\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=false -DDEBUG:BOOL=false \\\n" +"\t\t-DOPTIMIZE:BOOL=true\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4478 +#, no-wrap +msgid "`MESON_ARGS` Helpers" +msgstr "Помощники `MESON_ARGS`" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4481 +#, no-wrap +msgid "`OPT_MESON_ON` and `OPT_MESON_OFF`" +msgstr "`OPT_MESON_ON` и `OPT_MESON_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4486 +msgid "" +"When option _OPT_ is selected, the value of `OPT_MESON_ON`, if defined, is " +"appended to `MESON_ARGS`. `OPT_MESON_OFF` works the same way, but when " +"`OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_MESON_ON`, если оно определено, " +"добавляется к `MESON_ARGS`. `OPT_MESON_OFF` работает аналогичным образом, " +"но когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4492 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ON=\t-Dopt=1\n" +"OPT1_MESON_OFF=\t-Dopt=2\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ON=\t-Dopt=1\n" +"OPT1_MESON_OFF=\t-Dopt=2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4507 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dopt=1\n" +".else\n" +"MESON_ARGS+=\t-Dopt=2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dopt=1\n" +".else\n" +"MESON_ARGS+=\t-Dopt=2\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4510 +#, no-wrap +msgid "`OPT_MESON_TRUE` and `OPT_MESON_FALSE`" +msgstr "`OPT_MESON_TRUE` и `OPT_MESON_FALSE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4516 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_MESON_TRUE` then `-" +"D_entry_=true` is appended to `MESON_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_=false` is appended to `MESON_ARGS`. `OPT_MESON_FALSE` " +"is the opposite, `-D_entry_=false` is appended to `MESON_ARGS` when the " +"option is selected, and `-D_entry_=true` when the option is _not_ selected. " +"For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_TRUE` " +"добавляется `-D_элемент_=true` в `MESON_ARGS`. Если опция _OPT_ _не_ " +"выбрана, добавляется `-D_элемент_=false` в `MESON_ARGS`. `OPT_MESON_FALSE` " +"работает противоположным образом: `-D_элемент_=false` добавляется в " +"`MESON_ARGS`, когда опция выбрана, и `-D_элемент_=true`, когда опция _не_ " +"выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4522 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_TRUE=\ttest debug\n" +"OPT1_MESON_FALSE=\toptimize\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_TRUE=\ttest debug\n" +"OPT1_MESON_FALSE=\toptimize\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4539 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=true -Ddebug=true \\\n" +"\t\t-Doptimize=false\n" +".else\n" +"MESON_ARGS+=\t-Dtest=false -Ddebug=false \\\n" +"\t\t-Doptimize=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=true -Ddebug=true \\\n" +"\t\t-Doptimize=false\n" +".else\n" +"MESON_ARGS+=\t-Dtest=false -Ddebug=false \\\n" +"\t\t-Doptimize=true\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4542 +#, no-wrap +msgid "`OPT_MESON_YES` and `OPT_MESON_NO`" +msgstr "`OPT_MESON_YES` и `OPT_MESON_NO`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4548 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_MESON_YES` then `-" +"D_entry_=yes` is appended to `MESON_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_=no` is appended to `MESON_ARGS`. `OPT_MESON_NO` is the " +"opposite, `-D_entry_=no` is appended to `MESON_ARGS` when the option is " +"selected, and `-D_entry_=yes` when the option is _not_ selected. For " +"example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_YES` " +"добавляется `-D_элемент_=yes` к `MESON_ARGS`. Если опция _OPT_ _не_ выбрана, " +"добавляется `-D_элемент_=no` к `MESON_ARGS`. `OPT_MESON_NO` работает " +"противоположным образом: `-D_элемент_=no` добавляется к `MESON_ARGS`, когда " +"опция выбрана, и `-D_элемент_=yes`, когда опция _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4554 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_YES=\ttest debug\n" +"OPT1_MESON_NO=\toptimize\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_YES=\ttest debug\n" +"OPT1_MESON_NO=\toptimize\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4571 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=yes -Ddebug=yes \\\n" +"\t\t-Doptimize=no\n" +".else\n" +"MESON_ARGS+=\t-Dtest=no -Ddebug=no \\\n" +"\t\t-Doptimize=yes\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=yes -Ddebug=yes \\\n" +"\t\t-Doptimize=no\n" +".else\n" +"MESON_ARGS+=\t-Dtest=no -Ddebug=no \\\n" +"\t\t-Doptimize=yes\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4574 +#, no-wrap +msgid "`OPT_MESON_ENABLED` and `OPT_MESON_DISABLED`" +msgstr "`OPT_MESON_ENABLED` и `OPT_MESON_DISABLED`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4580 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_MESON_ENABLED` then " +"`-D_entry_=enabled` is appended to `MESON_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_=disabled` is appended to `MESON_ARGS`. " +"`OPT_MESON_DISABLED` is the opposite, `-D_entry_=disabled` is appended to " +"`MESON_ARGS` when the option is selected, and `-D_entry_=enabled` when the " +"option is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_ENABLED` " +"добавляется `-D_элемент_=enabled` к `MESON_ARGS`. Когда опция _OPT_ _не_ " +"выбрана, добавляется `-D_элемент_=disabled` к `MESON_ARGS`. " +"`OPT_MESON_DISABLED` работает противоположным образом: `-" +"D_элемент_=disabled` добавляется к `MESON_ARGS`, когда опция выбрана, и `-" +"D_элемент_=enabled`, когда опция _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4586 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ENABLED=\ttest\n" +"OPT1_MESON_DISABLED=\tdebug\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ENABLED=\ttest\n" +"OPT1_MESON_DISABLED=\tdebug\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4601 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=enabled -Ddebug=disabled\n" +".else\n" +"MESON_ARGS+=\t-Dtest=disabled -Ddebug=enabled\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=enabled -Ddebug=disabled\n" +".else\n" +"MESON_ARGS+=\t-Dtest=disabled -Ddebug=enabled\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4604 +#, no-wrap +msgid "`OPT_QMAKE_ON` and `OPT_QMAKE_OFF`" +msgstr "`OPT_QMAKE_ON` и `OPT_QMAKE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4609 +msgid "" +"When option _OPT_ is selected, the value of `OPT_QMAKE_ON`, if defined, is " +"appended to `QMAKE_ARGS`. `OPT_QMAKE_OFF` works the same way, but when " +"`OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_QMAKE_ON`, если оно определено, " +"добавляется к `QMAKE_ARGS`. `OPT_QMAKE_OFF` работает аналогичным образом, " +"но когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4615 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_QMAKE_ON=\t-DTEST:BOOL=true\n" +"OPT1_QMAKE_OFF=\t-DPRODUCTION:BOOL=true\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_QMAKE_ON=\t-DTEST:BOOL=true\n" +"OPT1_QMAKE_OFF=\t-DPRODUCTION:BOOL=true\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4630 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"QMAKE_ARGS+=\t-DTEST:BOOL=true\n" +".else\n" +"QMAKE_ARGS+=\t-DPRODUCTION:BOOL=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"QMAKE_ARGS+=\t-DTEST:BOOL=true\n" +".else\n" +"QMAKE_ARGS+=\t-DPRODUCTION:BOOL=true\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4633 +#, no-wrap +msgid "`OPT_IMPLIES`" +msgstr "`OPT_IMPLIES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4636 +msgid "Provides a way to add dependencies between options." +msgstr "Предоставляет способ добавления зависимостей между опциями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4639 +msgid "" +"When _OPT_ is selected, all the options listed in this variable will be " +"selected too. Using the crossref:makefiles[options-" +"configure_enable,`OPT_CONFIGURE_ENABLE`] described earlier to illustrate:" +msgstr "" +"При выборе _OPT_ все перечисленные в этой переменной опции также будут " +"выбраны. В качестве примера можно использовать описанный ранее " +"crossref:makefiles[options-configure_enable,`OPT_CONFIGURE_ENABLE`]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4644 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_IMPLIES=\tOPT2\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_IMPLIES=\tOPT2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4647 +#, no-wrap +msgid "" +"OPT1_CONFIGURE_ENABLE=\topt1\n" +"OPT2_CONFIGURE_ENABLE=\topt2\n" +msgstr "" +"OPT1_CONFIGURE_ENABLE=\topt1\n" +"OPT2_CONFIGURE_ENABLE=\topt2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4650 +msgid "Is equivalent to:" +msgstr "Эквивалентно:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4662 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt1\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt1\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt1\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt1\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4668 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2} || ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2} || ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt2\n" +".endif\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4671 +#, no-wrap +msgid "Simple Use of `OPT_IMPLIES`" +msgstr "Простое использование `OPT_IMPLIES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4676 +msgid "" +"This port has a `X11` option, and a `GNOME` option that needs the `X11` " +"option to be selected to build." +msgstr "" +"Этот порт имеет опцию `X11` и опцию `GNOME`, для сборки которой необходимо " +"выбрать опцию `X11`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4681 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tX11 GNOME\n" +"OPTIONS_DEFAULT=\tX11\n" +msgstr "" +"OPTIONS_DEFINE=\tX11 GNOME\n" +"OPTIONS_DEFAULT=\tX11\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4686 +#, no-wrap +msgid "" +"X11_USES=\txorg\n" +"X11_USE=\txorg=xi,xextproto\n" +"GNOME_USE=\tgnome=gtk30\n" +"GNOME_IMPLIES=\tX11\n" +msgstr "" +"X11_USES=\txorg\n" +"X11_USE=\txorg=xi,xextproto\n" +"GNOME_USE=\tgnome=gtk30\n" +"GNOME_IMPLIES=\tX11\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4691 +#, no-wrap +msgid "`OPT_PREVENTS` and `OPT_PREVENTS_MSG`" +msgstr "`OPT_PREVENTS` и `OPT_PREVENTS_MSG`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4694 +msgid "Provides a way to add conflicts between options." +msgstr "Предоставляет способ добавления конфликтов между опциями." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4698 +msgid "" +"When _OPT_ is selected, all the options listed in `OPT_PREVENTS` must be un-" +"selected. If `OPT_PREVENTS_MSG` is set and a conflict is triggered, its " +"content will be shown explaining why they conflict. For example:" +msgstr "" +"Когда выбрана _OPT_, все опции, перечисленные в `OPT_PREVENTS`, должны быть " +"сняты. Если задано `OPT_PREVENTS_MSG` и возникает конфликт, его содержимое " +"будет показано с объяснением причины конфликта. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4704 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_PREVENTS=\tOPT2\n" +"OPT1_PREVENTS_MSG=\tOPT1 and OPT2 enable conflicting options\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_PREVENTS=\tOPT2\n" +"OPT1_PREVENTS_MSG=\tOPT1 and OPT2 enable conflicting options\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4707 +msgid "Is roughly equivalent to:" +msgstr "Примерно эквивалентно:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4717 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2} && ${PORT_OPTIONS:MOPT1}\n" +"BROKEN=\tOption OPT1 conflicts with OPT2 (select only one)\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2} && ${PORT_OPTIONS:MOPT1}\n" +"BROKEN=\tOption OPT1 conflicts with OPT2 (select only one)\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4720 +msgid "" +"The only difference is that the first one will write an error after running " +"`make config`, suggesting changing the selected options." +msgstr "" +"Единственное отличие заключается в том, что первый вариант выведет ошибку " +"после выполнения `make config`, предлагая изменить выбранные настройки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4722 +#, no-wrap +msgid "Simple Use of `OPT_PREVENTS`" +msgstr "Простое использование `OPT_PREVENTS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4728 +msgid "" +"This port has `X509` and `SCTP` options. Both options add patches, but the " +"patches conflict with each other, so they cannot be selected at the same " +"time." +msgstr "" +"Этот порт имеет опции `X509` и `SCTP`. Обе опции добавляют патчи, но патчи " +"конфликтуют друг с другом, поэтому их нельзя выбрать одновременно." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4732 +#, no-wrap +msgid "OPTIONS_DEFINE=\tX509 SCTP\n" +msgstr "OPTIONS_DEFINE=\tX509 SCTP\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4735 +#, no-wrap +msgid "" +"SCTP_PATCHFILES=\t${PORTNAME}-6.8p1-sctp-2573.patch.gz:-p1\n" +"SCTP_CONFIGURE_WITH=\tsctp\n" +msgstr "" +"SCTP_PATCHFILES=\t${PORTNAME}-6.8p1-sctp-2573.patch.gz:-p1\n" +"SCTP_CONFIGURE_WITH=\tsctp\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4740 +#, no-wrap +msgid "" +"X509_PATCH_SITES=\thttp://www.roumenpetrov.info/openssh/x509/:x509\n" +"X509_PATCHFILES=\t${PORTNAME}-7.0p1+x509-8.5.diff.gz:-p1:x509\n" +"X509_PREVENTS=\t\tSCTP\n" +"X509_PREVENTS_MSG=\tX509 and SCTP patches conflict\n" +msgstr "" +"X509_PATCH_SITES=\thttp://www.roumenpetrov.info/openssh/x509/:x509\n" +"X509_PATCHFILES=\t${PORTNAME}-7.0p1+x509-8.5.diff.gz:-p1:x509\n" +"X509_PREVENTS=\t\tSCTP\n" +"X509_PREVENTS_MSG=\tX509 and SCTP patches conflict\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4745 +#, no-wrap +msgid "`OPT_VARS` and `OPT_VARS_OFF`" +msgstr "`OPT_VARS` и `OPT_VARS_OFF`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4748 +msgid "Provides a generic way to set and append to variables." +msgstr "" +"Предоставляет универсальный способ установки и добавления значений " +"переменным." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4753 +msgid "" +"Before using `OPT_VARS` and `OPT_VARS_OFF`, see if there is already a more " +"specific helper available in crossref:makefiles[options-variables, Generic " +"Variables Replacement, `OPT_VARIABLE` and `OPT_VARIABLE_OFF`]." +msgstr "" +"Перед использованием `OPT_VARS` и `OPT_VARS_OFF` проверьте, доступен ли " +"более специфичный вспомогательный инструмент в crossref:makefiles[options-" +"variables, Универсальная замена переменных, `OPT_VARIABLE` и " +"`OPT_VARIABLE_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4758 +msgid "" +"When option _OPT_ is selected, and `OPT_VARS` defined, `_key_=_value_` and " +"`_key_+=_value_` pairs are evaluated from `OPT_VARS`. An `=` cause the " +"existing value of `KEY` to be overwritten, an `+=` appends to the value. " +"`OPT_VARS_OFF` works the same way, but when `OPT` is _not_ selected." +msgstr "" +"Когда выбрана опция _OPT_ и определены `OPT_VARS`, пары `_key_=_value_` и " +"`_key_+=_value_` обрабатываются из `OPT_VARS`. Оператор `=` приводит к " +"перезаписи существующего значения `KEY`, а `+=` добавляет к значению. " +"`OPT_VARS_OFF` работает аналогично, но когда `OPT` _не_ выбрана." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4766 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2 OPT3\n" +"OPT1_VARS=\talso_build+=bin1\n" +"OPT2_VARS=\talso_build+=bin2\n" +"OPT3_VARS=\tbin3_build=yes\n" +"OPT3_VARS_OFF=\tbin3_build=no\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2 OPT3\n" +"OPT1_VARS=\talso_build+=bin1\n" +"OPT2_VARS=\talso_build+=bin2\n" +"OPT3_VARS=\tbin3_build=yes\n" +"OPT3_VARS_OFF=\tbin3_build=no\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4768 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4777 +#, no-wrap +msgid "MAKE_ARGS=\tALSO_BUILD=\"${ALSO_BUILD}\" BIN3_BUILD=\"${BIN3_BUILD}\"\n" +msgstr "MAKE_ARGS=\tALSO_BUILD=\"${ALSO_BUILD}\" BIN3_BUILD=\"${BIN3_BUILD}\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4783 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"ALSO_BUILD+=\tbin1\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"ALSO_BUILD+=\tbin1\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4787 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"ALSO_BUILD+=\tbin2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"ALSO_BUILD+=\tbin2\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4793 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"BIN3_BUILD=\tyes\n" +".else\n" +"BIN3_BUILD=\tno\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"BIN3_BUILD=\tyes\n" +".else\n" +"BIN3_BUILD=\tno\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4798 +msgid "Values containing whitespace must be enclosed in quotes:" +msgstr "Значения, содержащие пробелы, должны быть заключены в кавычки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4802 +#, no-wrap +msgid "OPT_VARS=\tfoo=\"bar baz\"\n" +msgstr "OPT_VARS=\tfoo=\"bar baz\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4808 +msgid "" +"This is due to the way man:make[1] variable expansion deals with " +"whitespace. When `OPT_VARS= foo=bar baz` is expanded, the variable ends up " +"containing two strings, `foo=bar` and `baz`. But the submitter probably " +"intended there to be only one string, `foo=bar baz`. Quoting the value " +"prevents whitespace from being used as a delimiter." +msgstr "" +"Это связано с тем, как man:make[1] обрабатывает пробелы при раскрытии " +"переменных. Когда `OPT_VARS= foo=bar baz` раскрывается, переменная в итоге " +"содержит две строки: `foo=bar` и `baz`. Однако отправитель, вероятно, " +"предполагал, что должна быть только одна строка — `foo=bar baz`. Заключение " +"значения в кавычки предотвращает использование пробела в качестве " +"разделителя." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4811 +msgid "" +"Also, _do not_ add extra spaces after the `_var_=` sign and before the " +"value, it would also be split into two strings. _This will not work_:" +msgstr "" +"Также _не_ добавляйте лишние пробелы после знака `_var_=` и перед значением, " +"это также разобьёт строку на две части. _Это не сработает_:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4815 +#, no-wrap +msgid "OPT_VARS=\tfoo=\tbar\n" +msgstr "OPT_VARS=\tfoo=\tbar\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4820 +#, no-wrap +msgid "Dependencies, `OPT_DEPTYPE` and `OPT_DEPTYPE_OFF`" +msgstr "Зависимости, `OPT_DEPTYPE` и `OPT_DEPTYPE_OFF`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4823 +msgid "For any of these dependency types:" +msgstr "Для любого из этих типов зависимостей:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4825 +msgid "`PKG_DEPENDS`" +msgstr "`PKG_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4835 +msgid "" +"When option _OPT_ is selected, the value of `OPT_DEPTYPE`, if defined, is " +"appended to `DEPTYPE`. `OPT_DEPTYPE_OFF` works the same, but when `OPT` is " +"_not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_DEPTYPE`, если оно определено, " +"добавляется к `DEPTYPE`. `OPT_DEPTYPE_OFF` работает аналогично, но когда " +"_не_ выбрана `OPT`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4841 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_LIB_DEPENDS=\tliba.so:devel/a\n" +"OPT1_LIB_DEPENDS_OFF=\tlibb.so:devel/b\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_LIB_DEPENDS=\tliba.so:devel/a\n" +"OPT1_LIB_DEPENDS_OFF=\tlibb.so:devel/b\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4856 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"LIB_DEPENDS+=\tliba.so:devel/a\n" +".else\n" +"LIB_DEPENDS+=\tlibb.so:devel/b\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"LIB_DEPENDS+=\tliba.so:devel/a\n" +".else\n" +"LIB_DEPENDS+=\tlibb.so:devel/b\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4859 +#, no-wrap +msgid "Generic Variables Replacement, `OPT_VARIABLE` and `OPT_VARIABLE_OFF`" +msgstr "Универсальная замена переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4862 +msgid "For any of these variables:" +msgstr "Для любой из этих переменных:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4864 +msgid "`ALL_TARGET`" +msgstr "`ALL_TARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4865 +msgid "`BINARY_ALIAS`" +msgstr "`BINARY_ALIAS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4866 +msgid "`BROKEN`" +msgstr "`BROKEN`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4868 +msgid "`CFLAGS`" +msgstr "`CFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4869 +msgid "`CONFIGURE_ENV`" +msgstr "`CONFIGURE_ENV`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4870 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5109 +#, no-wrap +msgid "`CONFLICTS`" +msgstr "`CONFLICTS`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4871 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5104 +#, no-wrap +msgid "`CONFLICTS_BUILD`" +msgstr "`CONFLICTS_BUILD`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4872 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5099 +#, no-wrap +msgid "`CONFLICTS_INSTALL`" +msgstr "`CONFLICTS_INSTALL`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4873 +msgid "`CPPFLAGS`" +msgstr "`CPPFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4874 +msgid "`CXXFLAGS`" +msgstr "`CXXFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4875 +msgid "`DESKTOP_ENTRIES`" +msgstr "`DESKTOP_ENTRIES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4878 +msgid "`EXTRA_PATCHES`" +msgstr "`EXTRA_PATCHES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4890 +msgid "`IGNORE`" +msgstr "`IGNORE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4891 +msgid "`INFO`" +msgstr "`INFO`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4892 +msgid "`INSTALL_TARGET`" +msgstr "`INSTALL_TARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4893 +msgid "`LDFLAGS`" +msgstr "`LDFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4894 +msgid "`LIBS`" +msgstr "`LIBS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4895 +msgid "`MAKE_ARGS`" +msgstr "`MAKE_ARGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4896 +msgid "`MAKE_ENV`" +msgstr "`MAKE_ENV`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4899 +msgid "`PATCH_SITES`" +msgstr "`PATCH_SITES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4900 +msgid "`PLIST_DIRS`" +msgstr "`PLIST_DIRS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4901 +msgid "`PLIST_FILES`" +msgstr "`PLIST_FILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4902 +msgid "`PLIST_SUB`" +msgstr "`PLIST_SUB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4903 +msgid "`PORTDOCS`" +msgstr "`PORTDOCS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4904 +msgid "`PORTEXAMPLES`" +msgstr "`PORTEXAMPLES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4905 +msgid "`SUB_FILES`" +msgstr "`SUB_FILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4906 +msgid "`SUB_LIST`" +msgstr "`SUB_LIST`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4907 +msgid "`TEST_TARGET`" +msgstr "`TEST_TARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4912 +msgid "" +"When option _OPT_ is selected, the value of `OPT_ABOVEVARIABLE`, if defined, " +"is appended to `_ABOVEVARIABLE_`. `OPT_ABOVEVARIABLE_OFF` works the same " +"way, but when `OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_ABOVEVARIABLE`, если оно " +"определено, добавляется к `_ABOVEVARIABLE_`. `OPT_ABOVEVARIABLE_OFF` " +"работает аналогично, но когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4918 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\tgmake\n" +"OPT1_CFLAGS_OFF=\t-DTEST\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\tgmake\n" +"OPT1_CFLAGS_OFF=\t-DTEST\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4933 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USES+=\t\tgmake\n" +".else\n" +"CFLAGS+=\t-DTEST\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USES+=\t\tgmake\n" +".else\n" +"CFLAGS+=\t-DTEST\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4940 +msgid "" +"Some variables are not in this list, in particular `PKGNAMEPREFIX` and " +"`PKGNAMESUFFIX`. This is intentional. A port _must not_ change its name " +"when its option set changes." +msgstr "" +"Некоторые переменные отсутствуют в этом списке, в частности `PKGNAMEPREFIX` " +"и `PKGNAMESUFFIX`. Это сделано намеренно. Порт _не должен_ изменять своё имя " +"при изменении набора опций." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4945 +msgid "" +"Some of these variables, at least `ALL_TARGET`, `DISTFILES` and " +"`INSTALL_TARGET`, have their default values set _after_ the options are " +"processed." +msgstr "" +"Некоторые из этих переменных, по крайней мере `ALL_TARGET`, `DISTFILES` и " +"`INSTALL_TARGET`, получают свои значения по умолчанию _после_ обработки " +"опций." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4947 +msgid "With these lines in the [.filename]#Makefile#:" +msgstr "С такими строками в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4951 +#, no-wrap +msgid "ALL_TARGET=\tall\n" +msgstr "ALL_TARGET=\tall\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4953 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4962 +#, no-wrap +msgid "DOCS_ALL_TARGET=\tdoc\n" +msgstr "DOCS_ALL_TARGET=\tdoc\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4956 +msgid "" +"If the `DOCS` option is enabled, `ALL_TARGET` will have a final value of " +"`all doc`; if the option is disabled, it would have a value of `all`." +msgstr "" +"Если опция `DOCS` включена, `ALL_TARGET` будет иметь конечное значение `all " +"doc`; если опция отключена, значение будет `all`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4958 +msgid "With only the options helper line in the [.filename]#Makefile#:" +msgstr "Только со строкой помощника опций в [.filename]#Makefile#:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4965 +msgid "" +"If the `DOCS` option is enabled, `ALL_TARGET` will have a final value of " +"`doc`; if the option is disabled, it would have a value of `all`." +msgstr "" +"Если опция `DOCS` включена, `ALL_TARGET` будет иметь окончательное значение " +"`doc`; если опция отключена, значение будет `all`." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4968 +#, no-wrap +msgid "Additional Build Targets, `_target_-_OPT_-on` and `_target_-_OPT_-off`" +msgstr "Дополнительные цели сборки, `_target_-_OPT_-on` и `_target_-_OPT_-off`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4971 +msgid "" +"These [.filename]#Makefile# targets can accept optional extra build targets:" +msgstr "" +"Эти цели в [.filename]#Makefile# могут принимать дополнительные опциональные " +"цели сборки:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4973 +msgid "`pre-fetch`" +msgstr "`pre-fetch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4974 +msgid "`do-fetch`" +msgstr "`do-fetch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4975 +msgid "`post-fetch`" +msgstr "`post-fetch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4976 +msgid "`pre-extract`" +msgstr "`pre-extract`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4977 +msgid "`do-extract`" +msgstr "`do-extract`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4978 +msgid "`post-extract`" +msgstr "`post-extract`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4979 +msgid "`pre-patch`" +msgstr "`pre-patch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4980 +msgid "`do-patch`" +msgstr "`do-patch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4981 +msgid "`post-patch`" +msgstr "`post-patch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4982 +msgid "`pre-configure`" +msgstr "`pre-configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4983 +msgid "`do-configure`" +msgstr "`do-configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4984 +msgid "`post-configure`" +msgstr "`post-configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4985 +msgid "`pre-build`" +msgstr "`pre-build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4986 +msgid "`do-build`" +msgstr "`do-build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4987 +msgid "`post-build`" +msgstr "`post-build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4988 +msgid "`pre-install`" +msgstr "`pre-install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4989 +msgid "`do-install`" +msgstr "`do-install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4990 +msgid "`post-install`" +msgstr "`post-install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4991 +msgid "`post-stage`" +msgstr "`post-stage`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4992 +msgid "`pre-package`" +msgstr "`pre-package`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4993 +msgid "`do-package`" +msgstr "`do-package`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4994 +msgid "`post-package`" +msgstr "`post-package`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4998 +msgid "" +"When option _OPT_ is selected, the target `_TARGET_-_OPT_-on`, if defined, " +"is executed after `_TARGET_`. `_TARGET_-_OPT_-off` works the same way, but " +"when `OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, цель `_TARGET_-_OPT_-on`, если она определена, " +"выполняется после `_TARGET_`. `_TARGET_-_OPT_-off` работает аналогично, но " +"когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5005 +#, no-wrap +msgid "" +"post-patch-OPT1-on:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" +msgstr "" +"post-patch-OPT1-on:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5008 +#, no-wrap +msgid "" +"post-patch-OPT1-off:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" +msgstr "" +"post-patch-OPT1-off:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5024 +#, no-wrap +msgid "" +"post-patch:\n" +".if ${PORT_OPTIONS:MOPT1}\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" +".else\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" +".endif\n" +msgstr "" +"post-patch:\n" +".if ${PORT_OPTIONS:MOPT1}\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" +".else\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" +".endif\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5027 +#, no-wrap +msgid "Specifying the Working Directory" +msgstr "Указание рабочего каталога" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5032 +msgid "" +"Each port is extracted into a working directory, which must be writable. " +"The ports system defaults to having `DISTFILES` unpack in to a directory " +"called `${DISTNAME}`. In other words, if the [.filename]#Makefile# has:" +msgstr "" +"Каждый порт извлекается в рабочий каталог, который должен быть доступен для " +"записи. Система портов по умолчанию распаковывает `DISTFILES` в каталог с " +"именем `${DISTNAME}`. Другими словами, если в [.filename]#Makefile# указано:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5037 +#, no-wrap +msgid "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0\n" +msgstr "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5040 +msgid "" +"then the port's distribution files contain a top-level directory, " +"[.filename]#foo-1.0#, and the rest of the files are located under that " +"directory." +msgstr "" +"то файлы дистрибутива порта содержат каталог верхнего уровня " +"[.filename]#foo-1.0#, и остальные файлы находятся в этом каталоге." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5042 +msgid "A number of variables can be overridden if that is not the case." +msgstr "" +"Если нужно расположение файлов в других каталогах, можно переопределить ряд " +"переменных." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5044 +#, no-wrap +msgid "`WRKSRC`" +msgstr "`WRKSRC`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5048 +msgid "" +"The variable lists the name of the directory that is created when the " +"application's distfiles are extracted. If our previous example extracted " +"into a directory called [.filename]#foo# (and not [.filename]#foo-1.0#) " +"write:" +msgstr "" +"Переменная указывает имя каталога, который создается при распаковке " +"distfiles приложения. Чтобы в нашем предыдущем примере распаковка " +"происходила в каталог с именем [.filename]#foo# (а не [.filename]#foo-1.0#), " +"напишите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5052 +#, no-wrap +msgid "WRKSRC=\t${WRKDIR}/foo\n" +msgstr "WRKSRC=\t${WRKDIR}/foo\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5055 +msgid "or possibly" +msgstr "или можно" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5059 +#, no-wrap +msgid "WRKSRC=\t${WRKDIR}/${PORTNAME}\n" +msgstr "WRKSRC=\t${WRKDIR}/${PORTNAME}\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5062 +#, no-wrap +msgid "`WRKSRC_SUBDIR`" +msgstr "`WRKSRC_SUBDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5065 +msgid "" +"If the source files needed for the port are in a subdirectory of the " +"extracted distribution file, set `WRKSRC_SUBDIR` to that directory." +msgstr "" +"Если исходные файлы, необходимые для порта, находятся в подкаталоге " +"распакованного дистрибутива, присвойте `WRKSRC_SUBDIR` имя этого каталога." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5069 +#, no-wrap +msgid "WRKSRC_SUBDIR=\tsrc\n" +msgstr "WRKSRC_SUBDIR=\tsrc\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5072 +#, no-wrap +msgid "`NO_WRKSUBDIR`" +msgstr "`NO_WRKSUBDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5075 +msgid "" +"If the port does not extract in to a subdirectory at all, then set " +"`NO_WRKSUBDIR` to indicate that." +msgstr "" +"Если порт не распаковывается в подкаталог вообще, установите `NO_WRKSUBDIR`, " +"чтобы указать это." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5079 +#, no-wrap +msgid "NO_WRKSUBDIR=\tyes\n" +msgstr "NO_WRKSUBDIR=\tyes\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5084 +msgid "" +"Because `WRKDIR` is the only directory that is supposed to be writable " +"during the build, and is used to store many files recording the status of " +"the build, the port's extraction will be forced into a subdirectory." +msgstr "" +"Поскольку `WRKDIR` является единственной директорией, которая должна быть " +"доступна для записи во время сборки, и используется для хранения многих " +"файлов, фиксирующих состояние сборки, извлечение порта будет принудительно " +"выполнено в поддиректорию." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5087 +#, no-wrap +msgid "Conflict Handling" +msgstr "Обработка конфликтов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5090 +msgid "" +"There are three different variables to register a conflict between packages " +"and ports: `CONFLICTS`, `CONFLICTS_INSTALL` and `CONFLICTS_BUILD`." +msgstr "" +"Существует три различные переменные для регистрации конфликтов между " +"пакетами и портами: `CONFLICTS`, `CONFLICTS_INSTALL` и `CONFLICTS_BUILD`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5094 +msgid "" +"The conflict variables automatically set the variable `IGNORE`, which is " +"more fully documented in crossref:porting-dads[dads-noinstall,Marking a Port " +"Not Installable with `BROKEN`, `FORBIDDEN`, or `IGNORE`]." +msgstr "" +"Эти переменные автоматически устанавливают переменную `IGNORE`, более " +"подробно описанную в crossref:porting-dads[dads-noinstall,Пометка порта как " +"неустанавливаемого с помощью `BROKEN`, `FORBIDDEN` или `IGNORE`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5097 +msgid "" +"When removing one of several conflicting ports, it is advisable to retain " +"`CONFLICTS` in those other ports for a few months to cater for users who " +"only update once in a while." +msgstr "" +"При удалении одного из нескольких конфликтующих портов рекомендуется " +"оставлять `CONFLICTS` в тех других портах на несколько месяцев, чтобы учесть " +"пользователей, которые обновляются лишь время от времени." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5102 +msgid "" +"If the package cannot coexist with other packages (because of file " +"conflicts, runtime incompatibilities, etc.). `CONFLICTS_INSTALL` check is " +"done after the build stage and prior to the install stage." +msgstr "" +"Если пакет не может сосуществовать с другими пакетами (из-за конфликтов " +"файлов, несовместимости во время выполнения и т.д.). Проверка " +"`CONFLICTS_INSTALL` выполняется после этапа сборки и перед этапом установки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5107 +msgid "" +"If the port cannot be built when other specific ports are already " +"installed. Build conflicts are not recorded in the resulting package." +msgstr "" +"Если порт не может быть собран, когда уже установлены другие определённые " +"порты. Конфликты сборки не фиксируются в результирующем пакете." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5112 +msgid "" +"If the port cannot be built if a certain port is already installed and the " +"resulting package cannot coexist with the other package. `CONFLICTS` check " +"is done prior to the build stage and prior to the install stage." +msgstr "" +"Если порт не может быть собран, когда определённый порт уже установлен и " +"итоговый пакет не может сосуществовать с другим пакетом. Проверка " +"`CONFLICTS` выполняется до этапа сборки и до этапа установки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5116 +msgid "" +"Each space-separated item in the `CONFLICTS*` variable values is matched " +"against packages except the one being built, using shell globbing rules. " +"This allows listing all flavors of a port in a conflict list instead of " +"having to take pains to exclude the flavor being built from that list. For " +"example, if git-lite is installed, `CONFLICTS_INSTALL=git git-lite` would " +"allow to perform:" +msgstr "" +"Каждый элемент, разделённый пробелами, в значениях переменных `CONFLICTS*` " +"сопоставляется с пакетами(кроме того, который собирается) с использованием " +"правил раскрытия шаблонов имен файлов в оболочке shell. Это позволяет " +"перечислить все варианты порта в списке конфликтов вместо необходимости " +"исключать собираемый вариант из этого списка. Например, если установлен git-" +"lite, `CONFLICTS_INSTALL=git git-lite` позволит выполнить:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5119 +#, no-wrap +msgid "% make -C devel/git FLAVOR=lite all deinstall install\n" +msgstr "% make -C devel/git FLAVOR=lite all deinstall install\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5122 +msgid "" +"But the following command would report a conflict, since the package base " +"name installed is `git-lite`, while `git` would be built, but cannot be " +"installed in addition to `git-lite`:" +msgstr "" +"Но следующая команда сообщит о конфликте, так как установленное имя базового " +"пакета — `git-lite`, а `git` будет собран, но не может быть установлен " +"вместе с `git-lite`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5125 +#, no-wrap +msgid "% make -C devel/git FLAVOR=default all deinstall install\n" +msgstr "% make -C devel/git FLAVOR=default all deinstall install\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5128 +msgid "" +"Without that feature, the Makefile would need one " +"`_flavor__CONFLICTS_INSTALL` for each flavor, listing every other flavor." +msgstr "" +"Без этой функции Makefile потребовал бы по одному " +"`_flavor__CONFLICTS_INSTALL` для каждого варианта, перечисляя все остальные " +"варианты." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5131 +msgid "" +"The most common content of one of these variable is the package base of " +"another port. The package base is the package name without the appended " +"version, it can be obtained by running `make -V PKGBASE`." +msgstr "" +"Наиболее распространённым содержимым одной из этих переменных является база " +"пакета другого порта. База пакета — это имя пакета без указания версии, её " +"можно получить, выполнив команду `make -V PKGBASE`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5133 +#, no-wrap +msgid "Basic usage of `CONFLICTS*`" +msgstr "Простой пример использования `CONFLICTS*`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5139 +msgid "" +"package:dns/bind99[] cannot be installed if package:dns/bind910[] is present " +"because they install same files. First gather the package base to use:" +msgstr "" +"Пакет package:dns/bind99[] не может быть установлен, если присутствует пакет " +"package:dns/bind910[], так как они устанавливают одинаковые файлы. Сначала " +"соберите базовый пакет для использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5146 +#, no-wrap +msgid "" +"% make -C dns/bind99 -V PKGBASE\n" +"bind99\n" +"% make -C dns/bind910 -V PKGBASE\n" +"bind910\n" +msgstr "" +"% make -C dns/bind99 -V PKGBASE\n" +"bind99\n" +"% make -C dns/bind910 -V PKGBASE\n" +"bind910\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5149 +msgid "Then add to the [.filename]#Makefile# of package:dns/bind99[]:" +msgstr "Затем добавьте в [.filename]#Makefile# пакета package:dns/bind99[]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5153 +#, no-wrap +msgid "CONFLICTS_INSTALL=\tbind910\n" +msgstr "CONFLICTS_INSTALL=\tbind910\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5156 +msgid "And add to the [.filename]#Makefile# of package:dns/bind910[]:" +msgstr "И добавьте в [.filename]#Makefile# пакета package:dns/bind910[]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5160 +#, no-wrap +msgid "CONFLICTS_INSTALL=\tbind99\n" +msgstr "CONFLICTS_INSTALL=\tbind99\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5167 +msgid "" +"Sometimes, only certain versions of another port are incompatible. When " +"this is the case, use the full package name including the version. If " +"necessary, use shell globs like `*` and `?` so that all necessary versions " +"are matched." +msgstr "" +"Иногда только определенные версии другого порта несовместимы. В этом случае " +"используйте полное имя пакета, включая версию. При необходимости используйте " +"подстановочные символы шаблонов имён файлов оболочки, такие как `*` и `?`, " +"чтобы охватить все необходимые версии." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5169 +#, no-wrap +msgid "Using `CONFLICTS*` With Globs." +msgstr "Использование `CONFLICTS*` с шаблонами имён файлов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5174 +msgid "" +"From versions from 2.0 and up-to 2.4.1_2, package:deskutils/gnotime[] used " +"to install a bundled version of package:databases/qof[]." +msgstr "" +"В версиях с 2.0 по 2.4.1_2 пакет package:deskutils/gnotime[] устанавливал " +"встроенную версию пакета package:databases/qof[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5176 +msgid "" +"To reflect this past, the [.filename]#Makefile# of package:databases/qof[] " +"contains:" +msgstr "" +"Чтобы отразить это прошлое, [.filename]#Makefile# пакета package:databases/" +"qof[] содержит:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5182 +#, no-wrap +msgid "" +"CONFLICTS_INSTALL=\tgnotime-2.[0-3]* \\\n" +"\t\t\tgnotime-2.4.0* gnotime-2.4.1 \\\n" +"\t\t\tgnotime-2.4.1_[12]\n" +msgstr "" +"CONFLICTS_INSTALL=\tgnotime-2.[0-3]* \\\n" +"\t\t\tgnotime-2.4.0* gnotime-2.4.1 \\\n" +"\t\t\tgnotime-2.4.1_[12]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5185 +msgid "" +"The first entry match versions `2.0` through `2.3`, the second all the " +"revisions of `2.4.0`, the third the exact `2.4.1` version, and the last the " +"first and second revisions of the `2.4.1` version." +msgstr "" +"Первый элемент соответствует версиям `2.0`–`2.3`, второй — всем редакциям " +"`2.4.0`, третий — точно версии `2.4.1`, а последний — первой и второй " +"редакциям версии `2.4.1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5187 +msgid "" +"package:deskutils/gnotime[] does not have any conflicts line because its " +"current version does not conflict with anything else." +msgstr "" +"package:deskutils/gnotime[] не имеет строки конфликтов, потому что его " +"текущая версия не конфликтует ни с чем другим." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5191 +msgid "" +"The variable `DISABLE_CONFLICTS` may be temporarily set when making targets " +"that are not affected by conflicts. The variable is not to be set in port " +"Makefiles." +msgstr "" +"Переменная `DISABLE_CONFLICTS` может быть временно установлена при " +"выполнении целей, на которые не влияют конфликты. Эту переменную не следует " +"устанавливать в Makefiles портов." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5195 +#, no-wrap +msgid "% make -DDISABLE_CONFLICTS patch\n" +msgstr "% make -DDISABLE_CONFLICTS patch\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5198 +#, no-wrap +msgid "Installing Files" +msgstr "Установка файлов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5205 +msgid "" +"The `install` phase is very important to the end user because it adds files " +"to their system. All the additional commands run in the port " +"[.filename]#Makefile#'s `*-install` targets should be echoed to the screen. " +"_Do not_ silence these commands with `@` or `.SILENT`." +msgstr "" +"Фаза `install` очень важна для конечного пользователя, так как она добавляет " +"файлы в его систему. Все дополнительные команды, выполняемые в целях `*-" +"install` [.filename]#Makefile# порта, должны выводиться на экран. _Не_ " +"заглушайте эти команды с помощью `@` или `.SILENT`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5208 +#, no-wrap +msgid "`INSTALL_*` Macros" +msgstr "Макросы `INSTALL_*`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5215 +msgid "" +"Use the macros provided in [.filename]#bsd.port.mk# to ensure correct modes " +"of files in the port's `*-install` targets. Set ownership directly in " +"[.filename]#pkg-plist# with the corresponding entries, such as " +"`@(_owner_,_group_,)`, `@owner _owner_`, and `@group _group_`. These " +"operators work until overridden, or until the end of [.filename]#pkg-plist#, " +"so remember to reset them after they are no longer needed. The default " +"ownership is `root:wheel`. See crossref:plist[plist-keywords-base,Base " +"Keywords] for more information." +msgstr "" +"Используйте макросы, предоставленные в [.filename]#bsd.port.mk#, чтобы " +"обеспечить корректные режимы файлов в целях `*-install` порта. " +"Устанавливайте владельца напрямую в [.filename]#pkg-plist# в соответствующих " +"записях, таких как `@(_владелец_,_группа_,)`, `@owner _владелец_` и `@group " +"_группа_`. Эти операторы действуют до переопределения или до конца " +"[.filename]#pkg-plist#, поэтому не забудьте сбросить их, когда они больше не " +"нужны. Владелец по умолчанию — `root:wheel`. Дополнительную информацию см. в " +"crossref:plist[plist-keywords-base,Базовые Ключевые Слова]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5217 +msgid "`INSTALL_PROGRAM` is a command to install binary executables." +msgstr "`INSTALL_PROGRAM` — команда для установки бинарных исполняемых файлов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5218 +msgid "`INSTALL_SCRIPT` is a command to install executable scripts." +msgstr "`INSTALL_SCRIPT` — команда для установки исполняемых скриптов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5219 +msgid "" +"`INSTALL_LIB` is a command to install shared libraries (but not static " +"libraries)." +msgstr "" +"`INSTALL_LIB` — это команда для установки общих библиотек (но не статических " +"библиотек)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5220 +msgid "" +"`INSTALL_KLD` is a command to install kernel loadable modules. Some " +"architectures do not like having the modules stripped, so use this command " +"instead of `INSTALL_PROGRAM`." +msgstr "" +"`INSTALL_KLD` — это команда для установки загружаемых модулей ядра. " +"Некоторые архитектуры не поддерживают удаление символов из модулей, поэтому " +"используйте эту команду вместо `INSTALL_PROGRAM`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5221 +msgid "" +"`INSTALL_DATA` is a command to install sharable data, including static " +"libraries." +msgstr "" +"`INSTALL_DATA` — это команда для установки общих данных, включая статические " +"библиотеки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5222 +msgid "" +"`INSTALL_MAN` is a command to install manpages and other documentation (it " +"does not compress anything)." +msgstr "" +"`INSTALL_MAN` — это команда для установки man-страниц и другой документации " +"(она ничего не сжимает)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5224 +msgid "" +"These variables are set to the man:install[1] command with the appropriate " +"flags for each situation." +msgstr "" +"Эти переменные передаются команде man:install[1] с соответствующими флагами " +"для каждой ситуации." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5228 +msgid "" +"Do not use `INSTALL_LIB` to install static libraries, because stripping them " +"renders them useless. Use `INSTALL_DATA` instead." +msgstr "" +"Не используйте `INSTALL_LIB` для установки статических библиотек, так как их " +"удаление делает их бесполезными. Вместо этого используйте `INSTALL_DATA`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5231 +#, no-wrap +msgid "Stripping Binaries and Shared Libraries" +msgstr "Удаление символов из бинарных файлов и разделяемых библиотек" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5236 +msgid "" +"Installed binaries should be stripped. Do not strip binaries manually unless " +"absolutely required. The `INSTALL_PROGRAM` macro installs and strips a " +"binary at the same time. The `INSTALL_LIB` macro does the same thing to " +"shared libraries." +msgstr "" +"Установленные бинарные файлы должны быть очищены от отладочной информации. " +"Не очищайте бинарные файлы вручную, если это не является абсолютно " +"необходимым. Макрос `INSTALL_PROGRAM` устанавливает и очищает бинарный файл " +"одновременно. Макрос `INSTALL_LIB` делает то же самое с разделяемыми " +"библиотеками." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5239 +msgid "" +"When a file must be stripped, but neither `INSTALL_PROGRAM` nor " +"`INSTALL_LIB` macros are desirable, `${STRIP_CMD}` strips the program or " +"shared library. This is typically done within the `post-install` target. " +"For example:" +msgstr "" +"Когда файл необходимо очистить, но ни макросы `INSTALL_PROGRAM`, ни " +"`INSTALL_LIB` не подходят, `${STRIP_CMD}` очищает программу или разделяемую " +"библиотеку. Обычно это делается в цели `post-install`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5244 +#, no-wrap +msgid "" +"post-install:\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xdl\n" +msgstr "" +"post-install:\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xdl\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5247 +msgid "When multiple files need to be stripped:" +msgstr "Когда необходимо удалить отладочную информацию из нескольких файлов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5254 +#, no-wrap +msgid "" +"post-install:\n" +".for l in geometry media body track world\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}-${l}.so.0\n" +".endfor\n" +msgstr "" +"post-install:\n" +".for l in geometry media body track world\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}-${l}.so.0\n" +".endfor\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5259 +msgid "" +"Use man:file[1] on a file to determine if it has been stripped. Binaries " +"are reported by man:file[1] as `stripped`, or `not stripped`. Additionally, " +"man:strip[1] will detect programs that have already been stripped and exit " +"cleanly." +msgstr "" +"Используйте man:file[1] для файла, чтобы определить, был ли он подвергнут " +"удалению символов. man:file[1] сообщает, что бинарные файлы либо `stripped` " +"(удалены символы), либо `not stripped` (символы не удалены). Кроме того, " +"man:strip[1] обнаружит программы, которые уже были подвергнуты удалению " +"символов, и завершит работу без ошибок." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5263 +msgid "When `WITH_DEBUG` is defined, elf files _must not_ be stripped." +msgstr "Когда определён `WITH_DEBUG`, elf-файлы _не должны_ быть очищены." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5265 +msgid "" +"The variables (`STRIP_CMD`, `INSTALL_PROGRAM`, `INSTALL_LIB`, ...) and " +"crossref:uses[uses,`USES`] provided by the framework handle this " +"automatically." +msgstr "" +"Переменные (`STRIP_CMD`, `INSTALL_PROGRAM`, `INSTALL_LIB`, ...) и " +"crossref:uses[uses,`USES`], предоставляемые фреймворком, обрабатывают это " +"автоматически." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5267 +msgid "" +"Some software, add `-s` to their `LDFLAGS`, in this case, either remove `-s` " +"if `WITH_DEBUG` is set, or remove it unconditionally and use `STRIP_CMD` in " +"`post-install`." +msgstr "" +"Некоторое программное обеспечение добавляет `-s` к своим `LDFLAGS`. В этом " +"случае либо удалите `-s`, если установлен `WITH_DEBUG`, либо удалите его " +"безусловно и используйте `STRIP_CMD` в `post-install`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5270 +#, no-wrap +msgid "Installing a Whole Tree of Files" +msgstr "Установка целого дерева файлов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5275 +msgid "" +"Sometimes, a large number of files must be installed while preserving their " +"hierarchical organization. For example, copying over a whole directory tree " +"from `WRKSRC` to a target directory under `PREFIX`. Note that `PREFIX`, " +"`EXAMPLESDIR`, `DATADIR`, and other path variables must always be prepended " +"with `STAGEDIR` to respect staging (see crossref:special[staging,Staging])." +msgstr "" +"Иногда необходимо установить большое количество файлов с сохранением их " +"иерархической структуры. Например, копирование всего дерева каталогов из " +"`WRKSRC` в целевой каталог под `PREFIX`. Обратите внимание, что `PREFIX`, " +"`EXAMPLESDIR`, `DATADIR` и другие переменные путей всегда должны " +"предваряться `STAGEDIR` для соблюдения процедуры промежуточной установки " +"(см. crossref:special[staging,Промежуточная установка])." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5280 +msgid "" +"Two macros exist for this situation. The advantage of using these macros " +"instead of `cp` is that they guarantee proper file ownership and permissions " +"on target files. The first macro, `COPYTREE_BIN`, will set all the " +"installed files to be executable, thus being suitable for installing into " +"[.filename]#PREFIX/bin#. The second macro, `COPYTREE_SHARE`, does not set " +"executable permissions on files, and is therefore suitable for installing " +"files under [.filename]#PREFIX/share# target." +msgstr "" +"Для этой ситуации существуют два макроса. Преимущество использования этих " +"макросов вместо `cp` заключается в том, что они гарантируют целевым файлам " +"правильные значения владельца и разрешений. Первый макрос, `COPYTREE_BIN`, " +"устанавливает все установленные файлы как исполняемые, что делает его " +"подходящим для установки в [.filename]#PREFIX/bin#. Второй макрос, " +"`COPYTREE_SHARE#, не устанавливает исполняемые разрешения для файлов и, " +"следовательно, подходит для установки файлов в [.filename]#PREFIX/share#." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5286 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5289 +msgid "" +"This example will install the contents of the [.filename]#examples# " +"directory in the vendor distfile to the proper examples location of the port." +msgstr "" +"Этот пример установит содержимое каталога [.filename]#examples# из " +"дистрибутива вендора в соответствующее расположение примеров порта." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5295 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DATADIR}/summer\n" +"\t(cd ${WRKSRC}/temperatures && ${COPYTREE_SHARE} \"June July August\" ${STAGEDIR}${DATADIR}/summer)\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DATADIR}/summer\n" +"\t(cd ${WRKSRC}/temperatures && ${COPYTREE_SHARE} \"June July August\" ${STAGEDIR}${DATADIR}/summer)\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5298 +msgid "" +"And this example will install the data of summer months to the " +"[.filename]#summer# subdirectory of a [.filename]#DATADIR#." +msgstr "" +"И этот пример установит данные летних месяцев в подкаталог " +"[.filename]#summer# каталога [.filename]#DATADIR#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5301 +msgid "" +"Additional `find` arguments can be passed via the third argument to " +"`COPYTREE_*` macros. For example, to install all files from the first " +"example except Makefiles, one can use these commands." +msgstr "" +"Дополнительные аргументы `find` могут быть переданы через третий аргумент " +"макросов `COPYTREE_*`. Например, чтобы установить все файлы из первого " +"примера, кроме Makefiles, можно использовать следующие команды." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5308 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && \\\n" +"\t${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} \"! -name Makefile\")\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && \\\n" +"\t${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} \"! -name Makefile\")\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5314 +msgid "" +"These macros do not add the installed files to [.filename]#pkg-plist#. They " +"must be added manually. For optional documentation (`PORTDOCS`, see " +"crossref:makefiles[install-documentation, Install Additional Documentation]) " +"and examples (`PORTEXAMPLES`), the `%%PORTDOCS%%` or `%%PORTEXAMPLES%%` " +"prefixes must be prepended in [.filename]#pkg-plist#." +msgstr "" +"Эти макросы не добавляют установленные файлы в [.filename]#pkg-plist#. Их " +"необходимо добавлять вручную. Для дополнительной документации (`PORTDOCS`, " +"см. crossref:makefiles[install-documentation, Установка дополнительной " +"документации]) и примеров (`PORTEXAMPLES`), префиксы `%%PORTDOCS%%` или `%" +"%PORTEXAMPLES%%` должны быть добавлены в [.filename]#pkg-plist#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5316 +#, no-wrap +msgid "Install Additional Documentation" +msgstr "Установка дополнительной документации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5320 +msgid "" +"If the software has some documentation other than the standard man and info " +"pages that is useful for the user, install it under `DOCSDIR`. This can be " +"done, like the previous item, in the `post-install` target." +msgstr "" +"Если у программного обеспечения есть документация, помимо стандартных " +"страниц man и info, которая может быть полезна пользователю, установите её в " +"`DOCSDIR`. Это можно сделать, как и в предыдущем пункте, в цели `post-" +"install`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5325 +msgid "" +"Create a new directory for the port. The directory name is `DOCSDIR`. This " +"usually equals `PORTNAME`. However, if the user might want different " +"versions of the port to be installed at the same time, the whole `PKGNAME` " +"can be used." +msgstr "" +"Создайте новый каталог для порта. Имя каталога — `DOCSDIR`. Обычно оно равно " +"`PORTNAME`. Однако, если пользователю может потребоваться установка разных " +"версий порта одновременно, можно использовать полное имя `PKGNAME`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5328 +msgid "" +"Since only the files listed in [.filename]#pkg-plist# are installed, it is " +"safe to always install documentation to `STAGEDIR` (see " +"crossref:special[staging,Staging]). Hence `.if` blocks are only needed when " +"the installed files are large enough to cause significant I/O overhead." +msgstr "" +"Поскольку устанавливаются только файлы, перечисленные в [.filename]#pkg-" +"plist#, можно безопасно всегда устанавливать документацию в `STAGEDIR` (см. " +"crossref:special[staging,Staging]). Поэтому блоки `.if` требуются только в " +"тех случаях, когда устанавливаемые файлы достаточно велики, чтобы вызвать " +"значительные накладные расходы на ввод-вывод." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5334 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DOCSDIR}\n" +"\t${INSTALL_DATA} ${WRKSRC}/docs/xvdocs.ps ${STAGEDIR}${DOCSDIR}\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DOCSDIR}\n" +"\t${INSTALL_DATA} ${WRKSRC}/docs/xvdocs.ps ${STAGEDIR}${DOCSDIR}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5338 +msgid "" +"On the other hand, if there is a DOCS option in the port, install the " +"documentation in a `post-install-DOCS-on` target. These targets are " +"described in crossref:makefiles[options-targets, Additional Build Targets, " +"`_target_-_OPT_-on` and `_target_-_OPT_-off`]." +msgstr "" +"С другой стороны, если в порте есть опция DOCS, установите документацию в " +"цели `post-install-DOCS-on`. Эти цели описаны в crossref:makefiles[options-" +"targets, Дополнительные цели сборки, `_target_-_OPT_-on` и `_target_-_OPT_-" +"off`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5340 +msgid "" +"Here are some handy variables and how they are expanded by default when used " +"in the [.filename]#Makefile#:" +msgstr "" +"Вот несколько полезных переменных и их стандартное раскрытие при " +"использовании в [.filename]#Makefile#:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5342 +msgid "`DATADIR` gets expanded to [.filename]#PREFIX/share/PORTNAME#." +msgstr "`DATADIR` раскрывается в [.filename]#PREFIX/share/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5343 +msgid "`DATADIR_REL` gets expanded to [.filename]#share/PORTNAME#." +msgstr "`DATADIR_REL` раскрывается в [.filename]#share/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5344 +msgid "`DOCSDIR` gets expanded to [.filename]#PREFIX/share/doc/PORTNAME#." +msgstr "`DOCSDIR` раскрывается в [.filename]#PREFIX/share/doc/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5345 +msgid "`DOCSDIR_REL` gets expanded to [.filename]#share/doc/PORTNAME#." +msgstr "`DOCSDIR_REL` раскрывается в [.filename]#share/doc/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5346 +msgid "" +"`EXAMPLESDIR` gets expanded to [.filename]#PREFIX/share/examples/PORTNAME#." +msgstr "" +"`EXAMPLESDIR` раскрывается в [.filename]#PREFIX/share/examples/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5347 +msgid "" +"`EXAMPLESDIR_REL` gets expanded to [.filename]#share/examples/PORTNAME#." +msgstr "`EXAMPLESDIR_REL` раскрывается в [.filename]#share/examples/PORTNAME#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5353 +msgid "" +"The `DOCS` option only controls additional documentation installed in " +"`DOCSDIR`. It does not apply to standard man pages and info pages. Things " +"installed in `EXAMPLESDIR` are controlled by the `EXAMPLES` option." +msgstr "" +"Опция `DOCS` управляет только дополнительной документацией, устанавливаемой " +"в `DOCSDIR`. Она не применяется к стандартным man-страницам и info-" +"страницам. Содержимое, устанавливаемое в `EXAMPLESDIR`, контролируется " +"опцией `EXAMPLES`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5359 +msgid "" +"These variables are exported to `PLIST_SUB`. Their values will appear there " +"as pathnames relative to [.filename]#PREFIX# if possible. That is, " +"[.filename]#share/doc/PORTNAME# will be substituted for `%%DOCSDIR%%` in the " +"packing list by default, and so on. (See more on [.filename]#pkg-plist# " +"substitution crossref:plist[plist-sub,here].)" +msgstr "" +"Эти переменные экспортируются в `PLIST_SUB`. Их значения будут представлены " +"там в виде путей относительно [.filename]#PREFIX#, если это возможно. То " +"есть, [.filename]#share/doc/PORTNAME# будет заменено на `%%DOCSDIR%%` в " +"списке упаковки по умолчанию и так далее. (Подробнее о подстановках в " +"[.filename]#pkg-plist# см. crossref:plist[plist-sub,здесь].)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5361 +msgid "" +"All conditionally installed documentation files and directories are included " +"in [.filename]#pkg-plist# with the `%%PORTDOCS%%` prefix, for example:" +msgstr "" +"Все условно устанавливаемые файлы и каталоги документации включаются в " +"[.filename]#pkg-plist# с префиксом `%%PORTDOCS%%`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5366 +#, no-wrap +msgid "" +"%%PORTDOCS%%%%DOCSDIR%%/AUTHORS\n" +"%%PORTDOCS%%%%DOCSDIR%%/CONTACT\n" +msgstr "" +"%%PORTDOCS%%%%DOCSDIR%%/AUTHORS\n" +"%%PORTDOCS%%%%DOCSDIR%%/CONTACT\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5375 +msgid "" +"As an alternative to enumerating the documentation files in [.filename]#pkg-" +"plist#, a port can set the variable `PORTDOCS` to a list of file names and " +"shell glob patterns to add to the final packing list. The names will be " +"relative to `DOCSDIR`. Therefore, a port that utilizes `PORTDOCS`, and uses " +"a non-default location for its documentation, must set `DOCSDIR` " +"accordingly. If a directory is listed in `PORTDOCS` or matched by a glob " +"pattern from this variable, the entire subtree of contained files and " +"directories will be registered in the final packing list. If the `DOCS` " +"option has been unset then files and directories listed in `PORTDOCS` would " +"not be installed or added to port packing list. Installing the " +"documentation at `PORTDOCS` as shown above remains up to the port itself. A " +"typical example of utilizing `PORTDOCS`:" +msgstr "" +"В качестве альтернативы перечислению файлов документации в [.filename]#pkg-" +"plist#, порт может установить переменную `PORTDOCS` в список имён файлов и " +"шаблонов имен файлов shell для добавления в итоговый список упаковки. Имена " +"будут относительны к `DOCSDIR`. Поэтому порт, использующий `PORTDOCS` и " +"нестандартное расположение документации, должен соответствующим образом " +"установить `DOCSDIR`. Если в `PORTDOCS` указан каталог или он соответствует " +"шаблону из этой переменной, всё поддерево содержащихся файлов и каталогов " +"будет зарегистрировано в итоговом списке упаковки. Если опция `DOCS` " +"отключена, файлы и каталоги, перечисленные в `PORTDOCS`, не будут " +"установлены или добавлены в список упаковки порта. Установка документации в " +"`PORTDOCS`, как показано выше, остаётся на усмотрение самого порта. Типичный " +"пример использования `PORTDOCS`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5379 +#, no-wrap +msgid "PORTDOCS=\tREADME.* ChangeLog docs/*\n" +msgstr "PORTDOCS=\tREADME.* ChangeLog docs/*\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5384 +msgid "" +"The equivalents of `PORTDOCS` for files installed under `DATADIR` and " +"`EXAMPLESDIR` are `PORTDATA` and `PORTEXAMPLES`, respectively." +msgstr "" +"Эквивалентами `PORTDOCS` для файлов, установленных в `DATADIR` и " +"`EXAMPLESDIR`, являются `PORTDATA` и `PORTEXAMPLES` соответственно." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5388 +msgid "" +"The contents of [.filename]#pkg-message# are displayed upon installation. " +"See crossref:pkg-files[porting-message,the section on using [.filename]#pkg-" +"message#] for details. [.filename]#pkg-message# does not need to be added " +"to [.filename]#pkg-plist#." +msgstr "" +"Содержимое файла [.filename]#pkg-message# отображается при установке. " +"Подробности см. в разделе crossref:pkg-files[porting-message,использование " +"файла [.filename]#pkg-message#]. Файл [.filename]#pkg-message# не нужно " +"добавлять в [.filename]#pkg-plist#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5391 +#, no-wrap +msgid "Subdirectories Under `PREFIX`" +msgstr "Подкаталоги в `PREFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5400 +msgid "" +"Try to let the port put things in the right subdirectories of `PREFIX`. " +"Some ports lump everything and put it in the subdirectory with the port's " +"name, which is incorrect. Also, many ports put everything except binaries, " +"header files and manual pages in a subdirectory of [.filename]#lib#, which " +"does not work well with the BSD paradigm. Many of the files must be moved " +"to one of these directories: [.filename]#etc# (setup/configuration files), " +"[.filename]#libexec# (executables started internally), [.filename]#sbin# " +"(executables for superusers/managers), [.filename]#info# (documentation for " +"info browser) or [.filename]#share# (architecture independent files). See " +"man:hier[7] for details; the rules governing [.filename]#/usr# pretty much " +"apply to [.filename]#/usr/local# too. The exception are ports dealing with " +"USENET \"news\". They may use [.filename]#PREFIX/news# as a destination for " +"their files." +msgstr "" +"Попробуйте сделать так, чтобы порт размещал файлы в правильных подкаталогах " +"`PREFIX`. Некоторые порты собирают всё в кучу и помещают в подкаталог с " +"именем порта, что неверно. Также многие порты размещают все файлы, кроме " +"бинарников, заголовочных файлов и страниц руководства, в подкаталоге " +"[.filename]#lib#, что плохо согласуется с парадигмой BSD. Многие из этих " +"файлов должны быть перемещены в один из следующих каталогов: " +"[.filename]#etc# (файлы настройки/конфигурации), [.filename]#libexec# " +"(исполняемые файлы для внутреннего использования), [.filename]#sbin# " +"(исполняемые файлы для суперпользователей/администраторов), " +"[.filename]#info# (документация для браузера info) или [.filename]#share# " +"(архитектурно-независимые файлы). Подробности см. в man:hier[7]; правила, " +"действующие для [.filename]#/usr#, в основном применимы и к [.filename]#/usr/" +"local#. Исключение составляют порты, связанные с USENET \"news\". Они могут " +"использовать [.filename]#PREFIX/news# в качестве места назначения для своих " +"файлов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5402 +#, no-wrap +msgid "Use `BINARY_ALIAS` to Rename Commands Instead of Patching the Build" +msgstr "Используйте `BINARY_ALIAS` для переименования команд вместо исправления сборки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5405 +msgid "" +"When `BINARY_ALIAS` is defined it will create symlinks of the given commands " +"in a directory which will be prepended to `PATH`." +msgstr "" +"Когда определена переменная `BINARY_ALIAS`, будут созданы символьные ссылки " +"на указанные команды в каталоге, который будет добавлен в начало переменной " +"`PATH`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5407 +msgid "" +"Use it to substitute hardcoded commands the build phase relies on without " +"having to patch any build files." +msgstr "" +"Используйте это для замены жёстко заданных команд, от которых зависит этап " +"сборки, без необходимости исправлять какие-либо файлы сборки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5409 +#, no-wrap +msgid "Using `BINARY_ALIAS` to Make `gsed` Available as `sed`" +msgstr "Использование `BINARY_ALIAS` для предоставления `gsed` в качестве `sed`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5414 +msgid "" +"Some ports expect `sed` to behave like GNU sed and use features that " +"man:sed[1] does not provide. GNU sed is available from package:textproc/" +"gsed[] on FreeBSD." +msgstr "" +"Некоторые порты ожидают, что `sed` будет вести себя как GNU sed и используют " +"возможности, которые man:sed[1] не предоставляет. GNU sed доступен в пакете " +"package:textproc/gsed[] на FreeBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5416 +msgid "" +"Use `BINARY_ALIAS` to substitute `sed` with `gsed` for the duration of the " +"build:" +msgstr "Используйте `BINARY_ALIAS` для замены `sed` на `gsed` на время сборки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5422 +#, no-wrap +msgid "" +"BUILD_DEPENDS=\tgsed:textproc/gsed\n" +"...\n" +"BINARY_ALIAS=\tsed=gsed\n" +msgstr "" +"BUILD_DEPENDS=\tgsed:textproc/gsed\n" +"...\n" +"BINARY_ALIAS=\tsed=gsed\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5427 +#, no-wrap +msgid "Using `BINARY_ALIAS` to Provide Aliases for Hardcoded `python3` Commands" +msgstr "Использование `BINARY_ALIAS` для создания псевдонимов жестко заданных команд `python3`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5432 +msgid "" +"A port that has a hardcoded reference to `python3` in its build scripts will " +"need to have it available in `PATH` at build time. Use `BINARY_ALIAS` to " +"create an alias that points to the right Python 3 binary:" +msgstr "" +"Порт, в котором есть жёсткая ссылка на `python3` в скриптах сборки, требует " +"его наличия в `PATH` во время сборки. Используйте `BINARY_ALIAS` для " +"создания псевдонима, указывающего на нужный бинарный файл Python 3:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5438 +#, no-wrap +msgid "" +"USES=\tpython:3.4+,build\n" +"...\n" +"BINARY_ALIAS=\tpython3=${PYTHON_CMD}\n" +msgstr "" +"USES=\tpython:3.4+,build\n" +"...\n" +"BINARY_ALIAS=\tpython3=${PYTHON_CMD}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5441 +msgid "" +"See crossref:special[using-python,Using Python] for more information about " +"`USES=python`." +msgstr "" +"См. crossref:special[using-python,Использование Python] для получения " +"дополнительной информации о `USES=python`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5448 +msgid "" +"Binary aliases are created after the dependencies provided via " +"`BUILD_DEPENDS` and `LIB_DEPENDS` are processed and before the `configure` " +"target. This leads to various limitations. For example, programs installed " +"via `TEST_DEPENDS` cannot be used to create a binary alias as test " +"dependencies specified this way are processed after binary aliases are " +"created." +msgstr "" +"Бинарные псевдонимы создаются после обработки зависимостей, указанных через " +"`BUILD_DEPENDS` и `LIB_DEPENDS`, но до цели `configure`. Это приводит к " +"различным ограничениям. Например, программы, установленные через " +"`TEST_DEPENDS`, нельзя использовать для создания бинарного псевдонима, так " +"как тестовые зависимости, указанные таким образом, обрабатываются после " +"создания бинарных псевдонимов." diff --git a/documentation/content/ru/books/porters-handbook/new-port/_index.adoc b/documentation/content/ru/books/porters-handbook/new-port/_index.adoc --- a/documentation/content/ru/books/porters-handbook/new-port/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/new-port/_index.adoc @@ -1,15 +1,17 @@ --- -title: Глава 2. Как самому сделать новый порт -prev: books/porters-handbook/porting-why +description: 'Как сделать новый порт' next: books/porters-handbook/quick-porting +params: + path: /books/porters-handbook/new-port/ +prev: books/porters-handbook/porting-why showBookMenu: true +tags: ["new port", "upgrading", "guidelines", "ports"] +title: 'Глава 2. Как самому сделать новый порт' weight: 2 -params: - path: "/books/porters-handbook/new-port/" --- [[own-port]] -= Making a New Port += Как самому сделать новый порт :doctype: book :toc: macro :toclevels: 1 @@ -57,4 +59,4 @@ Только часть переменных (`_VAR_`), которые могут быть переопределены, описаны в этом документе. Большинство (если не все) описаны в начале файла [.filename]#/usr/ports/Mk/bsd.port.mk#; остальные, скорее всего, тоже там описаны. Заметьте, что в этом файле используется нестандартная настройка шага табуляции: Emacs и Vim должны распознать это при загрузке файла. Как man:vi[1], так и man:ex[1] могут быть настроены на использование правильного значения выдачей команды `:set tabstop=4` после загрузки файла. ==== -Ищете, с чего бы начать попроще? Посмотрите на http://wiki.freebsd.org/WantedPorts[перечень запрошенных портов], есть ли там такие, над которыми вы можете работать. +Ищете, с чего бы начать попроще? Посмотрите на https://wiki.freebsd.org/WantedPorts[перечень запрошенных портов], есть ли там такие, над которыми вы можете работать. diff --git a/documentation/content/ru/books/porters-handbook/new-port/_index.po b/documentation/content/ru/books/porters-handbook/new-port/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/new-port/_index.po @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-12 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:1 +#, no-wrap +msgid "How to make a new FreeBSD Port" +msgstr "Как сделать новый порт" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:1 +#, no-wrap +msgid "Chapter 2. Making a New Port" +msgstr "Глава 2. Как самому сделать новый порт" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:14 +#, no-wrap +msgid "Making a New Port" +msgstr "Как самому сделать новый порт" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:52 +msgid "Interested in making a new port, or upgrading existing ports? Great!" +msgstr "" +"Итак, вы интересуетесь, как создать собственный порт или обновить " +"существующий? Великолепно!" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:55 +msgid "" +"What follows are some guidelines for creating a new port for FreeBSD. To " +"upgrade an existing port, read this, then read crossref:upgrading[port-" +"upgrading,Upgrading a Port]." +msgstr "" +"Ниже находятся некоторые указания по созданию нового порта для FreeBSD. Если " +"вы хотите обновить существующий порт, вы должны прочесть их, а затем " +"crossref:upgrading[port-upgrading, Обновление отдельного порта]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:59 +msgid "" +"When this document is not sufficiently detailed, refer to [.filename]#/usr/" +"ports/Mk/bsd.port.mk#, which is included by all port " +"[.filename]#Makefiles#. Even those not hacking [.filename]##Makefile##s " +"daily can gain much knowledge from it. Additionally, specific questions can " +"be sent to the {freebsd-ports}." +msgstr "" +"Если этот документ недостаточно подробен, вы должны обратиться к файлу " +"[.filename]#/usr/ports/Mk/bsd.port.mk#, который включается в make-файл " +"каждого порта. Он хорошо прокомментирован, и даже если вы не занимаетесь " +"хакингом make-файлов каждодневно, из него вы сможете узнать много нового. " +"Кроме того, конкретные вопросы можно задать, послав письмо на адрес {freebsd-" +"ports}." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:66 +msgid "" +"Only a fraction of the variables (`_VAR_`) that can be overridden are " +"mentioned in this document. Most (if not all) are documented at the start " +"of [.filename]#/usr/ports/Mk/bsd.port.mk#; the others probably ought to be. " +"Note that this file uses a non-standard tab setting: Emacs and Vim will " +"recognize the setting on loading the file. Both man:vi[1] and man:ex[1] can " +"be set to use the correct value by typing `:set tabstop=4` once the file has " +"been loaded." +msgstr "" +"Только часть переменных (`_VAR_`), которые могут быть переопределены, " +"описаны в этом документе. Большинство (если не все) описаны в начале файла " +"[.filename]#/usr/ports/Mk/bsd.port.mk#; остальные, скорее всего, тоже там " +"описаны. Заметьте, что в этом файле используется нестандартная настройка " +"шага табуляции: Emacs и Vim должны распознать это при загрузке файла. Как " +"man:vi[1], так и man:ex[1] могут быть настроены на использование правильного " +"значения выдачей команды `:set tabstop=4` после загрузки файла." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/new-port/_index.adoc:68 +msgid "" +"Looking for something easy to start with? Take a look at the https://" +"wiki.freebsd.org/WantedPorts[list of requested ports] and see if you can " +"work on one (or more)." +msgstr "" +"Ищете, с чего бы начать попроще? Посмотрите на https://wiki.freebsd.org/" +"WantedPorts[перечень запрошенных портов], есть ли там такие, над которыми вы " +"можете работать." diff --git a/documentation/content/ru/books/porters-handbook/order/_index.adoc b/documentation/content/ru/books/porters-handbook/order/_index.adoc new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/order/_index.adoc @@ -0,0 +1,260 @@ +--- +description: 'Порядок переменных в Makefile портов FreeBSD' +next: books/porters-handbook/keeping-up +params: + path: /books/porters-handbook/order/ +prev: books/porters-handbook/porting-samplem +showBookMenu: true +tags: ["order", "PORTNAME", "PATCHFILES", "MAINTAINER", "LICENSE", "dependencies", "USES"] +title: 'Глава 15. Порядок переменных в Makefile портов' +weight: 15 +--- + +[[porting-order]] += Порядок переменных в Makefile портов +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 15 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/porters-handbook/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../../images/{images-path} +endif::[] +ifndef::book[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +toc::[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +toc::[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +Первые разделы [.filename]#Makefile# всегда должны идти в одном и том же порядке. Это стандартное правило позволяет любому легко читать любой порт, не тратя время на поиск переменных в произвольном порядке. + +[NOTE] +==== +Описаные здесь разделы и переменные являются обязательными в обычном порте. В подчиненном порте многие разделы и переменные могут быть пропущены. +==== + +[IMPORTANT] +==== +Каждый следующий блок должен быть отделен от предыдущего одним пустым пробелом. + +В следующих блоках устанавливайте только переменные, которые требуются для порта. Определяйте эти переменные в порядке, указанном здесь. +==== + +[[porting-order-portname]] +== Блок `PORTNAME` + +Этот блок является наиболее важным. Он определяет имя порта, версию, расположение файла дистрибутива и категорию. Переменные должны быть в следующем порядке: + +* crossref:makefiles[makefile-portname,`PORTNAME`] * crossref:makefiles[makefile-versions,`PORTVERSION`][crossref:order[portversion-footnote, 1]] +* crossref:makefiles[makefile-versions,`DISTVERSIONPREFIX`] * crossref:makefiles[makefile-versions,`DISTVERSION`][crossref:order[portversion-footnote, 1]] +* crossref:makefiles[makefile-versions,`DISTVERSIONSUFFIX`] +* crossref:makefiles[makefile-portrevision,`PORTREVISION`] +* crossref:makefiles[makefile-portepoch,`PORTEPOCH`] +* crossref:makefiles[makefile-categories,`CATEGORIES`] +* crossref:makefiles[makefile-master_sites,`MASTER_SITES`] +* crossref:makefiles[makefile-master_sites-shorthand,`MASTER_SITE_SUBDIR`] (устарело) +* crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`] +* crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMESUFFIX`] +* crossref:makefiles[makefile-distname,`DISTNAME`] +* crossref:makefiles[makefile-extract_sufx,`EXTRACT_SUFX`] +* crossref:makefiles[makefile-distfiles-definition,`DISTFILES`] +* crossref:makefiles[makefile-dist_subdir,`DIST_SUBDIR`] +* crossref:makefiles[makefile-extract_only,`EXTRACT_ONLY`] + +[[portversion-footnote]] +[IMPORTANT] +==== +Может быть использован только один из параметров — PORTVERSION или DISTVERSION. +==== + +[[porting-order-patch]] +== Блок `PATCHFILES` + +Этот блок является необязательным. Переменные: + +* crossref:makefiles[porting-patchfiles,`PATCH_SITES`] +* crossref:makefiles[porting-patchfiles,`PATCHFILES`] +* crossref:makefiles[porting-patchfiles,`PATCH_DIST_STRIP`] + +[[porting-order-maintainer]] +== Блок `MAINTAINER` + +Этот блок является обязательным. Переменные следующие: + +* crossref:makefiles[makefile-maintainer,`MAINTAINER`] +* crossref:makefiles[makefile-comment,`COMMENT`] +* crossref:makefiles[makefile-www,`WWW`] + +[[porting-order-license]] +== Блок `LICENSE` + +Этот блок является необязательным, хотя настоятельно рекомендуется. Переменные: + +* crossref:makefiles[licenses-license,`LICENSE`] +* crossref:makefiles[licenses-license_comb,`LICENSE_COMB`] +* crossref:makefiles[licenses-license_groups,`LICENSE_GROUPS`] или `LICENSE_GROUPS_NAME` +* crossref:makefiles[licenses-license_name,`LICENSE_NAME`] или `LICENSE_NAME_NAME` +* crossref:makefiles[licenses-license_text,`LICENSE_TEXT`] или `LICENSE_TEXT_NAME` +* crossref:makefiles[licenses-license_file,`LICENSE_FILE`] или `LICENSE_FILE_NAME` +* crossref:makefiles[licenses-license_perms,`LICENSE_PERMS`] или `LICENSE_PERMS_NAME_` +* crossref:makefiles[licenses-license_distfiles,`LICENSE_DISTFILES`] или `LICENSE_DISTFILES_NAME` + +Если имеется несколько лицензий, отсортируйте различные переменные LICENSE_VAR_NAME по названию лицензии. + +[[porting-order-broken]] +== Общие сообщения `BROKEN`/`IGNORE`/`DEPRECATED` + +Этот блок необязателен. Переменные: + +* crossref:porting-dads[dads-deprecated,`DEPRECATED`] +* crossref:porting-dads[dads-deprecated,`EXPIRATION_DATE`] +* crossref:porting-dads[dads-noinstall,`FORBIDDEN`] +* crossref:porting-dads[dads-noinstall,`BROKEN`] +* crossref:porting-dads[dads-noinstall,`BROKEN_*`] +* crossref:porting-dads[dads-noinstall,`IGNORE`] +* crossref:porting-dads[dads-noinstall,`IGNORE_*`] +* crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS`] +* crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS_REASON*`] +* crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS`] +* crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS_REASON*`] + +[NOTE] +==== +`BROKEN_*` и `IGNORE_*` могут быть любыми общими переменными, например, `IGNORE_amd64`, `BROKEN_FreeBSD_10` и т.д. За исключением переменных, которые зависят от crossref:uses[uses,`USES`], их следует размещать в crossref:order[porting-order-uses, `USES` и `USE_x`]. Например, `IGNORE_WITH_PHP` работает только если установлен crossref:uses[uses-php,`php`], а `BROKEN_SSL` — только если установлен crossref:uses[uses-ssl,`ssl`]. + +Если порт помечен как BROKEN при выполнении определённых условий, и эти условия можно проверить только после включения [.filename]#bsd.port.options.mk# или [.filename]#bsd.port.pre.mk#, то такие переменные должны быть установлены позже, в crossref:order[porting-order-rest, Остальные Переменные]. +==== + +[[porting-order-depends]] +== Блок зависимостей + +Этот блок необязателен. Переменные: + +* crossref:makefiles[makefile-fetch_depends,`FETCH_DEPENDS`] +* crossref:makefiles[makefile-extract_depends,`EXTRACT_DEPENDS`] +* crossref:makefiles[makefile-patch_depends,`PATCH_DEPENDS`] +* crossref:makefiles[makefile-build_depends,`BUILD_DEPENDS`] +* crossref:makefiles[makefile-lib_depends,`LIB_DEPENDS`] +* crossref:makefiles[makefile-run_depends,`RUN_DEPENDS`] +* `TEST_DEPENDS` + +[[porting-order-flavors]] +== Флейворы + +Этот блок необязателен. + +Начните этот раздел с определения `FLAVORS`. Затем рассмотрите возможные вспомогательные инструменты флейворов. Дополнительную информацию см. в разделе crossref:flavors[flavors-using,Использование флейворов (FLAVORS)]. + +Конструкции, устанавливающие переменные, недоступные в виде помощников, с использованием `.if ${FLAVOR:U} == foo`, должны быть размещены в соответствующих разделах ниже. + +[[porting-order-uses]] +== `USES` и `USE_x` + +Начните этот раздел с определения `USES`, а затем возможных `USE_x`. + +Держите связанные переменные рядом. Например, если используется crossref:makefiles[makefile-master_sites-github,`USE_GITHUB`], всегда размещайте переменные `GH_*` сразу после неё. + +[[porting-order-variables]] +== Стандартные переменные bsd.port.mk + +Этот блок раздела предназначен для переменных, которые могут быть определены в [.filename]#bsd.port.mk# и не принадлежат ни к одному из предыдущих блоков разделов. + +Порядок не важен, однако старайтесь держать схожие переменные вместе. Например, переменные uid и gid `USERS` и `GROUPS`. Конфигурационные переменные `CONFIGURE_*` и `*_CONFIGURE`. Списки файлов и директорий `PORTDOCS` и `PORTEXAMPLES`. + +[[porting-order-options]] +== Параметры и помощники + +Если порт использует crossref:makefiles[makefile-options,фреймворк опций], сначала определите `OPTIONS_DEFINE` и `OPTIONS_DEFAULT`, затем остальные переменные `OPTIONS_*`, далее описания `*_DESC`, а затем вспомогательные опции. Старайтесь сортировать их все в алфавитном порядке. + +[[porting-order-options-ex1]] +.Пример порядка переменных-опций +[example] +==== +Опции `FOO` и `BAR` не имеют стандартного описания, поэтому его необходимо написать. Остальные опции уже имеют описание в [.filename]#Mk/bsd.options.desc.mk#, поэтому его создание не требуется. Переменные `DOCS` и `EXAMPLES` используют вспомогательные цели для установки своих файлов, они приведены здесь для полноты, хотя относятся к разделу crossref:order[porting-order-targets, Цели], поэтому перед ними могут быть вставлены другие переменные и цели. + +[.programlisting] +.... +OPTIONS_DEFINE= DOCS EXAMPLES FOO BAR +OPTIONS_DEFAULT= FOO +OPTIONS_RADIO= SSL +OPTIONS_RADIO_SSL= OPENSSL GNUTLS +OPTIONS_SUB= yes + +BAR_DESC= Enable bar support +FOO_DESC= Enable foo support + +BAR_CONFIGURE_WITH= bar=${LOCALBASE} +FOO_CONFIGURE_ENABLE= foo +GNUTLS_CONFIGURE_ON= --with-ssl=gnutls +OPENSSL_CONFIGURE_ON= --with-ssl=openssl + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} + +post-install-EXAMPLES-on: + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + cd ${WRKSRC}/ex && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} +.... + +==== + +[[porting-order-rest]] +== Остальные переменные + +И затем, остальные переменные, которые не упоминались в предыдущих блоках. + +[[porting-order-targets]] +== Цели + +После определения всех переменных можно определить дополнительные цели man:make[1]. Следует располагать `pre-*` перед `post-*` и в том же порядке, в котором выполняются различные этапы: + +* `fetch` +* `extract` +* `patch` +* `configure` +* `build` +* `install` +* `test` + +[TIP] +==== +При использовании опций `helpers` для цели `target` сохраняйте их в алфавитном порядке, но оставляйте `*-on` перед `*-off`. Если также используется основная цель, размещайте её перед дополнительными: + +[.programlisting] +.... +post-install: + # install generic bits + +post-install-DOCS-on: + # Install documentation + +post-install-X11-on: + # Install X11 related bits + +post-install-X11-off: + # Install bits that should be there if X11 is disabled +.... +==== diff --git a/documentation/content/ru/books/porters-handbook/order/_index.po b/documentation/content/ru/books/porters-handbook/order/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/order/_index.po @@ -0,0 +1,780 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-16 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/order/_index.adoc:1 +#, no-wrap +msgid "Order of Variables in FreeBSD Port Makefiles" +msgstr "Порядок переменных в Makefile портов FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/order/_index.adoc:1 +#, no-wrap +msgid "Chapter 15. Order of Variables in Port Makefiles" +msgstr "Глава 15. Порядок переменных в Makefile портов" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/order/_index.adoc:14 +#, no-wrap +msgid "Order of Variables in Port Makefiles" +msgstr "Порядок переменных в Makefile портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:53 +msgid "" +"The first sections of the [.filename]#Makefile# must always come in the same " +"order. This standard makes it so everyone can easily read any port without " +"having to search for variables in a random order." +msgstr "" +"Первые разделы [.filename]#Makefile# всегда должны идти в одном и том же " +"порядке. Это стандартное правило позволяет любому легко читать любой порт, " +"не тратя время на поиск переменных в произвольном порядке." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:58 +msgid "" +"The sections and variables described here are mandatory in a ordinary port. " +"In a slave port, many sections and variables can be skipped." +msgstr "" +"Описаные здесь разделы и переменные являются обязательными в обычном порте. " +"В подчиненном порте многие разделы и переменные могут быть пропущены." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:63 +msgid "" +"Each following block must be separated from the previous block by a single " +"blank line." +msgstr "" +"Каждый следующий блок должен быть отделен от предыдущего одним пустым " +"пробелом." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:66 +msgid "" +"In the following blocks, only set the variables that are required by the " +"port. Define these variables in the order they are shown here." +msgstr "" +"В следующих блоках устанавливайте только переменные, которые требуются для " +"порта. Определяйте эти переменные в порядке, указанном здесь." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:69 +#, no-wrap +msgid "`PORTNAME` Block" +msgstr "Блок `PORTNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:73 +msgid "" +"This block is the most important. It defines the port name, version, " +"distribution file location, and category. The variables must be in this " +"order:" +msgstr "" +"Этот блок является наиболее важным. Он определяет имя порта, версию, " +"расположение файла дистрибутива и категорию. Переменные должны быть в " +"следующем порядке:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:77 +msgid "" +"crossref:makefiles[makefile-portname,`PORTNAME`] * " +"crossref:makefiles[makefile-versions,`PORTVERSION`]" +"[crossref:order[portversion-footnote, 1]]" +msgstr "" +"crossref:makefiles[makefile-portname,`PORTNAME`] * " +"crossref:makefiles[makefile-versions,`PORTVERSION`]" +"[crossref:order[portversion-footnote, 1]]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:80 +msgid "" +"crossref:makefiles[makefile-versions,`DISTVERSIONPREFIX`] * " +"crossref:makefiles[makefile-versions,`DISTVERSION`]" +"[crossref:order[portversion-footnote, 1]]" +msgstr "" +"crossref:makefiles[makefile-versions,`DISTVERSIONPREFIX`] * " +"crossref:makefiles[makefile-versions,`DISTVERSION`]" +"[crossref:order[portversion-footnote, 1]]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:81 +msgid "crossref:makefiles[makefile-versions,`DISTVERSIONSUFFIX`]" +msgstr "crossref:makefiles[makefile-versions,`DISTVERSIONSUFFIX`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:82 +msgid "crossref:makefiles[makefile-portrevision,`PORTREVISION`]" +msgstr "crossref:makefiles[makefile-portrevision,`PORTREVISION`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:83 +msgid "crossref:makefiles[makefile-portepoch,`PORTEPOCH`]" +msgstr "crossref:makefiles[makefile-portepoch,`PORTEPOCH`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:84 +msgid "crossref:makefiles[makefile-categories,`CATEGORIES`]" +msgstr "crossref:makefiles[makefile-categories,`CATEGORIES`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:85 +msgid "crossref:makefiles[makefile-master_sites,`MASTER_SITES`]" +msgstr "crossref:makefiles[makefile-master_sites,`MASTER_SITES`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:86 +msgid "" +"crossref:makefiles[makefile-master_sites-shorthand,`MASTER_SITE_SUBDIR`] " +"(deprecated)" +msgstr "" +"crossref:makefiles[makefile-master_sites-shorthand,`MASTER_SITE_SUBDIR`] " +"(устарело)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:87 +msgid "crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`]" +msgstr "crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:88 +msgid "crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMESUFFIX`]" +msgstr "crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMESUFFIX`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:89 +msgid "crossref:makefiles[makefile-distname,`DISTNAME`]" +msgstr "crossref:makefiles[makefile-distname,`DISTNAME`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:90 +msgid "crossref:makefiles[makefile-extract_sufx,`EXTRACT_SUFX`]" +msgstr "crossref:makefiles[makefile-extract_sufx,`EXTRACT_SUFX`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:91 +msgid "crossref:makefiles[makefile-distfiles-definition,`DISTFILES`]" +msgstr "crossref:makefiles[makefile-distfiles-definition,`DISTFILES`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:92 +msgid "crossref:makefiles[makefile-dist_subdir,`DIST_SUBDIR`]" +msgstr "crossref:makefiles[makefile-dist_subdir,`DIST_SUBDIR`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:93 +msgid "crossref:makefiles[makefile-extract_only,`EXTRACT_ONLY`]" +msgstr "crossref:makefiles[makefile-extract_only,`EXTRACT_ONLY`]" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:98 +msgid "Only one of PORTVERSION and DISTVERSION can be used." +msgstr "" +"Может быть использован только один из параметров — PORTVERSION или " +"DISTVERSION." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:101 +#, no-wrap +msgid "`PATCHFILES` Block" +msgstr "Блок `PATCHFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:105 +msgid "This block is optional. The variables are:" +msgstr "Этот блок является необязательным. Переменные:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:107 +msgid "crossref:makefiles[porting-patchfiles,`PATCH_SITES`]" +msgstr "crossref:makefiles[porting-patchfiles,`PATCH_SITES`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:108 +msgid "crossref:makefiles[porting-patchfiles,`PATCHFILES`]" +msgstr "crossref:makefiles[porting-patchfiles,`PATCHFILES`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:109 +msgid "crossref:makefiles[porting-patchfiles,`PATCH_DIST_STRIP`]" +msgstr "crossref:makefiles[porting-patchfiles,`PATCH_DIST_STRIP`]" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:111 +#, no-wrap +msgid "`MAINTAINER` Block" +msgstr "Блок `MAINTAINER`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:115 +msgid "This block is mandatory. The variables are:" +msgstr "Этот блок является обязательным. Переменные следующие:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:117 +msgid "crossref:makefiles[makefile-maintainer,`MAINTAINER`]" +msgstr "crossref:makefiles[makefile-maintainer,`MAINTAINER`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:118 +msgid "crossref:makefiles[makefile-comment,`COMMENT`]" +msgstr "crossref:makefiles[makefile-comment,`COMMENT`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:119 +msgid "crossref:makefiles[makefile-www,`WWW`]" +msgstr "crossref:makefiles[makefile-www,`WWW`]" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:121 +#, no-wrap +msgid "`LICENSE` Block" +msgstr "Блок `LICENSE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:125 +msgid "" +"This block is optional, although it is highly recommended. The variables " +"are:" +msgstr "" +"Этот блок является необязательным, хотя настоятельно рекомендуется. " +"Переменные:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:127 +msgid "crossref:makefiles[licenses-license,`LICENSE`]" +msgstr "crossref:makefiles[licenses-license,`LICENSE`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:128 +msgid "crossref:makefiles[licenses-license_comb,`LICENSE_COMB`]" +msgstr "crossref:makefiles[licenses-license_comb,`LICENSE_COMB`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:129 +msgid "" +"crossref:makefiles[licenses-license_groups,`LICENSE_GROUPS`] or " +"`LICENSE_GROUPS_NAME`" +msgstr "" +"crossref:makefiles[licenses-license_groups,`LICENSE_GROUPS`] или " +"`LICENSE_GROUPS_NAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:130 +msgid "" +"crossref:makefiles[licenses-license_name,`LICENSE_NAME`] or " +"`LICENSE_NAME_NAME`" +msgstr "" +"crossref:makefiles[licenses-license_name,`LICENSE_NAME`] или " +"`LICENSE_NAME_NAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:131 +msgid "" +"crossref:makefiles[licenses-license_text,`LICENSE_TEXT`] or " +"`LICENSE_TEXT_NAME`" +msgstr "" +"crossref:makefiles[licenses-license_text,`LICENSE_TEXT`] или " +"`LICENSE_TEXT_NAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:132 +msgid "" +"crossref:makefiles[licenses-license_file,`LICENSE_FILE`] or " +"`LICENSE_FILE_NAME`" +msgstr "" +"crossref:makefiles[licenses-license_file,`LICENSE_FILE`] или " +"`LICENSE_FILE_NAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:133 +msgid "" +"crossref:makefiles[licenses-license_perms,`LICENSE_PERMS`] or " +"`LICENSE_PERMS_NAME_`" +msgstr "" +"crossref:makefiles[licenses-license_perms,`LICENSE_PERMS`] или " +"`LICENSE_PERMS_NAME_`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:134 +msgid "" +"crossref:makefiles[licenses-license_distfiles,`LICENSE_DISTFILES`] or " +"`LICENSE_DISTFILES_NAME`" +msgstr "" +"crossref:makefiles[licenses-license_distfiles,`LICENSE_DISTFILES`] или " +"`LICENSE_DISTFILES_NAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:136 +msgid "" +"If there are multiple licenses, sort the different LICENSE_VAR_NAME " +"variables by license name." +msgstr "" +"Если имеется несколько лицензий, отсортируйте различные переменные " +"LICENSE_VAR_NAME по названию лицензии." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:138 +#, no-wrap +msgid "Generic `BROKEN`/`IGNORE`/`DEPRECATED` Messages" +msgstr "Общие сообщения `BROKEN`/`IGNORE`/`DEPRECATED`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:141 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:171 +msgid "This block is optional. The variables are:" +msgstr "Этот блок необязателен. Переменные:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:143 +msgid "crossref:porting-dads[dads-deprecated,`DEPRECATED`]" +msgstr "crossref:porting-dads[dads-deprecated,`DEPRECATED`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:144 +msgid "crossref:porting-dads[dads-deprecated,`EXPIRATION_DATE`]" +msgstr "crossref:porting-dads[dads-deprecated,`EXPIRATION_DATE`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:145 +msgid "crossref:porting-dads[dads-noinstall,`FORBIDDEN`]" +msgstr "crossref:porting-dads[dads-noinstall,`FORBIDDEN`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:146 +msgid "crossref:porting-dads[dads-noinstall,`BROKEN`]" +msgstr "crossref:porting-dads[dads-noinstall,`BROKEN`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:147 +msgid "crossref:porting-dads[dads-noinstall,`BROKEN_*`]" +msgstr "crossref:porting-dads[dads-noinstall,`BROKEN_*`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:148 +msgid "crossref:porting-dads[dads-noinstall,`IGNORE`]" +msgstr "crossref:porting-dads[dads-noinstall,`IGNORE`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:149 +msgid "crossref:porting-dads[dads-noinstall,`IGNORE_*`]" +msgstr "crossref:porting-dads[dads-noinstall,`IGNORE_*`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:150 +msgid "crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS`]" +msgstr "crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:151 +msgid "crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS_REASON*`]" +msgstr "crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS_REASON*`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:152 +msgid "crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS`]" +msgstr "crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:153 +msgid "crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS_REASON*`]" +msgstr "crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS_REASON*`]" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:160 +msgid "" +"`BROKEN_*` and `IGNORE_*` can be any generic variables, for example, " +"`IGNORE_amd64`, `BROKEN_FreeBSD_10`, etc. With the exception of variables " +"that depend on a crossref:uses[uses,`USES`], place those in " +"crossref:order[porting-order-uses, `USES` and `USE_x`]. For instance, " +"`IGNORE_WITH_PHP` only works if crossref:uses[uses-php,`php`] is set, and " +"`BROKEN_SSL` only if crossref:uses[uses-ssl,`ssl`] is set." +msgstr "" +"`BROKEN_*` и `IGNORE_*` могут быть любыми общими переменными, например, " +"`IGNORE_amd64`, `BROKEN_FreeBSD_10` и т.д. За исключением переменных, " +"которые зависят от crossref:uses[uses,`USES`], их следует размещать в " +"crossref:order[porting-order-uses, `USES` и `USE_x`]. Например, " +"`IGNORE_WITH_PHP` работает только если установлен crossref:uses[uses-" +"php,`php`], а `BROKEN_SSL` — только если установлен crossref:uses[uses-" +"ssl,`ssl`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:165 +msgid "" +"If the port is marked BROKEN when some conditions are met, and such " +"conditions can only be tested after including " +"[.filename]#bsd.port.options.mk# or [.filename]#bsd.port.pre.mk#, then those " +"variables should be set later, in crossref:order[porting-order-rest, The " +"Rest of the Variables]." +msgstr "" +"Если порт помечен как BROKEN при выполнении определённых условий, и эти " +"условия можно проверить только после включения " +"[.filename]#bsd.port.options.mk# или [.filename]#bsd.port.pre.mk#, то такие " +"переменные должны быть установлены позже, в crossref:order[porting-order-" +"rest, Остальные Переменные]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:168 +#, no-wrap +msgid "The Dependencies Block" +msgstr "Блок зависимостей" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:173 +msgid "crossref:makefiles[makefile-fetch_depends,`FETCH_DEPENDS`]" +msgstr "crossref:makefiles[makefile-fetch_depends,`FETCH_DEPENDS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:174 +msgid "crossref:makefiles[makefile-extract_depends,`EXTRACT_DEPENDS`]" +msgstr "crossref:makefiles[makefile-extract_depends,`EXTRACT_DEPENDS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:175 +msgid "crossref:makefiles[makefile-patch_depends,`PATCH_DEPENDS`]" +msgstr "crossref:makefiles[makefile-patch_depends,`PATCH_DEPENDS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:176 +msgid "crossref:makefiles[makefile-build_depends,`BUILD_DEPENDS`]" +msgstr "crossref:makefiles[makefile-build_depends,`BUILD_DEPENDS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:177 +msgid "crossref:makefiles[makefile-lib_depends,`LIB_DEPENDS`]" +msgstr "crossref:makefiles[makefile-lib_depends,`LIB_DEPENDS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:178 +msgid "crossref:makefiles[makefile-run_depends,`RUN_DEPENDS`]" +msgstr "crossref:makefiles[makefile-run_depends,`RUN_DEPENDS`]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:179 +msgid "`TEST_DEPENDS`" +msgstr "`TEST_DEPENDS`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:181 +#, no-wrap +msgid "Flavors" +msgstr "Флейворы" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:184 +msgid "This block is optional." +msgstr "Этот блок необязателен." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:188 +msgid "" +"Start this section with defining `FLAVORS`. Continue with the possible " +"Flavors helpers. See crossref:flavors[flavors-using,Using FLAVORS] for more " +"Information." +msgstr "" +"Начните этот раздел с определения `FLAVORS`. Затем рассмотрите возможные " +"вспомогательные инструменты флейворов. Дополнительную информацию см. в " +"разделе crossref:flavors[flavors-using,Использование флейворов (FLAVORS)]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:190 +msgid "" +"Constructs setting variables not available as helpers using `.if ${FLAVOR:U} " +"== foo` should go in their respective sections below." +msgstr "" +"Конструкции, устанавливающие переменные, недоступные в виде помощников, с " +"использованием `.if ${FLAVOR:U} == foo`, должны быть размещены в " +"соответствующих разделах ниже." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:192 +#, no-wrap +msgid "`USES` and `USE_x`" +msgstr "`USES` и `USE_x`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:195 +msgid "Start this section with defining `USES`, and then possible `USE_x`." +msgstr "Начните этот раздел с определения `USES`, а затем возможных `USE_x`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:198 +msgid "" +"Keep related variables close together. For example, if using " +"crossref:makefiles[makefile-master_sites-github,`USE_GITHUB`], always put " +"the `GH_*` variables right after it." +msgstr "" +"Держите связанные переменные рядом. Например, если используется " +"crossref:makefiles[makefile-master_sites-github,`USE_GITHUB`], всегда " +"размещайте переменные `GH_*` сразу после неё." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:200 +#, no-wrap +msgid "Standard bsd.port.mk Variables" +msgstr "Стандартные переменные bsd.port.mk" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:203 +msgid "" +"This section block is for variables that can be defined in " +"[.filename]#bsd.port.mk# that do not belong in any of the previous section " +"blocks." +msgstr "" +"Этот блок раздела предназначен для переменных, которые могут быть определены " +"в [.filename]#bsd.port.mk# и не принадлежат ни к одному из предыдущих блоков " +"разделов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:208 +msgid "" +"Order is not important, however try to keep similar variables together. For " +"example uid and gid variables `USERS` and `GROUPS`. Configuration variables " +"`CONFIGURE_*` and `*_CONFIGURE`. List of files, and directories `PORTDOCS` " +"and `PORTEXAMPLES`." +msgstr "" +"Порядок не важен, однако старайтесь держать схожие переменные вместе. " +"Например, переменные uid и gid `USERS` и `GROUPS`. Конфигурационные " +"переменные `CONFIGURE_*` и `*_CONFIGURE`. Списки файлов и директорий " +"`PORTDOCS` и `PORTEXAMPLES`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:210 +#, no-wrap +msgid "Options and Helpers" +msgstr "Параметры и помощники" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:215 +msgid "" +"If the port uses the crossref:makefiles[makefile-options,options framework], " +"define `OPTIONS_DEFINE` and `OPTIONS_DEFAULT` first, then the other " +"`OPTIONS_*` variables first, then the `*_DESC` descriptions, then the " +"options helpers. Try and sort all of those alphabetically." +msgstr "" +"Если порт использует crossref:makefiles[makefile-options,фреймворк опций], " +"сначала определите `OPTIONS_DEFINE` и `OPTIONS_DEFAULT`, затем остальные " +"переменные `OPTIONS_*`, далее описания `*_DESC`, а затем вспомогательные " +"опции. Старайтесь сортировать их все в алфавитном порядке." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/order/_index.adoc:217 +#, no-wrap +msgid "Options Variables Order Example" +msgstr "Пример порядка переменных-опций" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:224 +msgid "" +"The `FOO` and `BAR` options do not have a standard description, so one need " +"to be written. The other options already have one in [.filename]#Mk/" +"bsd.options.desc.mk# so writing one is not needed. The `DOCS` and " +"`EXAMPLES` use target helpers to install their files, they are shown here " +"for completeness, though they belong in crossref:order[porting-order-" +"targets, The Targets], so other variables and targets could be inserted " +"before them." +msgstr "" +"Опции `FOO` и `BAR` не имеют стандартного описания, поэтому его необходимо " +"написать. Остальные опции уже имеют описание в [.filename]#Mk/" +"bsd.options.desc.mk#, поэтому его создание не требуется. Переменные `DOCS` и " +"`EXAMPLES` используют вспомогательные цели для установки своих файлов, они " +"приведены здесь для полноты, хотя относятся к разделу crossref:order[porting-" +"order-targets, Цели], поэтому перед ними могут быть вставлены другие " +"переменные и цели." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:232 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tDOCS EXAMPLES FOO BAR\n" +"OPTIONS_DEFAULT=\tFOO\n" +"OPTIONS_RADIO=\tSSL\n" +"OPTIONS_RADIO_SSL= OPENSSL GNUTLS\n" +"OPTIONS_SUB=\tyes\n" +msgstr "" +"OPTIONS_DEFINE=\tDOCS EXAMPLES FOO BAR\n" +"OPTIONS_DEFAULT=\tFOO\n" +"OPTIONS_RADIO=\tSSL\n" +"OPTIONS_RADIO_SSL= OPENSSL GNUTLS\n" +"OPTIONS_SUB=\tyes\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:235 +#, no-wrap +msgid "" +"BAR_DESC=\t\tEnable bar support\n" +"FOO_DESC=\t\tEnable foo support\n" +msgstr "" +"BAR_DESC=\t\tEnable bar support\n" +"FOO_DESC=\t\tEnable foo support\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:240 +#, no-wrap +msgid "" +"BAR_CONFIGURE_WITH=\tbar=${LOCALBASE}\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" +"GNUTLS_CONFIGURE_ON=\t--with-ssl=gnutls\n" +"OPENSSL_CONFIGURE_ON=\t--with-ssl=openssl\n" +msgstr "" +"BAR_CONFIGURE_WITH=\tbar=${LOCALBASE}\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" +"GNUTLS_CONFIGURE_ON=\t--with-ssl=gnutls\n" +"OPENSSL_CONFIGURE_ON=\t--with-ssl=openssl\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:244 +#, no-wrap +msgid "" +"post-install-DOCS-on:\n" +" ${MKDIR} ${STAGEDIR}${DOCSDIR}\n" +" cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}\n" +msgstr "" +"post-install-DOCS-on:\n" +" ${MKDIR} ${STAGEDIR}${DOCSDIR}\n" +" cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:248 +#, no-wrap +msgid "" +"post-install-EXAMPLES-on:\n" +" ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +" cd ${WRKSRC}/ex && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}\n" +msgstr "" +"post-install-EXAMPLES-on:\n" +" ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +" cd ${WRKSRC}/ex && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:253 +#, no-wrap +msgid "The Rest of the Variables" +msgstr "Остальные переменные" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:256 +msgid "" +"And then, the rest of the variables that are not mentioned in the previous " +"blocks." +msgstr "" +"И затем, остальные переменные, которые не упоминались в предыдущих блоках." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/order/_index.adoc:258 +#, no-wrap +msgid "The Targets" +msgstr "Цели" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:262 +msgid "" +"After all the variables are defined, the optional man:make[1] targets can be " +"defined. Keep `pre-*` before `post-*` and in the same order as the " +"different stages run:" +msgstr "" +"После определения всех переменных можно определить дополнительные цели " +"man:make[1]. Следует располагать `pre-*` перед `post-*` и в том же порядке, " +"в котором выполняются различные этапы:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:264 +msgid "`fetch`" +msgstr "`fetch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:265 +msgid "`extract`" +msgstr "`extract`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:266 +msgid "`patch`" +msgstr "`patch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:267 +msgid "`configure`" +msgstr "`configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:268 +msgid "`build`" +msgstr "`build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:269 +msgid "`install`" +msgstr "`install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:270 +msgid "`test`" +msgstr "`test`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/order/_index.adoc:275 +msgid "" +"When using options helpers target keep them alphabetically sorted, but keep " +"the `*-on` before the `*-off`. When also using the main target, keep the " +"main target before the optional ones:" +msgstr "" +"При использовании опций `helpers` для цели `target` сохраняйте их в " +"алфавитном порядке, но оставляйте `*-on` перед `*-off`. Если также " +"используется основная цель, размещайте её перед дополнительными:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:280 +#, no-wrap +msgid "" +"post-install:\n" +"\t# install generic bits\n" +msgstr "" +"post-install:\n" +"\t# install generic bits\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:283 +#, no-wrap +msgid "" +"post-install-DOCS-on:\n" +"\t# Install documentation\n" +msgstr "" +"post-install-DOCS-on:\n" +"\t# Install documentation\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:286 +#, no-wrap +msgid "" +"post-install-X11-on:\n" +"\t# Install X11 related bits\n" +msgstr "" +"post-install-X11-on:\n" +"\t# Install X11 related bits\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/order/_index.adoc:289 +#, no-wrap +msgid "" +"post-install-X11-off:\n" +"\t# Install bits that should be there if X11 is disabled\n" +msgstr "" +"post-install-X11-off:\n" +"\t# Install bits that should be there if X11 is disabled\n" diff --git a/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc b/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc --- a/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc @@ -1,22 +1,24 @@ --- -title: Глава 8. Файлы pkg-* -prev: books/porters-handbook/plist +description: 'Хитрости с файлами pkg-*' next: books/porters-handbook/testing -showBookMenu: true -weight: 8 params: - path: "/books/porters-handbook/pkg-files/" + path: /books/porters-handbook/pkg-files/ +prev: books/porters-handbook/plist +showBookMenu: true +tags: ["pkg", "pkg-message", "UCL", "pkg-install", "pkg-deinstall"] +title: 'Глава 9. Файлы pkg-*' +weight: 9 --- [[pkg-files]] -= Файлы pkg-* += pkg-* :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 8 +:sectnumoffset: 9 :partnums: :source-highlighter: rouge :experimental: @@ -49,48 +51,212 @@ Есть несколько приёмов работы с файлами [.filename]#pkg-*#, которые мы ещё не описали, но они иногда могут быть очень кстати. [[porting-message]] -== [.filename]#pkg-message# +== pkg-message Если вам нужно вывести сообщение для человека, устанавливающего приложение, то вы можете поместить сообщение в файл [.filename]#pkg-message#. Эта возможность часто оказывается полезной для вывода дополнительных шагов установки, которые нужно предпринять после выполнения команды `pkg install`, или для вывода информации о лицензировании. -Если должны выводиться некоторые строки о knobs времени построения или предупреждения, используйте `ECHO_MSG`. Файл [.filename]#pkg-message# только для послеустановочных шагов. Также следует иметь в виду различие между `ECHO_MSG` и `ECHO_CMD`. Первое предназначено для вывода на экран информационного текста, а второе для конвейера команд: +[IMPORTANT] +==== +* Файл [.filename]#pkg-message# должен содержать только информацию, _критически важную_ для настройки и работы в FreeBSD, а также уникальную для данного порта. +* Информация по настройке должна отображаться только при первоначальной установке. Инструкции по обновлению должны показываться только при обновлении с соответствующей версии. +* Не обрамляйте сообщения ни пробелами, ни строками символов (такими как `----------`, `**********` или `==========`). Оставьте форматирование man:pkg[8]. +* Коммиттеры имеют полное право ограничивать существующие сообщения диапазонами установки или обновления, используя спецификации формата UCL. +* Пожалуйста, убедитесь, что используете соответствующие инструменты для управления службами. +** Используйте `service имя start` для запуска службы вместо `/usr/local/etc/rc.d/имя start` +** Используйте `sysrc name_enable=YES` для изменения параметров в rc.conf + +==== + +pkg-message поддерживает два формата: + +raw:: +Обычный текстовый файл. Его сообщение отображается только при установке. + +UCL:: +Если файл начинается с символа "`[`", то он считается файлом в формате UCL. Формат UCL описан на странице https://github.com/vstakhov/libucl[libucl's GitHub page]. + +[NOTE] +==== +Не добавляйте запись для [.filename]#pkg-message# в [.filename]#pkg-plist#. +==== + +[[porting-message-ucl]] +=== UCL в pkg-message + +Формат следующий. Это должен быть массив объектов. Сами объекты могут содержать следующие ключевые слова: + +`message`:: +Отображаемое сообщение. Этот ключевой параметр является обязательным. + +`type`:: +Когда сообщение должно быть отображено. + +`maximum_version`:: +Только если `type` имеет значение `upgrade`. Отображается, если обновление выполняется с версии строго ниже указанной. + +`minimum_version`:: +Только если `type` имеет значение `upgrade`. Отображается, если обновление выполняется с версии, строго большей, чем указанная. + +Ключевые слова `maximum_version` и `minimum_version` можно комбинировать. + +Ключевое слово `type` может иметь три значения: + +`install`:: +Сообщение должно отображаться только при установке пакета. + +`remove`:: +Сообщение должно отображаться только при удалении пакета. + +`upgrade`:: +сообщение должно отображаться только во время обновления пакета. + +[IMPORTANT] +==== +Для сохранения совместимости с файлами [.filename]#pkg-message#, не использующими UCL, первая строка UCL [.filename]#pkg-message# _ДОЛЖНА быть_ одиночным символом "`[`", а последняя строка _ДОЛЖНА быть_ одиночным символом "`]`". +==== + +[[porting-message-ucl-short-ex]] +.Короткие строки UCL +[example] +==== + +Сообщение ограничено двойными кавычками `"`, это используется для простых однострочных строк: [.programlisting] .... -update-etc-shells: - @${ECHO_MSG} "updating /etc/shells" - @${CP} /etc/shells /etc/shells.bak - @( ${GREP} -v ${PREFIX}/bin/bash /etc/shells.bak; \ - ${ECHO_CMD} ${PREFIX}/bin/bash) >/etc/shells - @${RM} /etc/shells.bak +[ +{ type: install + message: "Simple message" +} +] .... -[NOTE] ==== -Файл [.filename]#pkg-message# не нужно добавлять в [.filename]#pkg-plist#. + +[[porting-message-ucl-multiline-ex]] +.Многострочные строки UCL +[example] +==== + +Многострочные строки используют стандартную нотацию heredoc. Разделитель многострочной строки _должен_ начинаться сразу после символов `<<` без пробелов и _должен_ состоять только из заглавных букв. Чтобы завершить многострочную строку, добавьте строку-разделитель на отдельной строке без пробелов. Сообщение из раздела crossref:pkg-files[porting-message-ucl-short-ex,Короткие строки UCL] может быть записано как: + +[.programlisting] +.... +[ +{ type: install + message: < 1.0 and < 3.0 remove that file." +} +] +.... + +[IMPORTANT] +**** +При отображении сообщения во время обновления важно ограничить случаи, когда оно показывается пользователю. Чаще всего это делается с помощью `maximum_version`, чтобы ограничить его использование обновлениями до определенной версии, когда требуется выполнить конкретное действие. +**** + ==== [[pkg-install]] -== [.filename]#pkg-install# +== pkg-install, pkg-pre-install и pkg-post-install -Если при установке бинарного пакета по команде `pkg add` или `pkg install` вашему порту нужно выполнить какие-то команды, то вы можете это сделать с помощью скрипта [.filename]#pkg-install#. Этот скрипт будет автоматически добавлен к пакету и будет дважды запускаться командой `pkg`: первый раз в виде `${SH} pkg-install ${PKGNAME} PRE-INSTALL`, а второй раз как `${SH} {PKGNAME} POST-INSTALL`. Для распознавания того, в каком режиме запущен скрипт, можно использовать параметр `$2`. Переменная окружения `PKG_PREFIX` будет принимать значение, соответствующее каталогу, в который устанавливается пакет. +Если порту необходимо выполнять команды при установке бинарного пакета с помощью `pkg add` или `pkg install`, используйте [.filename]#pkg-install#. Он запускается дважды через `pkg`: первый раз как `${SH} pkg-install ${PKGNAME} PRE-INSTALL` перед установкой пакета и второй раз как `${SH} pkg-install ${PKGNAME} POST-INSTALL` после его установки. Переменная `$2` может быть проверена, чтобы определить, в каком режиме выполняется скрипт. Переменная окружения `PKG_PREFIX` устанавливается равной имени каталога установки пакета. + +Если используется [.filename]#pkg-pre-install# или [.filename]#pkg-post-install#, скрипт выполняется только один раз (до или после установки пакета), с единственным аргументом `${PKGNAME}`. Использование [.filename]#pkg-pre-install.lua# или [.filename]#pkg-post-install.lua# запускает скрипт на Lua вместо shell-скрипта. Скрипты на Lua, выполняемые `pkg`, предоставляют некоторые расширения и несколько ограничений, которые описаны в man:pkg-lua-script[5]. [NOTE] ==== -Этот скрипт не запускается автоматически, если вы устанавливаете порт командой `make install`. Если же вам действительно необходимо его запустить, то запустите его явно из файла [.filename]#Makefile# порта строкой вида `PKG_PREFIX=${PREFIX} ${SH} $ {PKGINSTALL}${PKGNAME} PRE-INSTALL`. +Использование [.filename]#pkg-pre-install# (или [.filename]#pkg-pre-install.lua#) и [.filename]#pkg-post-install# (или [.filename]#pkg-post-install.lua#) предпочтительнее, чем использование [.filename]#pkg-install#. +==== + +Эти скрипты автоматически добавляются в список упаковки. + +[IMPORTANT] +==== +Эти скрипты предназначены для упрощения настройки пакетов после установки. Они _не должны_ использоваться для запуска служб, остановки служб или выполнения любых других команд, которые изменяют текущую работающую систему. ==== [[pkg-deinstall]] -== [.filename]#pkg-deinstall# +== pkg-deinstall, pkg-pre-deinstall и pkg-post-deinstall -Этот скрипт вызывается при удалении пакета. +Эти скрипты выполняются при удалении пакета. -Этот скрипт будет дважды запускаться командой `pkg delete`. Первый раз как `${SH} pkg-deinstall ${PKGNAME} DEINSTALL`, а второй раз как `${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL`. +Скрипт [.filename]#pkg-deinstall# выполняется дважды командой `pkg delete`. Первый раз как `${SH} pkg-deinstall ${PKGNAME} DEINSTALL` до удаления порта и второй раз как `${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL` после удаления порта. Переменная `$2` может быть проверена для определения режима, в котором выполняется скрипт. Переменная окружения `PKG_PREFIX` устанавливается в каталог установки пакета. + +Если используется [.filename]#pkg-pre-deinstall# или [.filename]#pkg-post-deinstall#, скрипт выполняется только один раз (до или после удаления пакета) с единственным аргументом `${PKGNAME}`. Использование [.filename]#pkg-pre-deinstall.lua# или [.filename]#pkg-post-deinstall.lua# запустит скрипт на Lua вместо shell-скрипта. Скрипты на Lua, выполняемые `pkg`, предоставляют некоторые расширения и ограничения, которые описаны в man:pkg-lua-script[5]. + +[NOTE] +==== +Использование [.filename]#pkg-pre-deinstall# (или [.filename]#pkg-pre-deinstall.lua#) и [.filename]#pkg-post-deinstall# (или [.filename]#pkg-post-deinstall.lua#) предпочтительнее, чем использование [.filename]#pkg-deinstall#. +==== + +Эти скрипты автоматически добавляются в список упаковки. + +[IMPORTANT] +==== +Эти скрипты предназначены для упрощения очистки после удаления пакетов. Они _не должны_ использоваться для запуска служб, остановки служб или выполнения любых других команд, которые изменяют текущую работающую систему. +==== [[pkg-names]] == Изменение имён файлов [.filename]#pkg-*# -Все имена файлов [.filename]#pkg-\*# определяются с помощью переменных, так что вы можете изменить их, если это нужно, в вашем файле [.filename]#Makefile#. Это особенно полезно, если вы используете одни и те же файлы [.filename]#pkg-*# совместно между несколькими портами или пишете в один из вышеперечисленных файлов (в главе о <> объяснено, почему не рекомендуется осуществлять запись непосредственно в файлы [.filename]#pkg-*#. +Все имена файлов [.filename]#pkg-\*# определяются с помощью переменных, так что вы можете изменить их, если это нужно, в вашем файле [.filename]#Makefile#. Это особенно полезно, если вы используете одни и те же файлы [.filename]#pkg-*# совместно между несколькими портами или пишете в один из вышеперечисленных файлов (в главе о crossref:porting-dads[porting-wrkdir,"записи в каталоги, отличные от ``WRKDIR``"] объяснено, почему не рекомендуется осуществлять запись непосредственно в файлы [.filename]#pkg-*#). Вот список имён переменных и их значений по умолчанию. (Значение `PKGDIR` по умолчанию равно `${MASTERDIR}`.) @@ -109,15 +275,25 @@ |`PKGINSTALL` |`${PKGDIR}/pkg-install` +|`PKGPREINSTALL` +|`${PKGDIR}/pkg-pre-install` + +|`PKGPOSTINSTALL` +|`${PKGDIR}/pkg-post-install` + |`PKGDEINSTALL` |`${PKGDIR}/pkg-deinstall` +|`PKGPREDEINSTALL` +|`${PKGDIR}/pkg-pre-deinstall` + +|`PKGPOSTDEINSTALL` +|`${PKGDIR}/pkg-post-deinstall` + |`PKGMESSAGE` |`${PKGDIR}/pkg-message` |=== -Пожалуйста, изменяйте значения этих переменных, а не переопределяйте `PKG_ARGS`. Если вы измените значение переменных `PKG_ARGS`, то эти файлы при установке из порта будут установлены в каталог [.filename]#/var/db/pkg# некорректно. - [[using-sub-files]] == Использование `SUB_FILES` и `SUB_LIST` diff --git a/documentation/content/ru/books/porters-handbook/pkg-files/_index.po b/documentation/content/ru/books/porters-handbook/pkg-files/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/pkg-files/_index.po @@ -0,0 +1,873 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-16 22:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:1 +#, no-wrap +msgid "Tricks about the pkg-* files" +msgstr "Хитрости с файлами pkg-*" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:1 +#, no-wrap +msgid "Chapter 9. pkg-*" +msgstr "Глава 9. Файлы pkg-*" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:14 +#, no-wrap +msgid "pkg-*" +msgstr "pkg-*" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:52 +msgid "" +"There are some tricks we have not mentioned yet about the [.filename]#pkg-*# " +"files that come in handy sometimes." +msgstr "" +"Есть несколько приёмов работы с файлами [.filename]#pkg-*#, которые мы ещё " +"не описали, но они иногда могут быть очень кстати." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:54 +#, no-wrap +msgid "pkg-message" +msgstr "pkg-message" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:58 +msgid "" +"To display a message when the package is installed, place the message in " +"[.filename]#pkg-message#. This capability is often useful to display " +"additional installation steps to be taken after a `pkg install` or `pkg " +"upgrade`." +msgstr "" +"Если вам нужно вывести сообщение для человека, устанавливающего приложение, " +"то вы можете поместить сообщение в файл [.filename]#pkg-message#. Эта " +"возможность часто оказывается полезной для вывода дополнительных шагов " +"установки, которые нужно предпринять после выполнения команды `pkg install`, " +"или для вывода информации о лицензировании." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:62 +msgid "" +"[.filename]#pkg-message# must contain only information that is _vital_ to " +"setup and operation on FreeBSD, and that is unique to the port in question." +msgstr "" +"Файл [.filename]#pkg-message# должен содержать только информацию, " +"_критически важную_ для настройки и работы в FreeBSD, а также уникальную для " +"данного порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:63 +msgid "" +"Setup information should only be shown on initial install. Upgrade " +"instructions should be shown only when upgrading from the relevant version." +msgstr "" +"Информация по настройке должна отображаться только при первоначальной " +"установке. Инструкции по обновлению должны показываться только при " +"обновлении с соответствующей версии." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:64 +msgid "" +"Do not surround the messages with either whitespace or lines of symbols " +"(like `----------`, `**********`, or `==========`). Leave the formatting to " +"man:pkg[8]." +msgstr "" +"Не обрамляйте сообщения ни пробелами, ни строками символов (такими как " +"`----------`, `**********` или `==========`). Оставьте форматирование " +"man:pkg[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:65 +msgid "" +"Committers have blanket approval to constrain existing messages to install " +"or upgrade ranges using the UCL format specifications." +msgstr "" +"Коммиттеры имеют полное право ограничивать существующие сообщения " +"диапазонами установки или обновления, используя спецификации формата UCL." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:66 +msgid "Please be sure to refer to the proper tools for handling services." +msgstr "" +"Пожалуйста, убедитесь, что используете соответствующие инструменты для " +"управления службами." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:67 +msgid "" +"Use `service name start` to start a service rather than using `/usr/local/" +"etc/rc.d/name start`" +msgstr "" +"Используйте `service имя start` для запуска службы вместо `/usr/local/etc/" +"rc.d/имя start`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:68 +msgid "Use `sysrc name_enable=YES` to change options in rc.conf" +msgstr "Используйте `sysrc name_enable=YES` для изменения параметров в rc.conf" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:72 +msgid "pkg-message supports two formats:" +msgstr "pkg-message поддерживает два формата:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:73 +#, no-wrap +msgid "raw" +msgstr "raw" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:76 +msgid "A regular plain text file. Its message is only displayed on install." +msgstr "" +"Обычный текстовый файл. Его сообщение отображается только при установке." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:77 +#, no-wrap +msgid "UCL" +msgstr "UCL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:80 +msgid "" +"If the file starts with \"`[`\" then it is considered to be a UCL file. The " +"UCL format is described on https://github.com/vstakhov/libucl[libucl's " +"GitHub page]." +msgstr "" +"Если файл начинается с символа \"`[`\", то он считается файлом в формате " +"UCL. Формат UCL описан на странице https://github.com/vstakhov/" +"libucl[libucl's GitHub page]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:84 +msgid "" +"Do not add an entry for [.filename]#pkg-message# in [.filename]#pkg-plist#." +msgstr "" +"Не добавляйте запись для [.filename]#pkg-message# в [.filename]#pkg-plist#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:87 +#, no-wrap +msgid "UCL in pkg-message" +msgstr "UCL в pkg-message" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:92 +msgid "" +"The format is the following. It should be an array of objects. The objects " +"themselves can have these keywords:" +msgstr "" +"Формат следующий. Это должен быть массив объектов. Сами объекты могут " +"содержать следующие ключевые слова:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:93 +#, no-wrap +msgid "`message`" +msgstr "`message`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:96 +msgid "The actual message to be displayed. This keyword is mandatory." +msgstr "Отображаемое сообщение. Этот ключевой параметр является обязательным." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:97 +#, no-wrap +msgid "`type`" +msgstr "`type`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:99 +msgid "When the message should be displayed." +msgstr "Когда сообщение должно быть отображено." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:100 +#, no-wrap +msgid "`maximum_version`" +msgstr "`maximum_version`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:103 +msgid "" +"Only if `type` is `upgrade`. Display if upgrading from a version strictly " +"lower than the version specified." +msgstr "" +"Только если `type` имеет значение `upgrade`. Отображается, если обновление " +"выполняется с версии строго ниже указанной." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:104 +#, no-wrap +msgid "`minimum_version`" +msgstr "`minimum_version`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:107 +msgid "" +"Only if `type` is `upgrade`. Display if upgrading from a version strictly " +"greater than the version specified." +msgstr "" +"Только если `type` имеет значение `upgrade`. Отображается, если обновление " +"выполняется с версии, строго большей, чем указанная." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:109 +msgid "The `maximum_version` and `minimum_version` keywords can be combined." +msgstr "" +"Ключевые слова `maximum_version` и `minimum_version` можно комбинировать." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:111 +msgid "The `type` keyword can have three values:" +msgstr "Ключевое слово `type` может иметь три значения:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:112 +#, no-wrap +msgid "`install`" +msgstr "`install`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:114 +msgid "The message should only be displayed when the package is installed." +msgstr "Сообщение должно отображаться только при установке пакета." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:115 +#, no-wrap +msgid "`remove`" +msgstr "`remove`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:117 +msgid "The message should only be displayed when the package is removed." +msgstr "Сообщение должно отображаться только при удалении пакета." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:118 +#, no-wrap +msgid "`upgrade`" +msgstr "`upgrade`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:120 +msgid "the message should only be displayed during an upgrade of the package.." +msgstr "сообщение должно отображаться только во время обновления пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:125 +msgid "" +"To preserve the compatibility with non UCL [.filename]#pkg-message# files, " +"the first line of a UCL [.filename]#pkg-message# _MUST be_ a single \"`[`\", " +"and the last line _MUST be_ a single \"`]`\"." +msgstr "" +"Для сохранения совместимости с файлами [.filename]#pkg-message#, не " +"использующими UCL, первая строка UCL [.filename]#pkg-message# _ДОЛЖНА быть_ " +"одиночным символом \"`[`\", а последняя строка _ДОЛЖНА быть_ одиночным " +"символом \"`]`\"." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:128 +#, no-wrap +msgid "UCL Short Strings" +msgstr "Короткие строки UCL" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:133 +msgid "" +"The message is delimited by double quotes `\"`, this is used for simple " +"single line strings:" +msgstr "" +"Сообщение ограничено двойными кавычками `\"`, это используется для простых " +"однострочных строк:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:141 +#, no-wrap +msgid "" +"[\n" +"{ type: install\n" +" message: \"Simple message\"\n" +"}\n" +"]\n" +msgstr "" +"[\n" +"{ type: install\n" +" message: \"Simple message\"\n" +"}\n" +"]\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:146 +#, no-wrap +msgid "UCL Multiline Strings" +msgstr "Многострочные строки UCL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:154 +msgid "" +"Multiline strings use the standard here document notation. The multiline " +"delimiter _must_ start just after `<<` symbols without any whitespace and it " +"_must_ consist of capital letters only. To finish a multiline string, add " +"the delimiter string on a line of its own without any whitespace. The " +"message from crossref:pkg-files[porting-message-ucl-short-ex,UCL Short " +"Strings] can be written as:" +msgstr "" +"Многострочные строки используют стандартную нотацию heredoc. Разделитель " +"многострочной строки _должен_ начинаться сразу после символов `<<` без " +"пробелов и _должен_ состоять только из заглавных букв. Чтобы завершить " +"многострочную строку, добавьте строку-разделитель на отдельной строке без " +"пробелов. Сообщение из раздела crossref:pkg-files[porting-message-ucl-short-" +"ex,Короткие строки UCL] может быть записано как:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:164 +#, no-wrap +msgid "" +"[\n" +"{ type: install\n" +" message: < 1.0 and < 3.0 remove that file.\"\n" +"}\n" +"]\n" +msgstr "" +"[\n" +"{\n" +" type: upgrade\n" +" message: \"Package is being upgraded.\"\n" +"}\n" +"{\n" +" type: upgrade\n" +" maximum_version: \"1.0\"\n" +" message: \"Upgrading from before 1.0 need to do this.\"\n" +"}\n" +"{\n" +" type: upgrade\n" +" minimum_version: \"1.0\"\n" +" message: \"Upgrading from after 1.0 should do that.\"\n" +"}\n" +"{\n" +" type: upgrade\n" +" maximum_version: \"3.0\"\n" +" minimum_version: \"1.0\"\n" +" message: \"Upgrading from > 1.0 and < 3.0 remove that file.\"\n" +"}\n" +"]\n" + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:225 +msgid "" +"When displaying a message on upgrade, it is important to limit when it is " +"being shown to the user. Most of the time it is by using `maximum_version` " +"to limit its usage to upgrades from before a certain version when something " +"specific needs to be done." +msgstr "" +"При отображении сообщения во время обновления важно ограничить случаи, когда " +"оно показывается пользователю. Чаще всего это делается с помощью " +"`maximum_version`, чтобы ограничить его использование обновлениями до " +"определенной версии, когда требуется выполнить конкретное действие." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:230 +#, no-wrap +msgid "pkg-install, pkg-pre-install, and pkg-post-install" +msgstr "pkg-install, pkg-pre-install и pkg-post-install" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:236 +msgid "" +"If the port needs to execute commands when the binary package is installed " +"with `pkg add` or `pkg install`, use [.filename]#pkg-install#. It is run " +"twice by `pkg`, the first time as `${SH} pkg-install ${PKGNAME} PRE-INSTALL` " +"before the package is installed, and the second time as `${SH} pkg-install $" +"{PKGNAME} POST-INSTALL` after it has been installed. `$2` can be tested to " +"determine which mode the script is being run in. The `PKG_PREFIX` " +"environment variable is set to the package installation directory." +msgstr "" +"Если порту необходимо выполнять команды при установке бинарного пакета с " +"помощью `pkg add` или `pkg install`, используйте [.filename]#pkg-install#. " +"Он запускается дважды через `pkg`: первый раз как `${SH} pkg-install $" +"{PKGNAME} PRE-INSTALL` перед установкой пакета и второй раз как `${SH} pkg-" +"install ${PKGNAME} POST-INSTALL` после его установки. Переменная `$2` может " +"быть проверена, чтобы определить, в каком режиме выполняется скрипт. " +"Переменная окружения `PKG_PREFIX` устанавливается равной имени каталога " +"установки пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:240 +msgid "" +"If using [.filename]#pkg-pre-install# or [.filename]#pkg-post-install# " +"instead, the script is run only once (before or after installing the " +"package), with the single argument `${PKGNAME}`. Using [.filename]#pkg-pre-" +"install.lua# or [.filename]#pkg-post-install.lua# will run a lua script " +"instead of a shell script. Lua scripts run by `pkg` provide some extensions " +"and a few restrictions, both explained in man:pkg-lua-script[5]." +msgstr "" +"Если используется [.filename]#pkg-pre-install# или [.filename]#pkg-post-" +"install#, скрипт выполняется только один раз (до или после установки " +"пакета), с единственным аргументом `${PKGNAME}`. Использование " +"[.filename]#pkg-pre-install.lua# или [.filename]#pkg-post-install.lua# " +"запускает скрипт на Lua вместо shell-скрипта. Скрипты на Lua, выполняемые " +"`pkg`, предоставляют некоторые расширения и несколько ограничений, которые " +"описаны в man:pkg-lua-script[5]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:244 +msgid "" +"Using [.filename]#pkg-pre-install# (or [.filename]#pkg-pre-install.lua#) and " +"[.filename]#pkg-post-install# (or [.filename]#pkg-post-install.lua#) is " +"preferred to using [.filename]#pkg-install#." +msgstr "" +"Использование [.filename]#pkg-pre-install# (или [.filename]#pkg-pre-" +"install.lua#) и [.filename]#pkg-post-install# (или [.filename]#pkg-post-" +"install.lua#) предпочтительнее, чем использование [.filename]#pkg-install#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:247 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:274 +msgid "These scripts are automatically added to the packing list." +msgstr "Эти скрипты автоматически добавляются в список упаковки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:252 +msgid "" +"These scripts are here to simplify package configuration after " +"installation. They _must not_ be abused to start services, stop services, " +"or run any other commands that will modify the currently running system." +msgstr "" +"Эти скрипты предназначены для упрощения настройки пакетов после установки. " +"Они _не должны_ использоваться для запуска служб, остановки служб или " +"выполнения любых других команд, которые изменяют текущую работающую систему." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:255 +#, no-wrap +msgid "pkg-deinstall, pkg-pre-deinstall, and pkg-post-deinstall" +msgstr "pkg-deinstall, pkg-pre-deinstall и pkg-post-deinstall" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:258 +msgid "These scripts execute when a package is removed." +msgstr "Эти скрипты выполняются при удалении пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:263 +msgid "" +"The [.filename]#pkg-deinstall# script is run twice by `pkg delete`. The " +"first time as `${SH} pkg-deinstall ${PKGNAME} DEINSTALL` before the port is " +"de-installed and the second time as `${SH} pkg-deinstall ${PKGNAME} POST-" +"DEINSTALL` after the port has been de-installed. `$2` can be tested to " +"determine which mode the script is being run in. The `PKG_PREFIX` " +"environment variable is set to the package installation directory." +msgstr "" +"Скрипт [.filename]#pkg-deinstall# выполняется дважды командой `pkg delete`. " +"Первый раз как `${SH} pkg-deinstall ${PKGNAME} DEINSTALL` до удаления порта " +"и второй раз как `${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL` после " +"удаления порта. Переменная `$2` может быть проверена для определения режима, " +"в котором выполняется скрипт. Переменная окружения `PKG_PREFIX` " +"устанавливается в каталог установки пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:267 +msgid "" +"If using [.filename]#pkg-pre-deinstall# or [.filename]#pkg-post-deinstall# " +"instead, the script is run only once (before or after deinstalling the " +"package), with the single argument `${PKGNAME}`. Using [.filename]#pkg-pre-" +"deinstall.lua# or [.filename]#pkg-post-deinstall.lua# will run a lua script " +"instead of a shell script. Lua scripts run by `pkg` provide some extensions " +"and a few restrictions, both explained in man:pkg-lua-script[5]." +msgstr "" +"Если используется [.filename]#pkg-pre-deinstall# или [.filename]#pkg-post-" +"deinstall#, скрипт выполняется только один раз (до или после удаления " +"пакета) с единственным аргументом `${PKGNAME}`. Использование " +"[.filename]#pkg-pre-deinstall.lua# или [.filename]#pkg-post-deinstall.lua# " +"запустит скрипт на Lua вместо shell-скрипта. Скрипты на Lua, выполняемые " +"`pkg`, предоставляют некоторые расширения и ограничения, которые описаны в " +"man:pkg-lua-script[5]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:271 +msgid "" +"Using [.filename]#pkg-pre-deinstall# (or [.filename]#pkg-pre-deinstall.lua#) " +"and [.filename]#pkg-post-deinstall# (or [.filename]#pkg-post-deinstall.lua#) " +"is preferred to using [.filename]#pkg-deinstall#." +msgstr "" +"Использование [.filename]#pkg-pre-deinstall# (или [.filename]#pkg-pre-" +"deinstall.lua#) и [.filename]#pkg-post-deinstall# (или [.filename]#pkg-post-" +"deinstall.lua#) предпочтительнее, чем использование [.filename]#pkg-" +"deinstall#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:279 +msgid "" +"These scripts are here to simplify cleanup after package deinstallation. " +"They _must not_ be abused to start services, stop services, or run any other " +"commands that will modify the currently running system." +msgstr "" +"Эти скрипты предназначены для упрощения очистки после удаления пакетов. Они " +"_не должны_ использоваться для запуска служб, остановки служб или выполнения " +"любых других команд, которые изменяют текущую работающую систему." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:282 +#, no-wrap +msgid "Changing the Names of pkg-*" +msgstr "Изменение имён файлов [.filename]#pkg-*#" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:287 +msgid "" +"All the names of [.filename]#pkg-\\*# are defined using variables that can " +"be changed in the [.filename]#Makefile# if needed. This is especially " +"useful when sharing the same [.filename]#pkg-*# files among several ports or " +"when it is necessary to write to one of these files. See crossref:porting-" +"dads[porting-wrkdir,writing to places other than `WRKDIR`] for why it is a " +"bad idea to write directly into the directory containing the [.filename]#pkg-" +"*# files." +msgstr "" +"Все имена файлов [.filename]#pkg-\\*# определяются с помощью переменных, так " +"что вы можете изменить их, если это нужно, в вашем файле " +"[.filename]#Makefile#. Это особенно полезно, если вы используете одни и те " +"же файлы [.filename]#pkg-*# совместно между несколькими портами или пишете в " +"один из вышеперечисленных файлов (в главе о crossref:porting-dads[porting-" +"wrkdir,\"записи в каталоги, отличные от ``WRKDIR``\"] объяснено, почему не " +"рекомендуется осуществлять запись непосредственно в файлы [.filename]#pkg-" +"*#)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:290 +msgid "" +"Here is a list of variable names and their default values. (`PKGDIR` " +"defaults to `${MASTERDIR}`.)" +msgstr "" +"Вот список имён переменных и их значений по умолчанию. (Значение `PKGDIR` по " +"умолчанию равно `${MASTERDIR}`.)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:295 +#, no-wrap +msgid "Variable" +msgstr "Переменная" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:297 +#, no-wrap +msgid "Default value" +msgstr "Значение по умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:298 +#, no-wrap +msgid "`DESCR`" +msgstr "`DESCR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:300 +#, no-wrap +msgid "`${PKGDIR}/pkg-descr`" +msgstr "`${PKGDIR}/pkg-descr`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:301 +#, no-wrap +msgid "`PLIST`" +msgstr "`PLIST`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:303 +#, no-wrap +msgid "`${PKGDIR}/pkg-plist`" +msgstr "`${PKGDIR}/pkg-plist`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:304 +#, no-wrap +msgid "`PKGINSTALL`" +msgstr "`PKGINSTALL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:306 +#, no-wrap +msgid "`${PKGDIR}/pkg-install`" +msgstr "`${PKGDIR}/pkg-install`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:307 +#, no-wrap +msgid "`PKGPREINSTALL`" +msgstr "`PKGPREINSTALL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:309 +#, no-wrap +msgid "`${PKGDIR}/pkg-pre-install`" +msgstr "`${PKGDIR}/pkg-pre-install`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:310 +#, no-wrap +msgid "`PKGPOSTINSTALL`" +msgstr "`PKGPOSTINSTALL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:312 +#, no-wrap +msgid "`${PKGDIR}/pkg-post-install`" +msgstr "`${PKGDIR}/pkg-post-install`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:313 +#, no-wrap +msgid "`PKGDEINSTALL`" +msgstr "`PKGDEINSTALL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:315 +#, no-wrap +msgid "`${PKGDIR}/pkg-deinstall`" +msgstr "`${PKGDIR}/pkg-deinstall`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:316 +#, no-wrap +msgid "`PKGPREDEINSTALL`" +msgstr "`PKGPREDEINSTALL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:318 +#, no-wrap +msgid "`${PKGDIR}/pkg-pre-deinstall`" +msgstr "`${PKGDIR}/pkg-pre-deinstall`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:319 +#, no-wrap +msgid "`PKGPOSTDEINSTALL`" +msgstr "`PKGPOSTDEINSTALL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:321 +#, no-wrap +msgid "`${PKGDIR}/pkg-post-deinstall`" +msgstr "`${PKGDIR}/pkg-post-deinstall`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:322 +#, no-wrap +msgid "`PKGMESSAGE`" +msgstr "`PKGMESSAGE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:323 +#, no-wrap +msgid "`${PKGDIR}/pkg-message`" +msgstr "`${PKGDIR}/pkg-message`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:326 +#, no-wrap +msgid "Making Use of `SUB_FILES` and `SUB_LIST`" +msgstr "Использование `SUB_FILES` и `SUB_LIST`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:329 +msgid "" +"`SUB_FILES` and `SUB_LIST` are useful for dynamic values in port files, such " +"as the installation `PREFIX` in [.filename]#pkg-message#." +msgstr "" +"Переменные `SUB_FILES` и `SUB_LIST` подходят для задания в файлах порта " +"динамических значений, таких как `PREFIX` установки в [.filename]#pkg-" +"message#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:335 +msgid "" +"`SUB_FILES` specifies a list of files to be automatically modified. Each " +"[.filename]#file# in the `SUB_FILES` list must have a corresponding " +"[.filename]#file.in# present in `FILESDIR`. A modified version will be " +"created as [.filename]#${WRKDIR}/file#. Files defined as a value of " +"`USE_RC_SUBR` are automatically added to `SUB_FILES`. For the files " +"[.filename]#pkg-message#, [.filename]#pkg-install#, and [.filename]#pkg-" +"deinstall#, the corresponding Makefile variable is automatically set to " +"point to the processed version." +msgstr "" +"В переменной `SUB_FILES` указывается перечень файлов для автоматического " +"изменения. Каждый _file_ из перечня `SUB_FILES` обязан иметь соответствующий " +"[.filename]#file.in#, присутствующий в `FILESDIR`. Измененная версия будет " +"создана в `WRKDIR`. Файлы, определенные в качестве значения `USE_RC_SUBR` " +"(или устаревшего `USE_RCORDER`), автоматически добавляются в `SUB_FILES`. " +"Для файлов [.filename]#pkg-message#, [.filename]#pkg-install# и " +"[.filename]#pkg-deinstall# устанавливается соответствующая переменная " +"Makefile, указывающая на обработанную версию." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:340 +msgid "" +"`SUB_LIST` is a list of `VAR=VALUE` pairs. For each pair, `%%VAR%%` will be " +"replaced with `VALUE` in each file listed in `SUB_FILES`. Several common " +"pairs are automatically defined: `PREFIX`, `LOCALBASE`, `DATADIR`, " +"`DOCSDIR`, `EXAMPLESDIR`, `WWWDIR`, and `ETCDIR`. Any line beginning with " +"`@comment` followed by a space, will be deleted from resulting files after a " +"variable substitution." +msgstr "" +"Переменная `SUB_LIST` содержит перечень пар `VAR=VALUE`. В каждом файле из " +"`SUB_FILES` для каждой пары будет произведена замена `%%VAR%%` на `VALUE`. " +"Некоторые общие пары определяются автоматически: `PREFIX`, `LOCALBASE`, " +"`DATADIR`, `DOCSDIR`, `EXAMPLESDIR`, `WWWDIR` и `ETCDIR`. Любая строка, " +"начинающаяся с `@comment`, будет удалена из конечного файла после " +"подстановки переменной." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:342 +msgid "" +"This example replaces `%%ARCH%%` with the system architecture in a " +"[.filename]#pkg-message#:" +msgstr "" +"В следующем примере в [.filename]#pkg-message# будет сделана замена `%%ARCH%" +"%` на системную архитектуру:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:347 +#, no-wrap +msgid "" +"SUB_FILES=\tpkg-message\n" +"SUB_LIST=\tARCH=${ARCH}\n" +msgstr "" +"SUB_FILES=\tpkg-message\n" +"SUB_LIST=\tARCH=${ARCH}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:350 +msgid "" +"Note that for this example, [.filename]#pkg-message.in# must exist in " +"`FILESDIR`." +msgstr "" +"Обратите внимание, что в этом примере в `FILESDIR` обязательно существование " +"файла [.filename]#pkg-message.in#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:352 +msgid "Example of a good [.filename]#pkg-message.in#:" +msgstr "Пример хорошего [.filename]#pkg-message.in#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/pkg-files/_index.adoc:358 +#, no-wrap +msgid "" +"Now it is time to configure this package.\n" +"Copy %%PREFIX%%/shared/examples/putsy/%%ARCH%%.conf into your home directory\n" +"as .putsy.conf and edit it.\n" +msgstr "" +"Now it is time to configure this package.\n" +"Copy %%PREFIX%%/shared/examples/putsy/%%ARCH%%.conf into your home directory\n" +"as .putsy.conf and edit it.\n" diff --git a/documentation/content/ru/books/porters-handbook/plist/_index.adoc b/documentation/content/ru/books/porters-handbook/plist/_index.adoc --- a/documentation/content/ru/books/porters-handbook/plist/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/plist/_index.adoc @@ -1,11 +1,13 @@ --- -title: Глава 7. Продвинутые практики pkg-plist -prev: books/porters-handbook/special +description: 'Продвинутые практики pkg-plist' next: books/porters-handbook/pkg-files -showBookMenu: true -weight: 7 params: - path: "/books/porters-handbook/plist/" + path: /books/porters-handbook/plist/ +prev: books/porters-handbook/flavors +showBookMenu: true +tags: ["pkg-plist", "practices", "configuration"] +title: 'Глава 8. Продвинутые практики pkg-plist' +weight: 8 --- [[plist]] @@ -16,7 +18,7 @@ :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 7 +:sectnumoffset: 8 :partnums: :source-highlighter: rouge :experimental: @@ -49,32 +51,31 @@ [[plist-sub]] == Изменение содержимого [.filename]#pkg-plist# в зависимости от make-переменных -Некоторые порты, в частности, порты `p5-`, должны менять содержимое своих файлов [.filename]#pkg-plist# в зависимости от того, с какими параметрами они были отконфигурированы (или в зависимости от версии языка `perl` в случае портов `p5-`). Чтобы облегчить этот процесс, любые вхождения ключевых слов `%%OSREL%%`, `%%PERL_VER%%` и `%%PERL_VERSION%%` в файле [.filename]#pkg-plist# будут заменяться соответствующими значениями. Значением `%%OSREL%%` является номер версии операционной системы (например, `4.9`). `%%PERL_VERSION%%` и `%%PERL_VER%%` обозначают полный номер версии `perl` (например, `5.8.9`). Некоторые другие `%%VARS%%`, имеющие отношение к файлам документации порта, описаны в <>. +Некоторые порты, в частности, порты `p5-`, должны менять содержимое своих файлов [.filename]#pkg-plist# в зависимости от того, с какими параметрами они были отконфигурированы (или в зависимости от версии языка `perl` в случае портов `p5-`). Чтобы облегчить этот процесс, любые вхождения ключевых слов `%%OSREL%%`, `%%PERL_VER%%` и `%%PERL_VERSION%%` в файле [.filename]#pkg-plist# будут заменяться соответствующими значениями. Значением `%%OSREL%%` является номер версии операционной системы (например, `4.9`). `%%PERL_VERSION%%` и `%%PERL_VER%%` обозначают полный номер версии `perl` (например, `5.8.9`). Некоторые другие `%%VARS%%`, имеющие отношение к файлам документации порта, описаны в crossref:makefiles[install-documentation,соответствующем разделе]. Если вам нужно сделать другие подстановки, вы можете указать в переменной `PLIST_SUB` список пар `VAR=VALUE`, и все вхождения `%%VAR%%` в файле [.filename]#pkg-plist# будут заменяться на значение _VALUE_. -Например, если у вас имеется порт, который устанавливает много файлов в каталог, зависящий от версии, вы можете задать нечто типа +Например, если порт устанавливает множество файлов в подкаталоге, зависящем от версии, используйте заполнитель для версии, чтобы файл [.filename]#pkg-plist# не требовал перегенерации при каждом обновлении порта. Например, укажите: [.programlisting] .... -OCTAVE_VERSION= 2.0.13 +OCTAVE_VERSION= ${PORTREVISION} PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} .... в файле [.filename]#Makefile# и использовать `%%OCTAVE_VERSION%%` везде, где нужно указать номер версии в файле [.filename]#pkg-plist#. Таким образом, при обновлении порта вам не нужно будет менять десятки (а в некоторых случаях и сотни) строк в файле [.filename]#pkg-plist#. -Если ваш порт устанавливает файлы в соответствии с установленными в порту опциями, то обычным способом управления является добавление префиксов `%%TAG%%` для строк [.filename]#pkg-plist# с добавлением этого `TAG` в переменную `PLIST_SUB` внутри [.filename]#Makefile# со специальным значением `@comment`, которое указывает пакетным инструментам игнорировать эти строки: +Если файлы устанавливаются по условию в зависимости от опций, установленных в порте, обычный способ обработки — это добавление префикса `%%OPT%%` для строк в [.filename]#pkg-plist#, которые нужны при включении опции, или `%%NO_OPT%%`, когда опция отключена, а также добавление `OPTIONS_SUB=yes` в [.filename]#Makefile#. Подробнее см. crossref:makefiles[options_sub,`OPTIONS_SUB`]. + +Например, если есть файлы, которые устанавливаются только при включении опции `X11`, и в [.filename]#Makefile# указано: [.programlisting] .... -.if defined(WITH_X11) -PLIST_SUB+= X11="" -.else -PLIST_SUB+= X11="@comment " -.endif +OPTIONS_DEFINE= X11 +OPTIONS_SUB= yes .... -и в самом [.filename]#pkg-plist#: +В [.filename]#pkg-plist# укажите `%%X11%%` перед строками, которые устанавливаются только при включении опции, например: [.programlisting] .... @@ -83,7 +84,20 @@ Эта подстановка будет сделана между выполнением целей `pre-install` и `do-install`, посредством чтения файла [.filename]#PLIST# и записью в файл [.filename]#TMPPLIST# (по умолчанию это файл [.filename]#WRKDIR/.PLIST.mktmp#). Так что если ваш порт строит [.filename]#PLIST# на лету, делайте это во время или до выполнения цели `pre-install`. Кроме того, если вашему порту требуется отредактировать получающийся файл, делайте это в цели `post-install` изменением файла [.filename]#TMPPLIST#. -Другой способ изменения списка сборки порта основан на определении значений переменных `PLIST_FILES`, `PLIST_DIRS` и `PLIST_DIRSTRY`. Каждое из них рассматривается как перечень путей для записи в [.filename]#TMPPLIST# содержимого [.filename]#PLIST#. Имена, перечисленные в `PLIST_FILES`, `PLIST_DIRS` и `PLIST_DIRSTRY` подвергаются подстановке `%%VAR%%`, как описано выше. За исключением этого, имена из `PLIST_FILES` будут появляться в окончательном варианте перечня сборки без изменений, тогда как `@dirrm` и `@dirrmtry` будут соответственно предшествовать именам из `PLIST_DIRS` и `PLIST_DIRSTRY`. Для того чтобы изменения вступили в силу, `PLIST_FILES`, `PLIST_DIRS` и `PLIST_DIRSTRY` должны задаваться до того, как будет записываться [.filename]#TMPPLIST#, то есть в цели `pre-install` или ещё раньше. +Ещё один способ изменения списка упаковки порта основан на установке переменных `PLIST_FILES` и `PLIST_DIRS`. Значение каждой переменной рассматривается как список путей для записи в [.filename]#TMPPLIST# вместе с содержимым [.filename]#PLIST#. Хотя имена, перечисленные в `PLIST_FILES` и `PLIST_DIRS`, подлежат замене `%%_VAR_%%`, как описано выше, лучше использовать `${_VAR_}` напрямую. За исключением этого, имена из `PLIST_FILES` появятся в итоговом списке упаковки без изменений, тогда как к именам из `PLIST_DIRS` будет добавлен префикс `@dir`. Чтобы вступить в силу, `PLIST_FILES` и `PLIST_DIRS` должны быть установлены до записи [.filename]#TMPPLIST#, то есть в `pre-install` или ранее. + +Время от времени использования `OPTIONS_SUB` недостаточно. В таких случаях добавление специфичного `_TAG_` в `PLIST_SUB` внутри [.filename]#Makefile# со специальным значением `@comment` заставляет инструменты пакетирования игнорировать строку. Например, если некоторые файлы устанавливаются только при включённой опции `X11` и архитектуре `i386`: + +[.programlisting] +.... +.include + +.if ${PORT_OPTIONS:MX11} && ${ARCH} == "i386" +PLIST_SUB+= X11I386="" +.else +PLIST_SUB+= X11I386="@comment " +.endif +.... [[plist-cleaning]] == Пустые каталоги @@ -91,84 +105,504 @@ [[plist-dir-cleaning]] === Очистка пустых каталогов -Заставьте ваш порты удалять пустые каталоги при удалении. Обычно это достигается добавлением строк `@dirrm` для всех каталогов, которые создаются этим портом. Вам нужно удалить подкаталоги до того, как вы сможете удалить родительские каталоги. +При удалении порт должен удалить пустые каталоги, которые он создал. Большинство этих каталогов автоматически удаляются с помощью man:pkg[8], но для каталогов, созданных вне [.filename]#${PREFIX}#, или пустых каталогов требуется дополнительная работа. Обычно это делается добавлением строк `@dir` для таких каталогов. Подкаталоги должны быть удалены до удаления родительских каталогов. [.programlisting] .... - : -lib/X11/oneko/pixmaps/cat.xpm -lib/X11/oneko/sounds/cat.au - : -@dirrm lib/X11/oneko/pixmaps -@dirrm lib/X11/oneko/sounds -@dirrm lib/X11/oneko +[...] +@dir /var/games/oneko/saved-games +@dir /var/games/oneko .... -Однако, иногда `@dirrm` будет выдавать ошибки, потому что другие порты используют тот же самый подкаталог. Вы можете использовать `@dirrmtry` для удаления только пустых каталогов без выдачи предупреждений. +[[plist-dir-empty]] +=== Создание пустых каталогов + +Пустые каталоги, созданные во время установки порта, требуют особого внимания. Они должны присутствовать при создании пакета. Если они не созданы кодом порта, создайте их в [.filename]#Makefile#: [.programlisting] .... -@dirrmtry share/doc/gimp +post-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/some/directory .... -Эта команда не выведет никаких сообщений об ошибках и не вызовет аварийного завершения работы `pkg delete` (см. man:pkg-delete[8]), даже если каталог [.filename]#${PREFIX}/shared/doc/gimp# не пуст из-за того, что другие порты установили сюда какие-то файлы. - -[[plist-dir-empty]] -=== Создание пустых каталогов - -Пустым каталогам, создаваемым во время установки порта, нужно особое внимание. Они не будут созданы при установке пакета, потому что пакеты содержат только файлы, а `pkg add` и `pkg install` создают для них каталоги по мере надобности. Чтобы убедиться, что пустой каталог создается при установке пакета, добавьте эту строку в [.filename]#pkg-plist# перед соответствующей строкой `@dirrm`: +Добавьте директорию в [.filename]#pkg-plist# так же, как и любую другую. Например: [.programlisting] .... -@exec mkdir -p %D/shared/foo/templates +@dir some/directory .... [[plist-config]] -== Конфигурационные файлы - -Если ваш порт устанавливает конфигурационные файлы в каталог [.filename]#PREFIX/etc# (или куда-то еще), _не_ делайте их простого перечисления в файле [.filename]#pkg-plist#. Это приведёт к тому, что по команде `pkg delete` или при новой установке файлы, тщательно отредактированные и настроенные пользователем, будут уничтожены. +== Файлы конфигурации -Вместо этого установите файл(ы) с примерами с расширением [.filename]#filename.sample#. Затем скопируйте файл с примером на место настоящего файла конфигурации, если таковой ещё не существует. При деинсталляции удаляйте файл конфигурации только в том случае, если он идентичен файлу с расширением [.filename]#.sample#. Вам нужно управлять этим в [.filename]#Makefile# и в [.filename]#pkg-plist# (для установки из пакета). +Если порт устанавливает файлы конфигурации в [.filename]#PREFIX/etc# (или в другое место), _не_ указывайте их в [.filename]#pkg-plist#. Это приведёт к тому, что `pkg delete` удалит файлы, которые были тщательно отредактированы пользователем, а повторная установка перезапишет их. -Пример части [.filename]#Makefile#: +Вместо этого устанавливайте образцы файлов с расширением [.filename]#filename.sample#. Макрос `@sample` автоматизирует этот процесс; подробности его работы см. в разделе crossref:plist[plist-keywords-sample, Расширение списка пакетов с помощью ключевых слов]. Для каждого образца файла добавьте строку в [.filename]#pkg-plist#: [.programlisting] .... -post-install: - @if [ ! -f ${PREFIX}/etc/orbit.conf ]; then \ - ${CP} -p ${PREFIX}/etc/orbit.conf.sample ${STAGEDIR}${PREFIX}/etc/orbit.conf ; \ - fi +@sample etc/orbit.conf.sample .... -Добавьте по три строки в [.filename]#pkg-plist# для каждого конфигурационного файла, как показано ниже: +Если существует очень веская причина не устанавливать рабочий файл конфигурации по умолчанию, укажите только имя примера файла в [.filename]#pkg-plist#, без части `@sample` с последующим пробелом, и добавьте crossref:pkg-files[porting-message,сообщение], указывающее, что пользователь должен скопировать и отредактировать файл перед тем, как программа заработает. + +[TIP] +==== +Когда порт устанавливает свою конфигурацию в подкаталоге [.filename]#${PREFIX}/etc#, используйте `ETCDIR`, который по умолчанию равен `${PREFIX}/etc/${PORTNAME}`. Это значение может быть переопределено в [.filename]#Makefile# порта, если для порта принято использовать другой каталог. Макрос `%%ETCDIR%%` будет использоваться вместо этого в [.filename]#pkg-plist#. +==== + +[NOTE] +==== +Примеры конфигурационных файлов всегда должны иметь суффикс [.filename]#.sample#. Если по каким-то историческим причинам использование стандартного суффикса невозможно, или если примеры файлов взяты из другого каталога, используйте эту конструкцию: [.programlisting] .... -@unexec if cmp -s %D/etc/orbit.conf.sample %D/etc/orbit.conf; then rm -f %D/etc/orbit.conf; fi -etc/orbit.conf.sample -@exec if [ ! -f %D/etc/orbit.conf ] ; then cp -p %D/%F %B/orbit.conf; fi +@sample etc/orbit.conf-dist etc/orbit.conf .... -Данные строки являются упорядоченными. На этапе удаления файл с примером сравнивается с рабочим конфигурационным файлом. Полное совпадение означает отсутствие каких-либо изменений в рабочем файле со стороны пользователя, и следовательно этот файл может быть безопасно удалён. Так как файл с примером всё ещё должен существовать для сравнения, строка `@unexec` следует перед именем файла с примером конфигурации. На этапе установки, если рабочий файл конфигурации отсутствует, он копируется из файла с примером. Файл с примером обязательно должен быть установлен до операции копирования, поэтому строка `@exec` следует после имени файла с примером конфигурации. +или -Для получения дополнительного отладочного вывода на экран можно временно удалить параметр `-s` из команды man:cmp[1]. - -Для получения дополнительной инфорации по использованию `%D` и прочих маркеров подстановки обратитесь к странице Справочника man:pkg-create[8]. +[.programlisting] +.... +@sample %%EXAMPLESDIR%%/orbit.conf etc/orbit.conf +.... -Если существует действительно стоящая причина не устанавливать рабочий файл конфигурации по умолчанию, уберите строку `@exec` из [.filename]#pkg-plist# и добавьте <>, указывающее на то, что пользователь обязан скопировать и отредактировать этот файл перед тем, как программное обеспечение начнёт работать. +Формат: `@sample _файл-образец фактический-конфигурационный-файл_`. +==== [[plist-dynamic]] == Динамический или статический список упаковки -_Статический список упаковки_ - это список упаковки, который доступен в Коллекции Портов или как файл [.filename]#pkg-plist# (с подстановкой переменных или без неё), или как встроенный в [.filename]#Makefile# посредством `PLIST_FILES`, `PLIST_DIRS` и `PLIST_DIRSTRY`. Даже если содержимое является автоматически порождаемым при помощи инструмента или в результате выполнения цели в Makefile _до_ включения в Коллекцию Портов коммиттером, то список всё ещё будет считаться статическим, поскольку его можно узнать без необходимости скачивания или компиляции дистрибутива. +_Статический список упаковки_ — это список упаковки, который доступен в Коллекции Портов или как файл [.filename]#pkg-plist# (с подстановкой переменных или без неё), или как встроенный в [.filename]#Makefile# через `PLIST_FILES` и `PLIST_DIRS`. Даже если содержимое было автоматически сгенерировано инструментом или целью в Makefile _до_ включения в Коллекцию портов коммиттером (например, с использованием `make makeplist`), такой список всё равно считается статическим, поскольку его можно посмотреть без необходимости загрузки или компиляции distfile. -_Динамический список упаковки_ это список упаковки, который получается во время компиляции порта и строится на основе устанавливаемых файлов и каталогов. Узнать такой список невозможно до того, как исходный код портируемого приложения будет скачен и скомпилирован, или после запуска `make clean`. +_Динамический список упаковки_ — это список упаковки, который генерируется во время компиляции порта на основе установленных файлов и каталогов. Невозможно изучить его до загрузки и компиляции исходного кода портированного приложения или после выполнения команды `make clean`. -Хотя использование динамических список упаковки не запрещено, сопровождающие должны использовать статические списки упаковки везде, где это возможно, поскольку это позволяет пользователям выполнять man:grep[1] по доступным портам для обнаружения, например, который порт устанавливает определенный файл. Динамические списки должны быть использованы в основном для сложных портов, для которых изменения в списке упаковки кардинальным образом основаны на необязательных возможностях порта (и, таким образом, делая сопровождение статических списков упаковки невозможным), или портов, которые изменяют список упаковки на основе версии используемого им программного обеспечения (например, порты, которые порождают документы при помощи Javadoc). +Хотя использование динамических списков упаковки не запрещено, сопровождающие должны использовать статические списки упаковки везде, где это возможно, поскольку это позволяет пользователям выполнять man:grep[1] по доступным портам для обнаружения, например, какой порт устанавливает определенный файл. Динамические списки должны быть использованы в основном для сложных портов, для которых изменения в списке упаковки кардинальным образом основаны на возможностях порта, настраиваемых параметрами, (и, таким образом, делая сопровождение статических списков упаковки невозможным), или портов, которые изменяют список упаковки на основе версии используемого им программного обеспечения (например, порты, которые порождают документы при помощи Javadoc). [[plist-autoplist]] == Автоматическое создание списка упаковки -Первым делом убедитесь, что ваш порт практически полностью завершён и осталось создать только [.filename]#pkg-plist#. После этого вы можете запустить `make makeplist` для автоматического создания [.filename]#pkg-plist#. Содержимое этого файла должно быть дважды перепроверено. +Сначала убедитесь, что порт почти готов, и отсутствует только файл [.filename]#pkg-plist#. Запуск команды `make makeplist` покажет пример для файла [.filename]#pkg-plist#. Вывод `makeplist` необходимо дважды перепроверять на корректность, так как он пытается автоматически угадать некоторые вещи и может ошибаться. + +Файлы конфигурации пользователя должны устанавливаться как [.filename]#filename.sample#, как описано в разделе crossref:plist[plist-config,Файлы конфигурации]. [.filename]#info/dir# не должен быть указан, а соответствующие строки [.filename]#install-info# должны быть добавлены, как указано в разделе crossref:makefiles[makefile-info,info-файлы]. Любые библиотеки, устанавливаемые портом, должны быть перечислены, как указано в разделе crossref:special[porting-shlibs,общие библиотеки]. + +[[plist-autoplist-regex]] +=== Расширение `PLIST_SUB` с помощью регулярных выражений + +Строки, которые нужно заменить, иногда должны быть очень конкретными, чтобы избежать нежелательных замен. Это распространённая проблема с короткими значениями. + +Для решения этой проблемы для каждого `_PLACEHOLDER_=_значение_` можно задать `PLACEHOLDER_regex=регулярное_выражение`, где часть `_regex_` более точно соответствует _значению_. + +[[plist-autoplist-regex-ex1]] +.Использование PLIST_SUB с регулярными выражениями +[example] +==== + +Порты Perl могут устанавливать архитектурно-зависимые файлы в специальное дерево. В FreeBSD для упрощения портирования это дерево называется `mach`. Например, порт, который устанавливает файл, чей путь содержит `mach`, может иметь эту часть строки пути заменённой неправильными значениями. Рассмотрим этот [.filename]#Makefile#: + +[.programlisting] +.... +PORTNAME= Machine-Build +DISTVERSION= 1 +CATEGORIES= devel perl5 +MASTER_SITES= CPAN +PKGNAMEPREFIX= p5- + +MAINTAINER= perl@FreeBSD.org +COMMENT= Building machine +WWW= https://search.cpan.org/dist/Machine-Build + +USES= perl5 +USE_PERL5= configure + +PLIST_SUB= PERL_ARCH=mach +.... + +Файлы, установленные портом: + +[.programlisting] +.... +/usr/local/bin/machine-build +/usr/local/lib/perl5/site_perl/man/man1/machine-build.1.gz +/usr/local/lib/perl5/site_perl/man/man3/Machine::Build.3.gz +/usr/local/lib/perl5/site_perl/Machine/Build.pm +/usr/local/lib/perl5/site_perl/mach/5.20/Machine/Build/Build.so +.... + +Запуск `make makeplist` ошибочно создает: + +[.programlisting] +.... +bin/%%PERL_ARCH%%ine-build +%%PERL5_MAN1%%/%%PERL_ARCH%%ine-build.1.gz +%%PERL5_MAN3%%/Machine::Build.3.gz +%%SITE_PERL%%/Machine/Build.pm +%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so +.... + +Измените строку `PLIST_SUB` в [.filename]#Makefile# на: + +[.programlisting] +.... +PLIST_SUB= PERL_ARCH=mach \ + PERL_ARCH_regex=\bmach\b +.... + +Теперь `make makeplist` правильно генерирует: + +[.programlisting] +.... +bin/machine-build +%%PERL5_MAN1%%/machine-build.1.gz +%%PERL5_MAN3%%/Machine::Build.3.gz +%%SITE_PERL%%/Machine/Build.pm +%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so +.... + +==== + +[[plist-keywords]] +== Расширение списка пакетов используя ключевые слова + +Все ключевые слова также могут принимать необязательные аргументы в скобках. Аргументами являются владелец, группа и режим доступа. Этот аргумент применяется к файлу или каталогу, на который ссылаются. Чтобы изменить владельца, группу и режим доступа конфигурационного файла, используйте: + +[.programlisting] +.... +@sample(games,games,640) etc/config.sample +.... + +Аргументы являются необязательными. Если необходимо изменить только группу и режим, используйте: + +[.programlisting] +.... +@sample(,games,660) etc/config.sample +.... + +[WARNING] +==== + +Если ключевое слово используется в crossref:makefiles[makefile-options,необязательной записи], оно должно быть добавлено после помощника: + +[.programlisting] +.... +%%FOO%%@sample etc/orbit.conf.sample +.... + +Это происходит потому, что вспомогательные функции plist для опций используются для закомментирования строки, поэтому они должны быть указаны первыми. Дополнительную информацию см. в crossref:makefiles[options_sub,`OPTIONS_SUB`]. +==== + +[[plist-keywords-desktop-file-utils]] +=== `@desktop-file-utils` + +Будет выполнять `update-desktop-database -q` после установки и удаления. _Никогда_ не используйте напрямую, добавьте crossref:uses[uses-desktop-file-utils,`USES=desktop-file-utils`] в [.filename]#Makefile#. + +[[plist-keywords-fc]] +=== `@fc` _каталог_ + +Добавить запись `@dir` для каталога, переданного в качестве аргумента, и выполнить `fc-cache -fs` для этого каталога после установки и удаления. + +[[plist-keywords-fontsdir]] +=== `@fontsdir` _каталог_ + +Добавить запись `@dir` для каталога, переданного в качестве аргумента, и запустить `mkfontscale` и `mkfontdir` в этом каталоге после установки и удаления. Кроме того, при удалении удаляются кэш-файлы [.filename]#fonts.scale# и [.filename]#fonts.dir#, если они пусты. + +[[plist-keywords-info]] +=== `@info` _файл_ + +Добавляет файл, переданный в качестве аргумента, в plist и обновляет индекс документа info при установке и удалении. Кроме того, удаляет индекс, если он пуст, при удалении. Это никогда не следует использовать вручную, а только через `INFO`. Подробнее см. в crossref:makefiles[makefile-info,Файлы Info]. + +[[plist-keywords-kld]] +=== `@kld` _каталог_ + +Выполняет `kldxref` для каталога при установке и удалении. Дополнительно при удалении каталог будет удалён, если он пуст. + +[[plist-keywords-rmtry]] +=== `@rmtry` _файл_ + +Удаляет файл при удалении и не выдает ошибку, если файл отсутствует. + +[[plist-keywords-sample]] +=== `@sample` _файл_ [_файл_] + +Это используется для обработки установки файлов конфигурации, используя примеры файлов, поставляемых с пакетом. "Реальный" файл (не пример) — это либо второе имя файла, если оно присутствует, либо первое имя файла без расширения [.filename]#.sample#. + +Это делает три вещи. Во-первых, добавляет первый переданный файл в качестве аргумента, образец файла, в plist. Затем, при установке, если фактический файл не найден, копирует образец файла в фактический файл. И наконец, при удалении, удаляет фактический файл, если он не был изменён. Дополнительную информацию см. в crossref:plist[plist-config, Файлы конфигурации]. + +[[plist-keywords-shared-mime-info]] +=== `@shared-mime-info` _каталог_ + +Выполняет `update-mime-database` для указанного каталога при установке и удалении. + +[[plist-keywords-shell]] +=== `@shell` _файл_ + +Добавить файл, переданный в качестве аргумента, в plist. + +При установке добавить полный путь к _file_ в [.filename]#/etc/shells#, убедившись, что он не добавлен повторно. При удалении удалите его из [.filename]#/etc/shells#. + +[[plist-keywords-terminfo]] +=== `@terminfo` + +Не использовать самостоятельно. Если порт устанавливает файлы [.filename]#*.terminfo#, добавьте crossref:uses[uses-terminfo,`USES=terminfo`] в его [.filename]#Makefile#. + +При установке и удалении, если присутствует `tic`, обновить [.filename]#${PREFIX}/shared/misc/terminfo.db# из файлов [.filename]#*.terminfo# в [.filename]#${PREFIX}/shared/misc#. + +[[plist-keywords-base]] +=== Основные ключевые слова + +Есть несколько ключевых слов, которые жестко закодированы и документированы в man:pkg-create[8]. Для полноты изложения они также документированы здесь. + +[[plist-keywords-base-empty]] +==== `@` [_файл_] + +Ключевое слово `empty` является заполнителем, используемым, когда необходимо изменить владельца, группу или права доступа к файлу. Например, чтобы установить группу файла в `games` и добавить бит setgid, добавьте: + +[.programlisting] +.... +@(,games,2755) sbin/daemon +.... + +[[plist-keywords-base-exec]] +==== `@preexec` _команда_, `@postexec` _команда_, `@preunexec` _команда_, `@postunexec` _команда_ + +Выполнить _комманду_ как часть процесса установки или удаления пакета. + +`@preexec` _команда_:: +Выполнить _команду_ как часть скриптов [.filename]#pre-install#. + +`@postexec` _команда_:: +Выполнить _команду_ как часть скриптов [.filename]#post-install#. + +`@preunexec` _команда_:: +Выполнить _команду_ как часть скриптов [.filename]#pre-deinstall#. + +`@postunexec` _команда_:: +Выполнить _команду_ как часть скриптов [.filename]#post-deinstall#. + +Если в _команде_ содержится любая из этих последовательностей, они раскрываются непосредственно. Для следующих примеров предположим, что `@cwd` установлен в [.filename]#/usr/local#, а последним извлечённым файлом был [.filename]#bin/emacs#. + +`%F`:: +Раскрывается до последнего извлеченного имени файла (как указано). В примере [.filename]#bin/emacs#. + +`%D`:: +Раскрыть до текущего префикса директории, установленного с помощью `@cwd`. В этом примере [.filename]#/usr/local#. + +`%B`:: +Раскрыть до базового имени полного имени файла, то есть префикс текущего каталога плюс последняя спецификация файла, за вычетом имени файла в конце спецификации. В данном примере это будет [.filename]#/usr/local/bin#. + +`%f`:: +Раскрывается до части имени файла в полном квалифицированном имени, или противоположный случай для `%B`. В примере, [.filename]#emacs#. + +[IMPORTANT] +==== +Эти ключевые слова предназначены для помощи в настройке пакета, чтобы он был максимально готов к использованию. Они _не должны_ использоваться для запуска служб, остановки служб или выполнения любых других команд, которые изменяют текущую работающую систему. +==== + +[[plist-keywords-base-mode]] +==== `@mode` _режим_ + +Установить разрешения по умолчанию для всех последующих извлекаемых файлов в _режим_. Формат такой же, как используется в man:chmod[1]. Использование без аргумента вернёт разрешения по умолчанию (режим файла при упаковке). + +[IMPORTANT] +==== +Это должен быть числовой режим, например `644`, `4755` или `600`. Нельзя использовать относительный режим, например `u+s`. +==== + +[[plist-keywords-base-owner]] +==== `@owner` _пользователь_ + +Установить владельца по умолчанию для всех последующих файлов в _пользователь_. Использование без аргумента вернёт владельца по умолчанию (`root`). + +[[plist-keywords-base-group]] +==== `@group` _группа_ + +Установить группу-владельца по умолчанию для всех последующих файлов в _группу_. Использование без аргумента вернёт группу-владельца по умолчанию (`wheel`). + +[[plist-keywords-base-comment]] +==== `@comment` _строка_ + +Эта строка игнорируется при упаковке. + +[[plist-keywords-base-dir]] +==== `@dir` _каталог_ + +Объявить имя каталога. По умолчанию каталоги, созданные в `PREFIX` при установке пакета, автоматически удаляются. Используйте эту опцию, если необходимо создать пустой каталог в `PREFIX` или если каталогу требуется нестандартный владелец, группа или права. Каталоги за пределами `PREFIX` необходимо регистрировать. Например, [.filename]#/var/db/${PORTNAME}# требует записи `@dir`, тогда как [.filename]#${PREFIX}/shared/${PORTNAME}# — нет, если он содержит файлы или использует стандартные владельца, группу и права. + +[[plist-keywords-base-exec-deprecated]] +==== `@exec` _команда_, `@unexec` _команда_ (Устарело) + +Выполнить _команду_ как часть процесса установки или удаления. Рекомендуется использовать crossref:plist[plist-keywords-base-exec, `@preexec` _команда_, `@postexec` _команда_, `@preunexec` _команда_, `@postunexec` _команда_] вместо этого. + +[[plist-keywords-base-dirrm]] +==== `@dirrm` _каталог_ (Устарело) + +Объявить имя каталога для удаления при деинсталляции. По умолчанию каталоги, созданные в `PREFIX` при установке пакета, удаляются при его деинсталляции. + +[[plist-keywords-base-dirrmtry]] +==== `@dirrmtry` _каталог_ (Устарело) + +Объявить имя каталога для удаления, аналогично `@dirrm`, но не выводить предупреждение, если каталог не может быть удален. + +[[plist-keywords-creating-new]] +=== Создание новых ключевых слов + +Файлы списка пакетов могут быть расширены ключевыми словами, которые определены в каталоге [.filename]#${PORTSDIR}/Keywords#. Настройки каждого ключевого слова хранятся в файле UCL с именем [.filename]#keyword.ucl#. Файл должен содержать как минимум один из следующих разделов: + +* `attributes` +* `action` +* `pre-install` +* `post-install` +* `pre-deinstall` +* `post-deinstall` +* `pre-upgrade` +* `post-upgrade` + +[[plist-keywords-attributes]] +==== `attributes` + +Изменяет владельца, группу или режим доступа, используемые ключевым словом. Содержит ассоциативный массив, в котором возможными ключами являются `owner`, `group` и `mode`. Значениями являются, соответственно, имя пользователя, имя группы и режим доступа к файлу. Например: + +[.programlisting] +.... +attributes: { owner: "games", group: "games", mode: 0555 } +.... + +[[plist-keywords-action]] +==== `action` + +Определяет, что происходит с параметром ключевого слова. Содержит массив, где возможные значения: + +`setprefix`:: +Установите префикс для следующих записей в plist. + +`dir`:: +Зарегистрировать каталог для создания при установке и удаления при деинсталляции. + +`dirrm`:: +Зарегистрировать каталог для удаления при деинсталляции. Устарело. + +`dirrmtry`:: +Зарегистрировать каталог для попытки удаления при деинсталляции. Устарело. + +`file`:: +Зарегистрировать файл. + +`setmode`:: +Установить режим для следующих записей plist. + +`setowner`:: +Установить владельца для следующих записей plist. + +`setgroup`:: +Установить группу для следующих записей в plist. + +`comment`:: +Не выполняет никаких действий, эквивалентно отсутствию раздела `action`. + +`ignore_next`:: +Игнорировать следующую запись в plist. + +[[plist-keywords-arguments]] +==== `arguments` + +Если установлено значение `true`, добавляется обработка аргументов, разделяя всю строку, `%@`, на нумерованные аргументы, `%1`, `%2`, и так далее. Например, для такой строки: + +[.programlisting] +.... +@foo some.content other.content +.... + +`%1` и `%2` будут содержать: + +[.programlisting] +.... +some.content +other.content +.... + +Это также влияет на работу записи crossref:plist[plist-keywords-action,`action`]. Если аргументов больше одного, необходимо указать номер аргумента. Например: + +[.programlisting] +.... +actions: [file(1)] +.... + +[[plist-keywords-pre-post]] +==== `pre-install`, `post-install`, `pre-deinstall`, `post-deinstall`, `pre-upgrade`, `post-upgrade` + +Эти ключевые слова содержат man:sh[1] скрипт, который выполняется до или после установки, удаления или обновления пакета. В дополнение к обычным заполнителям `@exec %_foo_`, описанным в crossref:plist[plist-keywords-base-exec, `@preexec` _команда_, `@postexec` _команда_, `@preunexec` _команда_, `@postunexec` _команда_], существует новый заполнитель `%@`, который представляет аргумент ключевого слова. + +[[plist-keywords-examples]] +==== Примеры пользовательских ключевых слов + +[[plist-keywords-fc-example]] +.Пример ключевого слова `@dirrmtryecho` +[example] +==== + +Это ключевое слово выполняет две функции: добавляет строку `@dirrmtry _directory_` в список упаковки и сообщает о том, что директория удаляется при деинсталляции пакета. + +[.programlisting] +.... +actions: [dirrmtry] +post-deinstall: <>. Все библиотеки, устанавливаемые портом, должны быть перечислены так, как это описано в разделе о <>. +==== diff --git a/documentation/content/ru/books/porters-handbook/plist/_index.po b/documentation/content/ru/books/porters-handbook/plist/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/plist/_index.po @@ -0,0 +1,1731 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:1 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:14 +#, no-wrap +msgid "Advanced pkg-plist Practices" +msgstr "Продвинутые практики pkg-plist" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:1 +#, no-wrap +msgid "Chapter 8. Advanced pkg-plist Practices" +msgstr "Глава 8. Продвинутые практики pkg-plist" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:52 +#, no-wrap +msgid "Changing pkg-plist Based on Make Variables" +msgstr "Изменение содержимого [.filename]#pkg-plist# в зависимости от make-переменных" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:59 +msgid "" +"Some ports, particularly the `p5-` ports, need to change their " +"[.filename]#pkg-plist# depending on what options they are configured with " +"(or version of `perl`, in the case of `p5-` ports). To make this easy, any " +"instances in [.filename]#pkg-plist# of `%%OSREL%%`, `%%PERL_VER%%`, and `%" +"%PERL_VERSION%%` will be substituted appropriately. The value of `%%OSREL%" +"%` is the numeric revision of the operating system (for example, `4.9`). `%" +"%PERL_VERSION%%` and `%%PERL_VER%%` is the full version number of `perl` " +"(for example, `5.8.9`). Several other `%%_VARS_%%` related to port's " +"documentation files are described in crossref:makefiles[install-" +"documentation,the relevant section]." +msgstr "" +"Некоторые порты, в частности, порты `p5-`, должны менять содержимое своих " +"файлов [.filename]#pkg-plist# в зависимости от того, с какими параметрами " +"они были отконфигурированы (или в зависимости от версии языка `perl` в " +"случае портов `p5-`). Чтобы облегчить этот процесс, любые вхождения ключевых " +"слов `%%OSREL%%`, `%%PERL_VER%%` и `%%PERL_VERSION%%` в файле " +"[.filename]#pkg-plist# будут заменяться соответствующими значениями. " +"Значением `%%OSREL%%` является номер версии операционной системы (например, " +"`4.9`). `%%PERL_VERSION%%` и `%%PERL_VER%%` обозначают полный номер версии " +"`perl` (например, `5.8.9`). Некоторые другие `%%VARS%%`, имеющие отношение к " +"файлам документации порта, описаны в crossref:makefiles[install-" +"documentation,соответствующем разделе]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:61 +msgid "" +"To make other substitutions, set `PLIST_SUB` with a list of `_VAR=VALUE_` " +"pairs and instances of `%%_VAR_%%` will be substituted with _VALUE_ in " +"[.filename]#pkg-plist#." +msgstr "" +"Если вам нужно сделать другие подстановки, вы можете указать в переменной " +"`PLIST_SUB` список пар `VAR=VALUE`, и все вхождения `%%VAR%%` в файле " +"[.filename]#pkg-plist# будут заменяться на значение _VALUE_." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:64 +msgid "" +"For instance, if a port installs many files in a version-specific " +"subdirectory, use a placeholder for the version so that [.filename]#pkg-" +"plist# does not have to be regenerated every time the port is updated. For " +"example, set:" +msgstr "" +"Например, если порт устанавливает множество файлов в подкаталоге, зависящем " +"от версии, используйте заполнитель для версии, чтобы файл [.filename]#pkg-" +"plist# не требовал перегенерации при каждом обновлении порта. Например, " +"укажите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:69 +#, no-wrap +msgid "" +"OCTAVE_VERSION=\t${PORTREVISION}\n" +"PLIST_SUB=\tOCTAVE_VERSION=${OCTAVE_VERSION}\n" +msgstr "" +"OCTAVE_VERSION=\t${PORTREVISION}\n" +"PLIST_SUB=\tOCTAVE_VERSION=${OCTAVE_VERSION}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:73 +msgid "" +"in the [.filename]#Makefile# and use `%%OCTAVE_VERSION%%` wherever the " +"version shows up in [.filename]#pkg-plist#. When the port is upgraded, it " +"will not be necessary to edit dozens (or in some cases, hundreds) of lines " +"in [.filename]#pkg-plist#." +msgstr "" +"в файле [.filename]#Makefile# и использовать `%%OCTAVE_VERSION%%` везде, где " +"нужно указать номер версии в файле [.filename]#pkg-plist#. Таким образом, " +"при обновлении порта вам не нужно будет менять десятки (а в некоторых " +"случаях и сотни) строк в файле [.filename]#pkg-plist#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:76 +msgid "" +"If files are installed conditionally on the options set in the port, the " +"usual way of handling it is prefixing [.filename]#pkg-plist# lines with a `%" +"%OPT%%` for lines needed when the option is enabled, or `%%NO_OPT%%` when " +"the option is disabled, and adding `OPTIONS_SUB=yes` to the " +"[.filename]#Makefile#. See crossref:makefiles[options_sub,`OPTIONS_SUB`] " +"for more information." +msgstr "" +"Если файлы устанавливаются по условию в зависимости от опций, установленных " +"в порте, обычный способ обработки — это добавление префикса `%%OPT%%` для " +"строк в [.filename]#pkg-plist#, которые нужны при включении опции, или `%" +"%NO_OPT%%`, когда опция отключена, а также добавление `OPTIONS_SUB=yes` в " +"[.filename]#Makefile#. Подробнее см. " +"crossref:makefiles[options_sub,`OPTIONS_SUB`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:78 +msgid "" +"For instance, if there are files that are only installed when the `X11` " +"option is enabled, and [.filename]#Makefile# has:" +msgstr "" +"Например, если есть файлы, которые устанавливаются только при включении " +"опции `X11`, и в [.filename]#Makefile# указано:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:83 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tX11\n" +"OPTIONS_SUB=\tyes\n" +msgstr "" +"OPTIONS_DEFINE=\tX11\n" +"OPTIONS_SUB=\tyes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:86 +msgid "" +"In [.filename]#pkg-plist#, put `%%X11%%` in front of the lines only being " +"installed when the option is enabled, like this :" +msgstr "" +"В [.filename]#pkg-plist# укажите `%%X11%%` перед строками, которые " +"устанавливаются только при включении опции, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:90 +#, no-wrap +msgid "%%X11%%bin/foo-gui\n" +msgstr "%%X11%%bin/foo-gui\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:95 +msgid "" +"This substitution will be done between the `pre-install` and `do-install` " +"targets, by reading from [.filename]#PLIST# and writing to " +"[.filename]#TMPPLIST# (default: [.filename]#WRKDIR/.PLIST.mktmp#). So if " +"the port builds [.filename]#PLIST# on the fly, do so in or before `pre-" +"install`. Also, if the port needs to edit the resulting file, do so in " +"`post-install` to a file named [.filename]#TMPPLIST#." +msgstr "" +"Эта подстановка будет сделана между выполнением целей `pre-install` и `do-" +"install`, посредством чтения файла [.filename]#PLIST# и записью в файл " +"[.filename]#TMPPLIST# (по умолчанию это файл " +"[.filename]#WRKDIR/.PLIST.mktmp#). Так что если ваш порт строит " +"[.filename]#PLIST# на лету, делайте это во время или до выполнения цели `pre-" +"install`. Кроме того, если вашему порту требуется отредактировать " +"получающийся файл, делайте это в цели `post-install` изменением файла " +"[.filename]#TMPPLIST#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:101 +msgid "" +"Another way of modifying a port's packing list is based on setting the " +"variables `PLIST_FILES` and `PLIST_DIRS`. The value of each variable is " +"regarded as a list of pathnames to write to [.filename]#TMPPLIST# along with " +"[.filename]#PLIST# contents. While names listed in `PLIST_FILES` and " +"`PLIST_DIRS` are subject to `%%_VAR_%%` substitution as described above, it " +"is better to use the `${_VAR_}` directly. Except for that, names from " +"`PLIST_FILES` will appear in the final packing list unchanged, while `@dir` " +"will be prepended to names from `PLIST_DIRS`. To take effect, `PLIST_FILES` " +"and `PLIST_DIRS` must be set before [.filename]#TMPPLIST# is written, that " +"is, in `pre-install` or earlier." +msgstr "" +"Ещё один способ изменения списка упаковки порта основан на установке " +"переменных `PLIST_FILES` и `PLIST_DIRS`. Значение каждой переменной " +"рассматривается как список путей для записи в [.filename]#TMPPLIST# вместе с " +"содержимым [.filename]#PLIST#. Хотя имена, перечисленные в `PLIST_FILES` и " +"`PLIST_DIRS`, подлежат замене `%%_VAR_%%`, как описано выше, лучше " +"использовать `${_VAR_}` напрямую. За исключением этого, имена из " +"`PLIST_FILES` появятся в итоговом списке упаковки без изменений, тогда как к " +"именам из `PLIST_DIRS` будет добавлен префикс `@dir`. Чтобы вступить в силу, " +"`PLIST_FILES` и `PLIST_DIRS` должны быть установлены до записи " +"[.filename]#TMPPLIST#, то есть в `pre-install` или ранее." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:105 +msgid "" +"From time to time, using `OPTIONS_SUB` is not enough. In those cases, " +"adding a specific `_TAG_` to `PLIST_SUB` inside the [.filename]#Makefile# " +"with a special value of `@comment`, makes package tools to ignore the line. " +"For instance, if some files are only installed when the `X11` option is on " +"and the architecture is `i386`:" +msgstr "" +"Время от времени использования `OPTIONS_SUB` недостаточно. В таких случаях " +"добавление специфичного `_TAG_` в `PLIST_SUB` внутри [.filename]#Makefile# " +"со специальным значением `@comment` заставляет инструменты пакетирования " +"игнорировать строку. Например, если некоторые файлы устанавливаются только " +"при включённой опции `X11` и архитектуре `i386`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:109 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:115 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MX11} && ${ARCH} == \"i386\"\n" +"PLIST_SUB+=\tX11I386=\"\"\n" +".else\n" +"PLIST_SUB+=\tX11I386=\"@comment \"\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MX11} && ${ARCH} == \"i386\"\n" +"PLIST_SUB+=\tX11I386=\"\"\n" +".else\n" +"PLIST_SUB+=\tX11I386=\"@comment \"\n" +".endif\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:118 +#, no-wrap +msgid "Empty Directories" +msgstr "Пустые каталоги" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:121 +#, no-wrap +msgid "Cleaning Up Empty Directories" +msgstr "Очистка пустых каталогов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:127 +msgid "" +"When being de-installed, a port has to remove empty directories it created. " +"Most of these directories are removed automatically by man:pkg[8], but for " +"directories created outside of [.filename]#${PREFIX}#, or empty directories, " +"some more work needs to be done. This is usually accomplished by adding " +"`@dir` lines for those directories. Subdirectories must be deleted before " +"deleting parent directories." +msgstr "" +"При удалении порт должен удалить пустые каталоги, которые он создал. " +"Большинство этих каталогов автоматически удаляются с помощью man:pkg[8], но " +"для каталогов, созданных вне [.filename]#${PREFIX}#, или пустых каталогов " +"требуется дополнительная работа. Обычно это делается добавлением строк " +"`@dir` для таких каталогов. Подкаталоги должны быть удалены до удаления " +"родительских каталогов." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:133 +#, no-wrap +msgid "" +"[...]\n" +"@dir /var/games/oneko/saved-games\n" +"@dir /var/games/oneko\n" +msgstr "" +"[...]\n" +"@dir /var/games/oneko/saved-games\n" +"@dir /var/games/oneko\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:136 +#, no-wrap +msgid "Creating Empty Directories" +msgstr "Создание пустых каталогов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:141 +msgid "" +"Empty directories created during port installation need special attention. " +"They must be present when the package is created. If they are not created " +"by the port code, create them in the [.filename]#Makefile#:" +msgstr "" +"Пустые каталоги, созданные во время установки порта, требуют особого " +"внимания. Они должны присутствовать при создании пакета. Если они не созданы " +"кодом порта, создайте их в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:146 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${PREFIX}/some/directory\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${PREFIX}/some/directory\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:150 +msgid "" +"Add the directory to [.filename]#pkg-plist# like any other. For example:" +msgstr "" +"Добавьте директорию в [.filename]#pkg-plist# так же, как и любую другую. " +"Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:154 +#, no-wrap +msgid "@dir some/directory\n" +msgstr "@dir some/directory\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:157 +#, no-wrap +msgid "Configuration Files" +msgstr "Файлы конфигурации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:161 +msgid "" +"If the port installs configuration files to [.filename]#PREFIX/etc# (or " +"elsewhere) do _not_ list them in [.filename]#pkg-plist#. That will cause " +"`pkg delete` to remove files that have been carefully edited by the user, " +"and a re-installation will wipe them out." +msgstr "" +"Если порт устанавливает файлы конфигурации в [.filename]#PREFIX/etc# (или в " +"другое место), _не_ указывайте их в [.filename]#pkg-plist#. Это приведёт к " +"тому, что `pkg delete` удалит файлы, которые были тщательно отредактированы " +"пользователем, а повторная установка перезапишет их." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:165 +msgid "" +"Instead, install sample files with a [.filename]#filename.sample# " +"extension. The `@sample` macro automates this, see crossref:plist[plist-" +"keywords-sample, Expanding Package List with Keywords] for what it does " +"exactly. For each sample file, add a line to [.filename]#pkg-plist#:" +msgstr "" +"Вместо этого устанавливайте образцы файлов с расширением " +"[.filename]#filename.sample#. Макрос `@sample` автоматизирует этот процесс; " +"подробности его работы см. в разделе crossref:plist[plist-keywords-sample, " +"Расширение списка пакетов с помощью ключевых слов]. Для каждого образца " +"файла добавьте строку в [.filename]#pkg-plist#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:169 +#, no-wrap +msgid "@sample etc/orbit.conf.sample\n" +msgstr "@sample etc/orbit.conf.sample\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:173 +msgid "" +"If there is a very good reason not to install a working configuration file " +"by default, only list the sample filename in [.filename]#pkg-plist#, without " +"the `@sample` followed by a space part, and add a crossref:pkg-files[porting-" +"message,message] pointing out that the user must copy and edit the file " +"before the software will work." +msgstr "" +"Если существует очень веская причина не устанавливать рабочий файл " +"конфигурации по умолчанию, укажите только имя примера файла в " +"[.filename]#pkg-plist#, без части `@sample` с последующим пробелом, и " +"добавьте crossref:pkg-files[porting-message,сообщение], указывающее, что " +"пользователь должен скопировать и отредактировать файл перед тем, как " +"программа заработает." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:178 +msgid "" +"When a port installs its configuration in a subdirectory of [.filename]#$" +"{PREFIX}/etc#, use `ETCDIR`, which defaults to `${PREFIX}/etc/${PORTNAME}`, " +"it can be overridden in the ports [.filename]#Makefile# if there is a " +"convention for the port to use some other directory. The `%%ETCDIR%%` macro " +"will be used in its stead in [.filename]#pkg-plist#." +msgstr "" +"Когда порт устанавливает свою конфигурацию в подкаталоге [.filename]#$" +"{PREFIX}/etc#, используйте `ETCDIR`, который по умолчанию равен `${PREFIX}/" +"etc/${PORTNAME}`. Это значение может быть переопределено в " +"[.filename]#Makefile# порта, если для порта принято использовать другой " +"каталог. Макрос `%%ETCDIR%%` будет использоваться вместо этого в " +"[.filename]#pkg-plist#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:184 +msgid "" +"The sample configuration files should always have the [.filename]#.sample# " +"suffix. If for some historical reason using the standard suffix is not " +"possible, or if the sample files come from some other directory, use this " +"construct:" +msgstr "" +"Примеры конфигурационных файлов всегда должны иметь суффикс " +"[.filename]#.sample#. Если по каким-то историческим причинам использование " +"стандартного суффикса невозможно, или если примеры файлов взяты из другого " +"каталога, используйте эту конструкцию:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:188 +#, no-wrap +msgid "@sample etc/orbit.conf-dist etc/orbit.conf\n" +msgstr "@sample etc/orbit.conf-dist etc/orbit.conf\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:191 +msgid "or" +msgstr "или" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:195 +#, no-wrap +msgid "@sample %%EXAMPLESDIR%%/orbit.conf etc/orbit.conf\n" +msgstr "@sample %%EXAMPLESDIR%%/orbit.conf etc/orbit.conf\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:198 +msgid "The format is `@sample _sample-file actual-config-file_`." +msgstr "Формат: `@sample _файл-образец фактический-конфигурационный-файл_`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:201 +#, no-wrap +msgid "Dynamic Versus Static Package List" +msgstr "Динамический или статический список упаковки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:205 +msgid "" +"A _static package list_ is a package list which is available in the Ports " +"Collection either as [.filename]#pkg-plist# (with or without variable " +"substitution), or embedded into the [.filename]#Makefile# via `PLIST_FILES` " +"and `PLIST_DIRS`. Even if the contents are auto-generated by a tool or a " +"target in the Makefile _before_ the inclusion into the Ports Collection by a " +"committer (for example, using `make makeplist`), this is still considered a " +"static list, since it is possible to examine it without having to download " +"or compile the distfile." +msgstr "" +"_Статический список упаковки_ — это список упаковки, который доступен в " +"Коллекции Портов или как файл [.filename]#pkg-plist# (с подстановкой " +"переменных или без неё), или как встроенный в [.filename]#Makefile# через " +"`PLIST_FILES` и `PLIST_DIRS`. Даже если содержимое было автоматически " +"сгенерировано инструментом или целью в Makefile _до_ включения в Коллекцию " +"портов коммиттером (например, с использованием `make makeplist`), такой " +"список всё равно считается статическим, поскольку его можно посмотреть без " +"необходимости загрузки или компиляции distfile." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:208 +msgid "" +"A _dynamic package list_ is a package list which is generated at the time " +"the port is compiled based upon the files and directories which are " +"installed. It is not possible to examine it before the source code of the " +"ported application is downloaded and compiled, or after running a `make " +"clean`." +msgstr "" +"_Динамический список упаковки_ — это список упаковки, который генерируется " +"во время компиляции порта на основе установленных файлов и каталогов. " +"Невозможно изучить его до загрузки и компиляции исходного кода " +"портированного приложения или после выполнения команды `make clean`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:212 +msgid "" +"While the use of dynamic package lists is not forbidden, maintainers should " +"use static package lists wherever possible, as it enables users to " +"man:grep[1] through available ports to discover, for example, which port " +"installs a certain file. Dynamic lists should be primarily used for complex " +"ports where the package list changes drastically based upon optional " +"features of the port (and thus maintaining a static package list is " +"infeasible), or ports which change the package list based upon the version " +"of dependent software used. For example, ports which generate docs with " +"Javadoc." +msgstr "" +"Хотя использование динамических списков упаковки не запрещено, " +"сопровождающие должны использовать статические списки упаковки везде, где " +"это возможно, поскольку это позволяет пользователям выполнять man:grep[1] по " +"доступным портам для обнаружения, например, какой порт устанавливает " +"определенный файл. Динамические списки должны быть использованы в основном " +"для сложных портов, для которых изменения в списке упаковки кардинальным " +"образом основаны на возможностях порта, настраиваемых параметрами, (и, таким " +"образом, делая сопровождение статических списков упаковки невозможным), или " +"портов, которые изменяют список упаковки на основе версии используемого им " +"программного обеспечения (например, порты, которые порождают документы при " +"помощи Javadoc)." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:214 +#, no-wrap +msgid "Automated Package List Creation" +msgstr "Автоматическое создание списка упаковки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:219 +msgid "" +"First, make sure the port is almost complete, with only [.filename]#pkg-" +"plist# missing. Running `make makeplist` will show an example for " +"[.filename]#pkg-plist#. The output of `makeplist` must be double checked " +"for correctness as it tries to automatically guess a few things, and can get " +"it wrong." +msgstr "" +"Сначала убедитесь, что порт почти готов, и отсутствует только файл " +"[.filename]#pkg-plist#. Запуск команды `make makeplist` покажет пример для " +"файла [.filename]#pkg-plist#. Вывод `makeplist` необходимо дважды " +"перепроверять на корректность, так как он пытается автоматически угадать " +"некоторые вещи и может ошибаться." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:224 +msgid "" +"User configuration files should be installed as " +"[.filename]#filename.sample#, as it is described in crossref:plist[plist-" +"config, Configuration Files]. [.filename]#info/dir# must not be listed and " +"appropriate [.filename]#install-info# lines must be added as noted in the " +"crossref:makefiles[makefile-info,info files] section. Any libraries " +"installed by the port must be listed as specified in the " +"crossref:special[porting-shlibs,shared libraries] section." +msgstr "" +"Файлы конфигурации пользователя должны устанавливаться как " +"[.filename]#filename.sample#, как описано в разделе crossref:plist[plist-" +"config,Файлы конфигурации]. [.filename]#info/dir# не должен быть указан, а " +"соответствующие строки [.filename]#install-info# должны быть добавлены, как " +"указано в разделе crossref:makefiles[makefile-info,info-файлы]. Любые " +"библиотеки, устанавливаемые портом, должны быть перечислены, как указано в " +"разделе crossref:special[porting-shlibs,общие библиотеки]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:226 +#, no-wrap +msgid "Expanding `PLIST_SUB` with Regular Expressions" +msgstr "Расширение `PLIST_SUB` с помощью регулярных выражений" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:230 +msgid "" +"Strings to be replaced sometimes need to be very specific to avoid undesired " +"replacements. This is a common problem with shorter values." +msgstr "" +"Строки, которые нужно заменить, иногда должны быть очень конкретными, чтобы " +"избежать нежелательных замен. Это распространённая проблема с короткими " +"значениями." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:232 +msgid "" +"To address this problem, for each `_PLACEHOLDER_=_value_`, a " +"`PLACEHOLDER_regex=regex` can be set, with the `_regex_` part matching " +"_value_ more precisely." +msgstr "" +"Для решения этой проблемы для каждого `_PLACEHOLDER_=_значение_` можно " +"задать `PLACEHOLDER_regex=регулярное_выражение`, где часть `_regex_` более " +"точно соответствует _значению_." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:234 +#, no-wrap +msgid "Using PLIST_SUB with Regular Expressions" +msgstr "Использование PLIST_SUB с регулярными выражениями" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:242 +msgid "" +"Perl ports can install architecture dependent files in a specific tree. On " +"FreeBSD to ease porting, this tree is called `mach`. For example, a port " +"that installs a file whose path contains `mach` could have that part of the " +"path string replaced with the wrong values. Consider this " +"[.filename]#Makefile#:" +msgstr "" +"Порты Perl могут устанавливать архитектурно-зависимые файлы в специальное " +"дерево. В FreeBSD для упрощения портирования это дерево называется `mach`. " +"Например, порт, который устанавливает файл, чей путь содержит `mach`, может " +"иметь эту часть строки пути заменённой неправильными значениями. Рассмотрим " +"этот [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:250 +#, no-wrap +msgid "" +"PORTNAME=\tMachine-Build\n" +"DISTVERSION=\t1\n" +"CATEGORIES=\tdevel perl5\n" +"MASTER_SITES=\tCPAN\n" +"PKGNAMEPREFIX=\tp5-\n" +msgstr "" +"PORTNAME=\tMachine-Build\n" +"DISTVERSION=\t1\n" +"CATEGORIES=\tdevel perl5\n" +"MASTER_SITES=\tCPAN\n" +"PKGNAMEPREFIX=\tp5-\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:254 +#, no-wrap +msgid "" +"MAINTAINER=\tperl@FreeBSD.org\n" +"COMMENT=\tBuilding machine\n" +"WWW=\t\thttps://search.cpan.org/dist/Machine-Build\n" +msgstr "" +"MAINTAINER=\tperl@FreeBSD.org\n" +"COMMENT=\tBuilding machine\n" +"WWW=\t\thttps://search.cpan.org/dist/Machine-Build\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:257 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tconfigure\n" +msgstr "" +"USES=\t\tperl5\n" +"USE_PERL5=\tconfigure\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:259 +#, no-wrap +msgid "PLIST_SUB=\tPERL_ARCH=mach\n" +msgstr "PLIST_SUB=\tPERL_ARCH=mach\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:262 +msgid "The files installed by the port are:" +msgstr "Файлы, установленные портом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:270 +#, no-wrap +msgid "" +"/usr/local/bin/machine-build\n" +"/usr/local/lib/perl5/site_perl/man/man1/machine-build.1.gz\n" +"/usr/local/lib/perl5/site_perl/man/man3/Machine::Build.3.gz\n" +"/usr/local/lib/perl5/site_perl/Machine/Build.pm\n" +"/usr/local/lib/perl5/site_perl/mach/5.20/Machine/Build/Build.so\n" +msgstr "" +"/usr/local/bin/machine-build\n" +"/usr/local/lib/perl5/site_perl/man/man1/machine-build.1.gz\n" +"/usr/local/lib/perl5/site_perl/man/man3/Machine::Build.3.gz\n" +"/usr/local/lib/perl5/site_perl/Machine/Build.pm\n" +"/usr/local/lib/perl5/site_perl/mach/5.20/Machine/Build/Build.so\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:273 +msgid "Running `make makeplist` wrongly generates:" +msgstr "Запуск `make makeplist` ошибочно создает:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:281 +#, no-wrap +msgid "" +"bin/%%PERL_ARCH%%ine-build\n" +"%%PERL5_MAN1%%/%%PERL_ARCH%%ine-build.1.gz\n" +"%%PERL5_MAN3%%/Machine::Build.3.gz\n" +"%%SITE_PERL%%/Machine/Build.pm\n" +"%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" +msgstr "" +"bin/%%PERL_ARCH%%ine-build\n" +"%%PERL5_MAN1%%/%%PERL_ARCH%%ine-build.1.gz\n" +"%%PERL5_MAN3%%/Machine::Build.3.gz\n" +"%%SITE_PERL%%/Machine/Build.pm\n" +"%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:284 +msgid "Change the `PLIST_SUB` line from the [.filename]#Makefile# to:" +msgstr "Измените строку `PLIST_SUB` в [.filename]#Makefile# на:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:289 +#, no-wrap +msgid "" +"PLIST_SUB=\tPERL_ARCH=mach \\\n" +"\t\tPERL_ARCH_regex=\\bmach\\b\n" +msgstr "" +"PLIST_SUB=\tPERL_ARCH=mach \\\n" +"\t\tPERL_ARCH_regex=\\bmach\\b\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:292 +msgid "Now `make makeplist` correctly generates:" +msgstr "Теперь `make makeplist` правильно генерирует:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:300 +#, no-wrap +msgid "" +"bin/machine-build\n" +"%%PERL5_MAN1%%/machine-build.1.gz\n" +"%%PERL5_MAN3%%/Machine::Build.3.gz\n" +"%%SITE_PERL%%/Machine/Build.pm\n" +"%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" +msgstr "" +"bin/machine-build\n" +"%%PERL5_MAN1%%/machine-build.1.gz\n" +"%%PERL5_MAN3%%/Machine::Build.3.gz\n" +"%%SITE_PERL%%/Machine/Build.pm\n" +"%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:305 +#, no-wrap +msgid "Expanding Package List with Keywords" +msgstr "Расширение списка пакетов используя ключевые слова" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:311 +msgid "" +"All keywords can also take optional arguments in parentheses. The arguments " +"are owner, group, and mode. This argument is used on the file or directory " +"referenced. To change the owner, group, and mode of a configuration file, " +"use:" +msgstr "" +"Все ключевые слова также могут принимать необязательные аргументы в скобках. " +"Аргументами являются владелец, группа и режим доступа. Этот аргумент " +"применяется к файлу или каталогу, на который ссылаются. Чтобы изменить " +"владельца, группу и режим доступа конфигурационного файла, используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:315 +#, no-wrap +msgid "@sample(games,games,640) etc/config.sample\n" +msgstr "@sample(games,games,640) etc/config.sample\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:319 +msgid "" +"The arguments are optional. If only the group and mode need to be changed, " +"use:" +msgstr "" +"Аргументы являются необязательными. Если необходимо изменить только группу и " +"режим, используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:323 +#, no-wrap +msgid "@sample(,games,660) etc/config.sample\n" +msgstr "@sample(,games,660) etc/config.sample\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:329 +msgid "" +"If a keyword is used on an crossref:makefiles[makefile-options,optional] " +"entry, it must to be added after the helper:" +msgstr "" +"Если ключевое слово используется в crossref:makefiles[makefile-" +"options,необязательной записи], оно должно быть добавлено после помощника:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:333 +#, no-wrap +msgid "%%FOO%%@sample etc/orbit.conf.sample\n" +msgstr "%%FOO%%@sample etc/orbit.conf.sample\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:337 +msgid "" +"This is because the options plist helpers are used to comment out the line, " +"so they need to be put first. See " +"crossref:makefiles[options_sub,`OPTIONS_SUB`] for more information." +msgstr "" +"Это происходит потому, что вспомогательные функции plist для опций " +"используются для закомментирования строки, поэтому они должны быть указаны " +"первыми. Дополнительную информацию см. в " +"crossref:makefiles[options_sub,`OPTIONS_SUB`]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:340 +#, no-wrap +msgid "`@desktop-file-utils`" +msgstr "`@desktop-file-utils`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:344 +msgid "" +"Will run `update-desktop-database -q` after installation and " +"deinstallation. _Never_ use directly, add crossref:uses[uses-desktop-file-" +"utils,`USES=desktop-file-utils`] to the [.filename]#Makefile#." +msgstr "" +"Будет выполнять `update-desktop-database -q` после установки и удаления. " +"_Никогда_ не используйте напрямую, добавьте crossref:uses[uses-desktop-file-" +"utils,`USES=desktop-file-utils`] в [.filename]#Makefile#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:346 +#, no-wrap +msgid "`@fc` _directory_" +msgstr "`@fc` _каталог_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:349 +msgid "" +"Add a `@dir` entry for the directory passed as an argument, and run `fc-" +"cache -fs` on that directory after installation and deinstallation." +msgstr "" +"Добавить запись `@dir` для каталога, переданного в качестве аргумента, и " +"выполнить `fc-cache -fs` для этого каталога после установки и удаления." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:351 +#, no-wrap +msgid "`@fontsdir` _directory_" +msgstr "`@fontsdir` _каталог_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:355 +msgid "" +"Add a `@dir` entry for the directory passed as an argument, and run " +"`mkfontscale` and `mkfontdir` on that directory after installation and " +"deinstallation. Additionally, on deinstallation, it removes the " +"[.filename]#fonts.scale# and [.filename]#fonts.dir# cache files if they are " +"empty." +msgstr "" +"Добавить запись `@dir` для каталога, переданного в качестве аргумента, и " +"запустить `mkfontscale` и `mkfontdir` в этом каталоге после установки и " +"удаления. Кроме того, при удалении удаляются кэш-файлы " +"[.filename]#fonts.scale# и [.filename]#fonts.dir#, если они пусты." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:357 +#, no-wrap +msgid "`@info` _file_" +msgstr "`@info` _файл_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:363 +msgid "" +"Add the file passed as argument to the plist, and updates the info document " +"index on installation and deinstallation. Additionally, it removes the " +"index if empty on deinstallation. This should never be used manually, but " +"always through `INFO`. See crossref:makefiles[makefile-info,Info Files] for " +"more information." +msgstr "" +"Добавляет файл, переданный в качестве аргумента, в plist и обновляет индекс " +"документа info при установке и удалении. Кроме того, удаляет индекс, если он " +"пуст, при удалении. Это никогда не следует использовать вручную, а только " +"через `INFO`. Подробнее см. в crossref:makefiles[makefile-info,Файлы Info]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:365 +#, no-wrap +msgid "`@kld` _directory_" +msgstr "`@kld` _каталог_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:369 +msgid "" +"Runs `kldxref` on the directory on installation and deinstallation. " +"Additionally, on deinstallation, it will remove the directory if empty." +msgstr "" +"Выполняет `kldxref` для каталога при установке и удалении. Дополнительно при " +"удалении каталог будет удалён, если он пуст." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:371 +#, no-wrap +msgid "`@rmtry` _file_" +msgstr "`@rmtry` _файл_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:374 +msgid "" +"Will remove the file on deinstallation, and not give an error if the file is " +"not there." +msgstr "Удаляет файл при удалении и не выдает ошибку, если файл отсутствует." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:376 +#, no-wrap +msgid "`@sample` _file_ [_file_]" +msgstr "`@sample` _файл_ [_файл_]" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:380 +msgid "" +"This is used to handle installation of configuration files, through example " +"files bundled with the package. The \"actual\", non-sample, file is either " +"the second filename, if present, or the first filename without the " +"[.filename]#.sample# extension." +msgstr "" +"Это используется для обработки установки файлов конфигурации, используя " +"примеры файлов, поставляемых с пакетом. \"Реальный\" файл (не пример) — это " +"либо второе имя файла, если оно присутствует, либо первое имя файла без " +"расширения [.filename]#.sample#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:385 +msgid "" +"This does three things. First, add the first file passed as argument, the " +"sample file, to the plist. Then, on installation, if the actual file is not " +"found, copy the sample file to the actual file. And finally, on " +"deinstallation, remove the actual file if it has not been modified. See " +"crossref:plist[plist-config, Configuration Files] for more information." +msgstr "" +"Это делает три вещи. Во-первых, добавляет первый переданный файл в качестве " +"аргумента, образец файла, в plist. Затем, при установке, если фактический " +"файл не найден, копирует образец файла в фактический файл. И наконец, при " +"удалении, удаляет фактический файл, если он не был изменён. Дополнительную " +"информацию см. в crossref:plist[plist-config, Файлы конфигурации]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:387 +#, no-wrap +msgid "`@shared-mime-info` _directory_" +msgstr "`@shared-mime-info` _каталог_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:390 +msgid "" +"Runs `update-mime-database` on the directory on installation and " +"deinstallation." +msgstr "" +"Выполняет `update-mime-database` для указанного каталога при установке и " +"удалении." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:392 +#, no-wrap +msgid "`@shell` _file_" +msgstr "`@shell` _файл_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:395 +msgid "Add the file passed as argument to the plist." +msgstr "Добавить файл, переданный в качестве аргумента, в plist." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:398 +msgid "" +"On installation, add the full path to _file_ to [.filename]#/etc/shells#, " +"while making sure it is not added twice. On deinstallation, remove it from " +"[.filename]#/etc/shells#." +msgstr "" +"При установке добавить полный путь к _file_ в [.filename]#/etc/shells#, " +"убедившись, что он не добавлен повторно. При удалении удалите его из " +"[.filename]#/etc/shells#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:400 +#, no-wrap +msgid "`@terminfo`" +msgstr "`@terminfo`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:404 +msgid "" +"Do not use by itself. If the port installs [.filename]#*.terminfo# files, " +"add crossref:uses[uses-terminfo,`USES=terminfo`] to its " +"[.filename]#Makefile#." +msgstr "" +"Не использовать самостоятельно. Если порт устанавливает файлы " +"[.filename]#*.terminfo#, добавьте crossref:uses[uses-" +"terminfo,`USES=terminfo`] в его [.filename]#Makefile#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:406 +msgid "" +"On installation and deinstallation, if `tic` is present, refresh " +"[.filename]#${PREFIX}/shared/misc/terminfo.db# from the " +"[.filename]#*.terminfo# files in [.filename]#${PREFIX}/shared/misc#." +msgstr "" +"При установке и удалении, если присутствует `tic`, обновить [.filename]#$" +"{PREFIX}/shared/misc/terminfo.db# из файлов [.filename]#*.terminfo# в " +"[.filename]#${PREFIX}/shared/misc#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:408 +#, no-wrap +msgid "Base Keywords" +msgstr "Основные ключевые слова" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:411 +msgid "" +"There are a few keywords that are hardcoded, and documented in man:pkg-" +"create[8]. For the sake of completeness, they are also documented here." +msgstr "" +"Есть несколько ключевых слов, которые жестко закодированы и документированы " +"в man:pkg-create[8]. Для полноты изложения они также документированы здесь." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:413 +#, no-wrap +msgid "`@` [_file_]" +msgstr "`@` [_файл_]" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:417 +msgid "" +"The empty keyword is a placeholder to use when the file's owner, group, or " +"mode need to be changed. For example, to set the group of the file to " +"`games` and add the setgid bit, add:" +msgstr "" +"Ключевое слово `empty` является заполнителем, используемым, когда необходимо " +"изменить владельца, группу или права доступа к файлу. Например, чтобы " +"установить группу файла в `games` и добавить бит setgid, добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:421 +#, no-wrap +msgid "@(,games,2755) sbin/daemon\n" +msgstr "@(,games,2755) sbin/daemon\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:424 +#, no-wrap +msgid "`@preexec` _command_, `@postexec` _command_, `@preunexec` _command_, `@postunexec` _command_" +msgstr "`@preexec` _команда_, `@postexec` _команда_, `@preunexec` _команда_, `@postunexec` _команда_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:427 +msgid "" +"Execute _command_ as part of the package installation or deinstallation " +"process." +msgstr "Выполнить _комманду_ как часть процесса установки или удаления пакета." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:428 +#, no-wrap +msgid "`@preexec` _command_" +msgstr "`@preexec` _команда_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:430 +msgid "Execute _command_ as part of the [.filename]#pre-install# scripts." +msgstr "Выполнить _команду_ как часть скриптов [.filename]#pre-install#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:431 +#, no-wrap +msgid "`@postexec` _command_" +msgstr "`@postexec` _команда_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:433 +msgid "Execute _command_ as part of the [.filename]#post-install# scripts." +msgstr "Выполнить _команду_ как часть скриптов [.filename]#post-install#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:434 +#, no-wrap +msgid "`@preunexec` _command_" +msgstr "`@preunexec` _команда_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:436 +msgid "Execute _command_ as part of the [.filename]#pre-deinstall# scripts." +msgstr "Выполнить _команду_ как часть скриптов [.filename]#pre-deinstall#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:437 +#, no-wrap +msgid "`@postunexec` _command_" +msgstr "`@postunexec` _команда_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:439 +msgid "Execute _command_ as part of the [.filename]#post-deinstall# scripts." +msgstr "Выполнить _команду_ как часть скриптов [.filename]#post-deinstall#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:442 +msgid "" +"If _command_ contains any of these sequences somewhere in it, they are " +"expanded inline. For these examples, assume that `@cwd` is set to " +"[.filename]#/usr/local# and the last extracted file was [.filename]#bin/" +"emacs#." +msgstr "" +"Если в _команде_ содержится любая из этих последовательностей, они " +"раскрываются непосредственно. Для следующих примеров предположим, что `@cwd` " +"установлен в [.filename]#/usr/local#, а последним извлечённым файлом был " +"[.filename]#bin/emacs#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:443 +#, no-wrap +msgid "`%F`" +msgstr "`%F`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:446 +msgid "" +"Expand to the last filename extracted (as specified). In the example case " +"[.filename]#bin/emacs#." +msgstr "" +"Раскрывается до последнего извлеченного имени файла (как указано). В примере " +"[.filename]#bin/emacs#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:447 +#, no-wrap +msgid "`%D`" +msgstr "`%D`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:450 +msgid "" +"Expand to the current directory prefix, as set with `@cwd`. In the example " +"case [.filename]#/usr/local#." +msgstr "" +"Раскрыть до текущего префикса директории, установленного с помощью `@cwd`. В " +"этом примере [.filename]#/usr/local#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:451 +#, no-wrap +msgid "`%B`" +msgstr "`%B`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:454 +msgid "" +"Expand to the basename of the fully qualified filename, that is, the current " +"directory prefix plus the last filespec, minus the trailing filename. In " +"the example case, that would be [.filename]#/usr/local/bin#." +msgstr "" +"Раскрыть до базового имени полного имени файла, то есть префикс текущего " +"каталога плюс последняя спецификация файла, за вычетом имени файла в конце " +"спецификации. В данном примере это будет [.filename]#/usr/local/bin#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:455 +#, no-wrap +msgid "`%f`" +msgstr "`%f`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:458 +msgid "" +"Expand to the filename part of the fully qualified name, or the converse of " +"`%B`. In the example case, [.filename]#emacs#." +msgstr "" +"Раскрывается до части имени файла в полном квалифицированном имени, или " +"противоположный случай для `%B`. В примере, [.filename]#emacs#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:463 +msgid "" +"These keywords are here to help you set up the package so that it is as " +"ready to use as possible. They _must not_ be abused to start services, stop " +"services, or run any other commands that will modify the currently running " +"system." +msgstr "" +"Эти ключевые слова предназначены для помощи в настройке пакета, чтобы он был " +"максимально готов к использованию. Они _не должны_ использоваться для " +"запуска служб, остановки служб или выполнения любых других команд, которые " +"изменяют текущую работающую систему." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:466 +#, no-wrap +msgid "`@mode` _mode_" +msgstr "`@mode` _режим_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:471 +msgid "" +"Set default permission for all subsequently extracted files to _mode_. " +"Format is the same as that used by man:chmod[1]. Use without an arg to set " +"back to default permissions (mode of the file while being packed)." +msgstr "" +"Установить разрешения по умолчанию для всех последующих извлекаемых файлов в " +"_режим_. Формат такой же, как используется в man:chmod[1]. Использование без " +"аргумента вернёт разрешения по умолчанию (режим файла при упаковке)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:476 +msgid "" +"This must be a numeric mode, like `644`, `4755`, or `600`. It cannot be a " +"relative mode like `u+s`." +msgstr "" +"Это должен быть числовой режим, например `644`, `4755` или `600`. Нельзя " +"использовать относительный режим, например `u+s`." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:479 +#, no-wrap +msgid "`@owner` _user_" +msgstr "`@owner` _пользователь_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:483 +msgid "" +"Set default ownership for all subsequent files to _user_. Use without an " +"argument to set back to default ownership (`root`)." +msgstr "" +"Установить владельца по умолчанию для всех последующих файлов в " +"_пользователь_. Использование без аргумента вернёт владельца по умолчанию " +"(`root`)." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:485 +#, no-wrap +msgid "`@group` _group_" +msgstr "`@group` _группа_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:489 +msgid "" +"Set default group ownership for all subsequent files to _group_. Use " +"without an arg to set back to default group ownership (`wheel`)." +msgstr "" +"Установить группу-владельца по умолчанию для всех последующих файлов в " +"_группу_. Использование без аргумента вернёт группу-владельца по умолчанию " +"(`wheel`)." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:491 +#, no-wrap +msgid "`@comment` _string_" +msgstr "`@comment` _строка_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:494 +msgid "This line is ignored when packing." +msgstr "Эта строка игнорируется при упаковке." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:496 +#, no-wrap +msgid "`@dir` _directory_" +msgstr "`@dir` _каталог_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:502 +msgid "" +"Declare directory name. By default, directories created under `PREFIX` by a " +"package installation are automatically removed. Use this when an empty " +"directory under `PREFIX` needs to be created, or when the directory needs to " +"have non default owner, group, or mode. Directories outside of `PREFIX` " +"need to be registered. For example, [.filename]#/var/db/${PORTNAME}# needs " +"to have a `@dir` entry whereas [.filename]#${PREFIX}/shared/${PORTNAME}# " +"does not if it contains files or uses the default owner, group, and mode." +msgstr "" +"Объявить имя каталога. По умолчанию каталоги, созданные в `PREFIX` при " +"установке пакета, автоматически удаляются. Используйте эту опцию, если " +"необходимо создать пустой каталог в `PREFIX` или если каталогу требуется " +"нестандартный владелец, группа или права. Каталоги за пределами `PREFIX` " +"необходимо регистрировать. Например, [.filename]#/var/db/${PORTNAME}# " +"требует записи `@dir`, тогда как [.filename]#${PREFIX}/shared/${PORTNAME}# — " +"нет, если он содержит файлы или использует стандартные владельца, группу и " +"права." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:504 +#, no-wrap +msgid "`@exec` _command_, `@unexec` _command_ (Deprecated)" +msgstr "`@exec` _команда_, `@unexec` _команда_ (Устарело)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:508 +msgid "" +"Execute _command_ as part of the installation or deinstallation process. " +"Please use crossref:plist[plist-keywords-base-exec, `@preexec` _command_, " +"`@postexec` _command_, `@preunexec` _command_, `@postunexec` _command_] " +"instead." +msgstr "" +"Выполнить _команду_ как часть процесса установки или удаления. Рекомендуется " +"использовать crossref:plist[plist-keywords-base-exec, `@preexec` _команда_, " +"`@postexec` _команда_, `@preunexec` _команда_, `@postunexec` _команда_] " +"вместо этого." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:510 +#, no-wrap +msgid "`@dirrm` _directory_ (Deprecated)" +msgstr "`@dirrm` _каталог_ (Устарело)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:514 +msgid "" +"Declare directory name to be deleted at deinstall time. By default, " +"directories created under `PREFIX` by a package installation are deleted " +"when the package is deinstalled." +msgstr "" +"Объявить имя каталога для удаления при деинсталляции. По умолчанию каталоги, " +"созданные в `PREFIX` при установке пакета, удаляются при его деинсталляции." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:516 +#, no-wrap +msgid "`@dirrmtry` _directory_ (Deprecated)" +msgstr "`@dirrmtry` _каталог_ (Устарело)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:519 +msgid "" +"Declare directory name to be removed, as for `@dirrm`, but does not issue a " +"warning if the directory cannot be removed." +msgstr "" +"Объявить имя каталога для удаления, аналогично `@dirrm`, но не выводить " +"предупреждение, если каталог не может быть удален." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:521 +#, no-wrap +msgid "Creating New Keywords" +msgstr "Создание новых ключевых слов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:526 +msgid "" +"Package list files can be extended by keywords that are defined in the " +"[.filename]#${PORTSDIR}/Keywords# directory. The settings for each keyword " +"are stored in a UCL file named [.filename]#keyword.ucl#. The file must " +"contain at least one of these sections:" +msgstr "" +"Файлы списка пакетов могут быть расширены ключевыми словами, которые " +"определены в каталоге [.filename]#${PORTSDIR}/Keywords#. Настройки каждого " +"ключевого слова хранятся в файле UCL с именем [.filename]#keyword.ucl#. Файл " +"должен содержать как минимум один из следующих разделов:" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:528 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:537 +#, no-wrap +msgid "`attributes`" +msgstr "`attributes`" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:529 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:550 +#, no-wrap +msgid "`action`" +msgstr "`action`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:530 +msgid "`pre-install`" +msgstr "`pre-install`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:531 +msgid "`post-install`" +msgstr "`post-install`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:532 +msgid "`pre-deinstall`" +msgstr "`pre-deinstall`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:533 +msgid "`post-deinstall`" +msgstr "`post-deinstall`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:534 +msgid "`pre-upgrade`" +msgstr "`pre-upgrade`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:535 +msgid "`post-upgrade`" +msgstr "`post-upgrade`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:543 +msgid "" +"Changes the owner, group, or mode used by the keyword. Contains an " +"associative array where the possible keys are `owner`, `group`, and `mode`. " +"The values are, respectively, a user name, a group name, and a file mode. " +"For example:" +msgstr "" +"Изменяет владельца, группу или режим доступа, используемые ключевым словом. " +"Содержит ассоциативный массив, в котором возможными ключами являются " +"`owner`, `group` и `mode`. Значениями являются, соответственно, имя " +"пользователя, имя группы и режим доступа к файлу. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:547 +#, no-wrap +msgid "attributes: { owner: \"games\", group: \"games\", mode: 0555 }\n" +msgstr "attributes: { owner: \"games\", group: \"games\", mode: 0555 }\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:553 +msgid "" +"Defines what happens to the keyword's parameter. Contains an array where the " +"possible values are:" +msgstr "" +"Определяет, что происходит с параметром ключевого слова. Содержит массив, " +"где возможные значения:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:554 +#, no-wrap +msgid "`setprefix`" +msgstr "`setprefix`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:556 +msgid "Set the prefix for the next plist entries." +msgstr "Установите префикс для следующих записей в plist." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:557 +#, no-wrap +msgid "`dir`" +msgstr "`dir`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:559 +msgid "Register a directory to be created on install and removed on deinstall." +msgstr "" +"Зарегистрировать каталог для создания при установке и удаления при " +"деинсталляции." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:560 +#, no-wrap +msgid "`dirrm`" +msgstr "`dirrm`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:563 +msgid "Register a directory to be deleted on deinstall. Deprecated." +msgstr "Зарегистрировать каталог для удаления при деинсталляции. Устарело." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:564 +#, no-wrap +msgid "`dirrmtry`" +msgstr "`dirrmtry`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:567 +msgid "Register a directory to try and deleted on deinstall. Deprecated." +msgstr "" +"Зарегистрировать каталог для попытки удаления при деинсталляции. Устарело." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:568 +#, no-wrap +msgid "`file`" +msgstr "`file`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:570 +msgid "Register a file." +msgstr "Зарегистрировать файл." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:571 +#, no-wrap +msgid "`setmode`" +msgstr "`setmode`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:573 +msgid "Set the mode for the next plist entries." +msgstr "Установить режим для следующих записей plist." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:574 +#, no-wrap +msgid "`setowner`" +msgstr "`setowner`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:576 +msgid "Set the owner for the next plist entries." +msgstr "Установить владельца для следующих записей plist." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:577 +#, no-wrap +msgid "`setgroup`" +msgstr "`setgroup`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:579 +msgid "Set the group for the next plist entries." +msgstr "Установить группу для следующих записей в plist." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:580 +#, no-wrap +msgid "`comment`" +msgstr "`comment`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:582 +msgid "Does not do anything, equivalent to not entering an `action` section." +msgstr "" +"Не выполняет никаких действий, эквивалентно отсутствию раздела `action`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:583 +#, no-wrap +msgid "`ignore_next`" +msgstr "`ignore_next`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:585 +msgid "Ignore the next entry in the plist." +msgstr "Игнорировать следующую запись в plist." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:587 +#, no-wrap +msgid "`arguments`" +msgstr "`arguments`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:591 +msgid "" +"If set to `true`, adds argument handling, splitting the whole line, `%@`, " +"into numbered arguments, `%1`, `%2`, and so on. For example, for this line:" +msgstr "" +"Если установлено значение `true`, добавляется обработка аргументов, разделяя " +"всю строку, `%@`, на нумерованные аргументы, `%1`, `%2`, и так далее. " +"Например, для такой строки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:595 +#, no-wrap +msgid "@foo some.content other.content\n" +msgstr "@foo some.content other.content\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:598 +msgid "`%1` and `%2` will contain:" +msgstr "`%1` и `%2` будут содержать:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:603 +#, no-wrap +msgid "" +"some.content\n" +"other.content\n" +msgstr "" +"some.content\n" +"other.content\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:608 +msgid "" +"It also affects how the crossref:plist[plist-keywords-action,`action`] entry " +"works. When there is more than one argument, the argument number must be " +"specified. For example:" +msgstr "" +"Это также влияет на работу записи crossref:plist[plist-keywords-" +"action,`action`]. Если аргументов больше одного, необходимо указать номер " +"аргумента. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:612 +#, no-wrap +msgid "actions: [file(1)]\n" +msgstr "actions: [file(1)]\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:615 +#, no-wrap +msgid "`pre-install`, `post-install`, `pre-deinstall`, `post-deinstall`, `pre-upgrade`, `post-upgrade`" +msgstr "`pre-install`, `post-install`, `pre-deinstall`, `post-deinstall`, `pre-upgrade`, `post-upgrade`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:620 +msgid "" +"These keywords contains a man:sh[1] script to be executed before or after " +"installation, deinstallation, or upgrade of the package. In addition to the " +"usual `@exec %_foo_` placeholders described in crossref:plist[plist-keywords-" +"base-exec, `@preexec` _command_, `@postexec` _command_, `@preunexec` " +"_command_, `@postunexec` _command_], there is a new one, `%@`, which " +"represents the argument of the keyword." +msgstr "" +"Эти ключевые слова содержат man:sh[1] скрипт, который выполняется до или " +"после установки, удаления или обновления пакета. В дополнение к обычным " +"заполнителям `@exec %_foo_`, описанным в crossref:plist[plist-keywords-base-" +"exec, `@preexec` _команда_, `@postexec` _команда_, `@preunexec` _команда_, " +"`@postunexec` _команда_], существует новый заполнитель `%@`, который " +"представляет аргумент ключевого слова." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:622 +#, no-wrap +msgid "Custom Keyword Examples" +msgstr "Примеры пользовательских ключевых слов" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:625 +#, no-wrap +msgid "Example of a `@dirrmtryecho` Keyword" +msgstr "Пример ключевого слова `@dirrmtryecho`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:630 +msgid "" +"This keyword does two things, it adds a `@dirrmtry _directory_` line to the " +"packing list, and echoes the fact that the directory is removed when " +"deinstalling the package." +msgstr "" +"Это ключевое слово выполняет две функции: добавляет строку `@dirrmtry " +"_directory_` в список упаковки и сообщает о том, что директория удаляется " +"при деинсталляции пакета." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/plist/_index.adoc:637 +#, no-wrap +msgid "" +"actions: [dirrmtry]\n" +"post-deinstall: <>, но не перезаписывая их. +Не пишите ничего в файлы вне каталога `WRKDIR`. Каталог `WRKDIR` является единственным местом, которое гарантированно будет доступно для записи во время построения порта (обратитесь к главе об extref:{handbook}[установке портов с CDROM, PORTS-CD] за примером построения портов из дерева, доступного только для чтения). Если вам нужно изменить какой-либо из файлов [.filename]##pkg-*##, сделайте это, crossref:pkg-files[pkg-names,переопределив переменную], но не перезаписывая их. [[porting-wrkdirprefix]] == `WRKDIRPREFIX` -Добейтесь того, чтобы ваш порт принимал во внимание значение переменной `WRKDIRPREFIX`. Большинство портов об этом не заботятся. В частности, если вы обращаетесь к каталогу `WRKDIR` другого порта, заметьте, что его правильным местоположением является [.filename]#WRKDIRPREFIXPORTSDIR/subdir/name/work#, а не [.filename]#PORTSDIR/subdir/work# или [.filename]#.CURDIR/../../subdir/name/work# мли что-то подобное. - -Кроме того, если вы сами задаете `WRKDIR`, то должны поставить перед ним знак `${WRKDIRPREFIX}${.CURDIR}`. +Добейтесь того, чтобы ваш порт принимал во внимание значение переменной `WRKDIRPREFIX`. Большинство портов об этом не заботятся. В частности, если вы обращаетесь к каталогу `WRKDIR` другого порта, заметьте, что его правильным местоположением является [.filename]#WRKDIRPREFIXPORTSDIR/subdir/name/work#, а не [.filename]#PORTSDIR/subdir/work# или [.filename]#.CURDIR/../../subdir/name/work# мли что-то подобное. Кроме того, если вы сами задаете `WRKDIR`, то должны поставить перед ним знак `${WRKDIRPREFIX}${.CURDIR}`. [[porting-versions]] == Различение операционных систем и версий ОС -Вы можете встретиться с кодом, который требует модификаций или условной компиляции в зависимости от того, с какой версией FreeBSD Unix он работает. Предпочтительным способом отделения кода для версий FreeBSD является использование макросов {freebsd-version} и {freebsd}, определённых в http://svnweb.freebsd.org/base/head/sys/sys/param.h?view=markup[sys/param.h]. Если этот файл не подключен, добавьте код +Вы можете встретиться с кодом, который требует модификаций или условной компиляции в зависимости от того, с какой версией FreeBSD Unix он работает. Предпочтительным способом отделения кода для версий FreeBSD является использование макросов {freebsd-version} и {freebsd}, определённых в https://cgit.freebsd.org/src/tree/sys/sys/param.h[sys/param.h]. Если этот файл не подключен, добавьте код [.programlisting] .... @@ -83,17 +83,19 @@ .... #if __FreeBSD__ >= 9 # if __FreeBSD_version >= 901000 - /* здесь особый код для версий 9.1+ */ + /* 9.1+ release specific code here */ # endif #endif .... +Полный список значений `{freebsd-version}` доступен в crossref:versions[versions,Значения __FreeBSD_version]. + [[dads-after-port-mk]] -== Написание чего-либо после [.filename]#bsd.port.mk# +== Написание чего-либо после bsd.port.mk Не пишите ничего после строки `.include `. Этой строки можно избежать, включив в где-то в середину вашего файла [.filename]#Makefile# файл [.filename]#bsd.port.pre.mk#, и файл [.filename]#bsd.port.post.mk# в конец. -[NOTE] +[IMPORTANT] ==== Вам нужно включить либо пару файлов [.filename]#bsd.port.pre.mk#/[.filename]#bsd.port.post.mk#, либо только [.filename]#bsd.port.mk#; не используйте оба этих метода одновременно. ==== @@ -118,13 +120,13 @@ |Версия релиза операционной системы (например, `2.1.5` или `2.2.7`) |`OSVERSION` -|Версия операционной системы в виде числа, та же, что и <>. +|Версия операционной системы в виде числа, та же, что и crossref:versions[versions,`{freebsd-version}`]. |`LOCALBASE` |Корень дерева "local" (например, `/usr/local`) |`PREFIX` -|Куда, собственно, устанавливается порт (обратитесь к <>). +|Куда, собственно, устанавливается порт (обратитесь к crossref:testing[porting-prefix,подробной информации о `PREFIX`]). |=== [NOTE] @@ -142,7 +144,7 @@ .endif .... -Вы не забываете об использовании табуляции вместо пробелов после `BROKEN=`:-). +Вы не забываете об использовании табуляции вместо пробелов после `BROKEN=`. [[dads-sh-exec]] == Использование выражения `exec` в сценариях обёртках @@ -165,11 +167,11 @@ Если вы обнаружите, что для выполнения чего-то приходится писать много нового кода, то, пожалуйста, просмотрите файл [.filename]#bsd.port.mk# на предмет того, не содержит ли он решение именно вашей проблемы. Хотя его трудно читать, имеется много проблем, выглядящих сложными, для которых файл [.filename]#bsd.port.mk# уже содержит быстрое решение. [[dads-cc]] -== Работа как с `CC`, так и `CXX` +== Относитесь внимательно как к `CC`, так и `CXX` Порт должен принимать во внимание как переменную `CC`, так и `CXX`. Под этим мы подразумеваем, что порт ни в коем случае не должен устанавливать значения этих переменных, переопределяя имеющиеся значения; вместо этого можно добавлять нужные значения к уже имеющимся. Это связано с тем, что параметры построения, относящиеся ко всем портам, могут быть заданы глобально. -Если порты не учитывают значения этих переменных, добавьте строку `NO_PACKAGE=ignores either cc or cxx` в файл [.filename]#Makefile#. +Если порт не учитывает значения этих переменных, добавьте строку `NO_PACKAGE=ignores either cc or cxx` в файл [.filename]#Makefile#. Далее следует пример файла [.filename]#Makefile#, использующего как переменную `CC`, так и `CXX`. Обратите внимание на использование символов `?=`: @@ -198,11 +200,11 @@ В системах FreeBSD обе переменные `CC` и `CXX` могут быть определены в файле [.filename]#/etc/make.conf#. В первом примере задаётся значение, если оно ранее не было определено в [.filename]#/etc/make.conf#, что сохраняет любые определения, данные на уровне системы в целом. Второй пример переопределяет всё, что было задано ранее. [[dads-cflags]] -== Использование `CFLAGS` +== Относитесь внимательно к `CFLAGS` Порт должен учитывать переменную `CFLAGS`. Под этим мы подразумеваем, что порт ни в коем случае не должен устанавливать значения этой переменной, переопределяя имеющиеся значения; вместо этого можно добавлять нужные значения к уже имеющимся. Это связано с тем, что параметры построения, относящиеся ко всем портам, могут быть заданы глобально. -Если порты не учитывают значения этой переменной, добавьте строку `NO_PACKAGE=ignores cflags` в файл [.filename]#Makefile#. +Если порт не учитывает значения этой переменной, добавьте строку `NO_PACKAGE=ignores cflags` в файл [.filename]#Makefile#. Далее следует пример файла [.filename]#Makefile#, использующего переменную `CFLAGS`. Обратите внимание на использование символов `+=`: @@ -234,23 +236,38 @@ CFLAGS+= -DHAVE_SOUND .... -[[dads-pthread]] -== Библиотеки потоков +[[dads-verbose-logs]] +== Подробные логи сборки -Во FreeBSD библиотека потоков обязана быть скомпонована с исполняемыми файлами с использованием специального флага `-pthread`. Если порт настаивает на прямой компоновке с `-lpthread`, создайте патч для использования `-pthread`. +Заставьте систему сборки портов отображать все команды, выполняемые на этапе сборки. Полные логи сборки критически важны для отладки проблем с портами. -[NOTE] -==== -Если построение порта заканчивается ошибкой `unrecognized option '-pthread'`, то может быть желательно использование `cc` в качестве компоновщика через установку `CONFIGURE_ENV` в `LD=${CC}`. Параметр `-pthread` напрямую командой `ld` не поддерживается. -==== +Пример неинформативного лога сборки (плохой): + +[.programlisting] +.... + CC source1.o + CC source2.o + CCLD someprogram +.... + +Пример подробного журнала сборки (хороший): + +[.programlisting] +.... +cc -O2 -pipe -I/usr/local/include -c -o source1.o source1.c +cc -O2 -pipe -I/usr/local/include -c -o source2.o source2.c +cc -o someprogram source1.o source2.o -L/usr/local/lib -lsomelib +.... + +Некоторые системы сборки, такие как CMake, ninja и GNU configure, настроены на подробное ведение журнала в рамках инфраструктуры портов. В других случаях портам могут потребоваться индивидуальные изменения. [[dads-feedback]] -== Пожелания +== Обратная связь Посылайте подходящие изменения/патчи автору/сопровождающему для включения в следующий релиз. Это только сделает вашу работу гораздо легче при выходе следующего релиза. [[dads-readme]] -== [.filename]#README.html# +== README.html [.filename]#README.html# не является частью порта и генерируется при помощи `make readme`. Не включайте этот файл в патчи или коммиты. @@ -262,79 +279,117 @@ [[dads-noinstall]] == Пометка неустанавливаемого порта как `BROKEN`, `FORBIDDEN` или `IGNORE` -В некоторых случаях пользователи не должны допускаться к установке порта. Для того, чтобы сообщить пользователю, что порт не следует устанавливать, имеется несколько `make`-переменных, которые могут быть использованы в файле [.filename]#Makefile# порта. Значения следующих `make`-переменных будут причиной, возвращаемой пользователям, по которой порт отказывает в установке. Пожалуйста, используйте корректные `make`-переменные, так как каждая переменная make передает абсолютно различный смысл как для пользователей, так и для автоматизированных систем, которые полагаются на файлы [.filename]#Makefile#, таких как <>, <> и <>. +В некоторых случаях пользователи не должны допускаться к установке порта. Для того, чтобы сообщить пользователю, что порт не следует устанавливать, имеется несколько `make`-переменных, которые могут быть использованы в файле [.filename]#Makefile# порта. Значения следующих `make`-переменных будут причиной, возвращаемой пользователям, по которой порт отказывает в установке. Пожалуйста, используйте корректные `make`-переменные, так как каждая переменная make передает абсолютно различный смысл как для пользователей, так и для автоматизированных систем, которые полагаются на файлы [.filename]#Makefile#, таких как crossref:keeping-up[build-cluster,кластер построения портов], crossref:keeping-up[freshports,FreshPorts]. [[dads-noinstall-variables]] === Переменные * `BROKEN` предназначена для портов, которые в настоящее время не компилируются, не устанавливаются или не удаляются правильно. Следует использовать, когда проблема считается временной. -+ ++ В особых случаях кластер построения будет продолжать попытки собрать их, чтобы показать, решена ли основная проблема. (Однако, как правило, кластер запускается без этой возможности.) -+ ++ В частности, используйте `BROKEN`, когда порт: ** не компилируется -** не выполняет процесс своей конфигурации или установки -** устанавливает файлы вовне [.filename]#${LOCALBASE}# +** выполняет со сбоем конфигурирование или процесс установки +** устанавливает файлы вовне [.filename]#${PREFIX}# ** не удаляет полностью все свои файлы при деинсталляции (тем не менее, это может быть допустимо, и подходит для портов, оставляющих после себя файлы, измененные пользователем) +** имеет проблемы во время выполнения на системах, где он должен работать нормально. * `FORBIDDEN` используется для портов, которые содержат уязвимости в информационной безопасности или являются потенциально вредными в плане обеспечения информационной безопасности системы FreeBSD при установке данного порта (например: заведомо небезопасная программа или программа, которая предоставляет легко взламываемые сервисы). Порты должны помечаться как `FORBIDDEN`, как только в конкретном программном обеспечении обнаружилась уязвимость, но обновление выпущено не было. В идеальном случае порты должны обновляться максимально быстро после обнаружения уязвимости, чтобы уменьшить число уязвимых хостов FreeBSD (нам нравится иметь репутацию безопасной системы), однако иногда случается значительный временной разрыв между обнаружением уязвимости и выходом обновлённого релиза уязвимого программного обеспечения. Не помечайте порт как `FORBIDDEN`, если причина не вызвана соображениями информационной безопасности. * `IGNORE` предназначена для портов, которые не должны строиться по какой-либо другой причине. Следует использовать для портов, в случае когда проблема считается структурной. Кластер построения ни при каких условиях не будет строить порты, помеченные как `IGNORE`. В частности, используйте `IGNORE`, когда порт: -** компилируется, но работает неправильно ** не работает на установленной версии FreeBSD -** имеет дистрибутивный файл, который не может быть автоматически извлечен из-за лицензионных ограничений -** не работает с каким-либо другим портом, установленным в настоящее время (например, порт зависит от package:www/apache20[], но установлен package:www/apache22[]) - +** имеет distfile, который не может быть автоматически загружен из-за ограничений лицензирования +** не работает с некоторыми другими установленными портами (например, порт зависит от package:www/drupal7[], но установлен package:www/drupal8[]) + [NOTE] ==== -Если порт будет конфликтовать с уже установленным портом (например, если они устанавливают файл в то же место, но с иным функциональным назначением), то <>. `CONFLICTS` сам установит значение `IGNORE`. +Если порт будет конфликтовать с уже установленным портом (например, если они устанавливают файл в то же место, но с иным функциональным назначением), то crossref:makefiles[conflicts,используйте вместо этого `CONFLICTS`]. `CONFLICTS` сам установит значение `IGNORE`. ==== -* Если порт нужно пометить как `IGNORE` только на некоторых архитектурах, для этого есть две другие удобные переменные, которые автоматически установят для вас значения: `ONLY_FOR_ARCHS` и `NOT_FOR_ARCHS`. Примеры: -+ +[[dads-noinstall-notes]] +=== Заметки о реализации + +Не заключайте значения переменных `BROKEN`, `IGNORE` и связанных с ними в кавычки. Из-за способа отображения информации пользователю, формулировка сообщений для каждой переменной отличается: + [.programlisting] .... -ONLY_FOR_ARCHS= i386 amd64 +BROKEN= fails to link with base -lcrypto .... -+ [.programlisting] .... -NOT_FOR_ARCHS= ia64 sparc64 +IGNORE= unsupported on recent versions .... -+ -Собственное сообщение `IGNORE` можно задать с использованием `ONLY_FOR_ARCHS_REASON` и `NOT_FOR_ARCHS_REASON`. Отдельно для каждой архитектуры это возможно с использованием `ONLY_FOR_ARCHS_REASON_ARCH` и `NOT_FOR_ARCHS_REASON_ARCH`. -* Если порт загружает и устанавливает исполняемые файлы i386, то следует установить `IA32_BINARY_PORT`. Если эта переменная установлена, будет выполнена проверка доступности каталога [.filename]#/usr/lib32# для библиотек версии IA32 и поддержки IA32 в ядре. При невыполнении любого из этих условий будет автоматически установлена переменная `IGNORE`. - -[[dads-noinstall-notes]] -=== Замечания по реализации - -Строки не следует брать в кавычки. Также построение строки должно несколько различаться из-за способа отображения информации пользователю. Примеры: +и в результате `make describe` выведен информацию в таком виде : [.programlisting] .... -BROKEN= fails to link with base -lcrypto +===> foobar-0.1 is marked as broken: fails to link with base -lcrypto. .... [.programlisting] .... -IGNORE= unsupported on recent versions +===> foobar-0.1 is unsupported on recent versions. .... -получаемые в результате следующего вывода `make describe`: +[[dads-arch]] +== Архитектурные соображения + +[[dads-arch-general]] +=== Общие замечания об архитектурах + +FreeBSD работает на гораздо большем количестве архитектур процессоров, чем только хорошо известные x86-совместимые. Некоторые порты имеют ограничения, характерные для одной или нескольких из этих архитектур. + +Для списка поддерживаемых архитектур выполните: [.programlisting] .... -===> foobar-0.1 is marked as broken: fails to link with base -lcrypto. +cd ${SRCDIR}; make targets .... +Значения отображаются в форме `TARGET`/`TARGET_ARCH`. Переменная только для чтения `ARCH` в ports устанавливается на основе значения `TARGET_ARCH`. [.filename]##Makefile## в портах должны проверять значение этой переменной. + +[[dads-arch-neutral]] +=== Пометка порта как архитектурно нейтрального + +Порты, которые не имеют зависимых от архитектуры файлов или требований, определяются установкой `NO_ARCH=yes`. + +Пакеты, собранные из таких портов, имеют строку архитектуры, оканчивающуюся на `:*` (архитектура с подстановочным символом), в отличие от, например, `freebsd:13:x86:64` (архитектура amd64). + +[NOTE] +==== +`NO_ARCH` предназначен для указания того, что нет необходимости собирать пакет для каждой из поддерживаемых архитектур. Цель состоит в том, чтобы сократить количество ресурсов, затрачиваемых на сборку и распространение пакетов, таких как сетевой трафик и дисковое пространство на зеркалах и на носителях дистрибутива. Однако в настоящее время наша инфраструктура пакетов (например, менеджеры пакетов, зеркала и сборщики пакетов) не настроена для полного использования преимуществ `NO_ARCH`. +==== + +[[dads-arch-ignore]] +=== Пометка порта как игнорируемого только на определенных архитектурах + +* Чтобы пометить порт как ``IGNORE`` только для определенных архитектур, существуют две другие удобные переменные, которые автоматически устанавливают `IGNORE`: `ONLY_FOR_ARCHS` и `NOT_FOR_ARCHS`. Примеры: ++ [.programlisting] .... -===> foobar-0.1 is unsupported on recent versions. +ONLY_FOR_ARCHS= i386 amd64 +.... ++ +[.programlisting] +.... +NOT_FOR_ARCHS= ia64 sparc64 .... ++ +Пользовательское сообщение `IGNORE` можно задать с помощью `ONLY_FOR_ARCHS_REASON` и `NOT_FOR_ARCHS_REASON`. Для отдельных архитектур возможны записи с `ONLY_FOR_ARCHS_REASON_ARCH` и `NOT_FOR_ARCHS_REASON_ARCH`. + +[[dads-arch-i386]] +* Если порт загружает и устанавливает бинарные файлы i386, установите `IA32_BINARY_PORT`. Если эта переменная задана, [.filename]#/usr/lib32# должен присутствовать для IA32-версий библиотек, а ядро должно поддерживать совместимость с IA32. Если одно из этих двух условий не выполняется, `IGNORE` будет установлен автоматически. + +[[dads-arch-cluster]] +=== Специфические аспекты для кластеров + +* Некоторые порты пытаются оптимизировать себя под конкретную машину, на которой они собираются, указывая компилятору `-march=native`. Этого следует избегать: либо добавить этот параметр в опцию, отключенную по умолчанию, либо удалить его полностью. ++ +В противном случае стандартный пакет, созданный кластером сборки, может не запускаться на каждой машине с данной `ARCH`. [[dads-deprecated]] == Пометка порта на удаление с `DEPRECATED` или `EXPIRATION_DATE` @@ -345,7 +400,12 @@ Переменную `DEPRECATED` можно установить без использования `EXPIRATION_DATE` (в частности, при рекомендации новой версии порта), но обратный порядок не имеет никакого смысла. -Не существует устоявшейся политики, как долго следует продолжать уведомления. Текущая практика дает около месяца для решения проблем безопасности и два месяца для проблем построения. Это также дает немного времени на исправление проблем любым заинтересованным коммиттерам. +[NOTE] +==== +При пометке порта как `DEPRECATED`, если существуют альтернативные порты, которые можно использовать вместо устаревающего, удобно упомянуть их в сообщении коммита. +==== + +Не существует установленного правила о том, насколько заранее нужно уведомлять. Текущая практика предполагает один месяц для проблем, связанных с безопасностью, и два месяца для проблем сборки. Это также дает заинтересованным коммиттерам немного времени на исправление проблем. [[dads-dot-error]] == Избегайте использования конструкции `.error` @@ -358,6 +418,7 @@ .Как избегать использования `.error` [example] ==== + Из следующих двух вариантов строки файла [.filename]#Makefile# первый приведёт к неудачному завершению работы `make index`, а второй - нет: [.programlisting] @@ -373,7 +434,7 @@ ==== [[dads-sysctl]] -== Использование [.filename]#sysctl# +== Использование sysctl Использование [.filename]#sysctl# не рекомендуется, кроме как при выполнении целей. Это вызвано тем, что вычисление любых `makevar`, таких как во время команды `make index`, с необходимостью запуска этой команды, еще больше замедляет весь процесс. @@ -382,20 +443,27 @@ [[dads-rerolling-distfiles]] == Меняющиеся дистрибутивные файлы -Иногда авторы программного обеспечения меняют содержимое выпущенных дистрибутивных файлов без смены названия. Вы должны проверять, что изменения являются официальными и произведены автором. В прошлом бывало, что дистрибутивный файл молча изменялся на сайтах загрузки с намерением нанести вред или скомпрометировать безопасность конечного пользователя. +Иногда авторы программного обеспечения изменяют содержимое выпущенных дистрибутивных файлов, не меняя их названия. Убедитесь, что изменения официальны и были выполнены автором. В прошлом случалось, что дистрибутивный файл тихо изменялся на серверах загрузки с целью нанесения вреда или компрометации безопасности конечного пользователя. -Отложите старый файл с дистрибутивом в сторону, загрузите новый, распакуйте его и сравните содержимое при помощи man:diff[1]. Если вы не видите ничего подозрительного, то можете обновить файл [.filename]#distinfo#. Убедитесь, что вы подытожили различия в вашем PR или описании коммита, чтобы другие люди были в курсе, что вы позаботились о том, что ничего плохого не случилось. +Отложите старый distfile в сторону, загрузите новый, распакуйте их и сравните содержимое с помощью man:diff[1]. Если ничего подозрительного нет, обновите [.filename]#distinfo#. -Возможно вы также захотите связаться с автором этого программного обеспечения для подтверждения изменений. +[IMPORTANT] +==== +Убедитесь, что вы выделили основные различия в PR и журнале коммитов, чтобы другие люди знали, что ничего плохого не произошло. +==== -[[dads-avoiding-linuxisms]] -== Избегание линуксизмов +Связжитесь с автором этого программного обеспечения для подтверждения изменений. -Не используйте [.filename]#/proc#, если доступны любые другие источники получения информации, например, `setprogname(argv[0])` в `main()` и man:getprogname[3], в случае если вы хотите "знать своё имя". +[[dads-use-posix-standards]] +== Используйте стандарты POSIX -Не полагайтесь на поведение, не регламентированное POSIX. +В большинстве случаев порты FreeBSD ожидают соответствия стандарту POSIX. Некоторые программы и системы сборки делают предположения, основанные на конкретной операционной системе или окружении, что может вызывать проблемы при использовании в порте. -Не выполняйте запись временных меток в критических путях выполнения приложения, если можно обойтись без этого. Получение временных меток может быть медленным, в зависимости от степени точности используемых часов в операционной системе. Если временные метки действительно нужны, определите степень требуемой точности и используйте тот API, в котором документируется получение достаточной точности. +Не используйте [.filename]#/proc#, если есть другие способы получить информацию. Например, `setprogname(argv[0])` в `main()`, а затем man:getprogname[3] для получения имени исполняемого файла. + +Не полагайтесь на поведение, не документированное в POSIX. + +Не записывайте метки времени в критическом пути приложения, если оно работает и без них. Получение меток времени может быть медленным в зависимости от точности меток времени в ОС. Если метки времени действительно необходимы, определите, насколько точными они должны быть, и используйте API, которое, согласно документации, предоставляет только необходимую точность. Ряд простых системных вызовов (например, man:gettimeofday[2], man:getpid[2]) работают намного быстрее в Linux(R) по сравнению с любой другой операционной системой из-за кеширования и используемой оптимизации vsyscall. Не полагайтесь на их дешевизну в критичных к производительности приложениях. В целом, старайтесь избегать системных вызовов там, где это возможно. @@ -403,7 +471,7 @@ Если требуется рассчитывать на нестандартное поведение, инкапсулируйте это должным образом в общий для всех API с проверкой поведения на этапе конфигурации, и если требуемое поведение не найдено, прекращайте выполнение. -Используйте http://www.freebsd.org/cgi/man.cgi[страницы справочника] для проверки, относится ли функция к интерфейсу POSIX (ищите раздел "STANDARDS" на странице справочника). +Используйте https://www.freebsd.org/cgi/man.cgi[страницы справочника] для проверки, относится ли функция к интерфейсу POSIX (ищите раздел "STANDARDS" на странице справочника). Не рассчитывайте на то, что в качестве [.filename]#/bin/sh# используется bash. Убедитесь, что командная строка, переданная в man:system[3], будет работать в POSIX-совместимой оболочке. @@ -411,13 +479,9 @@ Проверьте, что используемые заголовочные файлы включены в POSIX или список, рекомендуемый страницей справочника, т.к. например, забыть подключить [.filename]#sys/types.h# - не такая уж проблема в Linux(R), однако это не так во FreeBSD. -Компилируйте многопоточные приложения с ключом "-pthread", а не "-lpthread" или как-либо ещё. - [[dads-misc]] == Разное Файлы [.filename]#pkg-descr# и [.filename]#pkg-plist# должны проверяться дважды. Если вы пересматриваете порт и думаете, что его можно описать иначе, сделайте это. -Пожалуйста, не создавайте дополнительных копий лицензии GNU General Public License в нашей системе. - Будьте внимательны с юридическими вопросами! Не делайте из нас нелегальных распространителей ПО! diff --git a/documentation/content/ru/books/porters-handbook/porting-dads/_index.po b/documentation/content/ru/books/porters-handbook/porting-dads/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/porting-dads/_index.po @@ -0,0 +1,1473 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-16 22:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:1 +#, no-wrap +msgid "A list of common dos and don'ts that are encountered during the FreeBSD porting process" +msgstr "Список распространённых рекомендаций и ошибок, встречающихся в процессе портирования на FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:1 +#, no-wrap +msgid "Chapter 13. Dos and Don'ts" +msgstr "Глава 13. Что делать нужно, и что делать нельзя" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:14 +#, no-wrap +msgid "Dos and Don'ts" +msgstr "Что делать нужно, и что делать нельзя" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:54 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:60 +msgid "" +"Here is a list of common dos and don'ts that are encountered during the " +"porting process. Check the port against this list, but also check ports in " +"the https://bugs.FreeBSD.org/search/[PR database] that others have " +"submitted. Submit any comments on ports as described in extref:" +"{contributing}[Bug Reports and General Commentary, CONTRIB-GENERAL]. " +"Checking ports in the PR database will both make it faster for us to commit " +"them, and prove that you know what you are doing." +msgstr "" +"Вот список часто встречающихся действий, которые нужно и которые нельзя " +"делать во время процесса портирования. Проверьте порт по этому списку, и " +"также проверьте порты в https://bugs.FreeBSD.org/search/[базе сообщений PR], " +"которые присланы другими людьми. Присылайте любые комментарии о портах, " +"которые вы проверили, так, как это описано в статье о extref:{contributing}" +"[Сообщениях об ошибках и общих замечаниях, CONTRIB-GENERAL]. Проверка портов " +"в базе сообщений PR позволит нам быстрее коммиттить их и удостовериться, что " +"вы знаете, что делаете." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:62 +#, no-wrap +msgid "`WRKDIR`" +msgstr "`WRKDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:66 +msgid "" +"Do not write anything to files outside `WRKDIR`. `WRKDIR` is the only place " +"that is guaranteed to be writable during the port build (see extref:" +"{handbook}[ installing ports from a CDROM, PORTS-CD] for an example of " +"building ports from a read-only tree). The [.filename]##pkg-*## files can " +"be modified by crossref:pkg-files[pkg-names,redefining a variable] rather " +"than overwriting the file." +msgstr "" +"Не пишите ничего в файлы вне каталога `WRKDIR`. Каталог `WRKDIR` является " +"единственным местом, которое гарантированно будет доступно для записи во " +"время построения порта (обратитесь к главе об extref:{handbook}[установке " +"портов с CDROM, PORTS-CD] за примером построения портов из дерева, " +"доступного только для чтения). Если вам нужно изменить какой-либо из файлов " +"[.filename]##pkg-*##, сделайте это, crossref:pkg-files[pkg-" +"names,переопределив переменную], но не перезаписывая их." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:68 +#, no-wrap +msgid "`WRKDIRPREFIX`" +msgstr "`WRKDIRPREFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:73 +msgid "" +"Make sure the port honors `WRKDIRPREFIX`. Most ports do not have to worry " +"about this. In particular, when referring to a `WRKDIR` of another port, " +"note that the correct location is [.filename]#${WRKDIRPREFIX}${PORTSDIR}/" +"subdir/name/work# not [.filename]#${PORTSDIR}/subdir/name/work# or " +"[.filename]#${.CURDIR}/../../subdir/name/work# or some such." +msgstr "" +"Добейтесь того, чтобы ваш порт принимал во внимание значение переменной " +"`WRKDIRPREFIX`. Большинство портов об этом не заботятся. В частности, если " +"вы обращаетесь к каталогу `WRKDIR` другого порта, заметьте, что его " +"правильным местоположением является [.filename]#WRKDIRPREFIXPORTSDIR/subdir/" +"name/work#, а не [.filename]#PORTSDIR/subdir/work# или " +"[.filename]#.CURDIR/../../subdir/name/work# мли что-то подобное. Кроме того, " +"если вы сами задаете `WRKDIR`, то должны поставить перед ним знак `$" +"{WRKDIRPREFIX}${.CURDIR}`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:75 +#, no-wrap +msgid "Differentiating Operating Systems and OS Versions" +msgstr "Различение операционных систем и версий ОС" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:79 +msgid "" +"Some code needs modifications or conditional compilation based upon what " +"version of FreeBSD Unix it is running under. The preferred way to tell " +"FreeBSD versions apart are the `{freebsd-version}` and `{freebsd}` macros " +"defined in https://cgit.freebsd.org/src/tree/sys/sys/param.h[sys/param.h]. " +"If this file is not included add the code," +msgstr "" +"Вы можете встретиться с кодом, который требует модификаций или условной " +"компиляции в зависимости от того, с какой версией FreeBSD Unix он работает. " +"Предпочтительным способом отделения кода для версий FreeBSD является " +"использование макросов {freebsd-version} и {freebsd}, определённых в https://" +"cgit.freebsd.org/src/tree/sys/sys/param.h[sys/param.h]. Если этот файл не " +"подключен, добавьте код" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:83 +#, no-wrap +msgid "#include \n" +msgstr "#include \n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:86 +msgid "to the proper place in the [.filename]#.c# file." +msgstr "в нужном месте файла [.filename]#.c#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:89 +msgid "" +"`{freebsd}` is defined in all versions of FreeBSD as their major version " +"number. For example, in FreeBSD 9.x, `{freebsd}` is defined to be `9`." +msgstr "" +"{freebsd} определён во всех версиях FreeBSD в качестве старшего номера " +"версии системы. Например, в FreeBSD 9.x {freebsd} определён со значением `9`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:97 +#, no-wrap +msgid "" +"#if __FreeBSD__ >= 9\n" +"# if __FreeBSD_version >= 901000\n" +"\t /* 9.1+ release specific code here */\n" +"# endif\n" +"#endif\n" +msgstr "" +"#if __FreeBSD__ >= 9\n" +"# if __FreeBSD_version >= 901000\n" +"\t /* 9.1+ release specific code here */\n" +"# endif\n" +"#endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:100 +msgid "" +"A complete list of `{freebsd-version}` values is available in " +"crossref:versions[versions,__FreeBSD_version Values]." +msgstr "" +"Полный список значений `{freebsd-version}` доступен в " +"crossref:versions[versions,Значения __FreeBSD_version]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:102 +#, no-wrap +msgid "Writing Something After bsd.port.mk" +msgstr "Написание чего-либо после bsd.port.mk" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:106 +msgid "" +"Do not write anything after the `.include ` line. It usually " +"can be avoided by including [.filename]#bsd.port.pre.mk# somewhere in the " +"middle of the [.filename]#Makefile# and [.filename]#bsd.port.post.mk# at the " +"end." +msgstr "" +"Не пишите ничего после строки `.include `. Этой строки можно " +"избежать, включив в где-то в середину вашего файла [.filename]#Makefile# " +"файл [.filename]#bsd.port.pre.mk#, и файл [.filename]#bsd.port.post.mk# в " +"конец." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:110 +msgid "" +"Include either the [.filename]#bsd.port.pre.mk#/" +"[.filename]#bsd.port.post.mk# pair or [.filename]#bsd.port.mk# only; do not " +"mix these two usages." +msgstr "" +"Вам нужно включить либо пару файлов [.filename]#bsd.port.pre.mk#/" +"[.filename]#bsd.port.post.mk#, либо только [.filename]#bsd.port.mk#; не " +"используйте оба этих метода одновременно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:113 +msgid "" +"[.filename]#bsd.port.pre.mk# only defines a few variables, which can be used " +"in tests in the [.filename]#Makefile#, [.filename]#bsd.port.post.mk# defines " +"the rest." +msgstr "" +"В файле [.filename]#bsd.port.pre.mk# определяются лишь несколько переменных, " +"которые могут быть использованы в тестах из файла [.filename]#Makefile#, в " +"файле [.filename]#bsd.port.post.mk# заданы остальные." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:115 +msgid "" +"Here are some important variables defined in [.filename]#bsd.port.pre.mk# " +"(this is not the complete list, please read [.filename]#bsd.port.mk# for the " +"complete list)." +msgstr "" +"Вот некоторые важные переменные, определенные в файле " +"[.filename]#bsd.port.pre.mk# (это не полный список, для выяснения полного " +"списка прочтите, пожалуйста, сам файл [.filename]#bsd.port.mk#)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:120 +#, no-wrap +msgid "Variable" +msgstr "Переменная" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:122 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:123 +#, no-wrap +msgid "`ARCH`" +msgstr "`ARCH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:125 +#, no-wrap +msgid "The architecture as returned by `uname -m` (for example, `i386`)" +msgstr "Архитектура машины в виде, получаемом по команде `uname -m` (например, `i386`)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:126 +#, no-wrap +msgid "`OPSYS`" +msgstr "`OPSYS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:128 +#, no-wrap +msgid "The operating system type, as returned by `uname -s` (for example, `FreeBSD`)" +msgstr "Тип операционной системы, получаемый по команде `uname -s` (например, `FreeBSD`)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:129 +#, no-wrap +msgid "`OSREL`" +msgstr "`OSREL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:131 +#, no-wrap +msgid "The release version of the operating system (for example, `2.1.5` or `2.2.7`)" +msgstr "Версия релиза операционной системы (например, `2.1.5` или `2.2.7`)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:132 +#, no-wrap +msgid "`OSVERSION`" +msgstr "`OSVERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:134 +#, no-wrap +msgid "The numeric version of the operating system; the same as crossref:versions[versions,`{freebsd-version}`]." +msgstr "Версия операционной системы в виде числа, та же, что и crossref:versions[versions,`{freebsd-version}`]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:135 +#, no-wrap +msgid "`LOCALBASE`" +msgstr "`LOCALBASE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:137 +#, no-wrap +msgid "The base of the \"local\" tree (for example, `/usr/local`)" +msgstr "Корень дерева \"local\" (например, `/usr/local`)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:138 +#, no-wrap +msgid "`PREFIX`" +msgstr "`PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:139 +#, no-wrap +msgid "Where the port installs itself (see crossref:testing[porting-prefix,more on `PREFIX`])." +msgstr "Куда, собственно, устанавливается порт (обратитесь к crossref:testing[porting-prefix,подробной информации о `PREFIX`])." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:144 +msgid "" +"When `MASTERDIR` is needed, always define it before including " +"[.filename]#bsd.port.pre.mk#." +msgstr "" +"Если вы задаете переменную `MASTERDIR`, делайте это до подключения " +"[.filename]#bsd.port.pre.mk#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:147 +msgid "" +"Here are some examples of things that can be added after " +"[.filename]#bsd.port.pre.mk#:" +msgstr "" +"Вот несколько примеров того, что вы можете написать после " +"[.filename]#bsd.port.pre.mk#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:154 +#, no-wrap +msgid "" +"# no need to compile lang/perl5 if perl5 is already in system\n" +".if ${OSVERSION} > 300003\n" +"BROKEN=\tperl is in system\n" +".endif\n" +msgstr "" +"# no need to compile lang/perl5 if perl5 is already in system\n" +".if ${OSVERSION} > 300003\n" +"BROKEN=\tperl is in system\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:157 +msgid "Always use tab instead of spaces after `BROKEN=`." +msgstr "" +"Вы не забываете об использовании табуляции вместо пробелов после `BROKEN=`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:159 +#, no-wrap +msgid "Use the `exec` Statement in Wrapper Scripts" +msgstr "Использование выражения `exec` в сценариях обёртках" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:164 +msgid "" +"If the port installs a shell script whose purpose is to launch another " +"program, and if launching that program is the last action performed by the " +"script, make sure to launch the program using the `exec` statement, for " +"instance:" +msgstr "" +"Если порт устанавливает сценарий на языке shell, который служит для запуска " +"другой программы, и если запуск этой программы является последним действием " +"сценария, убедитесь, что запуск программы производится с использованием " +"выражения `exec`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:169 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar \"$@\"\n" +msgstr "" +"#!/bin/sh\n" +"exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar \"$@\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:174 +msgid "" +"The `exec` statement replaces the shell process with the specified program. " +"If `exec` is omitted, the shell process remains in memory while the program " +"is executing, and needlessly consumes system resources." +msgstr "" +"Выражение `exec` заменяет процесс сценария на указанную программу. Если " +"`exec` опущен, то процесс сценария во время работы программы остается в " +"памяти, бесполезно потребляя системные ресурсы." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:176 +#, no-wrap +msgid "Do Things Rationally" +msgstr "Поступайте разумно" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:181 +msgid "" +"The [.filename]#Makefile# should do things in a simple and reasonable " +"manner. Making it a couple of lines shorter or more readable is always " +"better. Examples include using a make `.if` construct instead of a shell " +"`if` construct, not redefining `do-extract` if redefining `EXTRACT*` is " +"enough, and using `GNU_CONFIGURE` instead of `CONFIGURE_ARGS += --prefix=$" +"{PREFIX}`." +msgstr "" +"Файл [.filename]#Makefile# должен выполнять действия просто и небеспричинно. " +"Если вы можете сделать что-то на несколько строк короче или более " +"читабельно, сделайте это. В качестве примеров можно привести использование " +"конструкций `.if` утилиты make вместо соответствующей конструкции `if` " +"командного процессора, ненужность переопределения цели `do-extract` при " +"возможности переопределения `EXTRACT*` и использование `GNU_CONFIGURE` " +"вместо `CONFIGURE_ARGS += --prefix=${PREFIX}`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:184 +msgid "" +"If a lot of new code is needed to do something, there may already be an " +"implementation of it in [.filename]#bsd.port.mk#. While hard to read, there " +"are a great many seemingly-hard problems for which [.filename]#bsd.port.mk# " +"already provides a shorthand solution." +msgstr "" +"Если вы обнаружите, что для выполнения чего-то приходится писать много " +"нового кода, то, пожалуйста, просмотрите файл [.filename]#bsd.port.mk# на " +"предмет того, не содержит ли он решение именно вашей проблемы. Хотя его " +"трудно читать, имеется много проблем, выглядящих сложными, для которых файл " +"[.filename]#bsd.port.mk# уже содержит быстрое решение." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:186 +#, no-wrap +msgid "Respect Both `CC` and `CXX`" +msgstr "Относитесь внимательно как к `CC`, так и `CXX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:192 +msgid "" +"The port must respect both `CC` and `CXX`. What we mean by this is that the " +"port must not set the values of these variables absolutely, overriding " +"existing values; instead, it may append whatever values it needs to the " +"existing values. This is so that build options that affect all ports can be " +"set globally." +msgstr "" +"Порт должен принимать во внимание как переменную `CC`, так и `CXX`. Под этим " +"мы подразумеваем, что порт ни в коем случае не должен устанавливать значения " +"этих переменных, переопределяя имеющиеся значения; вместо этого можно " +"добавлять нужные значения к уже имеющимся. Это связано с тем, что параметры " +"построения, относящиеся ко всем портам, могут быть заданы глобально." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:194 +msgid "" +"If the port does not respect these variables, please add `NO_PACKAGE=ignores " +"either cc or cxx` to the [.filename]#Makefile#." +msgstr "" +"Если порт не учитывает значения этих переменных, добавьте строку " +"`NO_PACKAGE=ignores either cc or cxx` в файл [.filename]#Makefile#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:197 +msgid "" +"Here is an example of a [.filename]#Makefile# respecting both `CC` and " +"`CXX`. Note the `?=`:" +msgstr "" +"Далее следует пример файла [.filename]#Makefile#, использующего как " +"переменную `CC`, так и `CXX`. Обратите внимание на использование символов `?" +"=`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:201 +#, no-wrap +msgid "CC?= gcc\n" +msgstr "CC?= gcc\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:206 +#, no-wrap +msgid "CXX?= g++\n" +msgstr "CXX?= g++\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:209 +msgid "Here is an example which respects neither `CC` nor `CXX`:" +msgstr "Вот пример, в котором не принимаются во внимание ни `CC`, ни `CXX`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:213 +#, no-wrap +msgid "CC= gcc\n" +msgstr "CC= gcc\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:218 +#, no-wrap +msgid "CXX= g++\n" +msgstr "CXX= g++\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:223 +msgid "" +"Both `CC` and `CXX` can be defined on FreeBSD systems in [.filename]#/etc/" +"make.conf#. The first example defines a value if it was not previously set " +"in [.filename]#/etc/make.conf#, preserving any system-wide definitions. The " +"second example clobbers anything previously defined." +msgstr "" +"В системах FreeBSD обе переменные `CC` и `CXX` могут быть определены в файле " +"[.filename]#/etc/make.conf#. В первом примере задаётся значение, если оно " +"ранее не было определено в [.filename]#/etc/make.conf#, что сохраняет любые " +"определения, данные на уровне системы в целом. Второй пример переопределяет " +"всё, что было задано ранее." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:225 +#, no-wrap +msgid "Respect `CFLAGS`" +msgstr "Относитесь внимательно к `CFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:231 +msgid "" +"The port must respect `CFLAGS`. What we mean by this is that the port must " +"not set the value of this variable absolutely, overriding the existing " +"value. Instead, it may append whatever values it needs to the existing " +"value. This is so that build options that affect all ports can be set " +"globally." +msgstr "" +"Порт должен учитывать переменную `CFLAGS`. Под этим мы подразумеваем, что " +"порт ни в коем случае не должен устанавливать значения этой переменной, " +"переопределяя имеющиеся значения; вместо этого можно добавлять нужные " +"значения к уже имеющимся. Это связано с тем, что параметры построения, " +"относящиеся ко всем портам, могут быть заданы глобально." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:233 +msgid "" +"If it does not, please add `NO_PACKAGE=ignores cflags` to the " +"[.filename]#Makefile#." +msgstr "" +"Если порт не учитывает значения этой переменной, добавьте строку " +"`NO_PACKAGE=ignores cflags` в файл [.filename]#Makefile#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:235 +msgid "" +"Here is an example of a [.filename]#Makefile# respecting `CFLAGS`. Note the " +"`+=`:" +msgstr "" +"Далее следует пример файла [.filename]#Makefile#, использующего переменную " +"`CFLAGS`. Обратите внимание на использование символов `+=`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:239 +#, no-wrap +msgid "CFLAGS+= -Wall -Werror\n" +msgstr "CFLAGS+= -Wall -Werror\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:242 +msgid "Here is an example which does not respect `CFLAGS`:" +msgstr "А вот пример, в котором не учитывается значение переменной `CFLAGS`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:246 +#, no-wrap +msgid "CFLAGS= -Wall -Werror\n" +msgstr "CFLAGS= -Wall -Werror\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:251 +msgid "" +"`CFLAGS` is defined on FreeBSD systems in [.filename]#/etc/make.conf#. The " +"first example appends additional flags to `CFLAGS`, preserving any system-" +"wide definitions. The second example clobbers anything previously defined." +msgstr "" +"В системе FreeBSD переменная `CFLAGS` определена в файле [.filename]#/etc/" +"make.conf#. В первом примере к переменной `CFLAGS` добавляются " +"дополнительные флаги, при этом сохраняются все определения, данные ранее на " +"уровне системы. Во втором примере всё, что было задано ранее, игнорируется." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:255 +msgid "" +"Remove optimization flags from the third party [.filename]##Makefile##s. " +"The system `CFLAGS` contains system-wide optimization flags. An example " +"from an unmodified [.filename]#Makefile#:" +msgstr "" +"Из сторонних файлов [.filename]#Makefile# следует удалить флаги оптимизации. " +"Общесистемные флаги оптимизации находятся в системной переменной `CFLAGS`. " +"Пример из немодифицированного [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:259 +#, no-wrap +msgid "CFLAGS= -O3 -funroll-loops -DHAVE_SOUND\n" +msgstr "CFLAGS= -O3 -funroll-loops -DHAVE_SOUND\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:262 +msgid "" +"Using system optimization flags, the [.filename]#Makefile# would look " +"similar to this example:" +msgstr "" +"При использовании системных флагов оптимизации [.filename]#Makefile# станет " +"похожим на следующий пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:266 +#, no-wrap +msgid "CFLAGS+= -DHAVE_SOUND\n" +msgstr "CFLAGS+= -DHAVE_SOUND\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:269 +#, no-wrap +msgid "Verbose Build Logs" +msgstr "Подробные логи сборки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:273 +msgid "" +"Make the port build system display all commands executed during the build " +"stage. Complete build logs are crucial to debugging port problems." +msgstr "" +"Заставьте систему сборки портов отображать все команды, выполняемые на этапе " +"сборки. Полные логи сборки критически важны для отладки проблем с портами." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:275 +msgid "Non-informative build log example (bad):" +msgstr "Пример неинформативного лога сборки (плохой):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:281 +#, no-wrap +msgid "" +" CC source1.o\n" +" CC source2.o\n" +" CCLD someprogram\n" +msgstr "" +" CC source1.o\n" +" CC source2.o\n" +" CCLD someprogram\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:284 +msgid "Verbose build log example (good):" +msgstr "Пример подробного журнала сборки (хороший):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:290 +#, no-wrap +msgid "" +"cc -O2 -pipe -I/usr/local/include -c -o source1.o source1.c\n" +"cc -O2 -pipe -I/usr/local/include -c -o source2.o source2.c\n" +"cc -o someprogram source1.o source2.o -L/usr/local/lib -lsomelib\n" +msgstr "" +"cc -O2 -pipe -I/usr/local/include -c -o source1.o source1.c\n" +"cc -O2 -pipe -I/usr/local/include -c -o source2.o source2.c\n" +"cc -o someprogram source1.o source2.o -L/usr/local/lib -lsomelib\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:294 +msgid "" +"Some build systems such as CMake, ninja, and GNU configure are set up for " +"verbose logging by the ports framework. In other cases, ports might need " +"individual tweaks." +msgstr "" +"Некоторые системы сборки, такие как CMake, ninja и GNU configure, настроены " +"на подробное ведение журнала в рамках инфраструктуры портов. В других " +"случаях портам могут потребоваться индивидуальные изменения." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:296 +#, no-wrap +msgid "Feedback" +msgstr "Обратная связь" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:300 +msgid "" +"Do send applicable changes and patches to the upstream maintainer for " +"inclusion in the next release of the code. This makes updating to the next " +"release that much easier." +msgstr "" +"Посылайте подходящие изменения/патчи автору/сопровождающему для включения в " +"следующий релиз. Это только сделает вашу работу гораздо легче при выходе " +"следующего релиза." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:302 +#, no-wrap +msgid "README.html" +msgstr "README.html" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:306 +msgid "" +"[.filename]#README.html# is not part of the port, but generated by `make " +"readme`. Do not include this file in patches or commits." +msgstr "" +"[.filename]#README.html# не является частью порта и генерируется при помощи " +"`make readme`. Не включайте этот файл в патчи или коммиты." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:310 +msgid "" +"If `make readme` fails, make sure that the default value of `ECHO_MSG` has " +"not been modified by the port." +msgstr "" +"Если не удается выполнить `make readme`, убедитесь, что значение по " +"умолчанию `ECHO_MSG` не изменено внутри порта." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:313 +#, no-wrap +msgid "Marking a Port Not Installable with `BROKEN`, `FORBIDDEN`, or `IGNORE`" +msgstr "Пометка неустанавливаемого порта как `BROKEN`, `FORBIDDEN` или `IGNORE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:320 +msgid "" +"In certain cases, users must be prevented from installing a port. There are " +"several variables that can be used in a port's [.filename]#Makefile# to tell " +"the user that the port cannot be installed. The value of these make " +"variables will be the reason that is shown to users for why the port refuses " +"to install itself. Please use the correct make variable. Each variable " +"conveys radically different meanings, both to users and to automated systems " +"that depend on [.filename]##Makefile##s, such as crossref:keeping-up[build-" +"cluster,the ports build cluster], and crossref:keeping-" +"up[freshports,FreshPorts]." +msgstr "" +"В некоторых случаях пользователи не должны допускаться к установке порта. " +"Для того, чтобы сообщить пользователю, что порт не следует устанавливать, " +"имеется несколько `make`-переменных, которые могут быть использованы в файле " +"[.filename]#Makefile# порта. Значения следующих `make`-переменных будут " +"причиной, возвращаемой пользователям, по которой порт отказывает в " +"установке. Пожалуйста, используйте корректные `make`-переменные, так как " +"каждая переменная make передает абсолютно различный смысл как для " +"пользователей, так и для автоматизированных систем, которые полагаются на " +"файлы [.filename]#Makefile#, таких как crossref:keeping-up[build-" +"cluster,кластер построения портов], crossref:keeping-" +"up[freshports,FreshPorts]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:322 +#, no-wrap +msgid "Variables" +msgstr "Переменные" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:325 +msgid "" +"`BROKEN` is reserved for ports that currently do not compile, install, " +"deinstall, or run correctly. Use it for ports where the problem is believed " +"to be temporary." +msgstr "" +"`BROKEN` предназначена для портов, которые в настоящее время не " +"компилируются, не устанавливаются или не удаляются правильно. Следует " +"использовать, когда проблема считается временной." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:328 +msgid "" +"If instructed, the build cluster will still attempt to try to build them to " +"see if the underlying problem has been resolved. (However, in general, the " +"cluster is run without this.)" +msgstr "" +"В особых случаях кластер построения будет продолжать попытки собрать их, " +"чтобы показать, решена ли основная проблема. (Однако, как правило, кластер " +"запускается без этой возможности.)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:330 +msgid "For instance, use `BROKEN` when a port:" +msgstr "В частности, используйте `BROKEN`, когда порт:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:332 +msgid "does not compile" +msgstr "не компилируется" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:333 +msgid "fails its configuration or installation process" +msgstr "выполняет со сбоем конфигурирование или процесс установки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:334 +msgid "installs files outside of [.filename]#${PREFIX}#" +msgstr "устанавливает файлы вовне [.filename]#${PREFIX}#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:335 +msgid "" +"does not remove all its files cleanly upon deinstall (however, it may be " +"acceptable, and desirable, for the port to leave user-modified files behind)" +msgstr "" +"не удаляет полностью все свои файлы при деинсталляции (тем не менее, это " +"может быть допустимо, и подходит для портов, оставляющих после себя файлы, " +"измененные пользователем)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:336 +msgid "has runtime issues on systems where it is supposed to run fine." +msgstr "" +"имеет проблемы во время выполнения на системах, где он должен работать " +"нормально." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:338 +msgid "" +"`FORBIDDEN` is used for ports that contain a security vulnerability or " +"induce grave concern regarding the security of a FreeBSD system with a given " +"port installed (for example, a reputably insecure program or a program that " +"provides easily exploitable services). Mark ports as `FORBIDDEN` as soon as " +"a particular piece of software has a vulnerability and there is no released " +"upgrade. Ideally upgrade ports as soon as possible when a security " +"vulnerability is discovered so as to reduce the number of vulnerable FreeBSD " +"hosts (we like being known for being secure), however sometimes there is a " +"noticeable time gap between disclosure of a vulnerability and an updated " +"release of the vulnerable software. Do not mark a port `FORBIDDEN` for any " +"reason other than security." +msgstr "" +"`FORBIDDEN` используется для портов, которые содержат уязвимости в " +"информационной безопасности или являются потенциально вредными в плане " +"обеспечения информационной безопасности системы FreeBSD при установке " +"данного порта (например: заведомо небезопасная программа или программа, " +"которая предоставляет легко взламываемые сервисы). Порты должны помечаться " +"как `FORBIDDEN`, как только в конкретном программном обеспечении " +"обнаружилась уязвимость, но обновление выпущено не было. В идеальном случае " +"порты должны обновляться максимально быстро после обнаружения уязвимости, " +"чтобы уменьшить число уязвимых хостов FreeBSD (нам нравится иметь репутацию " +"безопасной системы), однако иногда случается значительный временной разрыв " +"между обнаружением уязвимости и выходом обновлённого релиза уязвимого " +"программного обеспечения. Не помечайте порт как `FORBIDDEN`, если причина не " +"вызвана соображениями информационной безопасности." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:339 +msgid "" +"`IGNORE` is reserved for ports that must not be built for some other reason. " +"Use it for ports where the problem is believed to be structural. The build " +"cluster will not, under any circumstances, build ports marked as `IGNORE`. " +"For instance, use `IGNORE` when a port:" +msgstr "" +"`IGNORE` предназначена для портов, которые не должны строиться по какой-либо " +"другой причине. Следует использовать для портов, в случае когда проблема " +"считается структурной. Кластер построения ни при каких условиях не будет " +"строить порты, помеченные как `IGNORE`. В частности, используйте `IGNORE`, " +"когда порт:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:341 +msgid "does not work on the installed version of FreeBSD" +msgstr "не работает на установленной версии FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:342 +msgid "" +"has a distfile which may not be automatically fetched due to licensing " +"restrictions" +msgstr "" +"имеет distfile, который не может быть автоматически загружен из-за " +"ограничений лицензирования" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:343 +msgid "" +"does not work with some other currently installed port (for instance, the " +"port depends on package:www/drupal7[] but package:www/drupal8[] is installed)" +msgstr "" +"не работает с некоторыми другими установленными портами (например, порт " +"зависит от package:www/drupal7[], но установлен package:www/drupal8[])" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:348 +msgid "" +"If a port would conflict with a currently installed port (for example, if " +"they install a file in the same place that performs a different function), " +"crossref:makefiles[conflicts,use `CONFLICTS` instead]. `CONFLICTS` will set " +"`IGNORE` by itself." +msgstr "" +"Если порт будет конфликтовать с уже установленным портом (например, если они " +"устанавливают файл в то же место, но с иным функциональным назначением), то " +"crossref:makefiles[conflicts,используйте вместо этого `CONFLICTS`]. " +"`CONFLICTS` сам установит значение `IGNORE`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:351 +#, no-wrap +msgid "Implementation Notes" +msgstr "Заметки о реализации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:355 +msgid "" +"Do not quote the values of `BROKEN`, `IGNORE`, and related variables. Due " +"to the way the information is shown to the user, the wording of messages for " +"each variable differ:" +msgstr "" +"Не заключайте значения переменных `BROKEN`, `IGNORE` и связанных с ними в " +"кавычки. Из-за способа отображения информации пользователю, формулировка " +"сообщений для каждой переменной отличается:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:359 +#, no-wrap +msgid "BROKEN=\tfails to link with base -lcrypto\n" +msgstr "BROKEN=\tfails to link with base -lcrypto\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:364 +#, no-wrap +msgid "IGNORE=\tunsupported on recent versions\n" +msgstr "IGNORE=\tunsupported on recent versions\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:367 +msgid "resulting in this output from `make describe`:" +msgstr "и в результате `make describe` выведен информацию в таком виде :" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:371 +#, no-wrap +msgid "===> foobar-0.1 is marked as broken: fails to link with base -lcrypto.\n" +msgstr "===> foobar-0.1 is marked as broken: fails to link with base -lcrypto.\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:376 +#, no-wrap +msgid "===> foobar-0.1 is unsupported on recent versions.\n" +msgstr "===> foobar-0.1 is unsupported on recent versions.\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:379 +#, no-wrap +msgid "Architectural Considerations" +msgstr "Архитектурные соображения" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:382 +#, no-wrap +msgid "General Notes on Architectures" +msgstr "Общие замечания об архитектурах" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:386 +msgid "" +"FreeBSD runs on many more processor architectures than just the well-known " +"x86-based ones. Some ports have constraints which are particular to one or " +"more of these architectures." +msgstr "" +"FreeBSD работает на гораздо большем количестве архитектур процессоров, чем " +"только хорошо известные x86-совместимые. Некоторые порты имеют ограничения, " +"характерные для одной или нескольких из этих архитектур." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:388 +msgid "For the list of supported architectures, run:" +msgstr "Для списка поддерживаемых архитектур выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:392 +#, no-wrap +msgid "cd ${SRCDIR}; make targets\n" +msgstr "cd ${SRCDIR}; make targets\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:397 +msgid "" +"The values are shown in the form `TARGET`/`TARGET_ARCH`. The ports read-" +"only makevar `ARCH` is set based on the value of `TARGET_ARCH`. Port " +"[.filename]##Makefile##s should test the value of this Makevar." +msgstr "" +"Значения отображаются в форме `TARGET`/`TARGET_ARCH`. Переменная только для " +"чтения `ARCH` в ports устанавливается на основе значения `TARGET_ARCH`. " +"[.filename]##Makefile## в портах должны проверять значение этой переменной." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:399 +#, no-wrap +msgid "Marking a Port as Architecture Neutral" +msgstr "Пометка порта как архитектурно нейтрального" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:402 +msgid "" +"Ports that do not have any architecture-dependent files or requirements are " +"identified by setting `NO_ARCH=yes`." +msgstr "" +"Порты, которые не имеют зависимых от архитектуры файлов или требований, " +"определяются установкой `NO_ARCH=yes`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:404 +msgid "" +"Packages built from such ports have their architecture string ending in `:*` " +"(wildcard architecture) as opposed to, for example, `freebsd:13:x86:64` " +"(amd64 architecture)." +msgstr "" +"Пакеты, собранные из таких портов, имеют строку архитектуры, оканчивающуюся " +"на `:*` (архитектура с подстановочным символом), в отличие от, например, " +"`freebsd:13:x86:64` (архитектура amd64)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:410 +msgid "" +"`NO_ARCH` is meant to indicate that there is no need to build a package for " +"each of the supported architectures. The goal is to reduce the amount of " +"resources spent on building and distributing the packages such as network " +"bandwidth and disk space on mirrors and on distribution media. Currently, " +"however, our package infrastructure (e.g., package managers, mirrors, and " +"package builders) is not set up to fully benefit from `NO_ARCH`." +msgstr "" +"`NO_ARCH` предназначен для указания того, что нет необходимости собирать " +"пакет для каждой из поддерживаемых архитектур. Цель состоит в том, чтобы " +"сократить количество ресурсов, затрачиваемых на сборку и распространение " +"пакетов, таких как сетевой трафик и дисковое пространство на зеркалах и на " +"носителях дистрибутива. Однако в настоящее время наша инфраструктура пакетов " +"(например, менеджеры пакетов, зеркала и сборщики пакетов) не настроена для " +"полного использования преимуществ `NO_ARCH`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:413 +#, no-wrap +msgid "Marking a Port as Ignored Only On Certain Architectures" +msgstr "Пометка порта как игнорируемого только на определенных архитектурах" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:416 +msgid "" +"To mark a port as ``IGNORE``d only on certain architectures, there are two " +"other convenience variables that will automatically set `IGNORE`: " +"`ONLY_FOR_ARCHS` and `NOT_FOR_ARCHS`. Examples:" +msgstr "" +"Чтобы пометить порт как ``IGNORE`` только для определенных архитектур, " +"существуют две другие удобные переменные, которые автоматически " +"устанавливают `IGNORE`: `ONLY_FOR_ARCHS` и `NOT_FOR_ARCHS`. Примеры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:420 +#, no-wrap +msgid "ONLY_FOR_ARCHS=\ti386 amd64\n" +msgstr "ONLY_FOR_ARCHS=\ti386 amd64\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:425 +#, no-wrap +msgid "NOT_FOR_ARCHS=\tia64 sparc64\n" +msgstr "NOT_FOR_ARCHS=\tia64 sparc64\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:429 +msgid "" +"A custom `IGNORE` message can be set using `ONLY_FOR_ARCHS_REASON` and " +"`NOT_FOR_ARCHS_REASON`. Per architecture entries are possible with " +"`ONLY_FOR_ARCHS_REASON_ARCH` and `NOT_FOR_ARCHS_REASON_ARCH`." +msgstr "" +"Пользовательское сообщение `IGNORE` можно задать с помощью " +"`ONLY_FOR_ARCHS_REASON` и `NOT_FOR_ARCHS_REASON`. Для отдельных архитектур " +"возможны записи с `ONLY_FOR_ARCHS_REASON_ARCH` и `NOT_FOR_ARCHS_REASON_ARCH`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:432 +msgid "" +"If a port fetches i386 binaries and installs them, set `IA32_BINARY_PORT`. " +"If this variable is set, [.filename]#/usr/lib32# must be present for IA32 " +"versions of libraries and the kernel must support IA32 compatibility. If one " +"of these two dependencies is not satisfied, `IGNORE` will be set " +"automatically." +msgstr "" +"Если порт загружает и устанавливает бинарные файлы i386, установите " +"`IA32_BINARY_PORT`. Если эта переменная задана, [.filename]#/usr/lib32# " +"должен присутствовать для IA32-версий библиотек, а ядро должно поддерживать " +"совместимость с IA32. Если одно из этих двух условий не выполняется, " +"`IGNORE` будет установлен автоматически." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:434 +#, no-wrap +msgid "Cluster-Specific Considerations" +msgstr "Специфические аспекты для кластеров" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:437 +msgid "" +"Some ports attempt to tune themselves to the exact machine they are being " +"built on by specifying `-march=native` to the compiler. This should be " +"avoided: either list it under an off-by-default option, or delete it " +"entirely." +msgstr "" +"Некоторые порты пытаются оптимизировать себя под конкретную машину, на " +"которой они собираются, указывая компилятору `-march=native`. Этого следует " +"избегать: либо добавить этот параметр в опцию, отключенную по умолчанию, " +"либо удалить его полностью." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:439 +msgid "" +"Otherwise, the default package produced by the build cluster might not run " +"on every single machine of that `ARCH`." +msgstr "" +"В противном случае стандартный пакет, созданный кластером сборки, может не " +"запускаться на каждой машине с данной `ARCH`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:441 +#, no-wrap +msgid "Marking a Port for Removal with `DEPRECATED` or `EXPIRATION_DATE`" +msgstr "Пометка порта на удаление с `DEPRECATED` или `EXPIRATION_DATE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:445 +msgid "" +"Do remember that `BROKEN` and `FORBIDDEN` are to be used as a temporary " +"resort if a port is not working. Permanently broken ports will be removed " +"from the tree entirely." +msgstr "" +"Помните, что `BROKEN` и `FORBIDDEN` будут использованы как временное " +"средство, если порт не является работающим. Постоянно неработоспособные " +"порты должны полностью удаляться из дерева." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:449 +msgid "" +"When it makes sense to do so, users can be warned about a pending port " +"removal with `DEPRECATED` and `EXPIRATION_DATE`. The former is a string " +"stating why the port is scheduled for removal; the latter is a string in ISO " +"8601 format (YYYY-MM-DD). Both will be shown to the user." +msgstr "" +"В подходящих ситуациях пользователи могут быть оповещены о предстоящем " +"удалении через переменные `DEPRECATED` и `EXPIRATION_DATE`. Первое - это " +"просто строка, сообщающая причину запланированного удаления порта; вторая " +"является строкой в формате ISO 8601 (YYYY-MM-DD). Обе будут показаны " +"пользователю." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:451 +msgid "" +"It is possible to set `DEPRECATED` without an `EXPIRATION_DATE` (for " +"instance, recommending a newer version of the port), but the converse does " +"not make any sense." +msgstr "" +"Переменную `DEPRECATED` можно установить без использования `EXPIRATION_DATE` " +"(в частности, при рекомендации новой версии порта), но обратный порядок не " +"имеет никакого смысла." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:457 +msgid "" +"When marking a port as `DEPRECATED`, if there are any alternative ports that " +"can be used as a replacement for the one being deprecated, it is convenient " +"to mention them in the commit message." +msgstr "" +"При пометке порта как `DEPRECATED`, если существуют альтернативные порты, " +"которые можно использовать вместо устаревающего, удобно упомянуть их в " +"сообщении коммита." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:462 +msgid "" +"There is no set policy on how much notice to give. Current practice seems " +"to be one month for security-related issues and two months for build " +"issues. This also gives any interested committers a little time to fix the " +"problems." +msgstr "" +"Не существует установленного правила о том, насколько заранее нужно " +"уведомлять. Текущая практика предполагает один месяц для проблем, связанных " +"с безопасностью, и два месяца для проблем сборки. Это также дает " +"заинтересованным коммиттерам немного времени на исправление проблем." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:464 +#, no-wrap +msgid "Avoid Use of the `.error` Construct" +msgstr "Избегайте использования конструкции `.error`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:468 +msgid "" +"The correct way for a [.filename]#Makefile# to signal that the port cannot " +"be installed due to some external factor (for instance, the user has " +"specified an illegal combination of build options) is to set a non-blank " +"value to `IGNORE`. This value will be formatted and shown to the user by " +"`make install`." +msgstr "" +"Правильным способом подать сигнал для [.filename]#Makefile# о том, что порт " +"не может быть установлен из-за какого-то внешнего фактора (например, " +"пользователь указал недопустимую комбинацию опций построения), является " +"установка непустого значения для `IGNORE`. Это значение будет сформатировано " +"и показано пользователю во время `make install`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:474 +msgid "" +"It is a common mistake to use `.error` for this purpose. The problem with " +"this is that many automated tools that work with the ports tree will fail in " +"this situation. The most common occurrence of this is seen when trying to " +"build [.filename]#/usr/ports/INDEX# (see crossref:testing[make-" +"describe,Running `make describe`]). However, even more trivial commands " +"such as `make maintainer` also fail in this scenario. This is not " +"acceptable." +msgstr "" +"Использование для этих целей `.error` является распространенной ошибкой. " +"Проблема в том, что в этой ситуации будут повреждены многие инструменты " +"автоматизации, работающие с деревом портов. Наибольшим образом это " +"распространено при попытке построить [.filename]#/usr/ports/INDEX# (смотрите " +"crossref:testing[make-describe, Запуск `make describe`]). Тем не менее, даже " +"более простые команды, такие как `make maintainer`, в этом случае также " +"вернут ошибку. Это не является приемлемым." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:476 +#, no-wrap +msgid "How to Avoid Using `.error`" +msgstr "Как избегать использования `.error`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:481 +msgid "" +"The first of the next two [.filename]#Makefile# snippets will cause `make " +"index` to fail, while the second one will not:" +msgstr "" +"Из следующих двух вариантов строки файла [.filename]#Makefile# первый " +"приведёт к неудачному завершению работы `make index`, а второй - нет:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:485 +#, no-wrap +msgid ".error \"option is not supported\"\n" +msgstr ".error \"option is not supported\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:490 +#, no-wrap +msgid "IGNORE=option is not supported\n" +msgstr "IGNORE=option is not supported\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:495 +#, no-wrap +msgid "Usage of sysctl" +msgstr "Использование sysctl" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:500 +msgid "" +"The usage of [.filename]#sysctl# is discouraged except in targets. This is " +"because the evaluation of any ``makevar``s, such as used during `make " +"index`, then has to run the command, further slowing down that process." +msgstr "" +"Использование [.filename]#sysctl# не рекомендуется, кроме как при выполнении " +"целей. Это вызвано тем, что вычисление любых `makevar`, таких как во время " +"команды `make index`, с необходимостью запуска этой команды, еще больше " +"замедляет весь процесс." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:502 +msgid "" +"Only use man:sysctl[8] through `SYSCTL`, as it contains the fully qualified " +"path and can be overridden, if one has such a special need." +msgstr "" +"man:sysctl[8] следует всегда использовать через переменную `SYSCTL`, " +"поскольку она содержит полностью заданный путь, и при необходимости может " +"быть переопределена." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:504 +#, no-wrap +msgid "Rerolling Distfiles" +msgstr "Меняющиеся дистрибутивные файлы" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:509 +msgid "" +"Sometimes the authors of software change the content of released distfiles " +"without changing the file's name. Verify that the changes are official and " +"have been performed by the author. It has happened in the past that the " +"distfile was silently altered on the download servers with the intent to " +"cause harm or compromise end user security." +msgstr "" +"Иногда авторы программного обеспечения изменяют содержимое выпущенных " +"дистрибутивных файлов, не меняя их названия. Убедитесь, что изменения " +"официальны и были выполнены автором. В прошлом случалось, что дистрибутивный " +"файл тихо изменялся на серверах загрузки с целью нанесения вреда или " +"компрометации безопасности конечного пользователя." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:512 +msgid "" +"Put the old distfile aside, download the new one, unpack them and compare " +"the content with man:diff[1]. If there is nothing suspicious, update " +"[.filename]#distinfo#." +msgstr "" +"Отложите старый distfile в сторону, загрузите новый, распакуйте их и " +"сравните содержимое с помощью man:diff[1]. Если ничего подозрительного нет, " +"обновите [.filename]#distinfo#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:516 +msgid "" +"Be sure to summarize the differences in the PR and commit log, so that other " +"people know that nothing bad has happened." +msgstr "" +"Убедитесь, что вы выделили основные различия в PR и журнале коммитов, чтобы " +"другие люди знали, что ничего плохого не произошло." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:519 +msgid "Contact the authors of the software and confirm the changes with them." +msgstr "" +"Связжитесь с автором этого программного обеспечения для подтверждения " +"изменений." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:521 +#, no-wrap +msgid "Use POSIX Standards" +msgstr "Используйте стандарты POSIX" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:525 +msgid "" +"FreeBSD ports generally expect POSIX compliance. Some software and build " +"systems make assumptions based on a particular operating system or " +"environment that can cause problems when used in a port." +msgstr "" +"В большинстве случаев порты FreeBSD ожидают соответствия стандарту POSIX. " +"Некоторые программы и системы сборки делают предположения, основанные на " +"конкретной операционной системе или окружении, что может вызывать проблемы " +"при использовании в порте." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:528 +msgid "" +"Do not use [.filename]#/proc# if there are any other ways of getting the " +"information. For example, `setprogname(argv[0])` in `main()` and then " +"man:getprogname[3] to know the executable name." +msgstr "" +"Не используйте [.filename]#/proc#, если есть другие способы получить " +"информацию. Например, `setprogname(argv[0])` в `main()`, а затем " +"man:getprogname[3] для получения имени исполняемого файла." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:530 +msgid "Do not rely on behavior that is undocumented by POSIX." +msgstr "Не полагайтесь на поведение, не документированное в POSIX." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:534 +msgid "" +"Do not record timestamps in the critical path of the application if it also " +"works without. Getting timestamps may be slow, depending on the accuracy of " +"timestamps in the OS. If timestamps are really needed, determine how " +"precise they have to be and use an API which is documented to just deliver " +"the needed precision." +msgstr "" +"Не записывайте метки времени в критическом пути приложения, если оно " +"работает и без них. Получение меток времени может быть медленным в " +"зависимости от точности меток времени в ОС. Если метки времени действительно " +"необходимы, определите, насколько точными они должны быть, и используйте " +"API, которое, согласно документации, предоставляет только необходимую " +"точность." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:538 +msgid "" +"A number of simple syscalls (for example man:gettimeofday[2], man:getpid[2]) " +"are much faster on Linux(R) than on any other operating system due to " +"caching and the vsyscall performance optimizations. Do not rely on them " +"being cheap in performance-critical applications. In general, try hard to " +"avoid syscalls if possible." +msgstr "" +"Ряд простых системных вызовов (например, man:gettimeofday[2], man:getpid[2]) " +"работают намного быстрее в Linux(R) по сравнению с любой другой операционной " +"системой из-за кеширования и используемой оптимизации vsyscall. Не " +"полагайтесь на их дешевизну в критичных к производительности приложениях. В " +"целом, старайтесь избегать системных вызовов там, где это возможно." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:541 +msgid "" +"Do not rely on Linux(R)-specific socket behavior. In particular, default " +"socket buffer sizes are different (call man:setsockopt[2] with `SO_SNDBUF` " +"and `SO_RCVBUF`, and while Linux(R)'s man:send[2] blocks when the socket " +"buffer is full, FreeBSD's will fail and set `ENOBUFS` in errno." +msgstr "" +"Не полагайтесь на специфичное для Linux(R) поведение сокета. В частности, " +"отличаются размеры буфера сокета по умолчанию (выполните вызов " +"man:setsockopt[2] с `SO_SNDBUF` и `SO_RCVBUF`, и в то время как в Linux(R) " +"при заполнении буфера сокета man:send[2] блокируется, FreeBSD возвращает " +"ошибку и устанавливает `ENOBUFS` в качестве значения errno." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:543 +msgid "" +"If relying on non-standard behavior is required, encapsulate it properly " +"into a generic API, do a check for the behavior in the configure stage, and " +"stop if it is missing." +msgstr "" +"Если требуется рассчитывать на нестандартное поведение, инкапсулируйте это " +"должным образом в общий для всех API с проверкой поведения на этапе " +"конфигурации, и если требуемое поведение не найдено, прекращайте выполнение." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:545 +msgid "" +"Check the https://man.freebsd.org/cgi/man.cgi[man pages] to see if the " +"function used is a POSIX interface (in the \"STANDARDS\" section of the man " +"page)." +msgstr "" +"Используйте https://www.freebsd.org/cgi/man.cgi[страницы справочника] для " +"проверки, относится ли функция к интерфейсу POSIX (ищите раздел " +"\"STANDARDS\" на странице справочника)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:548 +msgid "" +"Do not assume that [.filename]#/bin/sh# is bash. Ensure that a command line " +"passed to man:system[3] will work with a POSIX compliant shell." +msgstr "" +"Не рассчитывайте на то, что в качестве [.filename]#/bin/sh# используется " +"bash. Убедитесь, что командная строка, переданная в man:system[3], будет " +"работать в POSIX-совместимой оболочке." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:550 +msgid "" +"A list of common bashisms is available https://wiki.ubuntu.com/" +"DashAsBinSh[here]." +msgstr "" +"Список основных bash-измов расположен https://wiki.ubuntu.com/" +"DashAsBinSh[здесь]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:553 +msgid "" +"Check that headers are included in the POSIX or man page recommended way. " +"For example, [.filename]#sys/types.h# is often forgotten, which is not as " +"much of a problem for Linux(R) as it is for FreeBSD." +msgstr "" +"Проверьте, что используемые заголовочные файлы включены в POSIX или список, " +"рекомендуемый страницей справочника, т.к. например, забыть подключить " +"[.filename]#sys/types.h# - не такая уж проблема в Linux(R), однако это не " +"так во FreeBSD." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:555 +#, no-wrap +msgid "Miscellanea" +msgstr "Разное" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:559 +msgid "" +"Always double-check [.filename]#pkg-descr# and [.filename]#pkg-plist#. If " +"reviewing a port and a better wording can be achieved, do so." +msgstr "" +"Файлы [.filename]#pkg-descr# и [.filename]#pkg-plist# должны проверяться " +"дважды. Если вы пересматриваете порт и думаете, что его можно описать иначе, " +"сделайте это." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/porting-dads/_index.adoc:560 +msgid "" +"Please be careful to note any legal issues! Do not let us illegally " +"distribute software!" +msgstr "" +"Будьте внимательны с юридическими вопросами! Не делайте из нас нелегальных " +"распространителей ПО!" diff --git a/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc b/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc --- a/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc @@ -1,22 +1,24 @@ --- -title: Глава 13. Примерный Makefile +description: 'Образец Makefile, который можно использовать для создания нового порта FreeBSD' +next: books/porters-handbook/order +params: + path: /books/porters-handbook/porting-samplem/ prev: books/porters-handbook/porting-dads -next: books/porters-handbook/keeping-up showBookMenu: true -weight: 13 -params: - path: "/books/porters-handbook/porting-samplem/" +tags: ["sample", "makefile"] +title: 'Глава 14. Примерный Makefile' +weight: 14 --- [[porting-samplem]] -= Примерный [.filename]#Makefile# += Примерный Makefile :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 13 +:sectnumoffset: 14 :partnums: :source-highlighter: rouge :experimental: @@ -46,86 +48,55 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] -Вот примерный [.filename]#Makefile#, который можно использовать при создании нового порта. Обязательно удалите все дополнительные комментарии (те, которые в скобках)! +Образец Makefile, который можно использовать для создания нового порта. -Вам рекомендуется следовать этому формату (соблюдая порядок следования переменных, пустые строки между разделами, и так далее). Этот формат разработан для того, чтобы важная информация была легко найдена. Мы рекомендуем вам воспользоваться утилитой <> для проверки файла [.filename]#Makefile#. +Вам рекомендуется следовать этому формату (соблюдая crossref:order[,порядок] следования переменных, пустые строки между разделами, и так далее). Этот формат разработан для того, чтобы важная информация была легко найдена. Обратитесь crossref:testing[, главе о тестировании], чтобы узнать больше о lint, утилитах для форматирования и проверки файла [.filename]#Makefile#. [.programlisting] .... -[заголовок...просто чтобы нам было легче идентифицировать порт.] -# Created by: Satoshi Asami -[Необязательная строка Created by: содержит имя -человека, создавшего первоначальную версию порта. Следует отметить, -что за : следует пробел, но не символ табуляции. Если -эта строка присутствует, будущие сопровождающие не должны её менять -или удалять, кроме как по запросу первоначального автора.] - -# $FreeBSD$ -[ ^^^^^^^^^ Эта строка будет автоматически заменена на строчку RCS ID -системой SVN при выполнении операции коммита в наше хранилище. При -обновлении порта не приводите эту строку обратно к виду -"$FreeBSD$". SVN сделает это автоматически.] - -[секция описания собственно порта и основного сервера - сначала всегда - PORTNAME и PORTVERSION, за ним следует CATEGORIES, а затем - MASTER_SITES, за которым может идти MASTER_SITE_SUBDIR. - PKGNAMEPREFIX и PKGNAMESUFFIX, если они нужны, следуют за ними. - Затем следует DISTNAME, EXTRACT_SUFX и/или DISTFILES, а потом, если это нужно, - EXTRACT_ONLY.] -PORTNAME= xdvi -PORTVERSION= 18.2 +PORTNAME= xdvi <1> +DISTVERSION= 18.2 CATEGORIES= print -[не забывайте про завершающую косую черту ("/")! - если вы не используете макросы MASTER_SITE_*] -MASTER_SITES= ${MASTER_SITE_XCONTRIB} -MASTER_SITE_SUBDIR= applications +MASTER_SITES= ${MASTER_SITE_XCONTRIB} <2> +MASTER_SITE_SUBDIR= applications PKGNAMEPREFIX= ja- DISTNAME= xdvi-pl18 -[задайте это, если исходный код поставляется не в виде - стандартного файла ".tar.gz"] -EXTRACT_SUFX= .tar.Z +EXTRACT_SUFX= .tar.Z <3> -[секция патчей -- может быть пустой] -PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ +PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ <4> PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz +PATCH_DIST_STRIP= -p1 <5> -[сопровождающий; *обязательное поле*! Это человек, который добровольно - занимается обновлениями порта и неисправностями при построении, и которому - пользователь может направлять вопросы и сообщения об ошибках. Для - сохранения как можно более высокого качества Коллекции Портов мы больше - не принимаем новые порты, назначенные на "ports@FreeBSD.org".] -MAINTAINER= asami@FreeBSD.org +MAINTAINER= asami@FreeBSD.org <6> COMMENT= DVI Previewer for the X Window System +WWW= http://xdvi.sourceforge.net/ + +LICENSE= BSD2CLAUSE <7> +LICENSE_FILE= ${WRKSRC}/LICENSE + +RUN_DEPENDS= gs:print/ghostscript <8> + +USES= gmake <9> -[зависимости -- могут быть пустыми] -RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript - -[этот раздел для остальных стандартных переменных из bsd.port.mk, кроме - тех, что перечислены выше] -[Если порт задает вопросы во время этапов настройки, построения, - установки...] -IS_INTERACTIVE= yes -[Если распаковка происходит в каталог, отличных от ${DISTNAME}...] -WRKSRC= ${WRKDIR}/xdvi-new -[Если патчи делались не относительно ${WRKSRC}, вам, может быть, не - придется изменять эту переменную] -PATCH_DIST_STRIP= -p1 -[Если порт требует скрипта "configure", генерируемого GNU-версией программы - autoconf] -GNU_CONFIGURE= yes -[Если для построения порту требуется GNU-версия утилиты make, а не - /usr/bin/make...] -USES= gmake -[Если это приложение X и требует запуска "xmkmf -a"...] -USES= imake -[и так далее] - -[В правилах ниже используются нестандартные переменные] +<10> +IS_INTERACTIVE= yes <11> +WRKSRC= ${WRKDIR}/xdvi-new <12> +GNU_CONFIGURE= yes <13> + +<14> +OPTIONS_DEFINE= DOCS EXAMPLES FOO +OPTIONS_DEFAULT=FOO +OPTIONS_SUB= yes <15> + +FOO_DESC= Enable foo support +FOO_CONFIGURE_ENABLE= foo + +<16> MY_FAVORITE_RESPONSE= "yeah, right" -[теперь специальные правила, в порядке их вызова] +<17> pre-fetch: - я что-то выкачиваю, точно + i go fetch something, yeah post-patch: мне кое-что сделать после применения патча, великолепно @@ -133,7 +104,24 @@ pre-install: и потом еще кое-что перед установкой, ого -[и, наконец, эпилог] - -.include +.include <18> .... + +<1> Секция для описания самого порта и его главного сайта: первыми идут переменные PORTNAME и PORTVERSION или DISTVERSION*, на ними CATEGORIES, затем MASTER_SITES, после которой идет MASTER_SITE_SUBDIR. Если нужно, то после нее идут PKGNAMEPREFIX и PKGNAMESUFFIX. Затем следуют DISTNAME, EXTRACT_SUFX и/или DISTFILES, и уже потом, если нужно, EXTRACT_ONLY. +<2> Не забывайте про завершающую косую черту (`/`), если вы не используете макросы MASTER_SITE_*. +<3> Задайте это, если исходный код поставляется не в виде стандартного файла ".tar.gz". +<4> Секция патчей — может быть пустой. +<5> Если распространяемые патчи не были созданы относительно ${WRKSRC},возможно, это потребуется исправить вручную. +<6> Сопровождающий; *обязательное поле*! Это человек, который добровольно занимается обновлениями порта и неисправностями при построении, и которому пользователь может направлять вопросы и сообщения об ошибках. Для сохранения как можно более высокого качества Коллекции Портов мы больше не принимаем новые порты, назначенные на "ports@FreeBSD.org". +<7> Лицензия — не следует оставлять пустым. +<8> Зависимости — могут быть пустыми. +<9> Если порт требует GNU make вместо стандартного FreeBSD `make` (man:make[1]) для сборки. Например, некоторым приложениям X требуется выполнение `xmkmf -a`, в этом случае порту понадобится `USES=imake`. +<10> Этот раздел посвящён другим стандартным переменным [.filename]#bsd.port.mk#, которые не относятся ни к одной из вышеперечисленных категорий. +<11> Если порты задают интерактивные вопросы во время настройки, сборки, установки. +<12> Если извлечение происходит в каталог, отличный от `DISTNAME`. +<13> Если требуется запустить скрипт `configure`, сгенерированный GNU autoconf. +<14> Этот раздел предназначен для настройки параметров портов. +<15> Установите `OPTIONS_SUB`, если параметры изменят список файлов в crossref:plist[plist-sub, plist]. +<16> В правилах ниже используются нестандартные переменные. +<17> Специальные правила, в порядке их вызова фреймворком портов. +<18> Наконец, эпилог. diff --git a/documentation/content/ru/books/porters-handbook/porting-samplem/_index.po b/documentation/content/ru/books/porters-handbook/porting-samplem/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/porting-samplem/_index.po @@ -0,0 +1,412 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-08-20 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:1 +#, no-wrap +msgid "A sample Makefile that can be used to create a new FreeBSD Port" +msgstr "Образец Makefile, который можно использовать для создания нового порта FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:1 +#, no-wrap +msgid "Chapter 14. A Sample Makefile" +msgstr "Глава 14. Примерный Makefile" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:14 +#, no-wrap +msgid "A Sample Makefile" +msgstr "Примерный Makefile" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:52 +msgid "" +"Here is a sample [.filename]#Makefile# that can be used to create a new port." +msgstr "" +"Образец Makefile, который можно использовать для создания нового порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:56 +msgid "" +"The format shown is the recommended one for crossref:order[, ordering] " +"variables, empty lines between sections, and so on. This format is designed " +"so that the most important information is easy to locate. Refer to " +"crossref:testing[, the chapter about testing] to learn more about tools for " +"linting, formatting, and checking the [.filename]#Makefile#." +msgstr "" +"Вам рекомендуется следовать этому формату (соблюдая crossref:order[,порядок] " +"следования переменных, пустые строки между разделами, и так далее). Этот " +"формат разработан для того, чтобы важная информация была легко найдена. " +"Обратитесь crossref:testing[, главе о тестировании], чтобы узнать больше о " +"lint, утилитах для форматирования и проверки файла [.filename]#Makefile#." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:67 +#, no-wrap +msgid "" +"PORTNAME=\txdvi <1>\n" +"DISTVERSION=\t18.2\n" +"CATEGORIES=\tprint\n" +"MASTER_SITES=\t${MASTER_SITE_XCONTRIB} <2>\n" +"MASTER_SITE_SUBDIR=\tapplications\n" +"PKGNAMEPREFIX=\tja-\n" +"DISTNAME=\txdvi-pl18\n" +"EXTRACT_SUFX=\t.tar.Z <3>\n" +msgstr "" +"PORTNAME=\txdvi <1>\n" +"DISTVERSION=\t18.2\n" +"CATEGORIES=\tprint\n" +"MASTER_SITES=\t${MASTER_SITE_XCONTRIB} <2>\n" +"MASTER_SITE_SUBDIR=\tapplications\n" +"PKGNAMEPREFIX=\tja-\n" +"DISTNAME=\txdvi-pl18\n" +"EXTRACT_SUFX=\t.tar.Z <3>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:71 +#, no-wrap +msgid "" +"PATCH_SITES=\tftp://ftp.sra.co.jp/pub/X11/japanese/ <4>\n" +"PATCHFILES=\txdvi-18.patch1.gz xdvi-18.patch2.gz\n" +"PATCH_DIST_STRIP=\t-p1 <5>\n" +msgstr "" +"PATCH_SITES=\tftp://ftp.sra.co.jp/pub/X11/japanese/ <4>\n" +"PATCHFILES=\txdvi-18.patch1.gz xdvi-18.patch2.gz\n" +"PATCH_DIST_STRIP=\t-p1 <5>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:75 +#, no-wrap +msgid "" +"MAINTAINER=\tasami@FreeBSD.org <6>\n" +"COMMENT=\tDVI Previewer for the X Window System\n" +"WWW=\t\thttp://xdvi.sourceforge.net/\n" +msgstr "" +"MAINTAINER=\tasami@FreeBSD.org <6>\n" +"COMMENT=\tDVI Previewer for the X Window System\n" +"WWW=\t\thttp://xdvi.sourceforge.net/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:78 +#, no-wrap +msgid "" +"LICENSE=\tBSD2CLAUSE <7>\n" +"LICENSE_FILE=\t${WRKSRC}/LICENSE\n" +msgstr "" +"LICENSE=\tBSD2CLAUSE <7>\n" +"LICENSE_FILE=\t${WRKSRC}/LICENSE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:80 +#, no-wrap +msgid "RUN_DEPENDS=\tgs:print/ghostscript <8>\n" +msgstr "RUN_DEPENDS=\tgs:print/ghostscript <8>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:82 +#, no-wrap +msgid "USES=\t\tgmake <9>\n" +msgstr "USES=\t\tgmake <9>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:87 +#, no-wrap +msgid "" +"<10>\n" +"IS_INTERACTIVE=\tyes <11>\n" +"WRKSRC=\t\t${WRKDIR}/xdvi-new <12>\n" +"GNU_CONFIGURE=\tyes <13>\n" +msgstr "" +"<10>\n" +"IS_INTERACTIVE=\tyes <11>\n" +"WRKSRC=\t\t${WRKDIR}/xdvi-new <12>\n" +"GNU_CONFIGURE=\tyes <13>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:92 +#, no-wrap +msgid "" +"<14>\n" +"OPTIONS_DEFINE=\tDOCS EXAMPLES FOO\n" +"OPTIONS_DEFAULT=FOO\n" +"OPTIONS_SUB=\tyes <15>\n" +msgstr "" +"<14>\n" +"OPTIONS_DEFINE=\tDOCS EXAMPLES FOO\n" +"OPTIONS_DEFAULT=FOO\n" +"OPTIONS_SUB=\tyes <15>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:95 +#, no-wrap +msgid "" +"FOO_DESC=\t\tEnable foo support\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" +msgstr "" +"FOO_DESC=\t\tEnable foo support\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:98 +#, no-wrap +msgid "" +"<16>\n" +"MY_FAVORITE_RESPONSE=\t\"yeah, right\"\n" +msgstr "" +"<16>\n" +"MY_FAVORITE_RESPONSE=\t\"yeah, right\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:102 +#, no-wrap +msgid "" +"<17>\n" +"pre-fetch:\n" +"\ti go fetch something, yeah\n" +msgstr "" +"<17>\n" +"pre-fetch:\n" +"\ti go fetch something, yeah\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:105 +#, no-wrap +msgid "" +"post-patch:\n" +"\ti need to do something after patch, great\n" +msgstr "" +"post-patch:\n" +"\tмне кое-что сделать после применения патча, великолепно\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:108 +#, no-wrap +msgid "" +"pre-install:\n" +"\tand then some more stuff before installing, wow\n" +msgstr "" +"pre-install:\n" +"\tи потом еще кое-что перед установкой, ого\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:110 +#, no-wrap +msgid ".include <18>\n" +msgstr ".include <18>\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:115 +msgid "" +"Section to describe the port itself and the master site -- `PORTNAME` and " +"`PORTVERSION` or the `DISTVERSION*` variables are always first, followed by " +"`CATEGORIES`, and then `MASTER_SITES`, which can be followed by " +"`MASTER_SITE_SUBDIR`. `PKGNAMEPREFIX` and `PKGNAMESUFFIX`, if needed, will " +"be after that. Then comes `DISTNAME`, `EXTRACT_SUFX` and/or `DISTFILES`, " +"and then `EXTRACT_ONLY`, as necessary." +msgstr "" +"Секция для описания самого порта и его главного сайта: первыми идут " +"переменные PORTNAME и PORTVERSION или DISTVERSION*, на ними CATEGORIES, " +"затем MASTER_SITES, после которой идет MASTER_SITE_SUBDIR. Если нужно, то " +"после нее идут PKGNAMEPREFIX и PKGNAMESUFFIX. Затем следуют DISTNAME, " +"EXTRACT_SUFX и/или DISTFILES, и уже потом, если нужно, EXTRACT_ONLY." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:116 +msgid "" +"Do not forget the trailing slash (`/`) if not using `MASTER_SITE_*` macros." +msgstr "" +"Не забывайте про завершающую косую черту (`/`), если вы не используете " +"макросы MASTER_SITE_*." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:117 +msgid "Set this if the source is not in the standard \".tar.gz\" form." +msgstr "" +"Задайте это, если исходный код поставляется не в виде стандартного файла " +"\".tar.gz\"." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:118 +msgid "Section for distributed patches -- can be empty." +msgstr "Секция патчей — может быть пустой." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:119 +msgid "" +"If the distributed patches were not made relative to `WRKSRC`, this may need " +"to be tweaked." +msgstr "" +"Если распространяемые патчи не были созданы относительно ${WRKSRC},возможно, " +"это потребуется исправить вручную." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:122 +msgid "" +"Maintainer; *mandatory*! This is the person who is volunteering to handle " +"port updates, build breakages, and to whom a users can direct questions and " +"bug reports. To keep the quality of the Ports Collection as high as " +"possible, we do not accept new ports that are assigned to " +"\"ports@FreeBSD.org\"." +msgstr "" +"Сопровождающий; *обязательное поле*! Это человек, который добровольно " +"занимается обновлениями порта и неисправностями при построении, и которому " +"пользователь может направлять вопросы и сообщения об ошибках. Для сохранения " +"как можно более высокого качества Коллекции Портов мы больше не принимаем " +"новые порты, назначенные на \"ports@FreeBSD.org\"." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:123 +msgid "License -- should not be empty." +msgstr "Лицензия — не следует оставлять пустым." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:124 +msgid "Dependencies -- can be empty." +msgstr "Зависимости — могут быть пустыми." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:126 +msgid "" +"If the port requires GNU make instead of the default FreeBSD `make` " +"(man:make[1]) to build. For example, some X applications require `xmkmf -a` " +"to run, in which case the port would need `USES=imake`." +msgstr "" +"Если порт требует GNU make вместо стандартного FreeBSD `make` (man:make[1]) " +"для сборки. Например, некоторым приложениям X требуется выполнение `xmkmf " +"-a`, в этом случае порту понадобится `USES=imake`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:127 +msgid "" +"This section is for other standard [.filename]#bsd.port.mk# variables that " +"do not belong to any of the above." +msgstr "" +"Этот раздел посвящён другим стандартным переменным [.filename]#bsd.port.mk#, " +"которые не относятся ни к одной из вышеперечисленных категорий." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:128 +msgid "" +"If the ports asks interactive questions during configure, build, install." +msgstr "" +"Если порты задают интерактивные вопросы во время настройки, сборки, " +"установки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:129 +msgid "If it extracts to a directory other than `DISTNAME`." +msgstr "Если извлечение происходит в каталог, отличный от `DISTNAME`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:130 +msgid "" +"If it requires a `configure` script generated by GNU autoconf to be run." +msgstr "" +"Если требуется запустить скрипт `configure`, сгенерированный GNU autoconf." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:131 +msgid "This section is for handling ports options." +msgstr "Этот раздел предназначен для настройки параметров портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:132 +msgid "" +"Set `OPTIONS_SUB` if options will change the list of files in the " +"crossref:plist[plist-sub, plist]." +msgstr "" +"Установите `OPTIONS_SUB`, если параметры изменят список файлов в " +"crossref:plist[plist-sub, plist]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:133 +msgid "Non-standard variables to be used in the rules below." +msgstr "В правилах ниже используются нестандартные переменные." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:134 +msgid "Special rules, in the order they are called by the ports framework." +msgstr "Специальные правила, в порядке их вызова фреймворком портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-samplem/_index.adoc:134 +msgid "Finally, the epilogue." +msgstr "Наконец, эпилог." + +#~ msgid "" +#~ "Here is a sample [.filename]#Makefile# that can be used to create a new " +#~ "port. Make sure to remove all the extra comments (ones between brackets)." +#~ msgstr "" +#~ "Вот примерный [.filename]#Makefile#, который можно использовать при " +#~ "создании нового порта. Обязательно удалите все дополнительные комментарии " +#~ "(те, которые в скобках)." + +#, no-wrap +#~ msgid "" +#~ "[If it requires GNU make, not /usr/bin/make, to build...]\n" +#~ "USES= gmake\n" +#~ "[If it is an X application and requires \"xmkmf -a\" to be run...]\n" +#~ "USES= imake\n" +#~ msgstr "" +#~ "[Если для сборки требуется GNU make, а не /usr/bin/make...]\n" +#~ "USES= gmake\n" +#~ "[Если это приложение для X и требует выполнения команды \"xmkmf -a\"...]\n" +#~ "USES= imake\n" + +#, no-wrap +#~ msgid "" +#~ "[this section is for other standard bsd.port.mk variables that do not]\n" +#~ " belong to any of the above]\n" +#~ "[If it asks questions during configure, build, install...]\n" +#~ "IS_INTERACTIVE=\tyes\n" +#~ "[If it extracts to a directory other than ${DISTNAME}...]\n" +#~ "WRKSRC=\t\t${WRKDIR}/xdvi-new\n" +#~ "[If it requires a \"configure\" script generated by GNU autoconf to be run]\n" +#~ "GNU_CONFIGURE=\tyes\n" +#~ "[et cetera.]\n" +#~ msgstr "" +#~ "[Этот раздел предназначен для прочих стандартных переменных bsd.port.mk,\n" +#~ " не относящихся к указанным выше категориям]\n" +#~ "[Если программа задаёт вопросы во время настройки (configure), сборки (build) или установки (install)...]\n" +#~ "IS_INTERACTIVE=\tyes\n" +#~ "[Если распаковка происходит в каталог, отличных от ${DISTNAME}...]\n" +#~ "WRKSRC=\t\t${WRKDIR}/xdvi-new\n" +#~ "[Если требуется выполнение сценария \"configure\", сгенерированного GNU autoconf.]\n" +#~ "GNU_CONFIGURE=\tyes\n" +#~ "[и так далее.]\n" + +#, no-wrap +#~ msgid "" +#~ "[If it requires options, this section is for options]\n" +#~ "OPTIONS_DEFINE=\tDOCS EXAMPLES FOO\n" +#~ "OPTIONS_DEFAULT=\tFOO\n" +#~ "[If options will change the files in plist]\n" +#~ "OPTIONS_SUB=yes\n" +#~ msgstr "" +#~ "[Если для сборки требуются параметры, этот раздел предназначен для их настройки]\n" +#~ "OPTIONS_DEFINE=\tDOCS EXAMPLES FOO\n" +#~ "OPTIONS_DEFAULT=\tFOO\n" +#~ "[Если параметры влияют на список файлов в plist]\n" +#~ "OPTIONS_SUB=yes\n" + +#, no-wrap +#~ msgid "FOO_CONFIGURE_ENABLE=\tfoo\n" +#~ msgstr "FOO_CONFIGURE_ENABLE=\tfoo\n" diff --git a/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc b/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc --- a/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc @@ -1,11 +1,13 @@ --- -title: Глава 1. Введение -prev: books/porters-handbook/ +description: 'Почему добавляют программы в коллекцию портов FreeBSD' next: books/porters-handbook/new-port +params: + path: /books/porters-handbook/porting-why/ +prev: books/porters-handbook showBookMenu: true +tags: ["ports", "why porting"] +title: 'Глава 1. Введение' weight: 1 -params: - path: "/books/porters-handbook/porting-why/" --- [[why-port]] diff --git a/documentation/content/ru/books/porters-handbook/porting-why/_index.po b/documentation/content/ru/books/porters-handbook/porting-why/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/porting-why/_index.po @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-12 12:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/porting-why/_index.adoc:1 +#, no-wrap +msgid "Why port a program to the FreeBSD Ports Collection" +msgstr "Почему добавляют программы в коллекцию портов FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/porting-why/_index.adoc:1 +#, no-wrap +msgid "Chapter 1. Introduction" +msgstr "Глава 1. Введение" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/porting-why/_index.adoc:14 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-why/_index.adoc:54 +msgid "" +"The FreeBSD Ports Collection is the way almost everyone installs " +"applications (\"ports\") on FreeBSD. Like everything else about FreeBSD, it " +"is primarily a volunteer effort. It is important to keep this in mind when " +"reading this document." +msgstr "" +"Коллекция портов FreeBSD является способом, используемым практически каждым " +"для установки приложений (\"портов\") на FreeBSD. Как и почти всё остальное " +"во FreeBSD, эта система в основном является добровольно поддерживаемым " +"начинанием. Важно иметь это в виду при чтении данного документа." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/porting-why/_index.adoc:56 +msgid "" +"In FreeBSD, anyone may submit a new port, or volunteer to maintain an " +"existing unmaintained port. No special commit privilege is needed." +msgstr "" +"Во FreeBSD каждый может прислать новый порт либо изъявить желание " +"поддерживать существующий порт, если его никто ещё никто не поддерживает-вам " +"не нужно иметь никаких особых привилегий на внесение изменений, чтобы это " +"делать." diff --git a/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc b/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc --- a/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc @@ -1,11 +1,13 @@ --- -title: Глава 3. Быстрое портирование -prev: books/porters-handbook/new-port +description: 'Как быстро создать новый порт FreeBSD' next: books/porters-handbook/slow-porting +params: + path: /books/porters-handbook/quick-porting/ +prev: books/porters-handbook/new-port showBookMenu: true +tags: ["quick porting", "guide", "port", "ports collection", "how-to"] +title: 'Глава 3. Быстрое портирование' weight: 3 -params: - path: "/books/porters-handbook/quick-porting/" --- [[quick-porting]] @@ -46,20 +48,20 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] -В этом разделе описано, как создать новый порт на скорую руку. Во многих случаях этого бывает не достаточно, так что вам нужно будет прочитать документ дальше. +В этом разделе описано, как быстро создать новый порт. Для случаев, когда этот быстрый метод не подходит, полный процесс "Медленного портирования" описан в разделе crossref:slow-porting[slow-porting,Медленное портирование]. Во-первых, скачайте оригинальный tar-файл и поместите его в каталог `DISTDIR`, который по умолчанию есть не что иное, как [.filename]#/usr/ports/distfiles#. [NOTE] ==== -Здесь предполагается, что программное обеспечение компилируется без проблем как есть, то есть для работы приложения на вашей системе FreeBSD не потребовалось абсолютно никаких изменений. Если требовалось что-то изменить, то вам придется обратиться также и к следующему разделу. +Здесь предполагается, что программное обеспечение компилируется без проблем как есть, то есть для работы приложения на вашей системе FreeBSD не потребовалось абсолютно никаких изменений. Если требовалось что-то изменить, то вам придется обратиться также и к следующему разделу — crossref:slow-porting[slow-porting,Медленное портирование]. ==== [NOTE] ==== Перед началом портирования рекомендуется установить переменную man:make[1] `DEVELOPER` в [.filename]#/etc/make.conf#. -[source,shell] +[source, shell] .... # echo DEVELOPER=yes >> /etc/make.conf .... @@ -74,64 +76,48 @@ [.programlisting] .... -# $FreeBSD$ - PORTNAME= oneko -PORTVERSION= 1.1b +DISTVERSION= 1.1b CATEGORIES= games -MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ +MASTER_SITES= ftp://ftp.rediris.es/sites/ftp.freebsd.org/pub/FreeBSD/ MAINTAINER= youremail@example.com COMMENT= Cat chasing a mouse all over the screen +WWW= http://www.daidouji.com/oneko/ .include .... -[NOTE] -==== -В некоторых случаях в заголовке [.filename]#Makefile# существующего порта могут содержаться дополнительные строки, такие как название порта и дата его создания. Эта дополнительная информация была объявлена устаревшей и находится в процессе удаления. -==== - -Посмотрим, сможете ли вы его понять. Не обращайте внимание на содержимое строчки `$FreeBSD$`, она будет заполнена автоматически системой Subversion, когда порт будет импортирован в наше дерево портов. Вы можете найти более подробный пример в разделе <>. +Посмотрим, сможете ли вы его понять. Более подробный пример приведен в секции crossref:porting-samplem[porting-samplem,пример Makefile]. [[porting-desc]] == Создание информационных файлов Имеется два информационных файла, которые требуются для любого порта, вне зависимости от того, является ли он пакетом или нет. Это [.filename]#pkg-descr# и [.filename]#pkg-plist#. Префикс [.filename]#pkg-# отличает их от других файлов. +[[porting-pkg-descr]] === [.filename]#pkg-descr# Это более подробное краткое описание порта. От одного до нескольких абзацев, кратко описывающих, что представляет собой порт, будет достаточно. [NOTE] ==== -Это _не_ руководство и не подробнейшее описание того, как использовать или компилировать порт! _Пожалуйста, будьте внимательны при копировании текста из [.filename]#README# или страниц справочника_; слишком часто они не являются кратким описанием порта или имеют неудобный формат (например, страницы справочника выровнены пробелами, что особенно плохо смотрится с моноширинными шрифтами). +Это _не_ руководство и не подробное описание того, как использовать или компилировать порт! _Пожалуйста, будьте осторожны при копировании из [.filename]#README# или manpage_. Очень часто они не содержат краткого описания порта или имеют неудобный формат. Например, manpages используют выравнивание по ширине, что особенно плохо выглядит с моноширинными шрифтами. + +С другой стороны, содержимое файла [.filename]#pkg-descr# должно быть длиннее, чем crossref:makefiles[makefile-comment,строка `COMMENT` из Makefile]. Оно должно более подробно объяснять, что собой представляет данный порт. ==== Хорошо составленный [.filename]#pkg-descr# описывает порт достаточно полно, чтобы пользователю не приходилось сверяться с документацией или посещать вебсайт для понимания того, что делает данное программное обеспечение, чем оно может быть полезно или какие хорошие функции у него имеются. Упоминание про определённые требования, такие как используемый графический инструментарий, тяжёлые зависимости, окружение для запуска или используемый язык программирования помогут пользователям определиться, будет ли этот порт для них работать. -Включите сюда URL официальной домашней страницы Интернет. Перед _одним_ из сайтов (выберите основной) добавьте `WWW:` (с последующим единичным пробелом) для того, чтобы вспомогательные утилиты работали правильно. Если URI является корнем сайта или каталогом, то значение должно быть дополнено косой чертой. - [NOTE] ==== -Если указанная для порта веб-страница не доступна, попытайтесь сперва поискать, был ли официальный сайт перемещён, переименован или размещён в другом месте. +URL, который ранее включался в последнюю строку файла [.filename]#pkg-descr#, был перемещен в [.filename]#Makefile#. ==== -Следующий пример показывает, как должен выглядеть ваш [.filename]#pkg-descr#: - -[.programlisting] -.... -This is a port of oneko, in which a cat chases a poor mouse all over -the screen. - : -(etc.) - -WWW: http://www.oneko.org/ -.... - +[[porting-pkg-plist]] === [.filename]#pkg-plist# -Здесь перечисляются все файлы, устанавливаемые портом. Его также называют "списком для упаковки", потому что пакет генерируется упаковкой файлов, которые здесь указаны. Имена путей указываются относительно установочного префикса (обычно [.filename]#/usr/local#). Если порт во время установки создает каталоги, убедитесь, что добавлены строки `@dirrm` для удаления каталогов при удалении пакета. +Здесь перечисляются все файлы, устанавливаемые портом. Его также называют "списком для упаковки", потому что пакет генерируется упаковкой файлов, которые здесь указаны. Имена путей указываются относительно установочного префикса (обычно [.filename]#/usr/local#). Вот маленький пример: @@ -143,19 +129,18 @@ lib/X11/oneko/cat1.xpm lib/X11/oneko/cat2.xpm lib/X11/oneko/mouse.xpm -@dirrm lib/X11/oneko .... Обратитесь к странице справочной системы по команде man:pkg-create[8] с подробным описанием формата списка упаковки. [NOTE] ==== -Рекомендуется, чтобы имена файлов в этом списке были отсортированы в алфавитном порядке. Это позволит значительно облегчить сверку изменений при обновлении порта. +Рекомендуется, чтобы имена файлов в этом списке были отсортированы в алфавитном порядке. Это позволит значительно облегчить сверку изменений при обновлении порта. Фреймворк делает это корректно, когда список пакета crossref:plist[plist-autoplist,сгенерирован автоматически]. ==== -[NOTE] +[TIP] ==== -Создание списка упаковки вручную может оказаться весьма трудоёмкой задачей. Если порт устанавливает большое количество файлов, раздел об <> может помочь сэкономить время. +Создание списка упаковки вручную может оказаться весьма трудоёмкой задачей. Если порт устанавливает большое количество файлов, раздел об crossref:plist[plist-autoplist,автоматическом построении списка упаковки] может помочь сэкономить время. ==== Существует только одно исключение, когда у порта может отсутствовать [.filename]#pkg-plist#. Если порт устанавливает лишь несколько файлов, а возможно, и каталогов, то они могут быть перечислены в переменных `PLIST_FILES` и `PLIST_DIRS`, соответственно, внутри файла [.filename]#Makefile# порта. К примеру, мы можем обойтись без файла [.filename]#pkg-plist# у приведённого выше порта [.filename]#oneko#, добавив следующие строки в [.filename]#Makefile#: @@ -168,80 +153,127 @@ lib/X11/oneko/cat1.xpm \ lib/X11/oneko/cat2.xpm \ lib/X11/oneko/mouse.xpm -PLIST_DIRS= lib/X11/oneko .... -Конечно, переменная `PLIST_DIRS` не должна задаваться, если порт не устанавливает никаких каталогов. - [NOTE] ==== -Несколько портов могут совместно использовать общий каталог. В этом случае `PLIST_DIRS` следует заменить на `PLIST_DIRSTRY`, так чтобы каталог удалялся только если он пуст, а иначе игнорировался. Использование `PLIST_DIRS` и `PLIST_DIRSTRY` аналогично `@dirrm` и `@dirrmtry` в [.filename]#pkg-plist#, описание которых входит в crossref:plist[plist-dir-cleaning,Очистка пустых каталогов]. +Использование `PLIST_FILES` не должно быть чрезмерным. При поиске происхождения файла обычно просматривают файлы [.filename]#pkg-plist# в дереве портов с помощью grep. Указание файлов в `PLIST_FILES` в [.filename]#Makefile# усложняет этот поиск. ==== -Обратной стороной такого способа перечисления файлов и каталогов порта является невозможность использования последовательностей команд, описанных в man:pkg-create[8]. Поэтому он подходит для простых портов, что делает их ещё более простыми. Одновременно с этим положительным моментом является уменьшение количества файлов в коллекции портов. Пожалуйста, подумайте над использованием этой техники, прежде чем создавать [.filename]#pkg-plist#. +[TIP] +==== +Если порту требуется создать пустой каталог или он создает каталоги вне [.filename]#${PREFIX}# во время установки, обратитесь к разделу crossref:plist[plist-dir-cleaning,Очистка пустых каталогов] для получения дополнительной информации. +==== -Далее мы увидим, как можно использовать файлы [.filename]#pkg-plist# и `PLIST_FILES` выполнения crossref:plist[plist,более сложных задач]. +[TIP] +==== +Поскольку `PLIST_FILES` является переменной man:make[1], любая запись с пробелами должна быть заключена в кавычки. Например, при использовании ключевых слов, описанных в man:pkg-create[8] и crossref:plist[plist-keywords,Расширение списка пакетов с помощью ключевых слов], запись должна быть заключена в кавычки. + +[.programlisting] +.... +PLIST_FILES= "@sample ${ETCDIR}/oneko.conf.sample" +.... +==== + +Позже мы увидим, как [.filename]#pkg-plist# и `PLIST_FILES` могут использоваться для выполнения crossref:plist[plist,более сложных задач]. [[porting-checksum]] == Создание файла с контрольной суммой -Просто введите команду `make makesum`. Правила утилиты make автоматически сгенерируют файл [.filename]#distinfo#. - -Если у извлекаемого файла регулярно меняется контрольная сумма и вы не сомневаетесь в надежности источника (т.е. он получен из CD производителя, либо ежедневно обновляется документация), то вы должны указать эти файлы в переменной `IGNOREFILES`. Тогда контрольная сумма при выполнении `make makesum` для этого файла создаваться не будет, а вместо этого для него будет установлено значение `IGNORE`. +Просто введите команду `make makesum`. Правила утилиты make автоматически сгенерируют файл [.filename]#distinfo#. Не пытайтесь создавать этот файл вручную. [[porting-testing]] == Тестирование порта -Вы должны удостовериться, что правила построения порта выполняют именно то, что вы хотите, включая создание пакета для порта. Вот те важные вещи, которые вы должны проверить. +Вы должны удостовериться, что правила построения порта выполняют именно то, что вы хотите, включая создание пакета для порта. Вот те важные вещи, которые вы должны проверить: -* [.filename]#pkg-plist# не содержит ничего сверх того, что устанавливается портом -* [.filename]#pkg-plist# содержит абсолютно все, что устанавливается портом +* [.filename]#pkg-plist# не содержит ничего сверх того, что устанавливается портом. +* [.filename]#pkg-plist# содержит абсолютно все, что устанавливается портом. * Порт может быть установлен с помощью указания цели `install`. Это позволяет убедиться в правильной работе сценария установки. * Порт может быть правильным образом удалён с помощью указания цели `deinstall`. Это позволяет убедиться в правильной работе сценария удаления. -* Следует убедиться, что `make package` можно запустить из-под обычного пользователя (то есть, не из-под `root`). Если это не так, в [.filename]#Makefile# порта должно быть добавлено `NEED_ROOT=yes`. +* Порт имеет доступ к сетевым ресурсам только во время фазы цели `fetch`. Это важно для сборщиков пакетов, таких как package:ports-mgmt/poudriere[]. +* Убедитесь, что команду `make package` можно выполнить от имени обычного пользователя (то есть не от `root`). Если это не работает, возможно, потребуется исправить программное обеспечение. См. также crossref:uses[uses-fakeroot,`fakeroot`] и crossref:uses[uses-uidfix,`uidfix`]. [.procedure] -==== -*Procedure: Рекомендуемый порядок проверки* - +.*Procedure: Рекомендуемый порядок проверки* . `make stage` . `make check-orphans` . `make package` . `make install` . `make deinstall` -. `pkg add package-filename` -. `make package` (из-под пользователя) -==== +. `make package` (как пользователь) Убедитесь, что на любом из этапов не выдается никаких предупреждений. -Основательное автоматизированное тестирование может быть выполнено при помощи package:ports-mgmt/tinderbox[] или package:ports-mgmt/poudriere[] из Коллекции Портов. Эти приложения используют `jails`, в которых проверяются все перечисленные выше этапы без изменения состояния основной системы. +Тщательное автоматизированное тестирование можно выполнить с помощью package:ports-mgmt/poudriere[] из коллекции портов, дополнительную информацию см. в crossref:testing[testing-poudriere,poudriere]. Он поддерживает `клетки`, в которых можно протестировать все указанные выше шаги без воздействия на состояние основной системы. [[porting-portlint]] == Проверка вашего порта утилитой `portlint` -Будьте добры, пользуйтесь утилитой `portlint` для проверки того, что ваш порт соответствует нашим рекомендациям. Программа package:ports-mgmt/portlint[] является частью Коллекции Портов. В частности, вы можете захотеть проверить, правильно ли сформирован файл <> и соответствующим ли образом именован <>. +Будьте добры, пользуйтесь утилитой `portlint` для проверки того, что ваш порт соответствует нашим рекомендациям. Программа package:ports-mgmt/portlint[] является частью Коллекции Портов. В частности, вы можете захотеть проверить, правильно ли сформирован файл crossref:porting-samplem[porting-samplem,Makefile] и соответствующим ли образом именован crossref:porting-pkgname[porting-pkgname,пакет]. + +[IMPORTANT] +==== +Не следуйте слепо выводу `portlint`. Это статический инструмент для проверки, и иногда он ошибается. +==== [[porting-submitting]] == Посылка нового порта Перед посылкой нового порта прочитайте раздел о том, что crossref:porting-dads[porting-dads,можно и нельзя] делать. -Когда вы наконец довольны своим первым портом, единственное, что осталось сделать, это включить его в основное дерево портов FreeBSD и осчастливить этим всех остальных. Нам не нужен ни каталог [.filename]#work#, ни пакет [.filename]#pkgname.tgz#, так что удалите их прямо сейчас. +Когда вы наконец довольны своим первым портом, единственное, что осталось сделать, это включить его в основное дерево портов FreeBSD и осчастливить этим всех остальных. + +[IMPORTANT] +==== +Нам не нужны каталог [.filename]#work# или пакет [.filename]#pkgname.txz#, поэтому их можно удалить. +==== + +Далее создайте файл man:patch[1]. Предположим, что порт называется `oneko` и находится в категории `games`. + +[[porting-submitting-diff]] +.Создание [.filename]#.diff# для нового порта +[example] +==== +Добавьте все файлы с помощью `git add .`, затем просмотрите изменения с помощью `git diff`. Например: + +[source, shell] +.... +% git add . +% git diff --staged +.... -Затем получите файл man:shar[1]. Предполагая, что порт называется oneko, перейдите в каталог выше, где находится каталог `oneko`, и наберите: `shar find oneko > oneko.shar` +Убедитесь, что все необходимые файлы включены, затем зафиксируйте изменение в вашей локальной ветке и создайте патч с помощью `git format-patch` + +[source, shell] +.... +% git commit +% git format-patch origin/main +.... -Включите [.filename]#oneko.shar# в сообщение об ошибке и пошлите его с помощью man:send-pr[1]. Обратитесь к разделу extref:{contributing}[Сообщения об ошибках и общие замечания, CONTRIB-GENERAL] для получения подробной информации о man:send-pr[1]). +Патч, созданный с помощью `git format-patch`, будет содержать идентификатор автора и адреса электронной почты, что упрощает применение разработчиками (с помощью `git am`) и правильное указание авторства. -Укажите в сообщении категорию `ports` и класс `change-request`. _Не_ указывайте, что сообщение имеет статус `confidential`! Добавьте краткое описание программы в поле "Description" отправляемого PR (например, содержимое `COMMENT` в сокращённом варианте) и сам файл в виде архива [.filename]#.shar# в поле "Fix". +[IMPORTANT] +**** +Чтобы упростить применение патча для коммитеров в их рабочей копии дерева портов, пожалуйста, создайте файл [.filename]#.diff# из корня вашего дерева портов. +**** + +==== + +Отправьте файл [.filename]#oneko.diff# через https://bugs.freebsd.org/submit/[форму отправки отчётов об ошибках]. Укажите продукт "Ports & Packages", компонент "Individual Port(s)" и следуйте приведённым там инструкциям. Добавьте краткое описание программы в поле Description PR (например, сокращённую версию `COMMENT`) и не забудьте прикрепить файл [.filename]#oneko.diff#. [NOTE] ==== -Хорошее описание в заголовке сообщения о проблеме значительно облегчает работу коммиттеров портов. Для новых портов мы предпочитаем нечто вроде "New port: <категория>/<название порта> <краткое описание порта>". Следование этой схеме упрощает и ускоряет начало работы по добавлению нового порта. +Хорошее описание в заголовке сообщения о проблеме значительно облегчает работу коммиттеров портов. Для новых портов мы предпочитаем нечто вроде "[NEW PORT] _категория/название_порта краткое описание порта_". Следование этой схеме упрощает и ускоряет начало работы по добавлению нового порта. ==== -Повторим ещё раз, что __не нужно включать ни оригинальный файл с дистрибутивом, ни каталог [.filename]#work#, ни пакет, построенный вами командой ``make package``__; для новых портов используйте man:shar[1], но не man:diff[1]. +После отправки порта, пожалуйста, потерпите. Время, необходимое для включения нового порта во FreeBSD, может занимать от нескольких дней до нескольких месяцев. https://bugs.freebsd.org/bugzilla/query.cgi[ Здесь] можно увидеть список ожидающих PR для портов. -После отправки порта, пожалуйста, потерпите. Время, необходимое для включения нового порта во FreeBSD, может занимать от нескольких дней до нескольких месяцев. http://www.FreeBSD.org/cgi/query-pr-summary.cgi?category=ports[ Здесь] можно увидеть список ожидающих PR для портов. +Чтобы получить список _открытых_ PR для портов, выберите _Open_ и _Ports & Packages_ в форме поиска, затем нажмите btn:[Search]. -После рассмотрения нового порта мы при необходимости вам ответим, а затем включим порт в наше дерево. Ваше имя также будет добавлено в список extref:{contributors}[Дополнительных контрибуторов проекта FreeBSD, contrib-additional] и другие файлы. +После ознакомления с новым портом мы ответим, если это необходимо, и добавим его в дерево. Имя отправителя также будет добавлено в список extref:{contributors}[Дополнительных участников FreeBSD, contrib-additional] и другие файлы. + +[IMPORTANT] +==== +Ранее можно было отправлять исправления для новых портов, используя файл man:shar[1]; однако с развитием man:git[1] это больше не актуально. Коммиттеры больше не принимают файлы man:shar[1], так как их использование чревато ошибками и не добавляет соответствующую запись в [.filename]#Makefile# категории. +==== diff --git a/documentation/content/ru/books/porters-handbook/quick-porting/_index.po b/documentation/content/ru/books/porters-handbook/quick-porting/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/quick-porting/_index.po @@ -0,0 +1,767 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:1 +#, no-wrap +msgid "How to quickly create a new FreeBSD Port" +msgstr "Как быстро создать новый порт FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:1 +#, no-wrap +msgid "Chapter 3. Quick Porting" +msgstr "Глава 3. Быстрое портирование" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:14 +#, no-wrap +msgid "Quick Porting" +msgstr "Быстрое портирование" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:53 +msgid "" +"This section describes how to quickly create a new port. For applications " +"where this quick method is not adequate, the full \"Slow Porting\" process " +"is described in crossref:slow-porting[slow-porting,Slow Porting]." +msgstr "" +"В этом разделе описано, как быстро создать новый порт. Для случаев, когда " +"этот быстрый метод не подходит, полный процесс \"Медленного портирования\" " +"описан в разделе crossref:slow-porting[slow-porting,Медленное портирование]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:55 +msgid "" +"First, get the original tarball and put it into `DISTDIR`, which defaults to " +"[.filename]#/usr/ports/distfiles#." +msgstr "" +"Во-первых, скачайте оригинальный tar-файл и поместите его в каталог " +"`DISTDIR`, который по умолчанию есть не что иное, как [.filename]#/usr/ports/" +"distfiles#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:61 +msgid "" +"These steps assume that the software compiled out-of-the-box. In other " +"words, absolutely no changes were required for the application to work on a " +"FreeBSD system. If anything had to be changed, refer to crossref:slow-" +"porting[slow-porting,Slow Porting]." +msgstr "" +"Здесь предполагается, что программное обеспечение компилируется без проблем " +"как есть, то есть для работы приложения на вашей системе FreeBSD не " +"потребовалось абсолютно никаких изменений. Если требовалось что-то изменить, " +"то вам придется обратиться также и к следующему разделу — crossref:slow-" +"porting[slow-porting,Медленное портирование]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:66 +msgid "" +"It is recommended to set the `DEVELOPER` man:make[1] variable in " +"[.filename]#/etc/make.conf# before getting into porting." +msgstr "" +"Перед началом портирования рекомендуется установить переменную man:make[1] " +"`DEVELOPER` в [.filename]#/etc/make.conf#." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:70 +#, no-wrap +msgid "# echo DEVELOPER=yes >> /etc/make.conf\n" +msgstr "# echo DEVELOPER=yes >> /etc/make.conf\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:73 +msgid "" +"This setting enables the \"developer mode\" that displays deprecation " +"warnings and activates some further quality checks on calling `make`." +msgstr "" +"Эта настройка включает \"режим разработчика\", в котором отображаются " +"предупреждения при использовании устаревших конструкций и задействуются " +"некоторые дополнительные проверки при вызове команды `make`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:76 +#, no-wrap +msgid "Writing the Makefile" +msgstr "Создание файла [.filename]#Makefile#" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:79 +msgid "The minimal [.filename]#Makefile# would look something like this:" +msgstr "Минимальный [.filename]#Makefile# будет выглядеть примерно так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:86 +#, no-wrap +msgid "" +"PORTNAME=\toneko\n" +"DISTVERSION=\t1.1b\n" +"CATEGORIES=\tgames\n" +"MASTER_SITES=\tftp://ftp.rediris.es/sites/ftp.freebsd.org/pub/FreeBSD/\n" +msgstr "" +"PORTNAME=\toneko\n" +"DISTVERSION=\t1.1b\n" +"CATEGORIES=\tgames\n" +"MASTER_SITES=\tftp://ftp.rediris.es/sites/ftp.freebsd.org/pub/FreeBSD/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:90 +#, no-wrap +msgid "" +"MAINTAINER=\tyouremail@example.com\n" +"COMMENT=\tCat chasing a mouse all over the screen\n" +"WWW=\t\thttp://www.daidouji.com/oneko/\n" +msgstr "" +"MAINTAINER=\tyouremail@example.com\n" +"COMMENT=\tCat chasing a mouse all over the screen\n" +"WWW=\t\thttp://www.daidouji.com/oneko/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:92 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:96 +msgid "" +"Try to figure it out. A more detailed example is shown in the " +"crossref:porting-samplem[porting-samplem,sample Makefile] section." +msgstr "" +"Посмотрим, сможете ли вы его понять. Более подробный пример приведен в " +"секции crossref:porting-samplem[porting-samplem,пример Makefile]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:98 +#, no-wrap +msgid "Writing the Description Files" +msgstr "Создание информационных файлов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:103 +msgid "" +"There are two description files that are required for any port, whether they " +"actually package or not. They are [.filename]#pkg-descr# and " +"[.filename]#pkg-plist#. Their [.filename]#pkg-# prefix distinguishes them " +"from other files." +msgstr "" +"Имеется два информационных файла, которые требуются для любого порта, вне " +"зависимости от того, является ли он пакетом или нет. Это [.filename]#pkg-" +"descr# и [.filename]#pkg-plist#. Префикс [.filename]#pkg-# отличает их от " +"других файлов." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:105 +#, no-wrap +msgid "[.filename]#pkg-descr#" +msgstr "[.filename]#pkg-descr#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:109 +msgid "" +"This is a longer description of the port. One to a few paragraphs concisely " +"explaining what the port does is sufficient." +msgstr "" +"Это более подробное краткое описание порта. От одного до нескольких абзацев, " +"кратко описывающих, что представляет собой порт, будет достаточно." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:116 +msgid "" +"This is _not_ a manual or an in-depth description on how to use or compile " +"the port! _Please be careful when copying from the [.filename]#README# or " +"manpage_. Too often they are not a concise description of the port or are " +"in an awkward format. For example, manpages have justified spacing, which " +"looks particularly bad with monospaced fonts." +msgstr "" +"Это _не_ руководство и не подробное описание того, как использовать или " +"компилировать порт! _Пожалуйста, будьте осторожны при копировании из " +"[.filename]#README# или manpage_. Очень часто они не содержат краткого " +"описания порта или имеют неудобный формат. Например, manpages используют " +"выравнивание по ширине, что особенно плохо выглядит с моноширинными шрифтами." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:118 +msgid "" +"On the other hand, the content of [.filename]#pkg-descr# must be longer than " +"the crossref:makefiles[makefile-comment,`COMMENT` line from the Makefile]. " +"It must explain in more depth what the port is all about." +msgstr "" +"С другой стороны, содержимое файла [.filename]#pkg-descr# должно быть " +"длиннее, чем crossref:makefiles[makefile-comment,строка `COMMENT` из " +"Makefile]. Оно должно более подробно объяснять, что собой представляет " +"данный порт." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:122 +msgid "" +"A well-written [.filename]#pkg-descr# describes the port completely enough " +"that users would not have to consult the documentation or visit the website " +"to understand what the software does, how it can be useful, or what " +"particularly nice features it has. Mentioning certain requirements like a " +"graphical toolkit, heavy dependencies, runtime environment, or " +"implementation languages help users decide whether this port will work for " +"them." +msgstr "" +"Хорошо составленный [.filename]#pkg-descr# описывает порт достаточно полно, " +"чтобы пользователю не приходилось сверяться с документацией или посещать " +"вебсайт для понимания того, что делает данное программное обеспечение, чем " +"оно может быть полезно или какие хорошие функции у него имеются. Упоминание " +"про определённые требования, такие как используемый графический " +"инструментарий, тяжёлые зависимости, окружение для запуска или используемый " +"язык программирования помогут пользователям определиться, будет ли этот порт " +"для них работать." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:126 +msgid "" +"The URL that used to be included as the last line of the [.filename]#pkg-" +"descr# file has been moved to the [.filename]#Makefile#." +msgstr "" +"URL, который ранее включался в последнюю строку файла [.filename]#pkg-" +"descr#, был перемещен в [.filename]#Makefile#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:129 +#, no-wrap +msgid "[.filename]#pkg-plist#" +msgstr "[.filename]#pkg-plist#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:134 +msgid "" +"This file lists all the files installed by the port. It is also called the " +"\"packing list\" because the package is generated by packing the files " +"listed here. The pathnames are relative to the installation prefix (usually " +"[.filename]#/usr/local#)." +msgstr "" +"Здесь перечисляются все файлы, устанавливаемые портом. Его также называют " +"\"списком для упаковки\", потому что пакет генерируется упаковкой файлов, " +"которые здесь указаны. Имена путей указываются относительно установочного " +"префикса (обычно [.filename]#/usr/local#)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:136 +msgid "Here is a small example:" +msgstr "Вот маленький пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:145 +#, no-wrap +msgid "" +"bin/oneko\n" +"man/man1/oneko.1.gz\n" +"lib/X11/app-defaults/Oneko\n" +"lib/X11/oneko/cat1.xpm\n" +"lib/X11/oneko/cat2.xpm\n" +"lib/X11/oneko/mouse.xpm\n" +msgstr "" +"bin/oneko\n" +"man/man1/oneko.1.gz\n" +"lib/X11/app-defaults/Oneko\n" +"lib/X11/oneko/cat1.xpm\n" +"lib/X11/oneko/cat2.xpm\n" +"lib/X11/oneko/mouse.xpm\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:148 +msgid "" +"Refer to the man:pkg-create[8] manual page for details on the packing list." +msgstr "" +"Обратитесь к странице справочной системы по команде man:pkg-create[8] с " +"подробным описанием формата списка упаковки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:155 +msgid "" +"It is recommended to keep all the filenames in this file sorted " +"alphabetically. It will make verifying changes when upgrading the port much " +"easier. The sorting should be applied after variable expansion takes " +"place. The framework does this correctly when the package list is " +"crossref:plist[plist-autoplist,generated automatically]." +msgstr "" +"Рекомендуется, чтобы имена файлов в этом списке были отсортированы в " +"алфавитном порядке. Это позволит значительно облегчить сверку изменений при " +"обновлении порта. Фреймворк делает это корректно, когда список пакета " +"crossref:plist[plist-autoplist,сгенерирован автоматически]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:161 +msgid "" +"Creating a packing list manually can be a very tedious task. If the port " +"installs a large numbers of files, crossref:plist[plist-autoplist,creating " +"the packing list automatically] might save time." +msgstr "" +"Создание списка упаковки вручную может оказаться весьма трудоёмкой задачей. " +"Если порт устанавливает большое количество файлов, раздел об " +"crossref:plist[plist-autoplist,автоматическом построении списка упаковки] " +"может помочь сэкономить время." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:166 +msgid "" +"There is only one case when [.filename]#pkg-plist# can be omitted from a " +"port. If the port installs just a handful of files, list them in " +"`PLIST_FILES`, within the port's [.filename]#Makefile#. For instance, we " +"could get along without [.filename]#pkg-plist# in the above " +"[.filename]#oneko# port by adding these lines to the [.filename]#Makefile#:" +msgstr "" +"Существует только одно исключение, когда у порта может отсутствовать " +"[.filename]#pkg-plist#. Если порт устанавливает лишь несколько файлов, а " +"возможно, и каталогов, то они могут быть перечислены в переменных " +"`PLIST_FILES` и `PLIST_DIRS`, соответственно, внутри файла " +"[.filename]#Makefile# порта. К примеру, мы можем обойтись без файла " +"[.filename]#pkg-plist# у приведённого выше порта [.filename]#oneko#, добавив " +"следующие строки в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:175 +#, no-wrap +msgid "" +"PLIST_FILES=\tbin/oneko \\\n" +"\t\tman/man1/oneko.1.gz \\\n" +"\t\tlib/X11/app-defaults/Oneko \\\n" +"\t\tlib/X11/oneko/cat1.xpm \\\n" +"\t\tlib/X11/oneko/cat2.xpm \\\n" +"\t\tlib/X11/oneko/mouse.xpm\n" +msgstr "" +"PLIST_FILES=\tbin/oneko \\\n" +"\t\tman/man1/oneko.1.gz \\\n" +"\t\tlib/X11/app-defaults/Oneko \\\n" +"\t\tlib/X11/oneko/cat1.xpm \\\n" +"\t\tlib/X11/oneko/cat2.xpm \\\n" +"\t\tlib/X11/oneko/mouse.xpm\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:182 +msgid "" +"Usage of `PLIST_FILES` should not be abused. When looking for the origin of " +"a file, people usually try to grep through the [.filename]#pkg-plist# files " +"in the ports tree. Listing files in `PLIST_FILES` in the " +"[.filename]#Makefile# makes that search more difficult." +msgstr "" +"Использование `PLIST_FILES` не должно быть чрезмерным. При поиске " +"происхождения файла обычно просматривают файлы [.filename]#pkg-plist# в " +"дереве портов с помощью grep. Указание файлов в `PLIST_FILES` в " +"[.filename]#Makefile# усложняет этот поиск." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:187 +msgid "" +"If a port needs to create an empty directory, or creates directories outside " +"of [.filename]#${PREFIX}# during installation, refer to crossref:plist[plist-" +"dir-cleaning,Cleaning Up Empty Directories] for more information." +msgstr "" +"Если порту требуется создать пустой каталог или он создает каталоги вне " +"[.filename]#${PREFIX}# во время установки, обратитесь к разделу " +"crossref:plist[plist-dir-cleaning,Очистка пустых каталогов] для получения " +"дополнительной информации." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:193 +msgid "" +"As `PLIST_FILES` is a man:make[1] variable, any entry with spaces must be " +"quoted. For example, if using keywords described in man:pkg-create[8] and " +"crossref:plist[plist-keywords,Expanding Package List with Keywords], the " +"entry must be quoted." +msgstr "" +"Поскольку `PLIST_FILES` является переменной man:make[1], любая запись с " +"пробелами должна быть заключена в кавычки. Например, при использовании " +"ключевых слов, описанных в man:pkg-create[8] и crossref:plist[plist-" +"keywords,Расширение списка пакетов с помощью ключевых слов], запись должна " +"быть заключена в кавычки." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:197 +#, no-wrap +msgid "PLIST_FILES=\t\"@sample ${ETCDIR}/oneko.conf.sample\"\n" +msgstr "PLIST_FILES=\t\"@sample ${ETCDIR}/oneko.conf.sample\"\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:201 +msgid "" +"Later we will see how [.filename]#pkg-plist# and `PLIST_FILES` can be used " +"to fulfill crossref:plist[plist,more sophisticated tasks]." +msgstr "" +"Позже мы увидим, как [.filename]#pkg-plist# и `PLIST_FILES` могут " +"использоваться для выполнения crossref:plist[plist,более сложных задач]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:203 +#, no-wrap +msgid "Creating the Checksum File" +msgstr "Создание файла с контрольной суммой" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:208 +msgid "" +"Just type `make makesum`. The ports framework will automatically generate " +"[.filename]#distinfo#. Do not try to generate the file manually." +msgstr "" +"Просто введите команду `make makesum`. Правила утилиты make автоматически " +"сгенерируют файл [.filename]#distinfo#. Не пытайтесь создавать этот файл " +"вручную." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:210 +#, no-wrap +msgid "Testing the Port" +msgstr "Тестирование порта" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:214 +msgid "" +"Make sure that the port rules do exactly what is desired, including " +"packaging up the port. These are the important points to verify:" +msgstr "" +"Вы должны удостовериться, что правила построения порта выполняют именно то, " +"что вы хотите, включая создание пакета для порта. Вот те важные вещи, " +"которые вы должны проверить:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:216 +msgid "" +"[.filename]#pkg-plist# does not contain anything not installed by the port." +msgstr "" +"[.filename]#pkg-plist# не содержит ничего сверх того, что устанавливается " +"портом." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:217 +msgid "" +"[.filename]#pkg-plist# contains everything that is installed by the port." +msgstr "" +"[.filename]#pkg-plist# содержит абсолютно все, что устанавливается портом." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:218 +msgid "" +"The port can be installed using the `install` target. This verifies that the " +"install script works correctly." +msgstr "" +"Порт может быть установлен с помощью указания цели `install`. Это позволяет " +"убедиться в правильной работе сценария установки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:219 +msgid "" +"The port can be deinstalled properly using the `deinstall` target. This " +"verifies that the deinstall script works correctly." +msgstr "" +"Порт может быть правильным образом удалён с помощью указания цели " +"`deinstall`. Это позволяет убедиться в правильной работе сценария удаления." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:220 +msgid "" +"The port only has access to network resources during the `fetch` target " +"phase. This is important for package builders, such as package:ports-mgmt/" +"poudriere[]." +msgstr "" +"Порт имеет доступ к сетевым ресурсам только во время фазы цели `fetch`. Это " +"важно для сборщиков пакетов, таких как package:ports-mgmt/poudriere[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:221 +msgid "" +"Make sure that `make package` can be run as a normal user (that is, not as " +"`root`). If that fails, the software may need to be patched. See also " +"crossref:uses[uses-fakeroot,`fakeroot`] and crossref:uses[uses-" +"uidfix,`uidfix`]." +msgstr "" +"Убедитесь, что команду `make package` можно выполнить от имени обычного " +"пользователя (то есть не от `root`). Если это не работает, возможно, " +"потребуется исправить программное обеспечение. См. также crossref:uses[uses-" +"fakeroot,`fakeroot`] и crossref:uses[uses-uidfix,`uidfix`]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:223 +#, no-wrap +msgid "Procedure: Recommended Test Ordering" +msgstr "*Procedure: Рекомендуемый порядок проверки*" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:225 +msgid "`make stage`" +msgstr "`make stage`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:226 +msgid "`make stage-qa`" +msgstr "`make check-orphans`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:227 +msgid "`make package`" +msgstr "`make package`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:228 +msgid "`make install`" +msgstr "`make install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:229 +msgid "`make deinstall`" +msgstr "`make deinstall`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:230 +msgid "`make package` (as user)" +msgstr "`make package` (как пользователь)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:232 +msgid "Make certain no warnings are shown in any of the stages." +msgstr "Убедитесь, что на любом из этапов не выдается никаких предупреждений." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:235 +msgid "" +"Thorough automated testing can be done with package:ports-mgmt/poudriere[] " +"from the Ports Collection, see crossref:testing[testing-poudriere,poudriere] " +"for more information. It maintains `jails` where all of the steps shown " +"above can be tested without affecting the state of the host system." +msgstr "" +"Тщательное автоматизированное тестирование можно выполнить с помощью " +"package:ports-mgmt/poudriere[] из коллекции портов, дополнительную " +"информацию см. в crossref:testing[testing-poudriere,poudriere]. Он " +"поддерживает `клетки`, в которых можно протестировать все указанные выше " +"шаги без воздействия на состояние основной системы." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:237 +#, no-wrap +msgid "Checking the Port with `portlint`" +msgstr "Проверка вашего порта утилитой `portlint`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:242 +msgid "" +"Please use `portlint` to see if the port conforms to our guidelines. The " +"package:ports-mgmt/portlint[] program is part of the ports collection. In " +"particular, check that the crossref:porting-samplem[porting-" +"samplem,Makefile] is in the right shape and the crossref:porting-" +"pkgname[porting-pkgname,package] is named appropriately." +msgstr "" +"Будьте добры, пользуйтесь утилитой `portlint` для проверки того, что ваш " +"порт соответствует нашим рекомендациям. Программа package:ports-mgmt/" +"portlint[] является частью Коллекции Портов. В частности, вы можете захотеть " +"проверить, правильно ли сформирован файл crossref:porting-samplem[porting-" +"samplem,Makefile] и соответствующим ли образом именован crossref:porting-" +"pkgname[porting-pkgname,пакет]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:246 +msgid "" +"Do not blindly follow the output of `portlint`. It is a static lint tool and " +"sometimes gets things wrong." +msgstr "" +"Не следуйте слепо выводу `portlint`. Это статический инструмент для " +"проверки, и иногда он ошибается." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:249 +#, no-wrap +msgid "Submitting the New Port" +msgstr "Посылка нового порта" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:252 +msgid "" +"Before submitting the new port, read the crossref:porting-dads[porting-" +"dads,DOs and DON'Ts] section." +msgstr "" +"Перед посылкой нового порта прочитайте раздел о том, что crossref:porting-" +"dads[porting-dads,можно и нельзя] делать." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:254 +msgid "" +"Once happy with the port, the only thing remaining is to put it in the main " +"FreeBSD ports tree and make everybody else happy about it too." +msgstr "" +"Когда вы наконец довольны своим первым портом, единственное, что осталось " +"сделать, это включить его в основное дерево портов FreeBSD и осчастливить " +"этим всех остальных." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:258 +msgid "" +"We do not need the [.filename]#work# directory or the " +"[.filename]#pkgname.txz# package, so delete them now." +msgstr "" +"Нам не нужны каталог [.filename]#work# или пакет [.filename]#pkgname.txz#, " +"поэтому их можно удалить." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:262 +msgid "" +"Next, create a man:patch[1], file. Assuming the port is called `oneko` and " +"is in the `games` category." +msgstr "" +"Далее создайте файл man:patch[1]. Предположим, что порт называется `oneko` и " +"находится в категории `games`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:264 +#, no-wrap +msgid "Creating a [.filename]#.diff# for a New Port" +msgstr "Создание [.filename]#.diff# для нового порта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:268 +msgid "" +"Add all the files with `git add .`, then review the diff with `git diff`. " +"For example:" +msgstr "" +"Добавьте все файлы с помощью `git add .`, затем просмотрите изменения с " +"помощью `git diff`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:273 +#, no-wrap +msgid "" +"% git add .\n" +"% git diff --staged\n" +msgstr "" +"% git add .\n" +"% git diff --staged\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:277 +msgid "" +"Make sure that all required files are included, then commit the change to " +"your local branch and generate a patch with `git format-patch`" +msgstr "" +"Убедитесь, что все необходимые файлы включены, затем зафиксируйте изменение " +"в вашей локальной ветке и создайте патч с помощью `git format-patch`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:282 +#, no-wrap +msgid "" +"% git commit\n" +"% git format-patch origin/main\n" +msgstr "" +"% git commit\n" +"% git format-patch origin/main\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:286 +msgid "" +"Patch generated with `git format-patch` will include author identity and " +"email addresses, making it easier for developers to apply (with `git am`) " +"and give proper credit." +msgstr "" +"Патч, созданный с помощью `git format-patch`, будет содержать идентификатор " +"автора и адреса электронной почты, что упрощает применение разработчиками (с " +"помощью `git am`) и правильное указание авторства." + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:290 +msgid "" +"To make it easier for committers to apply the patch on their working copy of " +"the ports tree, please generate the [.filename]#.diff# from the base of your " +"ports tree." +msgstr "" +"Чтобы упростить применение патча для коммитеров в их рабочей копии дерева " +"портов, пожалуйста, создайте файл [.filename]#.diff# из корня вашего дерева " +"портов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:297 +msgid "" +"Submit [.filename]#oneko.diff# with the https://bugs.freebsd.org/submit/[bug " +"submission form]. Use product \"Ports & Packages\", component \"Individual " +"Port(s)\", and follow the guidelines shown there. Add a short description " +"of the program to the Description field of the PR (perhaps a short version " +"of `COMMENT`), and remember to add [.filename]#oneko.diff# as an attachment." +msgstr "" +"Отправьте файл [.filename]#oneko.diff# через https://bugs.freebsd.org/submit/" +"[форму отправки отчётов об ошибках]. Укажите продукт \"Ports & Packages\", " +"компонент \"Individual Port(s)\" и следуйте приведённым там инструкциям. " +"Добавьте краткое описание программы в поле Description PR (например, " +"сокращённую версию `COMMENT`) и не забудьте прикрепить файл " +"[.filename]#oneko.diff#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:303 +msgid "" +"Giving a good description in the summary of the problem report makes the " +"work of port committers and triagers a lot easier. The expected format for " +"new ports is \"[NEW PORT] _category/portname short description of the " +"port_\". Using this scheme makes it easier and faster to begin the work of " +"committing the new port." +msgstr "" +"Хорошее описание в заголовке сообщения о проблеме значительно облегчает " +"работу коммиттеров портов. Для новых портов мы предпочитаем нечто вроде " +"\"[NEW PORT] _категория/название_порта краткое описание порта_\". Следование " +"этой схеме упрощает и ускоряет начало работы по добавлению нового порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:308 +msgid "" +"After submitting the port, please be patient. The time needed to include a " +"new port in FreeBSD can vary from a few days to a few months. A simple " +"search form of the Problem Report database can be searched at https://" +"bugs.freebsd.org/bugzilla/query.cgi[]." +msgstr "" +"После отправки порта, пожалуйста, потерпите. Время, необходимое для " +"включения нового порта во FreeBSD, может занимать от нескольких дней до " +"нескольких месяцев. https://bugs.freebsd.org/bugzilla/query.cgi[ Здесь] " +"можно увидеть список ожидающих PR для портов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:310 +msgid "" +"To get a listing of _open_ port PRs, select _Open_ and _Ports & Packages_ in " +"the search form, then click btn:[Search]." +msgstr "" +"Чтобы получить список _открытых_ PR для портов, выберите _Open_ и _Ports & " +"Packages_ в форме поиска, затем нажмите btn:[Search]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:313 +msgid "" +"After looking at the new port, we will reply if necessary, and commit it to " +"the tree. The submitter's name will also be added to the list of extref:" +"{contributors}[Additional FreeBSD Contributors, contrib-additional] and " +"other files." +msgstr "" +"После ознакомления с новым портом мы ответим, если это необходимо, и добавим " +"его в дерево. Имя отправителя также будет добавлено в список extref:" +"{contributors}[Дополнительных участников FreeBSD, contrib-additional] и " +"другие файлы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:318 +msgid "" +"Previously it was possible to submit patches for new ports using a " +"man:shar[1] file; this is no longer the case with the evolution of " +"man:git[1]. Committers no longer accept man:shar[1] files as their use is " +"prone to mistake and does not add the relevant entry in the category's " +"[.filename]#Makefile#." +msgstr "" +"Ранее можно было отправлять исправления для новых портов, используя файл " +"man:shar[1]; однако с развитием man:git[1] это больше не актуально. " +"Коммиттеры больше не принимают файлы man:shar[1], так как их использование " +"чревато ошибками и не добавляет соответствующую запись в " +"[.filename]#Makefile# категории." diff --git a/documentation/content/ru/books/porters-handbook/security/_index.adoc b/documentation/content/ru/books/porters-handbook/security/_index.adoc --- a/documentation/content/ru/books/porters-handbook/security/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/security/_index.adoc @@ -1,22 +1,24 @@ --- -title: Глава 11. Безопасность портов -prev: books/porters-handbook/upgrading +description: 'Инструкции по безопасности при создании порта FreeBSD' next: books/porters-handbook/porting-dads -showBookMenu: true -weight: 11 params: - path: "/books/porters-handbook/security/" + path: /books/porters-handbook/security/ +prev: books/porters-handbook/upgrading +showBookMenu: true +tags: ["security", "porting", "ports", "VuXML"] +title: 'Глава 12. Безопасность портов' +weight: 12 --- [[security]] -= Безопасность портов += Безопасность :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 11 +:sectnumoffset: 12 :partnums: :source-highlighter: rouge :experimental: @@ -58,14 +60,14 @@ [[security-fix]] == Исправление уязвимостей безопасности -Что касается портов и пакетов, уязвимость безопасности изначально может появиться в исходном дистрибутиве или файлах порта. В первом случае, разработчик исходного программного обеспечения скорее всего сразу же выпустит патч или новую версию, и вам лишь понадобится сразу обновить порт в соответствии с исправлением автора. Если исправление по какой-то причине задерживается, вам следует либо <>, либо добавить в порт ваш собственный патч. В случае уязвимости порта просто исправьте этот порт как можно скорее. В любом случае нужно следовать <>, если вы не обладаете правами на коммит изменения непосредственно в дерево портов. +Что касается портов и пакетов, уязвимость безопасности изначально может появиться в исходном дистрибутиве или файлах порта. В первом случае, разработчик исходного программного обеспечения скорее всего сразу же выпустит патч или новую версию, и вам лишь понадобится сразу обновить порт в соответствии с исправлением автора. Если исправление по какой-то причине задерживается, вам следует либо crossref:porting-dads[dads-noinstall,пометить порт как `FORBIDDEN`], либо добавить в порт ваш собственный патч. В случае уязвимости порта просто исправьте этот порт как можно скорее. В любом случае нужно следовать crossref:port-upgrading[port-upgrading,стандартной процедуре отправки вашего изменения], если вы не обладаете правами на коммит изменения непосредственно в дерево портов. [IMPORTANT] ==== Быть коммиттером портов недостаточно для коммита произвольного порта. Помните, что обычно у портов есть сопровождающие, мнение которых вы должны учитывать. ==== -Пожалуйста, убедитесь, что ревизия порта после закрытия уязвимости увеличена. Вот как пользователи, обновляющие установленные пакеты на постоянной основе, увидят, что им нужно запустить обновление. Кроме того, новый пакет будет собран и распространен через FTP и WWW зеркала, замещая уязвимый. Если в процессе исправления уязвимости не было изменено значение `PORTVERSION`, то должно быть увеличено значение `PORTREVISION`. Вам следует увеличить значение `PORTREVISION` после добавления в порт файла с патчем, но не когда вы обновили порт до последней версии программного обеспечения, попутно затронув при этом `PORTVERSION`. За дальнейшей информацией обращайтесь к <>. +Пожалуйста, убедитесь, что ревизия порта после закрытия уязвимости увеличена. Вот как пользователи, обновляющие установленные пакеты на постоянной основе, увидят, что им нужно запустить обновление. Кроме того, новый пакет будет собран и распространен через FTP и WWW зеркала, замещая уязвимый. Если в процессе исправления уязвимости не было изменено значение `PORTVERSION`, то должно быть увеличено значение `PORTREVISION`. Вам следует увеличить значение `PORTREVISION` после добавления в порт файла с патчем, но не когда вы обновили порт до последней версии программного обеспечения, попутно затронув при этом `PORTVERSION`. За дальнейшей информацией обращайтесь к crossref:makefiles[makefile-naming-revepoch,соответствующему разделу]. [[security-notify]] == Обеспечение сообщества информацией @@ -77,7 +79,7 @@ Учитывая огромное число портов в дереве, невозможно по каждому случаю выпускать бюллетень безопасности без создания флуда и потери внимания сообщества к моменту появления действительно серьезных причин. Поэтому уязвимости безопасности, обнаруженные в портах, записываются в http://vuxml.freebsd.org/[базу данных FreeBSD VuXML]. Члены Команды Офицеров Безопасности также отслеживают её на предмет появления вопросов, требующих их вмешательства. -Если вы обладаете правами коммиттера, вы можете сам обновить базу данных VuXML. Так вы поможете Команде Офицеров Безопасности и своевременно пошлете ценную информацию сообществу. Тем не менее, если вы не являетесь коммиттером или верите, что нашли исключительно серьезную уязвимость, то не задумываясь свяжитесь с Командой Офицеров Безопасности напрямую как это описано на странице http://www.freebsd.org/security/#how[информационной безопасности FreeBSD]. +Если вы обладаете правами коммиттера, вы можете сам обновить базу данных VuXML. Так вы поможете Команде Офицеров Безопасности и своевременно пошлете ценную информацию сообществу. Тем не менее, если вы не являетесь коммиттером или верите, что нашли исключительно серьезную уязвимость, то не задумываясь свяжитесь с Командой Офицеров Безопасности напрямую как это описано на странице https://www.freebsd.org/security/#how[информационной безопасности FreeBSD]. База данных VuXML является документом XML. Его исходный файл [.filename]#vuln.xml# содержится прямо внутри порта package:security/vuxml[]. Следовательно, полное имя пути к файлу будет [.filename]#PORTSDIR/security/vuxml/vuln.xml#. Каждый раз, при обнаружении вами в порте уязвимости безопасности добавьте об этом запись в этот файл. Пока вы не знакомы с VuXML, лучшее, что вы можете сделать, это найти существующую запись, подпадающую под ваш случай, затем скопировать ее и использовать в качестве шаблона. @@ -122,12 +124,8 @@ <.> SA-10:75.foo <.> ports/987654 <.> - CAN-2010-0201 <.> - CAN-2010-0466 - 96298 <.> - CA-2010-99 <.> + CVE-2023-48795 <.> 740169 <.> - SA10-99A <.> SA10-99A <.> http://marc.theaimsgroup.com/?l=bugtraq&m=203886607825605 <.> http://j.r.hacker.com/advisories/1 <.> @@ -148,7 +146,9 @@ <.> Здесь перечислены имена затронутых пакетов. Может быть дано несколько имен, поскольку некоторые пакеты могут быть основаны на одном главном порте или программном продукте. Сюда можно включить стабильную ветвь и ветвь разработки, локализованные версии и подчиненные порты, зависящие от различного выбора важных вариантов конфигурации, указанных на этапе построения. -<.> Здесь указаны затронутые версии пакета(-ов) как один или более диапазонов с использованием комбинации элементов ``, ``, ``, ``, и ``. Диапазоны внесённых версий не должны пересекаться.В спецификации диапазонов `\*` (звёздочка) означает наименьший номер версии. В частности, `2.*` меньше, чем `2.a`. Поэтому звездочка может быть использована в диапазоне для совпадения со всеми возможными `alpha`, `beta` и `RC` версиями. Как вариант, `2.*3.*` выборочно совпадет с версией `2.x`, а `2.03.0` - нет, поскольку последнее не включает `2.r3` и совпадает с `3.b`.Пример выше указывает, что к затронутым относятся версии с `1.6` до `1.9` включительно, версии `2.x` до `2.4_1` и версия `3.0b1`. +<.> Затронутые версии пакета(ов) указаны там как один или несколько диапазонов с использованием комбинации элементов ``, ``, ``, `` и ``. Убедитесь, что указанные диапазоны версий не перекрываются. + +В спецификации диапазона `\*` (звёздочка) обозначает наименьший номер версии. В частности, `2.*` меньше, чем `2.a`. Таким образом, звёздочка может использоваться в диапазоне для соответствия всем возможным версиям `alpha`, `beta` и `RC`. Например, `2.*3.*` выборочно соответствует каждой версии `2.x`, тогда как `2.03.0` — нет, поскольку последний пропускает `2.r3` и включает `3.b`. + +Приведённый пример указывает, что затронуты версии `1.6` и выше, но не включая `1.9`, версии `2.x` до `2.4_1` и версия `3.0b1`. <.> Некоторые связанные группы пакетов (в конечном счете, порты) могут быть указаны в разделе ``. Это можно использовать, если некоторые программные продукты (скажем, FooBar, FreeBar and OpenBar) являются производными от общей кодовой базы и всё еще совместно используют её ошибки и уязвимости. Имейте в виду отличие от перечисления множественных имён в одном разделе . @@ -158,112 +158,124 @@ <.> Этот раздел содержит ссылки на имеющие отношение документы. Приветствуется как можно большее количество ссылок. -<.> Это http://www.freebsd.org/security/#adv[бюллетень безопасности FreeBSD]. +<.> Это https://www.freebsd.org/security/#adv[бюллетень безопасности FreeBSD]. -<.> Это http://www.freebsd.org/support/#gnats[сообщение об ошибке FreeBSD]. +<.> Это https://www.freebsd.org/support/[сообщение об ошибке FreeBSD]. -<.> Идентификатор http://www.cve.mitre.org/[MITRE CVE]. +<.> Идентификатор https://cve.mitre.org/[MITRE CVE]. -<.> Это http://www.securityfocus.com/bid[SecurityFocus Bug ID]. +<.> Это https://www.kb.cert.org/vuls/[SecurityFocus Bug ID]. -<.> Бюллетень безопасности http://www.cert.org/[US-CERT]. +<.> Бюллетень безопасности https://www.cisa.gov/news-events/cybersecurity-advisories[US-CERT]. -<.> Примечание к уязвимости http://www.cert.org/[US-CERT]. - -<.> Уведомление системы Cyber Security Alert http://www.cert.org/[US-CERT]. +<.> URL к архивному сообщению в списке рассылки. Атрибут `msgid` является необязательным и может указывать на message ID сообщения. -<.> Уведомление системы Technical Cyber Security Alert http://www.cert.org/[US-CERT]. +<.> Это общий URL. Используйте его только если ни одна из других категорий ссылок не подходит. -<.> URL к архивному сообщению в списке рассылки. Атрибут `msgid` является необязательным и может указывать на message ID сообщения. +<.> Это дата, когда проблема была раскрыта (_ГГГГ-ММ-ДД_). -<.> Основной URL. Должен быть использован в случае, если не подходит ни одна из категорий источника. +<.> Это дата добавления записи (_ГГГГ-ММ-ДД_). -<.> Дата последнего изменения любой информации данной записи (_YYYY-MM-DD_). Новые записи не должны включать это поле. Поле должно быть добавлено после редактирования существующей записи. +<.> Это дата, когда любая информация в записи была последний раз изменена (_ГГГГ-ММ-ДД_). Новые записи не должны включать это поле. Добавьте его при редактировании существующей записи. [[security-notify-vuxml-testing]] === Тестирование ваших изменений в базе данных VuXML -Предположим, что вы только что написали или заполнили запись об уязвимости в пакете `clamav`, которая была исправлена в версии `0.65_7`. +Этот пример описывает новую запись об уязвимости в пакете `dropbear`, которая была исправлена в версии `dropbear-2013.59`. -Прежде всего, вам нужно _установить_ последние версии портов package:ports-mgmt/portaudit[], package:ports-mgmt/portaudit-db[] и package:security/vuxml[]. +В качестве предварительного условия установите свежую версию порта package:security/vuxml[]. -[NOTE] -==== -Для запуска `packaudit` вы должны обладать правами на запись в [.filename]#DATABASEDIR#; как правило, это [.filename]#/var/db/portaudit#. +Сначала проверьте, есть ли уже запись об этой уязвимости. Если бы такая запись существовала, она соответствовала бы предыдущей версии пакета `2013.58`: -Для использования другого каталога присвойте переменной окружения [.filename]#DATABASEDIR# другой путь. - -Если вы работаете в каталоге, отличном от [.filename]#${PORTSDIR}/security/vuxml#, присвойте переменной окружения [.filename]#VUXMLDIR# путь к каталогу, в котором находится [.filename]#vuln.xml#. -==== +[source, shell] +.... +% pkg audit dropbear-2013.58 +.... -Во-первых, проверьте, нет ли уже записи об этой уязвимости. Если такая запись есть, она совпадёт с предыдущей версией пакета `0.65_6`: +Если запись не найдена, добавьте новую запись для этой уязвимости. -[source,shell] +[source, shell] .... -% packaudit -% portaudit clamav-0.65_6 +% cd ${PORTSDIR}/security/vuxml +% make newentry .... -Если ничего не найдено, значит вы получили зеленый свет для добавления новой записи для этой уязвимости. +Если уязвимость имеет идентификатор https://cve.mitre.org/[MITRE CVE], можно использовать следующую команду: -[source,shell] +[source, shell] .... % cd ${PORTSDIR}/security/vuxml -% make newentry +% make newentry CVE_ID=CVE-YYYY-XXXXX .... -Когда вы закончите, проверьте синтаксис и форматирование. +где `CVE-YYYYY-XXXX` является действительным идентификатором CVE. -[source,shell] +Если уязвимость относится к FreeBSD Security Advisory, вместо этого можно использовать следующую команду: + +[source, shell] .... -% make validate +% cd ${PORTSDIR}/security/vuxml +% make newentry SA_ID=FreeBSD-SA-YY-XXXXXX.asc .... -[NOTE] -==== -Вам понадобится установить по крайней мере один из следующих пакетов: package:textproc/libxml2[], package:textproc/jade[]. -==== +где `FreeBSD-SA-YY-XXXXXX.asc` является опубликованным https://www.freebsd.org/security/advisories/[FreeBSD Security Advisory]. -Теперь выполните перепостроение базы данных `portaudit` из файла VuXML: +Проверьте его синтаксис и форматирование: -[source,shell] +[source, shell] .... -% packaudit +% make validate .... -Чтобы убедиться, что раздел `` в вашей записи совпадает с правильными пакетами, выполните следующую команду: +Предыдущая команда создает файл [.filename]#vuln-flat.xml#. Его также можно создать с помощью: -[source,shell] +[source, shell] .... -% portaudit -f /usr/ports/INDEX -r uuid +% make vuln-flat.xml .... [NOTE] ==== -Для лучшего понимания синтаксиса этой команды обращайтесь к man:portaudit[1]. +Должен быть установлен хотя бы один из следующих пакетов: package:textproc/libxml2[], package:textproc/jade[]. ==== -Убедитесь, что ваша запись не производит ложных совпадений в выводе. +Проверьте, что раздел `` записи соответствует правильным пакетам: -Теперь проверьте, совпадает ли ваша запись с нужными версиями пакета: - -[source,shell] +[source, shell] +.... +% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58 .... -% portaudit clamav-0.65_6 clamav-0.65_7 -Affected package: clamav-0.65_6 (matched by clamav<0.65_7) -Type of problem: clamav remote denial-of-service. -Reference: -1 problem(s) found. +Убедитесь, что запись не создает ложных совпадений в выводе. + +Теперь проверьте, соответствуют ли записи правильные версии пакетов: + +[source, shell] +.... +% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58 dropbear-2013.59 +dropbear-2012.58 is vulnerable: +dropbear -- exposure of sensitive information, DoS +CVE: CVE-2013-4434 +CVE: CVE-2013-4421 +WWW: https://portaudit.FreeBSD.org/8c9b48d1-3715-11e3-a624-00262d8b701d.html + +1 problem(s) in the installed packages found. .... -Первая версия должна совпасть, а последняя нет. +Предыдущая версия совпадает, а последняя — нет. -В заключение проверьте, что веб-страница, сформированная из базы данных VuXML, выглядит как положено: +[[security-xcheck-vuxml]] +=== Контрольный список для новой записи в VuXML -[source,shell] +* Проверьте название порта. Иногда имя проекта в вышестоящем репозитории не полностью совпадает с именем порта. +* Добавить все флейворы. Если у порта есть варианты, все имена пакетов должны быть добавлены в запись как ``. Используйте следующий скрипт для генерации всех имен пакетов с вариантами: ++ +[source, shell] .... -% mkdir -p ~/public_html/portaudit -% packaudit -% lynx ~/public_html/portaudit/74a9541d-5d6c-11d8-80e3-0020ed76ef5a.html +% for flavor in $(make -V FLAVORS); do FLAVOR="${flavor}" make -VPKGNAME;done .... ++ +* Проверить, имеет ли порт `PORTEPOCH`. Приведённый выше фрагмент скрипта помогает в этом. Если порт использует `PORTEPOCH`, обязательно добавить его в тег ``. +* Перепроверьте диапазоны. В случае диапазонов, ограниченных с обеих сторон, убедитесь, что элементы `` и `` находятся внутри одного тега ``. В противном случае запись может определить перекрывающийся диапазон. +* Проверка производных версий. Если в вышестоящем проекте обнаружена уязвимость, проверьте, затронуты ли также производные или форки проекта, включённые в дерево портов. Например, если уязвимость обнаружена в package:www/firefox[], оцените, есть ли такая же уязвимость в производных, таких как package:www/librewolf[], package:www/waterfox[] или других подобных проектах. Включите все затронутые производные в запись VuXML, чтобы пользователи этих портов были проинформированы. Также проверьте наличие Linux-версий этого порта в дереве. Например, уязвимости в package:databases/sqlite3[] скорее всего затрагивают и пакеты вроде package:databases/linux-c7-sqlite3[]. +* Не делайте коммит записи, не запустив сначала `make validate`. diff --git a/documentation/content/ru/books/porters-handbook/security/_index.po b/documentation/content/ru/books/porters-handbook/security/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/security/_index.po @@ -0,0 +1,858 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-08-20 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/security/_index.adoc:1 +#, no-wrap +msgid "Security instructions when making a FreeBSD Port" +msgstr "Инструкции по безопасности при создании порта FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/security/_index.adoc:1 +#, no-wrap +msgid "Chapter 12. Security" +msgstr "Глава 12. Безопасность портов" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/security/_index.adoc:14 +#, no-wrap +msgid "Security" +msgstr "Безопасность" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/security/_index.adoc:52 +#, no-wrap +msgid "Why Security is So Important" +msgstr "Почему безопасность так важна" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:58 +msgid "" +"Bugs are occasionally introduced to the software. Arguably, the most " +"dangerous of them are those opening security vulnerabilities. From the " +"technical viewpoint, such vulnerabilities are to be closed by exterminating " +"the bugs that caused them. However, the policies for handling mere bugs and " +"security vulnerabilities are very different." +msgstr "" +"Ошибки в программном обеспечении появляются случайно. Возможно, самые " +"опасные из них те, что создают уязвимости безопасности. С технической точки " +"зрения подобные уязвимости должны быть закрыты путем исправления вызывающих " +"их ошибок. Тем не менее, политики обработки несущественных ошибок и " +"уязвимостей очень различаются." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:64 +msgid "" +"A typical small bug affects only those users who have enabled some " +"combination of options triggering the bug. The developer will eventually " +"release a patch followed by a new version of the software, free of the bug, " +"but the majority of users will not take the trouble of upgrading immediately " +"because the bug has never vexed them. A critical bug that may cause data " +"loss represents a graver issue. Nevertheless, prudent users know that a lot " +"of possible accidents, besides software bugs, are likely to lead to data " +"loss, and so they make backups of important data; in addition, a critical " +"bug will be discovered really soon." +msgstr "" +"Обычная небольшая ошибка затрагивает только тех пользователей, которые " +"задействуют некоторые комбинации настроек, активирующие эту ошибку. " +"Разработчик в конечном счете выпустит патч, а зачтем новую версию " +"программного обеспечения, свободного от ошибки, но большинство пользователей " +"не посчитают нужным сразу же произвести обновление, поскольку эта ошибка " +"никогда у них не проявлялась. Критическая ошибка, которая может приводить к " +"потере данных, представляет серьезную проблему. Тем не менее, " +"предусмотрительные пользователи знают, что большинство возможных " +"происшествий, и среди них программные ошибки, скорее всего приводят к потере " +"данных, поэтому они выполняют резервное копирование важных данных; " +"дополнительно, критическая ошибка будет обнаружена очень скоро." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:72 +msgid "" +"A security vulnerability is all different. First, it may remain unnoticed " +"for years because often it does not cause software malfunction. Second, a " +"malicious party can use it to gain unauthorized access to a vulnerable " +"system, to destroy or alter sensitive data; and in the worst case the user " +"will not even notice the harm caused. Third, exposing a vulnerable system " +"often assists attackers to break into other systems that could not be " +"compromised otherwise. Therefore closing a vulnerability alone is not " +"enough: notify the audience of it in the most clear and comprehensive " +"manner, which will allow them to evaluate the danger and take appropriate " +"action." +msgstr "" +"С уязвимостью безопасности всё иначе. Во-первых, она может сохраняться " +"необнаруженной целые годы, потому что чаще всего не вызывает ошибок в " +"работе. Во-вторых, компания злоумышленников может использовать ее для " +"получения неавторизованного доступа к уязвимой системе, уничтожить или " +"подменить важные данные; в худшем случае пользователь даже не заметит " +"нанесенный урон. В-третьих, взлом уязвимой системы часто упрощает задачу " +"проникновения атакующих в другие системы, которые не могут быть " +"скомпрометированы иначе. Таким образом, устранение уязвимости как таковой " +"недостаточно: следует разослать всем заинтересованным уведомления в наиболее " +"понятной и исчерпывающей форме, что позволит оценить риск и предпринять " +"подходящие меры." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/security/_index.adoc:74 +#, no-wrap +msgid "Fixing Security Vulnerabilities" +msgstr "Исправление уязвимостей безопасности" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:82 +msgid "" +"While on the subject of ports and packages, a security vulnerability may " +"initially appear in the original distribution or in the port files. In the " +"former case, the original software developer is likely to release a patch or " +"a new version instantly. Update the port promptly with respect to the " +"author's fix. If the fix is delayed for some reason, either " +"crossref:porting-dads[dads-noinstall,mark the port as `FORBIDDEN`] or " +"introduce a patch file to the port. In the case of a vulnerable port, just " +"fix the port as soon as possible. In either case, follow crossref:port-" +"upgrading[port-upgrading,the standard procedure for submitting changes] " +"unless having rights to commit it directly to the ports tree." +msgstr "" +"Что касается портов и пакетов, уязвимость безопасности изначально может " +"появиться в исходном дистрибутиве или файлах порта. В первом случае, " +"разработчик исходного программного обеспечения скорее всего сразу же " +"выпустит патч или новую версию, и вам лишь понадобится сразу обновить порт в " +"соответствии с исправлением автора. Если исправление по какой-то причине " +"задерживается, вам следует либо crossref:porting-dads[dads-" +"noinstall,пометить порт как `FORBIDDEN`], либо добавить в порт ваш " +"собственный патч. В случае уязвимости порта просто исправьте этот порт как " +"можно скорее. В любом случае нужно следовать crossref:port-upgrading[port-" +"upgrading,стандартной процедуре отправки вашего изменения], если вы не " +"обладаете правами на коммит изменения непосредственно в дерево портов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:87 +msgid "" +"Being a ports committer is not enough to commit to an arbitrary port. " +"Remember that ports usually have maintainers, must be respected." +msgstr "" +"Быть коммиттером портов недостаточно для коммита произвольного порта. " +"Помните, что обычно у портов есть сопровождающие, мнение которых вы должны " +"учитывать." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:95 +msgid "" +"Please make sure that the port's revision is bumped as soon as the " +"vulnerability has been closed. That is how the users who upgrade installed " +"packages on a regular basis will see they need to run an update. Besides, a " +"new package will be built and distributed over FTP and WWW mirrors, " +"replacing the vulnerable one. Bump `PORTREVISION` unless `DISTVERSION` has " +"changed in the course of correcting the vulnerability. That is, bump " +"`PORTREVISION` if adding a patch file to the port, but do not bump it if " +"updating the port to the latest software version and thus already touched " +"`DISTVERSION`. Please refer to the crossref:makefiles[makefile-naming-" +"revepoch,corresponding section] for more information." +msgstr "" +"Пожалуйста, убедитесь, что ревизия порта после закрытия уязвимости " +"увеличена. Вот как пользователи, обновляющие установленные пакеты на " +"постоянной основе, увидят, что им нужно запустить обновление. Кроме того, " +"новый пакет будет собран и распространен через FTP и WWW зеркала, замещая " +"уязвимый. Если в процессе исправления уязвимости не было изменено значение " +"`PORTVERSION`, то должно быть увеличено значение `PORTREVISION`. Вам следует " +"увеличить значение `PORTREVISION` после добавления в порт файла с патчем, но " +"не когда вы обновили порт до последней версии программного обеспечения, " +"попутно затронув при этом `PORTVERSION`. За дальнейшей информацией " +"обращайтесь к crossref:makefiles[makefile-naming-revepoch,соответствующему " +"разделу]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/security/_index.adoc:97 +#, no-wrap +msgid "Keeping the Community Informed" +msgstr "Обеспечение сообщества информацией" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/security/_index.adoc:100 +#, no-wrap +msgid "The VuXML Database" +msgstr "База данных VuXML" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:108 +msgid "" +"A very important and urgent step to take as early after a security " +"vulnerability is discovered as possible is to notify the community of port " +"users about the jeopardy. Such notification serves two purposes. First, if " +"the danger is really severe it will be wise to apply an instant workaround. " +"For example, stop the affected network service or even deinstall the port " +"completely until the vulnerability is closed. Second, a lot of users tend " +"to upgrade installed packages only occasionally. They will know from the " +"notification that they _must_ update the package without delay as soon as a " +"corrected version is available." +msgstr "" +"Очень важным и первостепенным шагом при действии как можно раньше после " +"раскрытия уязвимости является уведомление сообщества пользователей порта об " +"опасности. Такие уведомления служат двум целям. Во-первых, в случае " +"действительно серьезной угрозы, будет посоветовано применить мгновенное " +"воздействие. Например, остановить затрагиваемый сетевой сервис или даже " +"удалить порт целиком, пока уязвимость не будет устранена. Во-вторых, масса " +"пользователей имеет тенденцию обновлять установленные пакеты только от " +"случая к случаю. Из уведомления они узнают, что _должны_ обновить пакет без " +"промедления сразу же после появления исправленной версии." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:112 +msgid "" +"Given the huge number of ports in the tree, a security advisory cannot be " +"issued on each incident without creating a flood and losing the attention of " +"the audience when it comes to really serious matters. Therefore security " +"vulnerabilities found in ports are recorded in https://vuxml.freebsd.org/" +"[the FreeBSD VuXML database]. The Security Officer Team members also " +"monitor it for issues requiring their intervention." +msgstr "" +"Учитывая огромное число портов в дереве, невозможно по каждому случаю " +"выпускать бюллетень безопасности без создания флуда и потери внимания " +"сообщества к моменту появления действительно серьезных причин. Поэтому " +"уязвимости безопасности, обнаруженные в портах, записываются в http://" +"vuxml.freebsd.org/[базу данных FreeBSD VuXML]. Члены Команды Офицеров " +"Безопасности также отслеживают её на предмет появления вопросов, требующих " +"их вмешательства." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:115 +msgid "" +"Committers can update the VuXML database themselves, assisting the Security " +"Officer Team and delivering crucial information to the community more " +"quickly. Those who are not committers or have discovered an exceptionally " +"severe vulnerability should not hesitate to contact the Security Officer " +"Team directly, as described on the https://www.freebsd.org/security/" +"#how[FreeBSD Security Information] page." +msgstr "" +"Если вы обладаете правами коммиттера, вы можете сам обновить базу данных " +"VuXML. Так вы поможете Команде Офицеров Безопасности и своевременно пошлете " +"ценную информацию сообществу. Тем не менее, если вы не являетесь коммиттером " +"или верите, что нашли исключительно серьезную уязвимость, то не задумываясь " +"свяжитесь с Командой Офицеров Безопасности напрямую как это описано на " +"странице https://www.freebsd.org/security/#how[информационной безопасности " +"FreeBSD]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:121 +msgid "" +"The VuXML database is an XML document. Its source file " +"[.filename]#vuln.xml# is kept right inside the port package:security/" +"vuxml[]. Therefore the file's full pathname will be [.filename]#PORTSDIR/" +"security/vuxml/vuln.xml#. Each time a security vulnerability is discovered " +"in a port, please add an entry for it to that file. Until familiar with " +"VuXML, the best thing to do is to find an existing entry fitting the case at " +"hand, then copy it and use it as a template." +msgstr "" +"База данных VuXML является документом XML. Его исходный файл " +"[.filename]#vuln.xml# содержится прямо внутри порта package:security/" +"vuxml[]. Следовательно, полное имя пути к файлу будет [.filename]#PORTSDIR/" +"security/vuxml/vuln.xml#. Каждый раз, при обнаружении вами в порте " +"уязвимости безопасности добавьте об этом запись в этот файл. Пока вы не " +"знакомы с VuXML, лучшее, что вы можете сделать, это найти существующую " +"запись, подпадающую под ваш случай, затем скопировать ее и использовать в " +"качестве шаблона." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/security/_index.adoc:123 +#, no-wrap +msgid "A Short Introduction to VuXML" +msgstr "Короткое вступление в VuXML" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:135 +msgid "" +"The full-blown XML format is complex, and far beyond the scope of this " +"book. However, to gain basic insight on the structure of a VuXML entry only " +"the notion of tags is needed. XML tag names are enclosed in angle " +"brackets. Each opening must have a matching closing . Tags may " +"be nested. If nesting, the inner tags must be closed before the outer ones. " +"There is a hierarchy of tags, that is, more complex rules of nesting them. " +"This is similar to HTML. The major difference is that XML is " +"e__X__tensible, that is, based on defining custom tags. Due to its " +"intrinsic structure XML puts otherwise amorphous data into shape. VuXML is " +"particularly tailored to mark up descriptions of security vulnerabilities." +msgstr "" +"В совокупности XML является очень сложным форматом, и его описание выходит " +"далеко за рамки этой книги. Тем не менее, для достижения основного понимания " +"структуры записи VuXML вам понадобится всего лишь понять теги. Имена тегов " +"XML обрамляются в угловые скобки. Каждый открывающий должен иметь " +"совпадающий закрывающий . Теги могут быть вложенными. При вложенности " +"внутренние теги должны быть закрыты до закрытия внешних. Существует иерархия " +"тегов, т.е. более сложные правила вкладывания тегов. Это похоже на HTML. " +"Основное отличие в расширяемости XML, т.е. в определении собственных тегов. " +"Из-за своей характерной структуры XML придает форму разрозненным данным. В " +"частности, XML подходит для разметки описаний уязвимостей безопасности." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:137 +msgid "Now consider a realistic VuXML entry:" +msgstr "Теперь рассмотрим настоящую запись VuXML:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:184 +#, no-wrap +msgid "" +" <.>\n" +" Several vulnerabilities found in Foo <.>\n" +" \n" +" \n" +" foo <.>\n" +" foo-devel\n" +" ja-foo\n" +" 1.61.9 <.>\n" +" 2.*2.4_1\n" +" 3.0b1\n" +" \n" +" \n" +" openfoo <.>\n" +" 1.10_7 <.>\n" +" 1.2,11.3_1,1\n" +" \n" +" \n" +" \n" +" \n" +"

J. Random Hacker reports:

<.>\n" +" \n" +"

Several issues in the Foo software may be exploited\n" +" via carefully crafted QUUX requests. These requests will\n" +" permit the injection of Bar code, mumble theft, and the\n" +" readability of the Foo administrator account.

\n" +" \n" +" \n" +"
\n" +" <.>\n" +" SA-10:75.foo <.>\n" +" ports/987654 <.>\n" +" CVE-2023-48795 <.>\n" +" 740169 <.>\n" +" SA10-99A <.>\n" +" http://marc.theaimsgroup.com/?l=bugtraq&m=203886607825605 <.>\n" +" http://j.r.hacker.com/advisories/1 <.>\n" +" \n" +" \n" +" 2010-05-25 <.>\n" +" 2010-07-13 <.>\n" +" 2010-09-17 <.>\n" +" \n" +"
\n" +msgstr "" +" <.>\n" +" Several vulnerabilities found in Foo <.>\n" +" \n" +" \n" +" foo <.>\n" +" foo-devel\n" +" ja-foo\n" +" 1.61.9 <.>\n" +" 2.*2.4_1\n" +" 3.0b1\n" +" \n" +" \n" +" openfoo <.>\n" +" 1.10_7 <.>\n" +" 1.2,11.3_1,1\n" +" \n" +" \n" +" \n" +" \n" +"

J. Random Hacker reports:

<.>\n" +" \n" +"

Several issues in the Foo software may be exploited\n" +" via carefully crafted QUUX requests. These requests will\n" +" permit the injection of Bar code, mumble theft, and the\n" +" readability of the Foo administrator account.

\n" +" \n" +" \n" +"
\n" +" <.>\n" +" SA-10:75.foo <.>\n" +" ports/987654 <.>\n" +" CVE-2023-48795 <.>\n" +" 740169 <.>\n" +" SA10-99A <.>\n" +" http://marc.theaimsgroup.com/?l=bugtraq&m=203886607825605 <.>\n" +" http://j.r.hacker.com/advisories/1 <.>\n" +" \n" +" \n" +" 2010-05-25 <.>\n" +" 2010-07-13 <.>\n" +" 2010-09-17 <.>\n" +" \n" +"
\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:187 +msgid "" +"The tag names are supposed to be self-explanatory so we shall take a closer " +"look only at fields which needs to be filled in:" +msgstr "" +"Имена тегов должны быть самодокументируемыми, чтобы мы сфокусировались " +"только на полях, нужных нам для заполнения:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:190 +msgid "" +"This is the top-level tag of a VuXML entry. It has a mandatory attribute, " +"`vid`, specifying a universally unique identifier (UUID) for this entry (in " +"quotes). Generate a UUID for each new VuXML entry (and do not forget to " +"substitute it for the template UUID unless writing the entry from scratch). " +"Use man:uuidgen[1] to generate a VuXML UUID." +msgstr "" +"Это тег верхнего уровня записи VuXML. У него есть обязательный атрибут " +"`vid`, указывающий на универсальный уникальный идентификатор (UUID) для этой " +"записи (в кавычках). Вы должны формировать UUID для каждой новой записи " +"VuXML (и не забудьте заменить ее для шаблона UUID, если вы не пишете запись " +"с нуля). Для получения VuXML UUID вы можете использовать man:uuidgen[1]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:192 +msgid "This is a one-line description of the issue found." +msgstr "Однострочное описание найденной проблемы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:194 +msgid "" +"The names of packages affected are listed there. Multiple names can be given " +"since several packages may be based on a single master port or software " +"product. This may include stable and development branches, localized " +"versions, and slave ports featuring different choices of important build-" +"time configuration options." +msgstr "" +"Здесь перечислены имена затронутых пакетов. Может быть дано несколько имен, " +"поскольку некоторые пакеты могут быть основаны на одном главном порте или " +"программном продукте. Сюда можно включить стабильную ветвь и ветвь " +"разработки, локализованные версии и подчиненные порты, зависящие от " +"различного выбора важных вариантов конфигурации, указанных на этапе " +"построения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:198 +#, no-wrap +msgid "" +"Affected versions of the package(s) are specified there as one or more ranges using a combination of ``, ``, ``, ``, and `` elements. Check that the version ranges given do not overlap.\n" +"In a range specification, `\\*` (asterisk) denotes the smallest version number. In particular, `2.*` is less than `2.a`. Therefore an asterisk may be used for a range to match all possible `alpha`, `beta`, and `RC` versions. For instance, `2.*3.*` will selectively match every `2.x` version while `2.03.0` will not since the latter misses `2.r3` and matches `3.b`.\n" +"The above example specifies that affected are versions `1.6` and up to but not including `1.9`, versions `2.x` before `2.4_1`, and version `3.0b1`." +msgstr "" +"Затронутые версии пакета(ов) указаны там как один или несколько диапазонов с использованием комбинации элементов ``, ``, ``, `` и ``. Убедитесь, что указанные диапазоны версий не перекрываются.\n" +"В спецификации диапазона `\\*` (звёздочка) обозначает наименьший номер версии. В частности, `2.*` меньше, чем `2.a`. Таким образом, звёздочка может использоваться в диапазоне для соответствия всем возможным версиям `alpha`, `beta` и `RC`. Например, `2.*3.*` выборочно соответствует каждой версии `2.x`, тогда как `2.03.0` — нет, поскольку последний пропускает `2.r3` и включает `3.b`.\n" +"Приведённый пример указывает, что затронуты версии `1.6` и выше, но не включая `1.9`, версии `2.x` до `2.4_1` и версия `3.0b1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:200 +msgid "" +"Several related package groups (essentially, ports) can be listed in the " +"`` section. This can be used if several software products (say " +"FooBar, FreeBar and OpenBar) grow from the same code base and still share " +"its bugs and vulnerabilities. Note the difference from listing multiple " +"names within a single section." +msgstr "" +"Некоторые связанные группы пакетов (в конечном счете, порты) могут быть " +"указаны в разделе ``. Это можно использовать, если некоторые " +"программные продукты (скажем, FooBar, FreeBar and OpenBar) являются " +"производными от общей кодовой базы и всё еще совместно используют её ошибки " +"и уязвимости. Имейте в виду отличие от перечисления множественных имён в " +"одном разделе ." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:202 +msgid "" +"The version ranges have to allow for `PORTEPOCH` and `PORTREVISION` if " +"applicable. Please remember that according to the collation rules, a version " +"with a non-zero `PORTEPOCH` is greater than any version without `PORTEPOCH`, " +"for example, `3.0,1` is greater than `3.1` or even than `8.9`." +msgstr "" +"Диапазоны версий должны учитывать `PORTEPOCH` и `PORTREVISION`, если это " +"применимо. Пожалуйста, помните, что в соответствии с правилами сравнения " +"строк версия с ненулевым значением `PORTEPOCH` выше, чем любая версия без " +"`PORTEPOCH`, например, `3.0,1` выше, чем `3.1` или даже `8.9`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:204 +msgid "" +"This is a summary of the issue. XHTML is used in this field. At least " +"enclosing `

` and `

` has to appear. More complex mark-up may be used, " +"but only for the sake of accuracy and clarity: No eye candy please." +msgstr "" +"Сводная информация о проблеме. В этом поле используется XHTML. По крайней " +"мере, должны быть обрамляющие `

` и `

`. Может быть использована более " +"сложная разметка, но только в целях аккуратности и ясности: без эстетства, " +"пожалуйста." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:206 +msgid "" +"This section contains references to relevant documents. As many references " +"as apply are encouraged." +msgstr "" +"Этот раздел содержит ссылки на имеющие отношение документы. Приветствуется " +"как можно большее количество ссылок." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:208 +msgid "" +"This is a https://www.freebsd.org/security/#adv[FreeBSD security advisory]." +msgstr "" +"Это https://www.freebsd.org/security/#adv[бюллетень безопасности FreeBSD]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:210 +msgid "This is a https://www.freebsd.org/support/[FreeBSD problem report]." +msgstr "Это https://www.freebsd.org/support/[сообщение об ошибке FreeBSD]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:212 +msgid "This is a https://cve.mitre.org/[MITRE CVE] identifier." +msgstr "Идентификатор https://cve.mitre.org/[MITRE CVE]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:214 +msgid "This is a https://www.kb.cert.org/vuls/[US-CERT] vulnerability note." +msgstr "Это https://www.kb.cert.org/vuls/[SecurityFocus Bug ID]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:216 +msgid "" +"This is a https://www.cisa.gov/news-events/cybersecurity-advisories[US-CERT] " +"Technical Cyber Security Alert." +msgstr "" +"Бюллетень безопасности https://www.cisa.gov/news-events/cybersecurity-" +"advisories[US-CERT]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:218 +msgid "" +"This is a URL to an archived posting in a mailing list. The attribute " +"`msgid` is optional and may specify the message ID of the posting." +msgstr "" +"URL к архивному сообщению в списке рассылки. Атрибут `msgid` является " +"необязательным и может указывать на message ID сообщения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:220 +msgid "" +"This is a generic URL. Only it if none of the other reference categories " +"apply." +msgstr "" +"Это общий URL. Используйте его только если ни одна из других категорий " +"ссылок не подходит." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:222 +msgid "This is the date when the issue was disclosed (_YYYY-MM-DD_)." +msgstr "Это дата, когда проблема была раскрыта (_ГГГГ-ММ-ДД_)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:224 +msgid "This is the date when the entry was added (_YYYY-MM-DD_)." +msgstr "Это дата добавления записи (_ГГГГ-ММ-ДД_)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:226 +msgid "" +"This is the date when any information in the entry was last modified (_YYYY-" +"MM-DD_). New entries must not include this field. Add it when editing an " +"existing entry." +msgstr "" +"Это дата, когда любая информация в записи была последний раз изменена (_ГГГГ-" +"ММ-ДД_). Новые записи не должны включать это поле. Добавьте его при " +"редактировании существующей записи." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/security/_index.adoc:228 +#, no-wrap +msgid "Testing Changes to the VuXML Database" +msgstr "Тестирование ваших изменений в базе данных VuXML" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:231 +msgid "" +"This example describes a new entry for a vulnerability in the package " +"`dropbear` that has been fixed in version `dropbear-2013.59`." +msgstr "" +"Этот пример описывает новую запись об уязвимости в пакете `dropbear`, " +"которая была исправлена в версии `dropbear-2013.59`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:233 +msgid "" +"As a prerequisite, install a fresh version of package:security/vuxml[] port." +msgstr "" +"В качестве предварительного условия установите свежую версию порта " +"package:security/vuxml[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:236 +msgid "" +"First, check whether there already is an entry for this vulnerability. If " +"there were such an entry, it would match the previous version of the " +"package, `2013.58`:" +msgstr "" +"Сначала проверьте, есть ли уже запись об этой уязвимости. Если бы такая " +"запись существовала, она соответствовала бы предыдущей версии пакета " +"`2013.58`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:240 +#, no-wrap +msgid "% pkg audit dropbear-2013.58\n" +msgstr "% pkg audit dropbear-2013.58\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:243 +msgid "If there is none found, add a new entry for this vulnerability." +msgstr "Если запись не найдена, добавьте новую запись для этой уязвимости." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:248 +#, no-wrap +msgid "" +"% cd ${PORTSDIR}/security/vuxml\n" +"% make newentry\n" +msgstr "" +"% cd ${PORTSDIR}/security/vuxml\n" +"% make newentry\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:252 +msgid "" +"If the vulnerability has a https://cve.mitre.org/[MITRE CVE] identifier, the " +"following command can be used instead:" +msgstr "" +"Если уязвимость имеет идентификатор https://cve.mitre.org/[MITRE CVE], можно " +"использовать следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:257 +#, no-wrap +msgid "" +"% cd ${PORTSDIR}/security/vuxml\n" +"% make newentry CVE_ID=CVE-YYYY-XXXXX\n" +msgstr "" +"% cd ${PORTSDIR}/security/vuxml\n" +"% make newentry CVE_ID=CVE-YYYY-XXXXX\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:260 +msgid "where `CVE-YYYYY-XXXX` is a valid CVE identifier." +msgstr "где `CVE-YYYYY-XXXX` является действительным идентификатором CVE." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:263 +msgid "" +"If the vulnerability is a FreeBSD Security Advisory, the following command " +"can be used instead:" +msgstr "" +"Если уязвимость относится к FreeBSD Security Advisory, вместо этого можно " +"использовать следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:268 +#, no-wrap +msgid "" +"% cd ${PORTSDIR}/security/vuxml\n" +"% make newentry SA_ID=FreeBSD-SA-YY-XXXXXX.asc\n" +msgstr "" +"% cd ${PORTSDIR}/security/vuxml\n" +"% make newentry SA_ID=FreeBSD-SA-YY-XXXXXX.asc\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:271 +msgid "" +"where `FreeBSD-SA-YY-XXXXXX.asc` is a published https://www.freebsd.org/" +"security/advisories/[FreeBSD Security Advisory]." +msgstr "" +"где `FreeBSD-SA-YY-XXXXXX.asc` является опубликованным https://" +"www.freebsd.org/security/advisories/[FreeBSD Security Advisory]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:273 +msgid "Verify its syntax and formatting:" +msgstr "Проверьте его синтаксис и форматирование:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:277 +#, no-wrap +msgid "% make validate\n" +msgstr "% make validate\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:282 +msgid "" +"The previous command generates the [.filename]#vuln-flat.xml# file. It can " +"also be generated with:" +msgstr "" +"Предыдущая команда создает файл [.filename]#vuln-flat.xml#. Его также можно " +"создать с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:286 +#, no-wrap +msgid "% make vuln-flat.xml\n" +msgstr "% make vuln-flat.xml\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:291 +msgid "" +"At least one of these packages needs to be installed: package:textproc/" +"libxml2[], package:textproc/jade[]." +msgstr "" +"Должен быть установлен хотя бы один из следующих пакетов: package:textproc/" +"libxml2[], package:textproc/jade[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:294 +msgid "" +"Verify that the `` section of the entry will match the correct " +"packages:" +msgstr "" +"Проверьте, что раздел `` записи соответствует правильным пакетам:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:298 +#, no-wrap +msgid "% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58\n" +msgstr "% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:301 +msgid "Make sure that the entry produces no spurious matches in the output." +msgstr "Убедитесь, что запись не создает ложных совпадений в выводе." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:303 +msgid "Now check whether the right package versions are matched by the entry:" +msgstr "Теперь проверьте, соответствуют ли записи правильные версии пакетов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:312 +#, no-wrap +msgid "" +"% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58 dropbear-2013.59\n" +"dropbear-2012.58 is vulnerable:\n" +"dropbear -- exposure of sensitive information, DoS\n" +"CVE: CVE-2013-4434\n" +"CVE: CVE-2013-4421\n" +"WWW: https://portaudit.FreeBSD.org/8c9b48d1-3715-11e3-a624-00262d8b701d.html\n" +msgstr "" +"% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58 dropbear-2013.59\n" +"dropbear-2012.58 is vulnerable:\n" +"dropbear -- exposure of sensitive information, DoS\n" +"CVE: CVE-2013-4434\n" +"CVE: CVE-2013-4421\n" +"WWW: https://portaudit.FreeBSD.org/8c9b48d1-3715-11e3-a624-00262d8b701d.html\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:314 +#, no-wrap +msgid "1 problem(s) in the installed packages found.\n" +msgstr "1 problem(s) in the installed packages found.\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:317 +msgid "The former version matches while the latter one does not." +msgstr "Предыдущая версия совпадает, а последняя — нет." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/security/_index.adoc:319 +#, no-wrap +msgid "VuXML new entry checklist" +msgstr "Контрольный список для новой записи в VuXML" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:323 +msgid "" +"Check the name of the port. Sometimes the upstream project name is not " +"exactly the same as the port name." +msgstr "" +"Проверьте название порта. Иногда имя проекта в вышестоящем репозитории не " +"полностью совпадает с именем порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:327 +msgid "" +"Add all flavors. When a port has flavors all the package names need to be " +"added as a `` in the entry. Use the following script to generate " +"all flavored package names:" +msgstr "" +"Добавить все флейворы. Если у порта есть варианты, все имена пакетов должны " +"быть добавлены в запись как ``. Используйте следующий скрипт для " +"генерации всех имен пакетов с вариантами:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/security/_index.adoc:331 +#, no-wrap +msgid "% for flavor in $(make -V FLAVORS); do FLAVOR=\"${flavor}\" make -VPKGNAME;done\n" +msgstr "% for flavor in $(make -V FLAVORS); do FLAVOR=\"${flavor}\" make -VPKGNAME;done\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:336 +msgid "" +"Check if the port has `PORTEPOCH`. The above script snippet helps with " +"that. If the port uses `PORTEPOCH` it is mandatory to add it to the " +"`` tag." +msgstr "" +"Проверить, имеет ли порт `PORTEPOCH`. Приведённый выше фрагмент скрипта " +"помогает в этом. Если порт использует `PORTEPOCH`, обязательно добавить его " +"в тег ``." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:340 +msgid "" +"Double check ranges. In the case of ranges limited on both sides, make sure " +"that the `` and `` elements are inside the same `` tag. " +"Otherwise the entry might end up defining an overlapping range." +msgstr "" +"Перепроверьте диапазоны. В случае диапазонов, ограниченных с обеих сторон, " +"убедитесь, что элементы `` и `` находятся внутри одного тега " +"``. В противном случае запись может определить перекрывающийся " +"диапазон." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:349 +msgid "" +"Cross-check derivatives. Check whether derivatives or forks of the project " +"included in the ports tree are also affected. For example, if a " +"vulnerability is discovered in package:www/firefox[], assess whether " +"derivatives like package:www/librewolf[], package:www/waterfox[] or other " +"similar projects share the same vulnerability. Include all affected " +"derivatives in the VuXML entry, ensuring that users of these ports are " +"informed. Also check if there are Linux versions of the same port in the " +"tree. For instance, package:databases/sqlite3[] vulnerabilities most likely " +"affect packages like package:databases/linux-c7-sqlite3[] too." +msgstr "" +"Проверка производных версий. Если в вышестоящем проекте обнаружена " +"уязвимость, проверьте, затронуты ли также производные или форки проекта, " +"включённые в дерево портов. Например, если уязвимость обнаружена в " +"package:www/firefox[], оцените, есть ли такая же уязвимость в производных, " +"таких как package:www/librewolf[], package:www/waterfox[] или других " +"подобных проектах. Включите все затронутые производные в запись VuXML, чтобы " +"пользователи этих портов были проинформированы. Также проверьте наличие " +"Linux-версий этого порта в дереве. Например, уязвимости в package:databases/" +"sqlite3[] скорее всего затрагивают и пакеты вроде package:databases/linux-c7-" +"sqlite3[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/security/_index.adoc:349 +msgid "Do not commit an entry without running `make validate` first." +msgstr "Не делайте коммит записи, не запустив сначала `make validate`." + +#, no-wrap +#~ msgid "Cross-checking Derivatives" +#~ msgstr "Перекрестная проверка производных" diff --git a/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc b/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc --- a/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc @@ -1,11 +1,13 @@ --- -title: Глава 4. Медленное портирование -prev: books/porters-handbook/quick-porting +description: 'Описание создания порта FreeBSD, когда программа требует некоторых изменений' next: books/porters-handbook/makefiles +params: + path: /books/porters-handbook/slow-porting/ +prev: books/porters-handbook/quick-porting showBookMenu: true +tags: ["porting", "ports", "slow porting", "guide"] +title: 'Глава 4. Медленное портирование' weight: 4 -params: - path: "/books/porters-handbook/slow-porting/" --- [[slow-porting]] @@ -51,23 +53,22 @@ [[slow-work]] == Как всё это работает -Во-первых, когда пользователь дает в своем каталоге с портом команду `make`, происходит целая череда событий. Во время чтения этого текста может оказаться полезным иметь файл [.filename]#bsd.port.mk# открытым в другом окне, что сильно поможет в их понимании. +Во-первых, когда пользователь дает в своем каталоге с портом команду `make`, происходит целая череда событий. Во время чтения этого текста может оказаться полезным иметь файл [.filename]#bsd.port.mk# открытым в другом окне, что сильно поможет его понять. -Но не волнуйтесь сильно, если вы не до конца понимаете, что делается в [.filename]#bsd.port.mk#, не так уж много людей его понимает... _:->_ +Но не волнуйтесь сильно, если вы не до конца понимаете, что делается в [.filename]#bsd.port.mk#, не так уж много людей его понимает... _:-)_ [.procedure] -==== . Запускается цель `fetch`. Цель `fetch` отвечает за то, что архив исходных текстов имеется в наличии локально в каталоге `DISTDIR`. Если цель `fetch` не может найти требуемые файлы в каталоге `DISTDIR`, то они будут искаться по указателю URL `MASTER_SITES`, который устанавливается в Makefile, а также на наших FTP зеркалах, куда мы по возможности помещаем дистрибутивные файлы для архива. Затем она попытается сгрузить указанный файл с помощью `FETCH`, полагая, что запрашивающая машина имеет прямое подключение к Интернет. Если файл скачается удачно, то он будет помещен в каталог `DISTDIR` для последующего использования и обработки. . Выполняется цель `extract`. Она ищет дистрибутивный файл порта (как правило, tar-архив `gzip`) в каталоге `DISTDIR` и распаковывает его во временный каталог, задаваемый переменной `WRKDIR` (по умолчанию [.filename]#work#). . Выполняется цель `patch`. Во-первых, применяются все патчи, заданные переменной `PATCHFILES`. Во-вторых, если какие-либо файлы с патчами, носящие имена [.filename]#patch-*#, имеются в подкаталоге `PATCHDIR` (по умолчанию это каталог [.filename]#files#), то они применяются в этот момент в алфавитном порядке. . Запускается цель `configure`. Здесь может выполняться любая из многих различных вещей. -.. Если существует скрипт [.filename]#scripts/configure#, то он запускается. -.. Если задана переменная `HAS_CONFIGURE` или `GNU_CONFIGURE`, то запускается скрипт [.filename]#WRKSRC/configure#. +.. Если он существует, запускается [.filename]#scripts/configure#. +.. Если установлены `HAS_CONFIGURE` или `GNU_CONFIGURE`, запускается [.filename]#WRKSRC/configure#. . Выполняется цель `build`. Она отвечает за переход в собственный рабочий каталог порта (`WRKSRC`) и его построение. . Выполняется цель `stage`. Конечный набор построенных файлов помещается во временный каталог (`STAGEDIR`, смотрите crossref:special[staging,Staging]). Иерархия этого каталога отражает иерархию каталогов системы, в которую данный пакет будет устанавливаться. -. Выполняется цель `install`. В систему копируются файлы, перечисленные в pkg-plist порта. -==== +. Выполняется цель `package`. При этом создается пакет с использованием файлов из временного каталога, созданного во время выполнения цели `stage`, и файла [.filename]#pkg-plist# порта. +. Выполняется цель `install`. Это устанавливает пакет, созданный во время цели `package`, в хост-систему. Выше перечислены стандартные действия. Кроме того, вы сами можете определить цели `pre-_что-то_` или `post-_что-то_`, или создать скрипты с такими именами в подкаталоге [.filename]#scripts#, и они будут запущены до или после выполнения действий по умолчанию. @@ -87,15 +88,15 @@ Получите оригинальные исходные тексты (обычно) в виде упакованного tar-архива ([.filename]#foo.tar.gz# или [.filename]#foo.tar.bz2#) и скопируйте его в каталог `DISTDIR`. Всегда используйте исходные тексты _основной ветки разработки_ везде, где это возможно. -Вам потребуется задать значение переменной `MASTER_SITES` так, чтобы оно указывало на местоположение оригинального tar-архива. В файле [.filename]#bsd.sites.mk# вы найдёте краткие обозначения для большинства популярных сайтов. Пожалуйста, используйте эти сайты-и соответствующие определения-везде, где это возможно, чтобы избежать проблем повторения одной и той же информации в базе источников. Так как эти сайты со временем меняются, для всех причастных поддержка становится настоящим кошмаром. +Вам потребуется задать значение переменной `MASTER_SITES` так, чтобы оно указывало на местоположение оригинального tar-архива. В файле [.filename]#bsd.sites.mk# вы найдёте краткие обозначения для большинства популярных сайтов. Пожалуйста, используйте эти сайты-и соответствующие определения-везде, где это возможно, чтобы избежать проблем повторения одной и той же информации в базе источников. Так как эти сайты со временем меняются, для всех причастных поддержка становится настоящим кошмаром. Для подробностей смотрите crossref:makefiles[makefile-master_sites,`MASTER_SITES`]. Если вы не можете найти FTP/HTTP сайт с хорошим подключением к сети, или находите только сайты, которые имеют раздражающе нестандартные форматы, то можете захотеть поместить копию на надежный сервер FTP или HTTP, который вам доступен (например, ваша домашняя страница). -Если вы не можете найти доступного и надёжного места для помещения дистрибутивного файла, то мы сами сможем разместить его на сервере `ftp.FreeBSD.org`; однако это наименее рекомендуемое решение. Дистрибутивный файл должен быть помещён в каталог [.filename]#~/public_distfiles/# одного из пользователей машины `freefall`. Попросите того, кто коммиттил ваш порт, сделать это. Этот человек также задаст переменной `MASTER_SITES` значение `MASTER_SITE_LOCAL`, а в переменной `MASTER_SITE_SUBDIR` укажет своё имя пользователя с машины `freefall`. +Если вы не можете найти доступного и надёжного места для помещения дистрибутивного файла, то мы сами сможем разместить его на сервере `ftp.FreeBSD.org`; однако это наименее рекомендуемое решение. Дистрибутивный файл должен быть помещён в каталог [.filename]#~/public_distfiles/# одного из пользователей машины `freefall`. Попросите того, кто коммиттил ваш порт, сделать это. Этот человек также задаст переменной `MASTER_SITES` значение `MASTER_SITE_LOCAL`, а в переменной `MASTER_SITE_SUBDIR` укажет логин кластера FreeBSD. Если дистрибутивные файлы вашего порта постоянно меняются по неизвестным причинам без изменения версий со стороны автора, остаётся только поместить дистрибутив на вашу домашнюю Web-страницу и указать её первой в списке `MASTER_SITES`. Если можете, попытайтесь договориться с автором порта об этом; это действительно помогает в достижении некоторого управления исходным кодом. Размещение собственной версии поможет избежать появления ошибок у пользователей типа `checksum mismatch`, а также уменьшит нагрузку на людей, сопровождающих наш FTP-сервер. Также, если у порта имеется только один основной сервер, то рекомендуется поместить архивную копию на свой сайт и указать его в списке `MASTER_SITES` вторым. -Если вашему порту требуются дополнительные `патчи`, доступные в Интернет, скачайте также и их, поместив в каталог `DISTDIR`. Не волнуйтесь, если они находятся не на том же сайте, откуда взят дистрибутивный архив, мы умеем обрабатывать такие ситуации (смотрите описание <> ниже). +Если вашему порту требуются дополнительные `патчи`, доступные в Интернет, скачайте также и их, поместив в каталог `DISTDIR`. Не волнуйтесь, если они находятся не на том же сайте, откуда взят дистрибутивный архив, мы умеем обрабатывать такие ситуации (смотрите описание crossref:makefiles[porting-patchfiles,PATCHFILES] ниже). [[slow-modifying]] == Модификация порта @@ -110,61 +111,86 @@ ==== [[slow-patch]] -== Создание патчей +== Работа с патчами Файлы, которые добавлялись или изменялись в процессе создания порта, могут быть выявлены программой man:diff[1], а результат работы этой программы может быть в дальнейшем передан программе man:patch[1]. Такое действие с обычным файлом подразумевает сохранение копии файла с первоначальным содержимым перед внесением каких-либо изменений. -[source,shell] +[source, shell] .... % cp file file.orig .... Патчи сохраняются в виде файлов с именем [.filename]#patch-*#, где _*_ обозначает путь к файлу, к которому применяется патч, такой как [.filename]#patch-Imakefile# или [.filename]#patch-src-config.h#. -После того как файл был изменён, используется man:diff[1] для получения разницы между первоначальной и изменённой версиями. Параметр `-u` указывает man:diff[1] выводить разницу в "унифицированном" формате, который также является предпочтительным. +[TIP] +==== +Используйте `BINARY_ALIAS` для замены жёстко заданных команд во время сборки и избежания исправлений в файлах сборки. Подробнее см. в crossref:makefiles[binary-alias,Использование `BINARY_ALIAS` для переименования команд вместо исправления сборки]. +==== + +[[slow-patch-rules]] +=== Общие правила для установки патчей -[source,shell] +Файлы патчей хранятся в `PATCHDIR`, обычно это [.filename]#files/#, откуда они будут автоматически применены. Все исправления должны быть относительны к `WRKSRC`. Обычно `WRKSRC` является подкаталогом `WRKDIR`, каталога, в котором распаковывается distfile. Используйте `make -V WRKSRC` для просмотра фактического пути. Имена файлов патчей должны соответствовать следующим правилам: + +* Избегайте ситуации, когда несколько патчей изменяют один и тот же файл. Например, если и [.filename]#patch-foobar.c#, и [.filename]#patch-foobar.c2# вносят изменения в [.filename]#${WRKSRC}/foobar.c#, это делает их хрупкими и затрудняет отладку. +* При создании имен для файлов исправлений заменяйте каждое подчеркивание (`\_`) на два подчеркивания (`\__`) и каждый слэш (`/`) на одно подчеркивание (`_`). Например, чтобы исправить файл с именем [.filename]#src/freeglut_joystick.c#, назовите соответствующий исправление [.filename]#patch-src_freeglut__joystick.c#. Не называйте исправления как [.filename]#patch-aa# или [.filename]#patch-ab#. Всегда используйте путь и имя файла в названиях исправлений. Использование `make makepatch` автоматически генерирует правильные имена. +* Патч может изменять несколько файлов, если изменения связаны между собой и патч назван соответствующим образом. Например, [.filename]#patch-add-missing-stdlib.h#. +* Используйте только символы `[-+.\_a-zA-Z0-9]` для именования патчей. В частности, __не используйте `::` как разделитель путей,__ вместо этого используйте `_`. + +Минимизируйте количество нефункциональных изменений пробелов в патчах. В мире открытого исходного кода распространена практика, когда проекты используют обширные части кодовой базы, но следуют разным правилам стиля и отступов. При переносе работоспособного функционала из одного проекта для исправления аналогичных участков в другом будьте внимательны: итоговый патч может быть переполнен нефункциональными изменениями. Это не только увеличивает размер репозитория портов, но и затрудняет понимание того, что именно вызвало проблему и какие изменения были внесены. + +Если файл необходимо удалить, сделайте это в цели `post-extract`, а не как часть исправления. + +[[slow-patch-manual]] +=== Ручное создание патчей + +[NOTE] +==== +Ручное создание патчей обычно не требуется. Предпочтительным методом является автоматическая генерация патчей, как описано ранее в этом разделе. Однако иногда может потребоваться ручное исправление. +==== + +Патчи сохраняются в файлы с именами [.filename]#patch-*#, где * указывает на путь к файлу, который патчится, например [.filename]#patch-Imakefile# или [.filename]#patch-src-config.h#. Патчи с именами файлов, не начинающимися с [.filename]#patch-#, не будут применены автоматически. + +После изменения файла используется man:diff[1] для записи различий между оригинальной и изменённой версиями. `-u` заставляет man:diff[1] выводить различия файлов в "унифицированном" формате (unified diffs), которые являются предпочтительным форматом. + +[source, shell] .... % diff -u file.orig file > patch-pathname-file .... Для порождении патчей для новых добавляемых файлов используется параметр `-N`, который заставляет man:diff[1] трактовать несуществующие прежде файлы как если бы они существовали, но имели пустое содержимое: -[source,shell] +[source, shell] .... % diff -u -N newfile.orig newfile > patch-pathname-newfile .... -Файлы с патчами помещаются в каталоге `PATCHDIR` (как правило, это [.filename]#files/#), откуда они будут взяты автоматически. Все патчи обязаны быть сделаны относительно каталога `WRKSRC` (как правило, это каталог, в который распаковывается исходный архив и где будет выполняться построение). Для упрощения внесения изменений и обновлений избегайте наличия более чем одного патча для одного и того же файла (например, патчей [.filename]#patch-file# и [.filename]#patch-file2#, оба меняющих файл [.filename]#WRKSRC/foobar.c#). Обратите внимание, что если путь к изменяемому файлу содержит символ подчеркивания (`_`), то патч должен содержать в своем имени два подчеркивания вместо одного. Например, для применения патча на файл с именем [.filename]#src/freeglut_joystick.c# соответствующий патч следует назвать [.filename]#patch-src-freeglut__joystick.c#. - -Пожалуйста, используйте для именования патчей только символы `[-+._a-zA-Z0-9]`. Не используйте любые другие символы, кроме этих. Не называйте патчи как [.filename]#patch-aa# или [.filename]#patch-ab#, всегда ссылайтесь на путь и название файла в названиях самих патчей. - -Существует альтернативный упрощённый способ создания патчей для существующих файлов. Первые шаги те же самые: создание копии неизменённого файла с расширением [.filename]#.orig# и внесение изменений. После этого используйте `make makepatch`, чтобы обновить файлы с патчами в каталоге [.filename]#files# данного порта. - -Не помещайте строки RCS в патчи. Subversion будет изменять их при помещении файлов в дерево портов, и когда мы будем их оттуда извлекать, они будут уже другие, поэтому применение патчей окончится неудачей. Строчки RCS предваряются знаком доллара (`$`), и обычно начинаются с `$Id` или `$RCS`. - -Использование параметра рекурсии (`-r`) с командой man:diff[1] для генерации патчей - это хорошо, но всё же, пожалуйста, смотрите на получающиеся патчи, чтобы убедиться в отсутствии ненужного мусора. В частности, diff-разниц между двумя резервными копиями файлов, файлы [.filename]#Makefile#, когда как порт использует `Imake` или GNU-версию программы `configure`, и так далее, не нужны, и должны быть удалены. Если было необходимо отредактировать файл [.filename]#configure.in# и запустить `autoconf` для перегенерации `configure`, не нужно включать файлы diff для `configure` (они частенько вырастают до нескольких тысяч строк!). Вместо этого задайте `USE_AUTOTOOLS=autoconf:261` и включите diff-файл для [.filename]#configure.in#. - -Старайтесь минимизировать в патчах объём нефункциональных изменений с пустыми символами. В мире Открытого Исходного Кода является распространенным совместное использование проектами больших объемов кодовой базы, но с различными стилями и правилами отступов. При копировании работающей функциональной части из одного проекта для исправления похожей области в другом, будьте аккуратны, пожалуйста: получаемый однострочный патч может указаться полон нефункциональных изменений. Это не только увеличивает размер репозитория Subversion, но также усложняет поиск того, что конкретно вызвало проблему и что вообще поменялось. +Использование опции рекурсии (`-r`) в man:diff[1] для создания патчей допустимо, но пожалуйста, проверяйте полученные патчи, чтобы убедиться в отсутствии ненужных данных. В частности, различия между резервными файлами, [.filename]##Makefile##, когда порт использует `Imake` или GNU `configure`, и т.д., являются избыточными и должны быть удалены. Если потребовалось отредактировать [.filename]#configure.in# и запустить `autoconf` для перегенерации `configure`, не включайте различия в `configure` (его объем часто достигает нескольких тысяч строк!). Вместо этого определите `USES=autoreconf` и возьмите различия для [.filename]#configure.in#. -Если нужно удалить файл, сделайте это при выполнении цели `post-extract`, вместо того чтобы оформлять это как часть патча. +[[slow-patch-automatic-replacements]] +=== Простая автоматическая замена -Простые перемещения могут быть выполнены непосредственно из [.filename]#Makefile# порта с использованием man:sed[1] в режиме in-place. Это удобно, когда при изменении используется значение переменной: +Простые замены могут быть выполнены напрямую из [.filename]#Makefile# порта, используя режим редактирования на месте утилиты man:sed[1]. Это полезно, когда изменения используют значение переменной: [.programlisting] .... post-patch: - @${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README + @${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/Makefile .... -Довольно часто в исходных файлах портируемого программного обеспечения используется конвенция CR/LF. Это может стать причиной проблем с дальнейшей упаковкой, предупреждениями компилятора или выполнением скриптов (таких как `/bin/sh^M not found`). Для быстрого преобразования всех файлов из CR/LF просто в LF добавьте в [.filename]#Makefile# порта эту запись: +[IMPORTANT] +==== +Используйте man:sed[1] только для замены изменяемого содержимого. Для замены статического содержимого необходимо использовать файлы исправлений вместо man:sed[1]. +==== + +Довольно часто портируемое программное обеспечение использует соглашение CR/LF в исходных файлах. Это может вызвать проблемы с дальнейшим наложением патчей, предупреждениями компилятора или выполнением скриптов (например, `/bin/sh^M не найден`). Для быстрого преобразования всех файлов из CR/LF в просто LF добавьте следующую запись в [.filename]#Makefile# порта: [.programlisting] .... USES= dos2unix .... -Может быть задан точный список преобразуемых файлов: +Список конкретных файлов для преобразования может быть указан: [.programlisting] .... @@ -172,7 +198,7 @@ DOS2UNIX_FILES= util.c util.h .... -Используйте `DOS2UNIX_REGEX`, чтобы преобразовать группу файлов в разных подкаталогах. Его параметром является регулярное выражение, совместимое с man:find[1]. Подробнее о формате в man:re_format[7]. Такой вариант удобен для преобразования всех файлов заданного расширения. Для примера, преобразуем все исходные файлы, не затрагивая двоичные файлы: +Используйте `DOS2UNIX_REGEX` для преобразования группы файлов во вложенных каталогах. Его аргумент — это совместимое с man:find[1] регулярное выражение. Подробнее о формате можно узнать в man:re_format[7]. Эта опция полезна для преобразования всех файлов с заданным расширением. Например, преобразовать все исходные файлы кода, оставив двоичные файлы без изменений: [.programlisting] .... @@ -180,7 +206,7 @@ DOS2UNIX_REGEX= .*\.([ch]|cpp) .... -Другим вариантом является использование `DOS2UNIX_GLOB`, который вызывает `find` для каждого из перечисленных в нём элементов. +Аналогичной опцией является `DOS2UNIX_GLOB`, которая запускает `find` для каждого указанного в ней элемента. [.programlisting] .... @@ -188,6 +214,79 @@ DOS2UNIX_GLOB= *.c *.cpp *.h .... +Базовый каталог для преобразования может быть установлен. Это полезно, когда имеется несколько distfiles и в нескольких из них содержатся файлы, требующие преобразования окончаний строк. + +[.programlisting] +.... +USES= dos2unix +DOS2UNIX_WRKSRC= ${WRKDIR} +.... + +[[slow-patch-extra]] +=== Внесение исправлений при условии + +Некоторые порты требуют патчей, которые применяются только для определённых версий FreeBSD или при включении или отключении конкретной опции. Условные патчи указываются путём размещения полных путей к файлам патчей в `EXTRA_PATCHES`. Имена файлов условных патчей обычно начинаются с [.filename]#extra-#, хотя это и не обязательно. Однако их имена _не должны_ начинаться с [.filename]#patch-#. Если это произойдёт, они будут применены безусловно фреймворком, что нежелательно для условных патчей. + +[[slow-patch-extra-ex1]] +.Применение патча для конкретной версии FreeBSD +[example] +==== +[.programlisting] +.... +.include + +# Patch in the iconv const qualifier before this +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100069 +EXTRA_PATCHES= ${PATCHDIR}/extra-patch-fbsd10 +.endif + +.include +.... + +==== + +[[slow-patch-extra-ex2]] +.Опциональное применение патча +[example] +==== +Когда для crossref:makefiles[makefile-options,опции] требуется патч, используйте ``opt_EXTRA_PATCHES`` и ``opt_EXTRA_PATCHES_OFF``, чтобы сделать исправление зависимым от опции `opt`. Дополнительные сведения см. в crossref:makefiles[options-variables,Generic Variables Replacement, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`]. + +[.programlisting] +.... +OPTIONS_DEFINE= FOO BAR +FOO_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-foo +BAR_EXTRA_PATCHES_OFF= ${PATCHDIR}/extra-patch-bar.c \ + ${PATCHDIR}/extra-patch-bar.h +.... + +==== + +[[slow-patch-extra-ex-dirs]] +.Использование `EXTRA_PATCHES` с директорией +[example] +==== +Иногда для функции требуется множество патчей, в таком случае можно указать `EXTRA_PATCHES` на директорию, и все файлы с именем [.filename]#patch-*# в ней будут применены автоматически. + +Создайте подкаталог в [.filename]#${PATCHDIR}# и переместите в него патчи. Например: + +[source, shell] +.... +% ls -l files/foo-patches +-rw-r--r-- 1 root wheel 350 Jan 16 01:27 patch-Makefile.in +-rw-r--r-- 1 root wheel 3084 Jan 18 15:37 patch-configure.ac +.... + +Затем добавьте это в [.filename]#Makefile#: + +[.programlisting] +.... +OPTIONS_DEFINE= FOO +FOO_EXTRA_PATCHES= ${PATCHDIR}/foo-patches +.... + +Затем фреймворк использует все файлы с именем [.filename]#patch-*# в этом каталоге. +==== + [[slow-configure]] == Конфигурирование diff --git a/documentation/content/ru/books/porters-handbook/slow-porting/_index.po b/documentation/content/ru/books/porters-handbook/slow-porting/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/slow-porting/_index.po @@ -0,0 +1,1017 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:1 +#, no-wrap +msgid "Description about creating a FreeBSD Port when the program need some modifications" +msgstr "Описание создания порта FreeBSD, когда программа требует некоторых изменений" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:1 +#, no-wrap +msgid "Chapter 4. Slow Porting" +msgstr "Глава 4. Медленное портирование" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:14 +#, no-wrap +msgid "Slow Porting" +msgstr "Медленное портирование" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:53 +msgid "" +"Okay, so it was not that simple, and the port required some modifications to " +"get it to work. In this section, we will explain, step by step, how to " +"modify it to get it to work with the ports paradigm." +msgstr "" +"Итак, все оказалось не так уж и просто, и порт потребовал некоторых " +"модификаций для того, чтобы заставить его работать. В этом разделе мы " +"расскажем, шаг за шагом, как его модифицировать, чтобы он работал с нашей " +"системой портов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:55 +#, no-wrap +msgid "How Things Work" +msgstr "Как всё это работает" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:59 +msgid "" +"First, this is the sequence of events which occurs when the user first types " +"`make` in the port's directory. Having [.filename]#bsd.port.mk# in another " +"window while reading this really helps to understand it." +msgstr "" +"Во-первых, когда пользователь дает в своем каталоге с портом команду `make`, " +"происходит целая череда событий. Во время чтения этого текста может " +"оказаться полезным иметь файл [.filename]#bsd.port.mk# открытым в другом " +"окне, что сильно поможет его понять." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:61 +msgid "" +"But do not worry, not many people understand exactly how " +"[.filename]#bsd.port.mk# is working... _:-)_" +msgstr "" +"Но не волнуйтесь сильно, если вы не до конца понимаете, что делается в " +"[.filename]#bsd.port.mk#, не так уж много людей его понимает... _:-)_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:64 +msgid "" +"The `fetch` target is run. The `fetch` target is responsible for making sure " +"that the tarball exists locally in `DISTDIR`. If `fetch` cannot find the " +"required files in `DISTDIR` it will look up the URL `MASTER_SITES`, which is " +"set in the Makefile, as well as our FTP mirrors where we put distfiles as " +"backup. It will then attempt to fetch the named distribution file with " +"`FETCH`, assuming that the requesting site has direct access to the " +"Internet. If that succeeds, it will save the file in `DISTDIR` for future " +"use and proceed." +msgstr "" +"Запускается цель `fetch`. Цель `fetch` отвечает за то, что архив исходных " +"текстов имеется в наличии локально в каталоге `DISTDIR`. Если цель `fetch` " +"не может найти требуемые файлы в каталоге `DISTDIR`, то они будут искаться " +"по указателю URL `MASTER_SITES`, который устанавливается в Makefile, а также " +"на наших FTP зеркалах, куда мы по возможности помещаем дистрибутивные файлы " +"для архива. Затем она попытается сгрузить указанный файл с помощью `FETCH`, " +"полагая, что запрашивающая машина имеет прямое подключение к Интернет. Если " +"файл скачается удачно, то он будет помещен в каталог `DISTDIR` для " +"последующего использования и обработки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:65 +msgid "" +"The `extract` target is run. It looks for the port's distribution file " +"(typically a compressed tarball) in `DISTDIR` and unpacks it into a " +"temporary subdirectory specified by `WRKDIR` (defaults to [.filename]#work#)." +msgstr "" +"Выполняется цель `extract`. Она ищет дистрибутивный файл порта (как правило, " +"tar-архив `gzip`) в каталоге `DISTDIR` и распаковывает его во временный " +"каталог, задаваемый переменной `WRKDIR` (по умолчанию [.filename]#work#)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:66 +msgid "" +"The `patch` target is run. First, any patches defined in `PATCHFILES` are " +"applied. Second, if any patch files named [.filename]#patch-*# are found in " +"`PATCHDIR` (defaults to the [.filename]#files# subdirectory), they are " +"applied at this time in alphabetical order." +msgstr "" +"Выполняется цель `patch`. Во-первых, применяются все патчи, заданные " +"переменной `PATCHFILES`. Во-вторых, если какие-либо файлы с патчами, носящие " +"имена [.filename]#patch-*#, имеются в подкаталоге `PATCHDIR` (по умолчанию " +"это каталог [.filename]#files#), то они применяются в этот момент в " +"алфавитном порядке." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:67 +msgid "" +"The `configure` target is run. This can do any one of many different things." +msgstr "" +"Запускается цель `configure`. Здесь может выполняться любая из многих " +"различных вещей." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:68 +msgid "If it exists, [.filename]#scripts/configure# is run." +msgstr "Если он существует, запускается [.filename]#scripts/configure#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:69 +msgid "" +"If `HAS_CONFIGURE` or `GNU_CONFIGURE` is set, [.filename]#WRKSRC/configure# " +"is run." +msgstr "" +"Если установлены `HAS_CONFIGURE` или `GNU_CONFIGURE`, запускается " +"[.filename]#WRKSRC/configure#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:71 +msgid "" +"The `build` target is run. This is responsible for descending into the " +"port's private working directory (`WRKSRC`) and building it." +msgstr "" +"Выполняется цель `build`. Она отвечает за переход в собственный рабочий " +"каталог порта (`WRKSRC`) и его построение." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:72 +msgid "" +"The `stage` target is run. This puts the final set of built files into a " +"temporary directory (`STAGEDIR`, see crossref:special[staging,Staging]). The " +"hierarchy of this directory mirrors that of the system on which the package " +"will be installed." +msgstr "" +"Выполняется цель `stage`. Конечный набор построенных файлов помещается во " +"временный каталог (`STAGEDIR`, смотрите crossref:special[staging,Staging]). " +"Иерархия этого каталога отражает иерархию каталогов системы, в которую " +"данный пакет будет устанавливаться." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:73 +msgid "" +"The `package` target is run. This creates a package using the files from the " +"temporary directory created during the `stage` target and the port's " +"[.filename]#pkg-plist#." +msgstr "" +"Выполняется цель `package`. При этом создается пакет с использованием файлов " +"из временного каталога, созданного во время выполнения цели `stage`, и файла " +"[.filename]#pkg-plist# порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:74 +msgid "" +"The `install` target is run. This installs the package created during the " +"`package` target into the host system." +msgstr "" +"Выполняется цель `install`. Это устанавливает пакет, созданный во время цели " +"`package`, в хост-систему." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:76 +msgid "" +"The above are the default actions. In addition, define targets `pre-" +"_something_` or `post-_something_`, or put scripts with those names, in the " +"[.filename]#scripts# subdirectory, and they will be run before or after the " +"default actions are done." +msgstr "" +"Выше перечислены стандартные действия. Кроме того, вы сами можете определить " +"цели `pre-_что-то_` или `post-_что-то_`, или создать скрипты с такими " +"именами в подкаталоге [.filename]#scripts#, и они будут запущены до или " +"после выполнения действий по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:82 +msgid "" +"For example, if there is a `post-extract` target defined in the " +"[.filename]#Makefile#, and a file [.filename]#pre-build# in the " +"[.filename]#scripts# subdirectory, the `post-extract` target will be called " +"after the regular extraction actions, and [.filename]#pre-build# will be " +"executed before the default build rules are done. It is recommended to use " +"[.filename]#Makefile# targets if the actions are simple enough, because it " +"will be easier for someone to figure out what kind of non-default action the " +"port requires." +msgstr "" +"Например, если у вас есть цель `post-extract`, определённая в вашем файле " +"[.filename]#Makefile# и файл [.filename]#pre-build# в подкаталоге " +"[.filename]#scripts#, то после выполнения обычных действий по распаковке, " +"будет вызвана цель `post-extract` а скрипт [.filename]#pre-build# будет " +"выполнен перед запуском стандартных правил построения. Рекомендуется " +"использовать цели из [.filename]#Makefile#, если действия достаточно просты, " +"потому что в дальнейшем будет проще определить, какие нестандартные действия " +"требует порт." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:86 +msgid "" +"The default actions are done by the `do-_something_` targets from " +"[.filename]#bsd.port.mk#. For example, the commands to extract a port are " +"in the target `do-extract`. If the default target does not do the job " +"right, redefine the `do-_something_` target in the [.filename]#Makefile#." +msgstr "" +"Действия по умолчанию выполняются целями `do-_что-то_` из " +"[.filename]#bsd.port.mk#. Например, команды для распаковки порта находятся в " +"цели `do-extract`. Если вам не хватает цели по умолчанию, вы можете ее " +"исправить, переопределив цель `do-_something_` в вашем файле " +"[.filename]#Makefile#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:92 +msgid "" +"The \"main\" targets (for example, `extract`, `configure`, etc.) do nothing " +"more than make sure all the stages up to that one are completed and call the " +"real targets or scripts, and they are not intended to be changed. To fix " +"the extraction, fix `do-extract`, but never ever change the way `extract` " +"operates! Additionally, the target `post-deinstall` is invalid and is not " +"run by the ports infrastructure." +msgstr "" +"\"Основные\" цели (к примеру, `extract`, `configure` и так далее) не делают " +"ничего больше, чем проверяют успешность завершения всех предыдущих шагов и " +"вызывают настоящие цели или скрипты, и их не нужно менять. Если вам нужно " +"изменить распаковку, исправляйте `do-extract`, но никогда не меняйте способ " +"работы `extract`! Кроме того, цель `post-deinstall` является " +"недействительной и не выполняется инфраструктурой портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:95 +msgid "" +"Now that what goes on when the user types `make install` is better " +"understood, let us go through the recommended steps to create the perfect " +"port." +msgstr "" +"Теперь, когда вы представляете, что происходит, когда пользователь набирает " +"команду `make install`, давайте пройдемся через шаги, рекомендуемые для " +"создания настоящего порта." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:97 +#, no-wrap +msgid "Getting the Original Sources" +msgstr "Получение исходного кода" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:101 +msgid "" +"Get the original sources (normally) as a compressed tarball " +"([.filename]#foo.tar.gz# or [.filename]#foo.tar.bz2#) and copy it into " +"`DISTDIR`. Always use _mainstream_ sources when and where possible." +msgstr "" +"Получите оригинальные исходные тексты (обычно) в виде упакованного tar-" +"архива ([.filename]#foo.tar.gz# или [.filename]#foo.tar.bz2#) и скопируйте " +"его в каталог `DISTDIR`. Всегда используйте исходные тексты _основной ветки " +"разработки_ везде, где это возможно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:108 +msgid "" +"Set the variable `MASTER_SITES` to reflect where the original tarball " +"resides. Shorthand definitions exist for most mainstream sites in " +"[.filename]#bsd.sites.mk#. Please use these sites-and the associated " +"definitions-if at all possible, to help avoid the problem of having the same " +"information repeated over again many times in the source base. As these " +"sites tend to change over time, this becomes a maintenance nightmare for " +"everyone involved. See crossref:makefiles[makefile-" +"master_sites,`MASTER_SITES`] for details." +msgstr "" +"Вам потребуется задать значение переменной `MASTER_SITES` так, чтобы оно " +"указывало на местоположение оригинального tar-архива. В файле " +"[.filename]#bsd.sites.mk# вы найдёте краткие обозначения для большинства " +"популярных сайтов. Пожалуйста, используйте эти сайты-и соответствующие " +"определения-везде, где это возможно, чтобы избежать проблем повторения одной " +"и той же информации в базе источников. Так как эти сайты со временем " +"меняются, для всех причастных поддержка становится настоящим кошмаром. Для " +"подробностей смотрите crossref:makefiles[makefile-" +"master_sites,`MASTER_SITES`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:110 +msgid "" +"If there is no FTP/HTTP site that is well-connected to the net, or can only " +"find sites that have irritatingly non-standard formats, put a copy on a " +"reliable FTP or HTTP server (for example, a home page)." +msgstr "" +"Если вы не можете найти FTP/HTTP сайт с хорошим подключением к сети, или " +"находите только сайты, которые имеют раздражающе нестандартные форматы, то " +"можете захотеть поместить копию на надежный сервер FTP или HTTP, который вам " +"доступен (например, ваша домашняя страница)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:114 +msgid "" +"If a convenient and reliable place to put the distfile cannot be found, we " +"can \"house\" it ourselves on `ftp.FreeBSD.org`; however, this is the least-" +"preferred solution. The distfile must be placed into [.filename]#~/" +"public_distfiles/# of someone's `freefall` account. Ask the person who " +"commits the port to do this. This person will also set `MASTER_SITES` to " +"`LOCAL/_username_` where `_username_` is their FreeBSD cluster login." +msgstr "" +"Если вы не можете найти доступного и надёжного места для помещения " +"дистрибутивного файла, то мы сами сможем разместить его на сервере " +"`ftp.FreeBSD.org`; однако это наименее рекомендуемое решение. Дистрибутивный " +"файл должен быть помещён в каталог [.filename]#~/public_distfiles/# одного " +"из пользователей машины `freefall`. Попросите того, кто коммиттил ваш порт, " +"сделать это. Этот человек также задаст переменной `MASTER_SITES` значение " +"`MASTER_SITE_LOCAL`, а в переменной `MASTER_SITE_SUBDIR` укажет логин " +"кластера FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:119 +msgid "" +"If the port's distfile changes all the time without any kind of version " +"update by the author, consider putting the distfile on a home page and " +"listing it as the first `MASTER_SITES`. Try to talk the port author out of " +"doing this; it really does help to establish some kind of source code " +"control. Hosting a specific version will prevent users from getting " +"`checksum mismatch` errors, and also reduce the workload of maintainers of " +"our FTP site. Also, if there is only one master site for the port, it is " +"recommended to house a backup on a home page and list it as the second " +"`MASTER_SITES`." +msgstr "" +"Если дистрибутивные файлы вашего порта постоянно меняются по неизвестным " +"причинам без изменения версий со стороны автора, остаётся только поместить " +"дистрибутив на вашу домашнюю Web-страницу и указать её первой в списке " +"`MASTER_SITES`. Если можете, попытайтесь договориться с автором порта об " +"этом; это действительно помогает в достижении некоторого управления исходным " +"кодом. Размещение собственной версии поможет избежать появления ошибок у " +"пользователей типа `checksum mismatch`, а также уменьшит нагрузку на людей, " +"сопровождающих наш FTP-сервер. Также, если у порта имеется только один " +"основной сервер, то рекомендуется поместить архивную копию на свой сайт и " +"указать его в списке `MASTER_SITES` вторым." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:123 +msgid "" +"If the port requires additional patches that are available on the Internet, " +"fetch them too and put them in `DISTDIR`. Do not worry if they come from a " +"site other than where the main source tarball comes, we have a way to handle " +"these situations (see the description of crossref:makefiles[porting-" +"patchfiles,PATCHFILES] below)." +msgstr "" +"Если вашему порту требуются дополнительные `патчи`, доступные в Интернет, " +"скачайте также и их, поместив в каталог `DISTDIR`. Не волнуйтесь, если они " +"находятся не на том же сайте, откуда взят дистрибутивный архив, мы умеем " +"обрабатывать такие ситуации (смотрите описание crossref:makefiles[porting-" +"patchfiles,PATCHFILES] ниже)." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:125 +#, no-wrap +msgid "Modifying the Port" +msgstr "Модификация порта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:130 +msgid "" +"Unpack a copy of the tarball in a private directory and make whatever " +"changes are necessary to get the port to compile properly under the current " +"version of FreeBSD. Keep _careful track_ of steps, as they will be needed " +"to automate the process shortly. Everything, including the deletion, " +"addition, or modification of files has to be doable using an automated " +"script or patch file when the port is finished." +msgstr "" +"Распакуйте копию дистрибутивного файла в отдельный каталог и внесите " +"изменения, которые необходимы для того, чтобы порт компилировался нормально " +"в текущей версии FreeBSD. _Тщательно отслеживайте_ все, что вы делаете, этот " +"процесс вам предстоит автоматизировать. Все, включая удаление, добавление " +"или модификацию в файлах должны будут выполняться автоматически с помощью " +"скриптов или файлов патчей, когда вы завершите работу над портом." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:133 +msgid "" +"If the port requires significant user interaction/customization to compile " +"or install, take a look at one of Larry Wall's classic Configure scripts and " +"perhaps do something similar. The goal of the new ports collection is to " +"make each port as \"plug-and-play\" as possible for the end-user while using " +"a minimum of disk space." +msgstr "" +"Если вашему порту во время компиляции, установки и настройки требуется " +"довольно много взаимодействовать с пользователем, то посмотрите на один из " +"классических скриптов Configure Лэрри Уолла (Larry Wall) и сделайте сами что-" +"либо подобное. Предназначение новой коллекции портов - это сделать каждое " +"приложение в стиле \"plug-and-play\" настолько, насколько это вообще " +"возможно для конечного пользователя при минимальном использовании дискового " +"пространства." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:137 +msgid "" +"Unless explicitly stated, patch files, scripts, and other files created and " +"contributed to the FreeBSD ports collection are assumed to be covered by the " +"standard BSD copyright conditions." +msgstr "" +"Если явно не указано обратное, то патчи, скрипты и другие файлы, которые вы " +"создали и предоставили для Коллекции Портов FreeBSD, неявно подпадают под " +"стандартные условия лицензии BSD." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:140 +#, no-wrap +msgid "Patching" +msgstr "Работа с патчами" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:144 +msgid "" +"In the preparation of the port, files that have been added or changed can be " +"recorded with man:diff[1] for later feeding to man:patch[1]. Doing this " +"with a typical file involves saving a copy of the original file before " +"making any changes using a [.filename]#.orig# suffix." +msgstr "" +"Файлы, которые добавлялись или изменялись в процессе создания порта, могут " +"быть выявлены программой man:diff[1], а результат работы этой программы " +"может быть в дальнейшем передан программе man:patch[1]. Такое действие с " +"обычным файлом подразумевает сохранение копии файла с первоначальным " +"содержимым перед внесением каких-либо изменений." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:148 +#, no-wrap +msgid "% cp file file.orig\n" +msgstr "% cp file file.orig\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:152 +msgid "" +"After all changes have been made, `cd` back to the port directory. Use " +"`make makepatch` to generate updated patch files in the [.filename]#files# " +"directory." +msgstr "" +"Патчи сохраняются в виде файлов с именем [.filename]#patch-*#, где _*_ " +"обозначает путь к файлу, к которому применяется патч, такой как " +"[.filename]#patch-Imakefile# или [.filename]#patch-src-config.h#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:157 +msgid "" +"Use `BINARY_ALIAS` to substitute hardcoded commands during the build and " +"avoid patching build files. See crossref:makefiles[binary-alias,Use " +"`BINARY_ALIAS` to Rename Commands Instead of Patching the Build] for more " +"information." +msgstr "" +"Используйте `BINARY_ALIAS` для замены жёстко заданных команд во время сборки " +"и избежания исправлений в файлах сборки. Подробнее см. в " +"crossref:makefiles[binary-alias,Использование `BINARY_ALIAS` для " +"переименования команд вместо исправления сборки]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:160 +#, no-wrap +msgid "General Rules for Patching" +msgstr "Общие правила для установки патчей" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:167 +msgid "" +"Patch files are stored in `PATCHDIR`, usually [.filename]#files/#, from " +"where they will be automatically applied. All patches must be relative to " +"`WRKSRC`. Typically `WRKSRC` is a subdirectory of `WRKDIR`, the directory " +"where the distfile is extracted. Use `make -V WRKSRC` to see the actual " +"path. The patch names are to follow these rules:" +msgstr "" +"Файлы патчей хранятся в `PATCHDIR`, обычно это [.filename]#files/#, откуда " +"они будут автоматически применены. Все исправления должны быть относительны " +"к `WRKSRC`. Обычно `WRKSRC` является подкаталогом `WRKDIR`, каталога, в " +"котором распаковывается distfile. Используйте `make -V WRKSRC` для просмотра " +"фактического пути. Имена файлов патчей должны соответствовать следующим " +"правилам:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:169 +msgid "" +"Avoid having more than one patch modify the same file. For example, having " +"both [.filename]#patch-foobar.c# and [.filename]#patch-foobar.c2# making " +"changes to [.filename]#${WRKSRC}/foobar.c# makes them fragile and difficult " +"to debug." +msgstr "" +"Избегайте ситуации, когда несколько патчей изменяют один и тот же файл. " +"Например, если и [.filename]#patch-foobar.c#, и [.filename]#patch-foobar.c2# " +"вносят изменения в [.filename]#${WRKSRC}/foobar.c#, это делает их хрупкими и " +"затрудняет отладку." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:170 +msgid "" +"When creating names for patch files, replace each underscore (`\\_`) with " +"two underscores (`\\__`) and each slash (`/`) with one underscore (`_`). For " +"example, to patch a file named [.filename]#src/freeglut_joystick.c#, name " +"the corresponding patch [.filename]#patch-src_freeglut__joystick.c#. Do not " +"name patches like [.filename]#patch-aa# or [.filename]#patch-ab#. Always use " +"the path and file name in patch names. Using `make makepatch` automatically " +"generates the correct names." +msgstr "" +"При создании имен для файлов исправлений заменяйте каждое подчеркивание " +"(`\\_`) на два подчеркивания (`\\__`) и каждый слэш (`/`) на одно " +"подчеркивание (`_`). Например, чтобы исправить файл с именем [.filename]#src/" +"freeglut_joystick.c#, назовите соответствующий исправление [.filename]#patch-" +"src_freeglut__joystick.c#. Не называйте исправления как [.filename]#patch-" +"aa# или [.filename]#patch-ab#. Всегда используйте путь и имя файла в " +"названиях исправлений. Использование `make makepatch` автоматически " +"генерирует правильные имена." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:171 +msgid "" +"A patch may modify multiple files if the changes are related and the patch " +"is named appropriately. For example, [.filename]#patch-add-missing-stdlib.h#." +msgstr "" +"Патч может изменять несколько файлов, если изменения связаны между собой и " +"патч назван соответствующим образом. Например, [.filename]#patch-add-missing-" +"stdlib.h#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:172 +msgid "" +"Only use characters `[-+.\\_a-zA-Z0-9]` for naming patches. In particular, " +"__do not use `::` as a path separator,__ use `_` instead." +msgstr "" +"Используйте только символы `[-+.\\_a-zA-Z0-9]` для именования патчей. В " +"частности, __не используйте `::` как разделитель путей,__ вместо этого " +"используйте `_`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:177 +msgid "" +"Minimize the amount of non-functional whitespace changes in patches. It is " +"common in the Open Source world for projects to share large amounts of a " +"code base, but obey different style and indenting rules. When taking a " +"working piece of functionality from one project to fix similar areas in " +"another, please be careful: the resulting patch may be full of non-" +"functional changes. It not only increases the size of the ports repository " +"but makes it hard to find out what exactly caused the problem and what was " +"changed at all." +msgstr "" +"Минимизируйте количество нефункциональных изменений пробелов в патчах. В " +"мире открытого исходного кода распространена практика, когда проекты " +"используют обширные части кодовой базы, но следуют разным правилам стиля и " +"отступов. При переносе работоспособного функционала из одного проекта для " +"исправления аналогичных участков в другом будьте внимательны: итоговый патч " +"может быть переполнен нефункциональными изменениями. Это не только " +"увеличивает размер репозитория портов, но и затрудняет понимание того, что " +"именно вызвало проблему и какие изменения были внесены." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:179 +msgid "" +"If a file must be deleted, do it in the `post-extract` target rather than as " +"part of the patch." +msgstr "" +"Если файл необходимо удалить, сделайте это в цели `post-extract`, а не как " +"часть исправления." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:181 +#, no-wrap +msgid "Manual Patch Generation" +msgstr "Ручное создание патчей" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:188 +msgid "" +"Manual patch creation is usually not necessary. Automatic patch generation " +"as described earlier in this section is the preferred method. However, " +"manual patching may be required occasionally." +msgstr "" +"Ручное создание патчей обычно не требуется. Предпочтительным методом " +"является автоматическая генерация патчей, как описано ранее в этом разделе. " +"Однако иногда может потребоваться ручное исправление." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:193 +msgid "" +"Patches are saved into files named [.filename]#patch-*# where * indicates " +"the pathname of the file that is patched, such as [.filename]#patch-" +"Imakefile# or [.filename]#patch-src-config.h#. Patches with file names " +"which do not start with [.filename]#patch-# will not be applied " +"automatically." +msgstr "" +"Патчи сохраняются в файлы с именами [.filename]#patch-*#, где * указывает на " +"путь к файлу, который патчится, например [.filename]#patch-Imakefile# или " +"[.filename]#patch-src-config.h#. Патчи с именами файлов, не начинающимися с " +"[.filename]#patch-#, не будут применены автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:196 +msgid "" +"After the file has been modified, man:diff[1] is used to record the " +"differences between the original and the modified version. `-u` causes " +"man:diff[1] to produce \"unified\" diffs, the preferred form." +msgstr "" +"После изменения файла используется man:diff[1] для записи различий между " +"оригинальной и изменённой версиями. `-u` заставляет man:diff[1] выводить " +"различия файлов в \"унифицированном\" формате (unified diffs), которые " +"являются предпочтительным форматом." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:200 +#, no-wrap +msgid "% diff -u file.orig file > patch-pathname-file\n" +msgstr "% diff -u file.orig file > patch-pathname-file\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:203 +msgid "" +"When generating patches for new, added files, `-N` is used to tell " +"man:diff[1] to treat the non-existent original file as if it existed but was " +"empty:" +msgstr "" +"Для порождении патчей для новых добавляемых файлов используется параметр `-" +"N`, который заставляет man:diff[1] трактовать несуществующие прежде файлы " +"как если бы они существовали, но имели пустое содержимое:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:207 +#, no-wrap +msgid "% diff -u -N newfile.orig newfile > patch-pathname-newfile\n" +msgstr "% diff -u -N newfile.orig newfile > patch-pathname-newfile\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:213 +msgid "" +"Using the recurse (`-r`) option to man:diff[1] to generate patches is fine, " +"but please look at the resulting patches to make sure there is no " +"unnecessary junk in there. In particular, diffs between two backup files, " +"[.filename]##Makefile##s when the port uses `Imake` or GNU `configure`, " +"etc., are unnecessary and have to be deleted. If it was necessary to edit " +"[.filename]#configure.in# and run `autoconf` to regenerate `configure`, do " +"not take the diffs of `configure` (it often grows to a few thousand " +"lines!). Instead, define `USES=autoreconf` and take the diffs of " +"[.filename]#configure.in#." +msgstr "" +"Использование опции рекурсии (`-r`) в man:diff[1] для создания патчей " +"допустимо, но пожалуйста, проверяйте полученные патчи, чтобы убедиться в " +"отсутствии ненужных данных. В частности, различия между резервными файлами, " +"[.filename]##Makefile##, когда порт использует `Imake` или GNU `configure`, " +"и т.д., являются избыточными и должны быть удалены. Если потребовалось " +"отредактировать [.filename]#configure.in# и запустить `autoconf` для " +"перегенерации `configure`, не включайте различия в `configure` (его объем " +"часто достигает нескольких тысяч строк!). Вместо этого определите " +"`USES=autoreconf` и возьмите различия для [.filename]#configure.in#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:215 +#, no-wrap +msgid "Simple Automatic Replacements" +msgstr "Простая автоматическая замена" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:219 +msgid "" +"Simple replacements can be performed directly from the port " +"[.filename]#Makefile# using the in-place mode of man:sed[1]. This is useful " +"when changes use the value of a variable:" +msgstr "" +"Простые замены могут быть выполнены напрямую из [.filename]#Makefile# порта, " +"используя режим редактирования на месте утилиты man:sed[1]. Это полезно, " +"когда изменения используют значение переменной:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:224 +#, no-wrap +msgid "" +"post-patch:\n" +"\t@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/Makefile\n" +msgstr "" +"post-patch:\n" +"\t@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/Makefile\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:230 +msgid "" +"Only use man:sed[1] to replace variable content. You must use patch files " +"instead of man:sed[1] to replace static content." +msgstr "" +"Используйте man:sed[1] только для замены изменяемого содержимого. Для замены " +"статического содержимого необходимо использовать файлы исправлений вместо " +"man:sed[1]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:235 +msgid "" +"Quite often, software being ported uses the CR/LF convention in source " +"files. This may cause problems with further patching, compiler warnings, or " +"script execution (like `/bin/sh^M not found`.) To quickly convert all files " +"from CR/LF to just LF, add this entry to the port [.filename]#Makefile#:" +msgstr "" +"Довольно часто портируемое программное обеспечение использует соглашение CR/" +"LF в исходных файлах. Это может вызвать проблемы с дальнейшим наложением " +"патчей, предупреждениями компилятора или выполнением скриптов (например, `/" +"bin/sh^M не найден`). Для быстрого преобразования всех файлов из CR/LF в " +"просто LF добавьте следующую запись в [.filename]#Makefile# порта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:239 +#, no-wrap +msgid "USES=\tdos2unix\n" +msgstr "USES=\tdos2unix\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:242 +msgid "A list of specific files to convert can be given:" +msgstr "Список конкретных файлов для преобразования может быть указан:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:247 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_FILES=\tutil.c util.h\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_FILES=\tutil.c util.h\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:254 +msgid "" +"Use `DOS2UNIX_REGEX` to convert a group of files across subdirectories. Its " +"argument is a man:find[1]-compatible regular expression. More on the format " +"is in man:re_format[7]. This option is useful for converting all files of a " +"given extension. For example, convert all source code files, leaving binary " +"files intact:" +msgstr "" +"Используйте `DOS2UNIX_REGEX` для преобразования группы файлов во вложенных " +"каталогах. Его аргумент — это совместимое с man:find[1] регулярное " +"выражение. Подробнее о формате можно узнать в man:re_format[7]. Эта опция " +"полезна для преобразования всех файлов с заданным расширением. Например, " +"преобразовать все исходные файлы кода, оставив двоичные файлы без изменений:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:259 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_REGEX=\t.*\\.([ch]|cpp)\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_REGEX=\t.*\\.([ch]|cpp)\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:262 +msgid "" +"A similar option is `DOS2UNIX_GLOB`, which runs `find` for each element " +"listed in it." +msgstr "" +"Аналогичной опцией является `DOS2UNIX_GLOB`, которая запускает `find` для " +"каждого указанного в ней элемента." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:267 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_GLOB=\t*.c *.cpp *.h\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_GLOB=\t*.c *.cpp *.h\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:271 +msgid "" +"The base directory for the conversion can be set. This is useful when there " +"are multiple distfiles and several contain files which require line-ending " +"conversion." +msgstr "" +"Базовый каталог для преобразования может быть установлен. Это полезно, когда " +"имеется несколько distfiles и в нескольких из них содержатся файлы, " +"требующие преобразования окончаний строк." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:276 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_WRKSRC=\t${WRKDIR}\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_WRKSRC=\t${WRKDIR}\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:279 +#, no-wrap +msgid "Patching Conditionally" +msgstr "Внесение исправлений при условии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:286 +msgid "" +"Some ports need patches that are only applied for specific FreeBSD versions " +"or when a particular option is enabled or disabled. Conditional patches are " +"specified by placing the full paths to the patch files in `EXTRA_PATCHES`. " +"Conditional patch file names usually start with [.filename]#extra-# although " +"this is not necessary. However, their file names _must not_ start with " +"[.filename]#patch-#. If they do, they are applied unconditionally by the " +"framework which is undesired for conditional patches." +msgstr "" +"Некоторые порты требуют патчей, которые применяются только для определённых " +"версий FreeBSD или при включении или отключении конкретной опции. Условные " +"патчи указываются путём размещения полных путей к файлам патчей в " +"`EXTRA_PATCHES`. Имена файлов условных патчей обычно начинаются с " +"[.filename]#extra-#, хотя это и не обязательно. Однако их имена _не должны_ " +"начинаться с [.filename]#patch-#. Если это произойдёт, они будут применены " +"безусловно фреймворком, что нежелательно для условных патчей." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:288 +#, no-wrap +msgid "Applying a Patch for a Specific FreeBSD Version" +msgstr "Применение патча для конкретной версии FreeBSD" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:294 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:299 +#, no-wrap +msgid "" +"# Patch in the iconv const qualifier before this\n" +".if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100069\n" +"EXTRA_PATCHES=\t${PATCHDIR}/extra-patch-fbsd10\n" +".endif\n" +msgstr "" +"# Patch in the iconv const qualifier before this\n" +".if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100069\n" +"EXTRA_PATCHES=\t${PATCHDIR}/extra-patch-fbsd10\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:301 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:306 +#, no-wrap +msgid "Optionally Applying a Patch" +msgstr "Опциональное применение патча" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:311 +msgid "" +"When an crossref:makefiles[makefile-options,option] requires a patch, use " +"``opt_EXTRA_PATCHES`` and ``opt_EXTRA_PATCHES_OFF`` to make the patch " +"conditional on the `opt` option. See crossref:makefiles[options-" +"variables,Generic Variables Replacement, `OPT_VARIABLE` and " +"`OPT_VARIABLE_OFF`] for more information." +msgstr "" +"Когда для crossref:makefiles[makefile-options,опции] требуется патч, " +"используйте ``opt_EXTRA_PATCHES`` и ``opt_EXTRA_PATCHES_OFF``, чтобы сделать " +"исправление зависимым от опции `opt`. Дополнительные сведения см. в " +"crossref:makefiles[options-variables,Generic Variables Replacement, " +"`OPT_VARIABLE` и `OPT_VARIABLE_OFF`]." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:318 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\t FOO BAR\n" +"FOO_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-foo\n" +"BAR_EXTRA_PATCHES_OFF=\t${PATCHDIR}/extra-patch-bar.c \\\n" +"\t\t${PATCHDIR}/extra-patch-bar.h\n" +msgstr "" +"OPTIONS_DEFINE=\t FOO BAR\n" +"FOO_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-foo\n" +"BAR_EXTRA_PATCHES_OFF=\t${PATCHDIR}/extra-patch-bar.c \\\n" +"\t\t${PATCHDIR}/extra-patch-bar.h\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:323 +#, no-wrap +msgid "Using `EXTRA_PATCHES` With a Directory" +msgstr "Использование `EXTRA_PATCHES` с директорией" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:328 +msgid "" +"Sometimes, there are many patches that are needed for a feature, in this " +"case, it is possible to point `EXTRA_PATCHES` to a directory, and it will " +"automatically apply all files named [.filename]#patch-*# in it." +msgstr "" +"Иногда для функции требуется множество патчей, в таком случае можно указать " +"`EXTRA_PATCHES` на директорию, и все файлы с именем [.filename]#patch-*# в " +"ней будут применены автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:331 +msgid "" +"Create a subdirectory in [.filename]#${PATCHDIR}#, and move the patches in " +"it. For example:" +msgstr "" +"Создайте подкаталог в [.filename]#${PATCHDIR}# и переместите в него патчи. " +"Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:337 +#, no-wrap +msgid "" +"% ls -l files/foo-patches\n" +"-rw-r--r-- 1 root wheel 350 Jan 16 01:27 patch-Makefile.in\n" +"-rw-r--r-- 1 root wheel 3084 Jan 18 15:37 patch-configure.ac\n" +msgstr "" +"% ls -l files/foo-patches\n" +"-rw-r--r-- 1 root wheel 350 Jan 16 01:27 patch-Makefile.in\n" +"-rw-r--r-- 1 root wheel 3084 Jan 18 15:37 patch-configure.ac\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:340 +msgid "Then add this to the [.filename]#Makefile#:" +msgstr "Затем добавьте это в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:345 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tFOO\n" +"FOO_EXTRA_PATCHES=\t${PATCHDIR}/foo-patches\n" +msgstr "" +"OPTIONS_DEFINE=\tFOO\n" +"FOO_EXTRA_PATCHES=\t${PATCHDIR}/foo-patches\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:348 +msgid "" +"The framework will then use all the files named [.filename]#patch-*# in that " +"directory." +msgstr "" +"Затем фреймворк использует все файлы с именем [.filename]#patch-*# в этом " +"каталоге." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:351 +#, no-wrap +msgid "Configuring" +msgstr "Конфигурирование" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:355 +msgid "" +"Include any additional customization commands in the [.filename]#configure# " +"script and save it in the [.filename]#scripts# subdirectory. As mentioned " +"above, it is also possible do this with [.filename]#Makefile# targets and/or " +"scripts with the name [.filename]#pre-configure# or [.filename]#post-" +"configure#." +msgstr "" +"Поместите все дополнительные команды, требуемые для настройки, в ваш скрипт " +"[.filename]#configure# и сохраните его в подкаталоге [.filename]#scripts#. " +"Как отмечено выше, вы можете сделать это целями в файле " +"[.filename]#Makefile# и/или скриптами с именами [.filename]#pre-configure# " +"или [.filename]#post-configure#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:357 +#, no-wrap +msgid "Handling User Input" +msgstr "Обработка пользовательского ввода" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:364 +msgid "" +"If the port requires user input to build, configure, or install, set " +"`IS_INTERACTIVE` in the [.filename]#Makefile#. This will allow \"overnight " +"builds\" to skip it. If the user sets the variable `BATCH` in their " +"environment (and if the user sets the variable `INTERACTIVE`, then _only_ " +"those ports requiring interaction are built). This will save a lot of " +"wasted time on the set of machines that continually build ports (see below)." +msgstr "" +"Если для построения, конфигурации или установки вашего порта требуется " +"некоторый ввод со стороны пользователя, то вы должны задать переменную " +"`IS_INTERACTIVE` в вашем файле [.filename]#Makefile#. В случае \"ночного " +"построения\" это позволит пропустить ваш порт, если пользователь в своем " +"окружении задал переменную `BATCH` (и если пользователь установил переменную " +"`INTERACTIVE`, то будут строиться _только_ порты, которые требуют " +"взаимодействия с пользователем. Это сэкономит значительное количество " +"времени на части машин, которые постоянно строят порты (смотрите ниже)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:366 +msgid "" +"It is also recommended that if there are reasonable default answers to the " +"questions, `PACKAGE_BUILDING` be used to turn off the interactive script " +"when it is set. This will allow us to build the packages for CDROMs and FTP." +msgstr "" +"При наличии разумных ответов на задаваемые вопросы, подходящих по умолчанию, " +"также рекомендуется проверять переменную `PACKAGE_BUILDING` и выключать " +"интерактивный скрипт, если он есть. Это позволит нам строить пакеты для " +"помещения на компакт-диски и FTP-серверы." diff --git a/documentation/content/ru/books/porters-handbook/special/_index.adoc b/documentation/content/ru/books/porters-handbook/special/_index.adoc --- a/documentation/content/ru/books/porters-handbook/special/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/special/_index.adoc @@ -1,11 +1,13 @@ --- -title: Глава 6. Особые соглашения +description: 'Особые соображения при создании нового порта FreeBSD' +next: books/porters-handbook/flavors +params: + path: /books/porters-handbook/special/ prev: books/porters-handbook/makefiles -next: books/porters-handbook/plist showBookMenu: true +tags: ["special considerations", "Handling Symbolic Links", "Bundled Libraries"] +title: 'Глава 6. Особые соглашения' weight: 6 -params: - path: "/books/porters-handbook/special/" --- [[special]] @@ -48,17 +50,31 @@ Имеется ещё несколько вещей, которые вы должны иметь в виду при создании порта. Этот раздел описывает наиболее часто встречающиеся из них. +[[splitting-long-files]] +== Разделение длинных файлов + +Иногда [.filename]#Makefiles# могут быть очень длинными. Например, порты rust могут содержать очень длинный список `CARGO_CRATES`. В других случаях [.filename]#Makefile# может содержать код, который варьируется в зависимости от архитектуры. В таких ситуациях может быть удобно разделить исходный [.filename]#Makefile# на несколько файлов. [.filename]#bsd.port.mk# автоматически включает некоторые типы [.filename]#Makefiles# в основной [.filename]#Makefile# порта. + +Вот файлы, которые система обрабатывает автоматически, если они обнаружены: + +* [.filename]#Makefile.crates#. Пример можно найти в пакете package:audio/ebur128[]. +* [.filename]#Makefile.inc#. Пример можно найти в пакете package:net/ntp[]. +* [.filename]#Makefile.${ARCH}-${OPSYS}# +* [.filename]#Makefile.${OPSYS}#. Пример можно найти в пакете package:net/cvsup-static[]. +* [.filename]#Makefile.${ARCH}# +* [.filename]#Makefile.local# + +Также распространённой практикой является разделение списка пакетов порта на несколько файлов, если список сильно различается в зависимости от архитектуры или выбранного флейвора. В этом случае файл [.filename]#pkg-plist# для каждой архитектуры именуется по шаблону [.filename]#pkg-plist.${ARCH}# или [.filename]#pkg-plist.${FLAVOR}#. Фреймворк не создаёт список пакетов автоматически, если существует несколько файлов [.filename]#pkg-plist#. Ответственность за выбор подходящего файла [.filename]#pkg-plist# и его присвоение переменной `PLIST` лежит на того, кто делает порт. Примеры работы с этим можно найти в портах package:audio/logitechmediaserver[] и package:deskutils/libportal[]. + [[staging]] == Staging -[.filename]#bsd.port.mk# ожидает от портов работу с "каталогом сборки". Это означает, что порт должен устанавливать файлы не напрямую в назначенные каталоги (то есть, например, под `PREFIX`), а в отдельный каталог, из которого затем собирается пакет. Во многих случаях привилегии root для этого не требуются, что делает возможным сборку пакетов из-под непривилегированного пользователя. В режиме staging порт собирается и устанавливается в каталог сборки `STAGEDIR`. Пакет создается из каталога сборки и затем устанавливается в систему. В инструментарии automake такая концепция именуется `DESTDIR`; в прочем, в FreeBSD `DESTDIR` имеет собственное значение (смотрите crossref:testing[porting-prefix, `PREFIX` и `DESTDIR`]). - -Если для порта всё ещё требуются системные привилегии при выполнении цели `package`, то в [.filename]#Makefile# должна быть добавлена следующая строка: +[.filename]#bsd.port.mk# ожидает, что порты будут работать с "директорией стадии". Это означает, что порт не должен устанавливать файлы напрямую в обычные целевые директории (например, под `PREFIX`), а вместо этого в отдельную директорию, из которой затем собирается пакет. Во многих случаях это не требует прав root, что позволяет собирать пакеты от имени непривилегированного пользователя. При использовании стадии порт собирается и устанавливается в директорию стадии `STAGEDIR`. Пакет создаётся из директории стадии и затем устанавливается в систему. Инструменты Automake называют эту концепцию `DESTDIR`, но в FreeBSD `DESTDIR` имеет другое значение (см. crossref:testing[porting-prefix,`PREFIX` и `DESTDIR`]). -[.programlisting] -.... -NEED_ROOT= yes -.... +[NOTE] +==== +Ни один порт _на самом деле_ не должен работать от root. Этого в большинстве случаев можно избежать, используя crossref:uses[uses-uidfix,`USES=uidfix`]. Если порт всё ещё выполняет команды, такие как man:chown[8], man:chgrp[1], или принудительно устанавливает владельца или группу с помощью man:install[1], то используйте crossref:uses[uses-fakeroot,`USES=fakeroot`], чтобы подделать эти вызовы. Потребуется некоторая правка [.filename]#Makefiles# порта. +==== Метапорты, то есть порты, которые не устанавливают файлы непосредственно, а только зависят от других портов, должны по возможности избегать распаковки man:mtree[8] в каталог сборки. Это основная иерархия каталогов пакета, и эти пустые каталоги будут выглядеть лишними. Для предотвращения распаковки man:mtree[8] добавьте эту строку: @@ -67,18 +83,97 @@ NO_MTREE= yes .... -Staging задействуется посредством добавления переменной `STAGEDIR` слева от путей, которые используются в целях `pre-install`, `do-install` и `post-install` (смотрите примеры в книге). Обычно сюда относятся `PREFIX`, `ETCDIR`, `DATADIR`, `EXAMPLESDIR`, `MANPREFIX`, `DOCSDIR` и так далее. Каталоги должны создаваться при выполнении цели `post-install`. Избегайте использования абсолютных путей, когда это возможно. +[TIP] +==== +Метапорты должны использовать crossref:special[uses-metaport,`USES=metaport`]. Это устанавливает значения по умолчанию для портов, которые не загружают, не собирают и не устанавливают ничего. +==== + +Этап подготовки включается путем добавления `STAGEDIR` к путям, используемым в целях `pre-install`, `do-install` и `post-install` (см. примеры в книге). Обычно это включает `PREFIX`, `ETCDIR`, `DATADIR`, `EXAMPLESDIR`, `DOCSDIR` и т. д. Каталоги должны создаваться как часть цели `post-install`. По возможности избегайте использования абсолютных путей. + +[TIP] +==== +Порты, которые устанавливают модули ядра, должны добавлять `STAGEDIR` к пути назначения, по умолчанию это [.filename]#/boot/modules#. +==== + +[[staging-symlink]] +=== Обработка символических ссылок + +При создании символической ссылки настоятельно рекомендуется использовать относительные пути. Используйте `${RLN}` для создания относительных символических ссылок. Эта команда использует man:install[1] для автоматического определения относительной ссылки, которую нужно создать. -При создании символический ссылки `STAGEDIR` должен ставиться только для пути назначения. Например: +[[staging-ex1]] +.Автоматическое создание относительных символических ссылок +[example] +==== +`${RLN}` использует относительную символическую ссылку из man:install[1], что освобождает сборщика порта от вычисления относительного пути. [.programlisting] .... -${LN} -sf libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so +${RLN} ${STAGEDIR}${PREFIX}/lib/libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so +${RLN} ${STAGEDIR}${PREFIX}/libexec/foo/bar ${STAGEDIR}${PREFIX}/bin/bar +${RLN} ${STAGEDIR}/var/cache/foo ${STAGEDIR}${PREFIX}/share/foo .... -Первоначальный путь [.filename]#${PREFIX}/lib/libfoo.so.42# выглядит нормально, но по факту может быть неправильным. Абсолютные пути могут указывать на неподходящее место, например, когда удалённая файловая система смонтирована по NFS как непривилегированная точка монтирования. Относительные пути реже подвержены проблемам и часто намного короче. +Будет создано: + +[source, shell] +.... +% ls -lF ${STAGEDIR}${PREFIX}/lib +lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 libfoo.so@ -> libfoo.so.42 +-rwxr-xr-x 1 nobody nobody 15 Aug 3 11:24 libfoo.so.42* +% ls -lF ${STAGEDIR}${PREFIX}/bin +lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 bar@ -> ../libexec/foo/bar +% ls -lF ${STAGEDIRDIR}${PREFIX}/share +lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 foo@ -> ../../../var/cache/foo +.... + +==== + +[[bundled-libs]] +== Встроенные библиотеки + +Этот раздел объясняет, почему встроенные зависимости считаются плохими и что с этим делать. + +[[bundled-libs-why-bad]] +=== Почему встроенные библиотеки — это плохо -Порты, устанавливающие модули ядра, должны предварять путь установки (по умолчанию [.filename]#/boot/modules#) переменной `STAGEDIR`. +Некоторое программное обеспечение требует от упаковщика найти сторонние библиотеки и добавить необходимые зависимости в порт. Другое ПО включает все необходимые библиотеки в дистрибутивный файл. Второй подход кажется проще на первый взгляд, но имеет серьёзные недостатки: + +Этот список частично основан на вики https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries[Fedora] и https://wiki.gentoo.org/wiki/Why_not_bundle_dependencies[Gentoo], оба распространяются по лицензии https://creativecommons.org/licenses/by-sa/3.0/[CC-BY-SA 3.0]. + +Безопасность:: +Если уязвимости обнаружены в вышестоящей библиотеке и исправлены там, они могут остаться неисправленными в библиотеке, поставляемой с портом. Одной из причин может быть то, что автор не знает о проблеме. Это означает, что портировщик должен исправить их или обновить до не уязвимой версии и отправить исправление автору. Всё это требует времени, что приводит к тому, что программное обеспечение остаётся уязвимым дольше, чем необходимо. Это, в свою очередь, затрудняет координацию исправления без неоправданного раскрытия информации об уязвимости. + +Ошибки:: +Эта проблема аналогична проблеме с безопасностью в последнем абзаце, но в целом менее серьезная. + +Ветвление:: +Автору проще создать форк upstream-библиотеки после её включения в дистрибутив. Хотя на первый взгляд это кажется удобным, такой подход приводит к расхождению кода с исходным репозиторием, что усложняет исправление уязвимостей и других проблем в ПО. Одна из причин — затруднённое применение патчей. ++ +Еще одна проблема форкинга заключается в том, что из-за расхождения кода с основной веткой, ошибки исправляются снова и снова, вместо того чтобы быть исправленными один раз в центральном месте. Это противоречит самой идее открытого программного обеспечения. + +Конфликты символов:: +Когда библиотека установлена в системе, может возникнуть конфликт с встроенной в порт версией. Это может привести к немедленным ошибкам во время компиляции или компоновки. Также могут возникать ошибки при запуске программы, которые сложнее отследить. Последняя проблема может быть вызвана несовместимостью версий двух библиотек. + +Лицензирование:: +При объединении проектов из различных источников могут возникать проблемы с лицензиями, особенно если лицензии несовместимы. + +Растрата ресурсов:: +Библиотеки, поставляемые в комплекте, растрачивают ресурсы на нескольких уровнях. Сборка самого приложения занимает больше времени, особенно если эти библиотеки уже присутствуют в системе. Во время выполнения они могут занимать дополнительную память, когда общесистемная библиотека уже загружена одной программой, а входящая в комплект библиотека загружена другой программой. + +Пустая трата усилий:: +Когда библиотеке требуются патчи для FreeBSD, эти патчи приходится дублировать в составе библиотеки. Это приводит к потере времени разработчиков, поскольку патчи могут применяться некорректно. Кроме того, бывает сложно сразу заметить, что эти патчи вообще необходимы. + +[[bundled-libs-practices]] +=== Что делать со встроенными библиотеками + +По возможности используйте независимую версию библиотеки, добавив `LIB_DEPENDS` в порт. Если такого порта ещё не существует, рассмотрите возможность его создания. + +Используйте встроенные библиотеки только в том случае, если разработчик имеет хорошую репутацию в вопросах безопасности, а использование внешних версий приводит к излишне сложным исправлениям. + +[NOTE] +==== +В некоторых особых случаях, например, для эмуляторов, таких как Wine, порт должен включать библиотеки, потому что они предназначены для другой архитектуры или были изменены для использования в данном программном обеспечении. В таком случае эти библиотеки не должны быть доступны для связывания с другими портами. Добавьте `BUNDLE_LIBS=yes` в [.filename]#Makefile# порта. Это укажет man:pkg[8] не учитывать предоставляемые библиотеки. Всегда спрашивайте {portmgr}, прежде чем добавлять это в порт. +==== [[porting-shlibs]] == Динамические библиотеки @@ -101,7 +196,7 @@ При установке 32-разрядных библиотек на 64-разрядной системе используйте вместо этого `USE_LDCONFIG32`. -Постарайтесь сохранять номера версий динамических библиотек в формате [.filename]#libfoo.so.0#. Наш компоновщик позаботится только о старшем (первом) номере. +Если программное обеспечение использует crossref:special[using-autotools,autotools], в частности `libtool`, добавьте crossref:uses[uses-libtool,`USES=libtool`]. Если при обновлении порта увеличивается старший номер версии библиотеки, то для всех портов, компонуемых с затронутой библиотекой, следует увеличить значение `PORTREVISION` для форсирования перекомпиляции с новой версией библиотеки. @@ -117,6 +212,7 @@ В подобных ситуациях можно использовать переменные, описываемые в последующих разделах. +[[porting-restrictions-no_package]] === `NO_PACKAGE` Эта переменная указывает, что мы не можем создавать для приложения двоичный пакет. К примеру, лицензия не позволяет бинарное распространение или она может запрещать распространение пакетов, созданных из изменённых исходников. @@ -127,6 +223,7 @@ Значением переменной `NO_PACKAGE` должна быть строка, описывающая причину, по которой пакет не должен создаваться. +[[porting-restrictions-no_cdrom]] === `NO_CDROM` Эта переменная указывает на то, что, хотя мы имеем право создавать бинарные пакеты, мы не можем помещать эти пакеты или файлы `DISTFILES` порта на CD-ROM (или на похожие носители) для перепродажи. Однако бинарные пакеты и файлы `DISTFILES` порта будут оставаться доступными посредством FTP/HTTP. @@ -135,12 +232,14 @@ В качестве значения `NO_CDROM` должна указываться строка, описывающая причины, по которым порт не может распространяться на CD-ROM. К примеру, это применяется, если лицензионное соглашение приложения предполагает только его "некоммерческое" использование. +[[porting-restrictions-nofetchfiles]] === `NOFETCHFILES` Файлы, определенные в переменной `NOFETCHFILES`, не будут извлекаться ни из одного из `MASTER_SITES`. Примером такого файла является файл, поставляемый на CD-ROM. Инструменты, проверяющие доступность этих файлов на `MASTER_SITES`, должны игнорировать эти файлы и не сообщать о них. +[[porting-restrictions-restricted]] === `RESTRICTED` Задайте эту переменную, если лицензия на приложение не позволяет ни зеркалировать файлы `DISTFILES`, ни распространять бинарный пакет через FTP/HTTP или на CD-ROM. @@ -149,19 +248,23 @@ В качестве значения `RESTRICTED` должна указываться строка, описывающая причины, по которым порт нельзя распространять. Обычно это означает, что порт использует закрытое программное обеспечение, а пользователь должен вручную сгрузить файлы `DISTFILES`, возможно, после заполнения регистрационной формы или подтверждения соглашения с условиями EULA. +[[porting-restrictions-restricted_files]] === `RESTRICTED_FILES` Если заданы `RESTRICTED` или `NO_CDROM`, то значение этой переменной по умолчанию соответствует `${DISTFILES} ${PATCHFILES}`, в противном случае она пуста. Если ограничены в распространении лишь некоторые из дистрибутивных файлов, то в этой переменной задаётся их список. +[[porting-restrictions-legal_text]] === `LEGAL_TEXT` Если порт имеет правовое обременение, которое не покрывается перечисленными выше переменными, то переменной `LEGAL_TEXT` следует присвоить строку с описанием данного обременения. Например, если было получено особое разрешение для FreeBSD на распространение двоичного файла, то эта переменная должна содержать соответствующее указание. +[[porting-restrictions-legal]] === [.filename]#/usr/ports/LEGAL# и `LEGAL` Порт, содержащий любую из перечисленных выше переменных, также должен быть добавлен в [.filename]#/usr/ports/LEGAL#. Первый столбец содержит шаблон совпадения с дистрибутивными файлами, имеющими ограничения на распространение. Второй столбец содержит корень порта. Третий столбец содержит вывод `make -VLEGAL`. -=== Примеры использования +[[porting-restrictions-examples]] +=== Примеры Предпочтительным способом реализации утверждения "архивы исходных текстов для этого порта должны загружаться самостоятельно" является следующее: @@ -186,23 +289,19 @@ Это достигается путём передачи флага `-jX` команде man:make[1]. Такое построение портов является поведением по умолчанию. К сожалению, не все порты поддерживают параллельную сборку достаточно хорошо, и поэтому может потребоваться выключить этот механизм явным образом путём добавления переменной `MAKE_JOBS_UNSAFE=yes`. Эта переменная используется в случае, когда известно, что порт ломается с `-jX`. +[IMPORTANT] +==== +При установке `MAKE_JOBS_UNSAFE` очень важно объяснить либо комментарием в [.filename]#Makefile#, либо хотя бы в сообщении коммита, _почему_ порт не собирается при включении. В противном случае практически невозможно ни исправить проблему, ни проверить, была ли она исправлена при коммите обновления в дальнейшем. +==== + [[using-make]] === `make`, `gmake` и `imake` -Если ваш порт использует GNU make, то установите `USES= gmake`. - -.Переменные для портов, использующих gmake -[cols="1,1", frame="none", options="header"] -|=== -| Переменная -| Значение +Существует несколько различных реализаций `make`. Переносимому программному обеспечению часто требуется конкретная реализация, например GNU `make`, известная в FreeBSD как `gmake`. -|`USES= gmake` -|Для сборки порта требуется `gmake`. +Если порт использует GNU make, добавьте `gmake` в `USES`. -|`GMAKE` -|Полный путь к команде `gmake`, если отсутствует в `PATH`. -|=== +`MAKE_CMD` может использоваться для ссылки на конкретную команду, настроенную параметром `USES` в [.filename]#Makefile# порта. Используйте `MAKE_CMD` только внутри [.filename]##Makefile## приложения в `WRKSRC` для вызова реализации `make`, ожидаемой портируемым программным обеспечением. Если ваш порт является приложением X, которое создает файлы [.filename]#Makefile# из [.filename]#Imakefile#, используя imake, то установите `USES= imake`. Это заставит стадию конфигурирования автоматически выполнить `xmkmf -a`. Если флаг `-a` представляет для вашего порта проблему, то установите `XMKMF=xmkmf`. Если порт использует imake, но не понимает цель `install.man`, то следует установить `NO_INSTALL_MANPAGES=yes`. @@ -213,6 +312,7 @@ Если ваш порт использует сценарий `configure` для получения файлов [.filename]#Makefile# из файлов [.filename]#Makefile.in#, то установите `GNU_CONFIGURE=yes`. Если вы хотите дать дополнительные параметры сценарию `configure` (аргументом по умолчанию является `--prefix=${PREFIX} --infodir=${PREFIX}/${INFO_PATH} --mandir=${MANPREFIX}/man --build=${CONFIGURE_TARGET}`), установите эти параметры в `CONFIGURE_ARGS`. Дополнительные переменные окружения можно передать, используя переменную `CONFIGURE_ENV`. +[[using-configure-variables]] .Переменные для портов, использующих `configure` [cols="1,1", frame="none", options="header"] |=== @@ -238,8 +338,9 @@ [[using-cmake]] === Использование `cmake` -Если порт использует CMake, определите `USES= cmake` или `USES= cmake:outsource` для построения во внешнем каталоге (см. ниже). +Если порт использует CMake, определите `USES= cmake`. +[[using-cmake-variables]] .Переменные для портов, использующих `cmake` [cols="1,1", frame="none", options="header"] |=== @@ -247,27 +348,33 @@ | Значение |`CMAKE_ARGS` -|Специфичные для порта флаги CMake, передаваемые `cmake`. +|Специфичные для порта флаги CMake, передаваемые в бинарный файл `cmake`. -|`CMAKE_BUILD_TYPE` -|Тип построения (предопределённые профили построения CMake). По умолчанию `Release`, `Debug` при использовании `WITH_DEBUG`. +|`CMAKE_ON` +|Для каждой записи в `CMAKE_ON` добавляется булево значение "включено" в +`CMAKE_ARGS`. См. crossref:special[using-cmake-example2,`CMAKE_ON` и `CMAKE_OFF`]. + +|`CMAKE_OFF` +|Для каждой записи в `CMAKE_OFF` в `CMAKE_ARGS` добавляется отключенное булево +значение. См. crossref:special[using-cmake-example2,`CMAKE_ON` и `CMAKE_OFF`]. -|`CMAKE_ENV` -|Переменные окружения для передачи `cmake`. По умолчанию `${CONFIGURE_ENV}`. +|`CMAKE_BUILD_TYPE` +|Тип сборки (предопределённые профили сборки CMake). По умолчанию `Release`, или `Debug`, если установлен `WITH_DEBUG`. |`CMAKE_SOURCE_PATH` -|Путь к каталогу с исходным кодом. По умолчанию `${WRKSRC}`. +|Путь к исходному каталогу. По умолчанию `${WRKSRC}`. + +|`CONFIGURE_ENV` +|Дополнительные переменные окружения, которые должны быть установлены для бинарного файла `cmake`. |=== -.Переменные построения `cmake`, устанавливаемые пользователем +[[using-cmake-user-variables]] +.Переменные, которые пользователи могут определить для сборок `cmake` [cols="1,1", frame="none", options="header"] |=== | Переменная | Значение -|`CMAKE_VERBOSE` -|Разрешает подробный вывод сообщений при построении. Значение по умолчанию не задано, если не заданы `BATCH` или `PACKAGE_BUILDING`. - |`CMAKE_NOCOLOR` |Запрещает цветной вывод сообщений при построении. Значение по умолчанию не задано, если не заданы `BATCH` или `PACKAGE_BUILDING`. |=== @@ -284,692 +391,2551 @@ [.programlisting] .... -USES= cmake:outsource +USES= cmake CMAKE_SOURCE_PATH= ${WRKSRC}/subproject .... ==== -[[using-scons]] -=== Использование `scons` +[[using-cmake-example2]] +.`CMAKE_ON` и `CMAKE_OFF` +[example] +==== +При добавлении логических значений в `CMAKE_ARGS` проще использовать переменные `CMAKE_ON` и `CMAKE_OFF` вместо этого. Это: -Если ваш порт использует SCons, определите `USE_SCONS=yes`. +[.programlisting] +.... +CMAKE_ON= VAR1 VAR2 +CMAKE_OFF= VAR3 +.... -.Переменные для портов, использующих `scons` -[cols="1,1", frame="none", options="header"] -|=== -| Переменная -| Значение +Эквивалентно: + +[.programlisting] +.... +CMAKE_ARGS= -DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE +.... -|`SCONS_ARGS` -|Специфичные для порта флаги SCons, передаваемые окружению SCons. +[IMPORTANT] +====== +Это относится только к значениям по умолчанию в `CMAKE_ARGS`. Вспомогательные функции, описанные в crossref:makefiles[options-cmake_bool,`OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`], используют ту же семантику, но для опциональных значений. +====== -|`SCONS_BUILDENV` -|Переменные для установки в системном окружении. +==== -|`SCONS_ENV` -|Переменные для установки в окружении SCons. +[[using-scons]] +=== Использование `scons` -|`SCONS_TARGET` -|Последний параметр для передачи SCons, похожий на `MAKE_TARGET`. -|=== +Если порт использует SCons, определите `USES=scons`. -Для того, чтобы сторонний [.filename]#SConstruct# соответствовал всему, что передается SCons в переменной `SCONS_ENV` (самое главное, это `CC/CXX/CFLAGS/CXXFLAGS`), примените патч к [.filename]#SConstruct#, так чтобы переменная построения `Environment` выглядела следующим образом: +Чтобы сторонний [.filename]#SConstruct# учитывал все, что передается в SCons через окружение (то есть, что наиболее важно, `CC/CXX/CFLAGS/CXXFLAGS`), исправьте [.filename]#SConstruct#, чтобы сборка `Environment` создавалась следующим образом: [.programlisting] .... env = Environment(**ARGUMENTS) .... -В дальнейшем ее можно изменить при помощи `env.Append` и `env.Replace`. +Он может быть изменён с помощью `env.Append` и `env.Replace`. -[[using-autotools]] -== Использование GNU Autotools +[[using-cargo]] +=== Сборка приложений на Rust с помощью `cargo` -[[using-autotools-introduction]] -=== Введение +Для портов, использующих Cargo, определите `USES=cargo`. -Различные инструменты GNU autotools предоставляют механизм абстракции для построения частей программного обеспечения на широком наборе операционных систем и аппаратных архитектур. Внутри Коллекции Портов отдельный порт может использовать эти инструменты при помощи простых конструкций: +[[using-cargo-user-variables]] +.Переменные, которые пользователи могут определить для сборок `cargo` +[cols="1,1,1", frame="none", options="header"] +|=== +| Переменная +| По умолчанию +| Описание -[.programlisting] -.... -USE_AUTOTOOLS= tool:version[:operation] ... -.... +|`CARGO_CRATES` +| +|Список ящиков (crates), от которых зависит порт. Каждая запись должна быть в формате `имя_ящика-семвер`, например, `libc-0.2.40`. Поддерживающие порт могут сгенерировать этот список из файла [.filename]#Cargo.lock# с помощью команды `make cargo-crates`. Вручную обновлять версии ящиков возможно, но следует учитывать транзитивные зависимости. +Если список, сгенерированный `make cargo-crates`, слишком велик, его можно разместить в файле `Makefile.crates` в корневом каталоге порта. +Если такой файл присутствует, фреймворк портов автоматически загружает его. +Это помогает сохранять основной Makefile порта в удобном для работы размере. -К моменту написания _tool_ может быть одним из `libtool`, `libltdl`, `autoconf`, `autoheader`, `automake` или `aclocal`. +|`CARGO_FEATURES` +| +|Список функций приложения для сборки (список через пробел). Чтобы отключить все функции по умолчанию, добавьте специальный токен `--no-default-features` в `CARGO_FEATURES`. Вручную передавать его в `CARGO_BUILD_ARGS`, `CARGO_INSTALL_ARGS` и `CARGO_TEST_ARGS` не требуется. -_version_ указывает конкретную версию используемого инструмента (смотрите `devel/{automake,autoconf,libtool}[0-9]+` для получения действительных версий). +|`CARGO_CARGOTOML` +|`${WRKSRC}/Cargo.toml` +|Путь к файлу [.filename]#Cargo.toml#, который следует использовать. -_operation_ является необязательным расширением и указывает на способ использования инструмента. +|`CARGO_CARGOLOCK` +|`${WRKSRC}/Cargo.lock` +|Путь к файлу [.filename]#Cargo.lock#, используемому для `make cargo-crates`. Можно указать более одного файла блокировки, если это необходимо. -Одновременно может быть указано несколько инструментов, добавляя их все на одной строке или используя конструкцию Makefile `+=`. +|`CARGO_ENV` +| +|Список переменных окружения, передаваемых в Cargo, аналогично `MAKE_ENV`. -В заключение, существует специальный инструмент по называнию `autotools`, который является удобной функцией при установке всех доступных версий autotools для возможности проведения кросс-разработки. Это также может быть достигнуто путем установки порта `devel/autotools`. +|`RUSTFLAGS` +| +|Флаги для передачи компилятору Rust. -[[using-libtool]] -=== `libtool` +|`CARGO_CONFIGURE` +|`yes` +|Используйте стандартный `do-configure`. -Динамические библиотеки, использующие инфраструктуру построения GNU, обычно используют libtool для настройки компиляции и установки динамических библиотек в соответствии с особенностями данной операционной системы. В типичной практике используется копирование встроенного в приложение `libtool`. Если вам нужно использовать внешнюю команду `libtool`, то вы можете использовать версию, поставляемую Коллекцией Портов: +|`CARGO_UPDATE_ARGS` +| +|Дополнительные аргументы для передачи Cargo во время фазы настройки. Допустимые аргументы можно посмотреть с помощью `cargo update --help`. -[.programlisting] -.... -USE_AUTOTOOLS= libtool:version[:env] -.... +|`CARGO_BUILDDEP` +|`yes` +|Добавить зависимость сборки на package:lang/rust[]. -При отсутствии дополнительных операций, `libtool:version` сообщает инфраструктуре построения о применении патча к сценарию configure с установленной в системе копией `libtool`. Означает использование `GNU_CONFIGURE`. Более того, некоторые переменные make и оболочки shell будут назначены для дальнейшего использования этим портом. Подробности смотрите в [.filename]#bsd.autotools.mk#. +|`CARGO_CARGO_BIN` +|`${LOCALBASE}/bin/cargo` +|Расположение бинарного файла `cargo`. -При использовании операции `:env` будет настроено только окружение. +|`CARGO_BUILD` +|`yes` +|Используйте значение по умолчанию `do-build`. -Наконец, `LIBTOOLFLAGS` и `LIBTOOLFILES` можно установить по желанию, чтобы переопределить наиболее вероятные аргументы для `libtool` и файлы, предназначенные для изменения. Большинству портов это скорее всего не понадобится. Для дальнейших подробностей смотрите [.filename]#bsd.autotools.mk#. +|`CARGO_BUILD_ARGS` +| +|Дополнительные аргументы для передачи Cargo во время фазы сборки. Допустимые аргументы можно посмотреть с помощью `cargo build --help`. -[[using-libltdl]] -=== `libltdl` +|`CARGO_INSTALL` +|`yes` +|Используйте настройку `do-install` по умолчанию. -Некоторые порты задействуют пакет с библиотекой `libltdl`, которая является частью комплекта `libtool`. Использование этой библиотеки не вызывает автоматическое использование самой `libtool`, и, таким образом, обеспечивается отдельная конструкция. +|`CARGO_INSTALL_ARGS` +| +|Дополнительные аргументы для передачи Cargo во время фазы установки. Допустимые аргументы можно посмотреть с помощью `cargo install --help`. -[.programlisting] -.... -USE_AUTOTOOLS= libltdl:version -.... +|`CARGO_INSTALL_PATH` +|`.` +|Путь к пакету для установки. Этот аргумент передается в `cargo install` через параметр `--path`. Если указано несколько путей, `cargo install` запускается несколько раз. -Всё, что в настоящее время она делает, это добавление `LIB_DEPENDS` для подходящего порта `libltdl`, потому она предоставляется как удобная функция для помощи в устранении всяких зависимостей от портов autotools вне инфраструктуры `USE_AUTOTOOLS`. Для этого инструмента не существует необязательных операций. +|`CARGO_TEST` +|`yes` +|Используйте значение по умолчанию `do-test`. -[[using-autoconf]] -=== `autoconf` и `autoheader` +|`CARGO_TEST_ARGS` +| +|Дополнительные аргументы для передачи Cargo во время тестовой фазы. Допустимые аргументы можно посмотреть с помощью `cargo test --help`. -Вместо сценария configure некоторые порты содержат шаблон autoconf в файле [.filename]#configure.ac#. Вы можете использовать следующие присвоения, чтобы позволить `autoconf` создать сценарий configure, а `autoheader` создать заголовки шаблона для использования в сценарии configure. +|`CARGO_TARGET_DIR` +|`${WRKDIR}/target` +|Расположение выходного каталога cargo. -[.programlisting] -.... -USE_AUTOTOOLS= autoconf:version[:env] -.... +|`CARGO_DIST_SUBDIR` +|[.filename]#rust/crates# +|Каталог относительно `DISTDIR`, в котором будут храниться файлы дистрибутивов пакетов (crates). + +|`CARGO_VENDOR_DIR` +|`${WRKSRC}/cargo-crates` +|Расположение каталога сторонних поставщиков ПО, в который будут извлечены все крейты. Старайтесь держать его в пределах `PATCH_WRKSRC`, чтобы упростить применение патчей. -и +|`CARGO_USE_GITHUB` +|`no` +|Включить загрузку крейтов, привязанных к определённым коммитам Git на GitHub, с помощью `GH_TUPLE`. Это попытается исправить все файлы [.filename]#Cargo.toml# в `WRKDIR`, чтобы они ссылались на автономные источники вместо загрузки из репозитория Git во время сборки. + +|`CARGO_USE_GITLAB` +|`no` +|То же, что и `CARGO_USE_GITHUB`, но для экземпляров GitLab и `GL_TUPLE`. +|=== + +[[cargo-ex1]] +.Создание порта для простого приложения на Rust +[example] +==== +Создание порта на основе Cargo — это процесс из трёх этапов. Сначала необходимо предоставить шаблон портов, который загружает дистрибутивный файл приложения: [.programlisting] .... -USE_AUTOTOOLS= autoheader:version -.... +PORTNAME= tokei +DISTVERSIONPREFIX= v +DISTVERSION= 7.0.2 +CATEGORIES= devel -которые также подразумевают использование `autoconf:version`. +MAINTAINER= tobik@FreeBSD.org +COMMENT= Display statistics about your code +WWW= https://github.com/XAMPPRocky/tokei/ -Аналогично команде `libtool` включение необязательной операции `:env` всего лишь настраивает окружение для дальнейшего использования. Без этого выполняется наложение патчей и переконфигурирование порта. +USES= cargo +USE_GITHUB= yes +GH_ACCOUNT= Aaronepower -Дополнительные необязательные переменные `AUTOCONF_ARGS` и `AUTOHEADER_ARGS` можно переопределить в [.filename]#Makefile# порта, если указано явным образом. Как и с эквивалентами `libtool`, большинству портов это вряд ли понадобится. - -[[using-automake]] -=== `automake` и `aclocal` +.include +.... -Некоторые пакеты содержат только файлы [.filename]#Makefile.am#. Они должны быть преобразованы в файлы [.filename]#Makefile.in# с использованием automake и дальнейшей обработкой `configure` для получения настоящего [.filename]#Makefile#. +Сгенерировать первоначальный [.filename]#distinfo#: -Аналогично, иногда пакеты не поставляются с вложенными файлами [.filename]#aclocal.m4#, снова требуемых для построения программного обеспечения. Их можно получить командой `aclocal`, которая просматривает [.filename]#configure.ac# или [.filename]#configure.in#. +[source, shell] +.... +% make makesum +=> Aaronepower-tokei-v7.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz +fetch: https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz: size of remote file is not known +Aaronepower-tokei-v7.0.2_GH0.tar.gz 45 kB 239 kBps 00m00s +.... -`aclocal` имеет похожую связь с `automake`, как у `autoheader` с `autoconf`, что описано в предыдущей главе. `aclocal` подразумевает использование `automake`, таким образом, мы имеем: +Теперь файл дистрибутива готов к использованию, и мы можем продолжить, извлекая зависимости пакета из встроенного файла [.filename]#Cargo.lock#: -[.programlisting] +[source, shell] .... -USE_AUTOTOOLS= automake:version[:env] +% make cargo-crates +CARGO_CRATES= aho-corasick-0.6.4 \ + ansi_term-0.11.0 \ + arrayvec-0.4.7 \ + atty-0.2.9 \ + bitflags-1.0.1 \ + byteorder-1.2.2 \ + [...] .... -и +Вывод этой команды необходимо вставить напрямую в Makefile: [.programlisting] .... -USE_AUTOTOOLS= aclocal:version -.... +PORTNAME= tokei +DISTVERSIONPREFIX= v +DISTVERSION= 7.0.2 +CATEGORIES= devel + +MAINTAINER= tobik@FreeBSD.org +COMMENT= Display statistics about your code +WWW= https://github.com/XAMPPRocky/tokei/ + +USES= cargo +USE_GITHUB= yes +GH_ACCOUNT= Aaronepower + +CARGO_CRATES= aho-corasick-0.6.4 \ + ansi_term-0.11.0 \ + arrayvec-0.4.7 \ + atty-0.2.9 \ + bitflags-1.0.1 \ + byteorder-1.2.2 \ + [...] -которые также подразумевают использование `automake:version`. +.include +.... -Также как и для `libtool` и `autoconf`, подключение необязательной операции `:env` всего лишь устанавливает окружение для дальнейшего пользования. Без этого выполняется реконфигурирование этого порта. +[.filename]#distinfo# необходимо перегенерировать, чтобы включить все дистрибутивные файлы крейтов: -Как и в случае с `autoconf` и `autoheader`, обе команды `automake` и `aclocal` соответственно имеют необязательные переменные `AUTOMAKE_ARGS` и `ACLOCAL_ARGS`, которые при необходимости можно переопределить в [.filename]#Makefile# порта. +[source, shell] +.... +% make makesum +=> rust/crates/aho-corasick-0.6.4.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://crates.io/api/v1/crates/aho-corasick/0.6.4/download?dummy=/rust/crates/aho-corasick-0.6.4.tar.gz +rust/crates/aho-corasick-0.6.4.tar.gz 100% of 24 kB 6139 kBps 00m00s +=> rust/crates/ansi_term-0.11.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://crates.io/api/v1/crates/ansi_term/0.11.0/download?dummy=/rust/crates/ansi_term-0.11.0.tar.gz +rust/crates/ansi_term-0.11.0.tar.gz 100% of 16 kB 21 MBps 00m00s +=> rust/crates/arrayvec-0.4.7.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://crates.io/api/v1/crates/arrayvec/0.4.7/download?dummy=/rust/crates/arrayvec-0.4.7.tar.gz +rust/crates/arrayvec-0.4.7.tar.gz 100% of 22 kB 3237 kBps 00m00s +=> rust/crates/atty-0.2.9.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://crates.io/api/v1/crates/atty/0.2.9/download?dummy=/rust/crates/atty-0.2.9.tar.gz +rust/crates/atty-0.2.9.tar.gz 100% of 5898 B 81 MBps 00m00s +=> rust/crates/bitflags-1.0.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +[...] +.... -[[using-gettext]] -== Использование GNU `gettext` +Порт теперь готов к тестовой сборке и дальнейшим настройкам, таким как создание plist, написание описания, добавление информации о лицензии, опций и т.д., как обычно. -=== Простой вариант использования +Если вы не тестируете свой порт в чистой среде, например, с использованием poudriere, не забудьте выполнить `make clean` перед любым тестированием. +==== -Если для вашего порта требуется `gettext`, добавьте `USES= gettext`, и ваш порт унаследует зависимость от package:devel/gettext[]. crossref:makefiles[uses-makefiles, `USES`] содержит перечень других значений для использования `gettext`. +[[cargo-ex2]] +.Включение дополнительных возможностей приложений +[example] +==== +Некоторые приложения определяют дополнительные возможности в своем [.filename]#Cargo.toml#. Их можно включить при компиляции, установив `CARGO_FEATURES` в порте. -Довольно распространенным случаем является использование в порте `gettext` и `configure`. Как правило, GNU `configure` способен находить `gettext` автоматически. Если он все же не сможет это сделать, то подсказки для размещения `gettext` можно передать через переменные окружения `CPPFLAGS` и `LDFLAGS`: +Здесь мы включаем функции `json` и `yaml` в Tokei: [.programlisting] .... -USES= gettext -CPPFLAGS+= -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib - -GNU_CONFIGURE= yes +CARGO_FEATURES= json yaml .... -Конечно же, этот код можно записать в более компактном виде, если передавать флаги в `configure` не требуется: +==== + +[[cargo-ex4]] +.Кодирование характеристик приложений как параметров порта +[example] +==== +Пример раздела `[features]` в [.filename]#Cargo.toml# может выглядеть так: [.programlisting] .... -USES= gettext -GNU_CONFIGURE= yes +[features] +pulseaudio_backend = ["librespot-playback/pulseaudio-backend"] +portaudio_backend = ["librespot-playback/portaudio-backend"] +default = ["pulseaudio_backend"] .... -=== Оптимальное использование - -Некоторые программные продукты позволяют отключать NLS, к примеру, передавая параметр `--disable-nls` сценарию `configure`. В этом случае ваш порт должен использовать `gettext`, в зависимости от значения `NLS`. Для портов небольшой или средней сложности вы можете полагаться на следующую идиому: +`pulseaudio_backend` — это функция по умолчанию. Она всегда включена, если мы явно не отключим функции по умолчанию, добавив `--no-default-features` в `CARGO_FEATURES`. Здесь мы превращаем функции `portaudio_backend` и `pulseaudio_backend` в опции порта: [.programlisting] .... -GNU_CONFIGURE= yes - -.include +CARGO_FEATURES= --no-default-features -.if ${PORT_OPTIONS:MNLS} -USES+= gettext -PLIST_SUB+= NLS="" -.else -CONFIGURE_ARGS+= --disable-nls -PLIST_SUB+= NLS="@comment " -.endif +OPTIONS_DEFINE= PORTAUDIO PULSEAUDIO -.include +PORTAUDIO_VARS= CARGO_FEATURES+=portaudio_backend +PULSEAUDIO_VARS= CARGO_FEATURES+=pulseaudio_backend .... -Следующий пункт в вашем списке дел разобраться, чтобы файлы каталога сообщения включались в список упаковки по условию. Часть, входящая в [.filename]#Makefile#, уже обеспечена этой идиомой. Остальное объясняется в главе <>. Вкратце, каждое вхождение `%%NLS%%` в [.filename]#pkg-plist# будет заменено на "`@comment`", если NLS выключен, или пустой строкой, если включен. В результате строки, предваряемые `%%NLS%%`, станут комментариями в итоговом листе упаковки, если NLS выключен; иначе, префикс будет просто удален. Всё, что вам нужно, это вставить `%%NLS%%` перед каждым путем к файлу каталога сообщений в [.filename]#pkg-plist#. Например: +==== -[.programlisting] +[[cargo-ex3]] +.Перечисление лицензий крейтов +[example] +==== +Крейты имеют собственные лицензии. Важно знать, какие они, при добавлении блока `LICENSE` в порт (см. crossref:makefiles[licenses,Лицензии]). Вспомогательная цель `cargo-crates-licenses` попытается перечислить все лицензии всех ящиков, определённых в `CARGO_CRATES`. + +[source, shell] .... -%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo -%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo +% make cargo-crates-licenses +aho-corasick-0.6.4 Unlicense/MIT +ansi_term-0.11.0 MIT +arrayvec-0.4.7 MIT/Apache-2.0 +atty-0.2.9 MIT +bitflags-1.0.1 MIT/Apache-2.0 +byteorder-1.2.2 Unlicense/MIT +[...] .... -В особо сложных случаях вам понадобиться использовать более продвинутые техники, чем данный рецепт, такие как <>. - -=== Управление каталогами сообщений - -Существует момент, который следует учитывать при установке файлов каталогов сообщений. Целевые каталоги для размещения, расположенные под [.filename]#LOCALBASE/shared/locale#, редко когда должны создаваться и удаляться портом. Для наиболее популярных языков имеются собственные каталоги, перечисленные в [.filename]#PORTSDIR/Templates/BSD.local.dist#. Каталоги для множества других языков управляются с помощью порта package:devel/gettext[]. Обратите внимание на его [.filename]#pkg-plist# и посмотрите, куда данный порт собирается установить файлы каталогов сообщений для единственного в своем роде языка. - -[[using-perl]] -== Использование Perl +[NOTE] +====== +Названия лицензий, которые выводит `make cargo-crates-licenses`, являются SPDX 2.1-совместимыми лицензионными выражениями, которые не совпадают с названиями лицензий, определёнными в фреймворке портов. Их необходимо перевести в названия из crossref:makefiles[licenses-license-list,Списка предопределённых лицензий]. +====== -Если `MASTER_SITES` установлена в значение `MASTER_SITE_PERL_CPAN`, то предпочтительным значением `MASTER_SITE_SUBDIR` является имя иерархии верхнего уровня. Например, рекомендуемым значением для `p5-Module-Name` является `Module`. Иерархию верхнего уровня можно посмотреть на сайте http://cpan.org/modules/by-module/[cpan.org]. Это поддерживает порт в рабочем состоянии при изменении модуля автором. +==== -Исключением этого правила является отсутствие соответствующего каталога или файла с дистрибутивом в этом каталоге. В качестве `MASTER_SITE_SUBDIR` в этом случае разрешается использовать id автора. +[[using-meson]] +=== Использование `meson` -В качестве значения все из настраиваемых knobs ниже принимают `YES` или строку с версией вида `5.8.0+`. `YES` означает, что данный порт можно использовать с любой из поддерживаемых версий Perl. Если порт работает только с некоторыми версиями Perl, то это можно обозначить при помощи строки с версией, указывающей на минимальную версию (пример: `5.7.3+`), максимальную версию (пример: `5.8.0-`) или точную версию (пример: `5.8.3`). +Для портов, использующих Meson, определите `USES=meson`. -.Переменные для портов, использующих Perl +[[using-meson-variables]] +.Переменные для портов, использующих `meson` [cols="1,1", frame="none", options="header"] |=== | Переменная -| Значение - -|`USE_PERL5` -|Perl 5 используется для построения и работы. - -|`USE_PERL5_BUILD` -|Perl 5 используется для построения. - -|`USE_PERL5_RUN` -|Perl 5 используется во время работы. - -|`PERL` -|Полный путь к интерпретатору Perl 5, либо в системе, либо установленному из портов, но без номера версии. Используйте это, если вам нужно заменить строки "`#!`" в скриптах. +| Описание -|`PERL_CONFIGURE` -|Конфигурация при помощи MakeMaker языка Perl. Влечёт `USE_PERL5`. +|`MESON_ARGS` +|Порт-специфичные флаги Meson, передаваемые в бинарный файл `meson`. -|`PERL_MODBUILD` -|Конфигурация, построение и установка с использованием Module::Build. Влечёт `PERL_CONFIGURE`. +|`MESON_BUILD_DIR` +|Путь к директории сборки относительно `WRKSRC`. По умолчанию — `_build`. |=== -[NOTE] -==== -Порты для модулей Perl, которые не имеют официального вебсайта, должны указывать `cpan.org` в строке WWW в файле [.filename]#pkg-descr#. Предпочтительная форма URL `http://search.cpan.org/dist/Module-Name/` (включая завершающий слэш). +[[using-meson-example]] +.Пример `USES=meson` +[example] ==== +Этот фрагмент демонстрирует использование Meson для порта. + +[.programlisting] +.... +USES= meson +MESON_ARGS= -Dfoo=enabled +.... -[NOTE] -==== -Не используйте `${SITE_PERL}` в объявлении зависимостей. Использование этой конструкции подразумевает наличие подключенного [.filename]#bsd.perl.mk#, что не всегда так. Порты, зависимые от этого порта, получат неправильные зависимости, если файлы этого порта будут перемещены при последующем обновлении. Правильный способ объявления зависимостей для модулей Perl показан в примере ниже. ==== -[[use-perl-dependency-example]] -.Пример зависимости Perl +[[using-go]] +=== Создание приложений на Go + +Для портов, использующих Go, определите `USES=go`. Обратитесь к crossref:uses[uses-go,`go`] для получения списка переменных, которые можно задать для управления процессом сборки. + +[[go-ex1]] +.Создание порта для приложения на основе модулей Go [example] ==== +В большинстве случаев достаточно установить переменную `GO_MODULE` в значение, указанное директивой `module` в `go.mod`: + [.programlisting] .... -p5-IO-Tee>=0.64:${PORTSDIR}/devel/p5-IO-Tee +PORTNAME= hey +DISTVERSIONPREFIX= v +DISTVERSION= 0.1.4 +CATEGORIES= benchmarks + +MAINTAINER= dmgk@FreeBSD.org +COMMENT= Tiny program that sends some load to a web application +WWW= https://github.com/rakyll/hey/ + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules +GO_MODULE= github.com/rakyll/hey + +PLIST_FILES= bin/hey + +.include .... -==== +Если «простой» способ не подходит или требуется больший контроль над зависимостями, полный процесс переноса описан ниже. -Для портов Perl, которые устанавливают страницы справочника, в [.filename]#pkg-plist# можно использовать макрос `PERL5_MANx` (где _x_ принимает значение от `1` до `9`). Например, +Создание порта на основе Go — это процесс из пяти этапов. Сначала необходимо предоставить шаблон портов, который загружает дистрибутивный файл приложения: [.programlisting] .... -lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz +PORTNAME= ghq +DISTVERSIONPREFIX= v +DISTVERSION= 0.12.5 +CATEGORIES= devel + +MAINTAINER= tobik@FreeBSD.org +COMMENT= Remote repository management made easy +WWW= https://github.com/x-motemen/ghq/ + +USES= go:modules +USE_GITHUB= yes +GH_ACCOUNT= motemen + +.include .... -можно заменить на +Сгенерировать первоначальный [.filename]#distinfo#: -[.programlisting] +[source, shell] .... -%%PERL5_MAN3%%/AnyEvent::I3.3.gz +% make makesum +===> License MIT accepted by the user +=> motemen-ghq-v0.12.5_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz +fetch: https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz: size of remote file is not known +motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s .... -[[using-x11]] -== Использование X11 +Теперь файл дистрибутива готов к использованию, и мы можем извлечь необходимые зависимости модуля Go. Этот шаг требует наличия установленного пакета package:ports-mgmt/modules2tuple[]: -[[x11-variables]] -=== Компоненты X.Org +[source, shell] +.... +% make gomod-vendor +[...] +GH_TUPLE= \ + Songmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \ + daviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \ + go-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \ + golang:net:3ec191127204:golang_net/vendor/golang.org/x/net \ + golang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \ + golang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \ + motemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \ + urfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli +.... + +Вывод этой команды необходимо вставить напрямую в Makefile: + +[.programlisting] +.... +PORTNAME= ghq +DISTVERSIONPREFIX= v +DISTVERSION= 0.12.5 +CATEGORIES= devel + +MAINTAINER= tobik@FreeBSD.org +COMMENT= Remote repository management made easy +WWW= https://github.com/x-motemen/ghq/ + +USES= go:modules +USE_GITHUB= yes +GH_ACCOUNT= motemen +GH_TUPLE= Songmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \ + daviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \ + go-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \ + golang:net:3ec191127204:golang_net/vendor/golang.org/x/net \ + golang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \ + golang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \ + motemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \ + urfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli -X.Org является реализацией X11, доступной в Коллекции Портов. Если ваше приложение зависит от компонентов X, установите в переменную `USE_XORG` в перечень требуемых компонентов. К настоящему времени доступными компонентами являются: +.include +.... -`bigreqsproto compositeproto damageproto dmx dmxproto dri2proto evieproto fixesproto fontcacheproto fontenc fontsproto fontutil glproto ice inputproto kbproto libfs oldx pciaccess pixman printproto randrproto recordproto renderproto resourceproto scrnsaverproto sm trapproto videoproto x11 xau xaw xaw6 xaw7 xbitmaps xcmiscproto xcomposite xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil xprintutil xproto xproxymngproto xrandr xrender xres xscrnsaver xt xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm`. +[.filename]#distinfo# необходимо обновить, чтобы включить все дистрибутивные файлы: -Всегда актуальный перечень можно найти в [.filename]#/usr/ports/Mk/bsd.xorg.mk#. +[source, shell] +.... +% make makesum +=> Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz +fetch: https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz: size of remote file is not known +Songmu-gitconfig-v0.0.2_GH0.tar.gz 5662 B 936 kBps 00s +=> daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz +fetch: https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz: size of remote file is not known +daviddengcn-go-colortext-186a3d44e920_GH0.tar. 4534 B 1098 kBps 00s +[...] +.... -Проект Mesa является попыткой обеспечить свободную реализацию OpenGL. Вы можете указать зависимость от различных компонентов этого проекта при помощи переменной `USE_GL`. Действительные опции: `glut, glu, glw, glew, gl` и `linux`. Для обратной совместимости значение `yes` соответствует `glu`. +Порт теперь готов к тестовой сборке и дальнейшим настройкам, таким как создание plist, написание описания, добавление информации о лицензии, опций и т.д., как обычно. -[[use-xorg-example]] -.Пример для USE_XORG +Если вы не тестируете свой порт в чистой среде, например, с использованием poudriere, не забудьте выполнить `make clean` перед любым тестированием. +==== + +[[go-ex2]] +.Установка имени выходного бинарного файла или пути установки [example] ==== +Некоторые порты требуют установки результирующего бинарного файла под другим именем или в путь, отличный от стандартного `${PREFIX}/bin`. Это можно сделать с помощью синтаксиса кортежа `GO_TARGET`, например: + [.programlisting] .... -USE_XORG= xrender xft xkbfile xt xaw -USE_GL= glu +GO_TARGET= ./cmd/ipfs:ipfs-go +.... + +установит бинарный файл `ipfs` как `${PREFIX}/bin/ipfs-go` и + +[.programlisting] +.... +GO_TARGET= ./dnscrypt-proxy:${PREFIX}/sbin/dnscrypt-proxy .... +установит `dnscrypt-proxy` в `${PREFIX}/sbin`. ==== -.Переменные для портов, использующих X -[cols="1,1", frame="none"] -|=== -|`USES= imake` -|Используется `imake`. +[[using-cabal]] +=== Построение приложений на Haskell с помощью `cabal` -|`XMKMF` -|Задаёт маршрут до `xmkmf`, если он отсутствует в `PATH`. По умолчанию это `xmkmf -a`. -|=== +Для портов, использующих Cabal, система сборки определяет `USES=cabal`. Обратитесь к crossref:uses[uses-cabal,`cabal`] для получения списка переменных, которые можно задать для управления процессом сборки. -[[using-x11-vars]] -.Использование переменных X11 в порте +[[cabal-ex1]] +.Создание порта для приложения Haskell с Hackage [example] ==== +При подготовке порта Haskell Cabal требуются программы package:devel/hs-cabal-install[] и package:ports-mgmt/hs-cabal2tuple[], поэтому убедитесь, что они установлены заранее. Сначала необходимо определить общие переменные портов, которые позволяют cabal-install загрузить файл дистрибутива пакета: + [.programlisting] .... -# Использовать некоторые библиотеки X11 -USE_XORG= x11 xpm -.... +PORTNAME= ShellCheck +DISTVERSION= 0.6.0 +CATEGORIES= devel -==== +MAINTAINER= haskell@FreeBSD.org +COMMENT= Shell script analysis tool +WWW= https://www.shellcheck.net/ -[[porting-motif]] -=== Порты, которым требуется Motif +USES= cabal -Если вашему порту требуется Motif, задайте переменную `USES= motif` в файле [.filename]#Makefile#. Реализация Motif, используемая по умолчанию, находится в package:x11-toolkits/open-motif[]. Пользователи вместо этого могут выбрать package:x11-toolkits/lesstif[] через установку переменной `WANT_LESSTIF`. +.include +.... -Переменная `MOTIFLIB` будет установлена в [.filename]#bsd.port.mk#, чтобы ссылаться на соответствующую библиотеку Motif. Пожалуйста, измените исходные тексты вашего порта на использование `${MOTIFLIB}` везде, где упоминается библиотека Motif, в первоначальном [.filename]#Makefile# или [.filename]#Imakefile#. +Этот минимальный Makefile загружает файл дистрибутива с помощью вспомогательной цели `cabal-extract`: -Существует два общих случая: +[source, shell] +.... +% make cabal-extract +[...] +Downloading the latest package list from hackage.haskell.org +cabal get ShellCheck-0.6.0 +Downloading ShellCheck-0.6.0 +Downloaded ShellCheck-0.6.0 +Unpacking to ShellCheck-0.6.0/ +.... -* Если порт обращается к библиотеке Motif как `-lXm` в своих файлах [.filename]#Makefile# или [.filename]#Imakefile#, просто подставьте вместо этих обращений `${MOTIFLIB}`. -* Если порт использует `XmClientLibs` в своем файле [.filename]#Imakefile#, измените это обращение на `${MOTIFLIB} ${XTOOLLIB} ${XLIB}`. +Теперь, когда у нас есть файл описания пакета ShellCheck.cabal в `${WRKSRC}`, мы можем использовать `cabal-configure` для создания плана сборки: -Заметьте, что переменная `MOTIFLIB` (как правило) раскрывается в `-L/usr/local/lib -lXm` или `/usr/local/lib/libXm.a`, так что нет нужды впереди добавлять `-L` или `-l`. +[source, shell] +.... +% make cabal-configure +[...] +Resolving dependencies... +Build profile: -w ghc-8.10.7 -O1 +In order, the following would be built (use -v for more details): + - Diff-0.4.1 (lib) (requires download & build) + - OneTuple-0.3.1 (lib) (requires download & build) +[...] +.... -=== Шрифты для X11 +После завершения можно сгенерировать список необходимых зависимостей: -Если ваш порт устанавливает шрифты для X Window System, поместите их в каталог [.filename]#LOCALBASE/lib/X11/fonts/local#. +[source, shell] +.... +% make make-use-cabal +USE_CABAL= QuickCheck-2.12.6.1 \ + hashable-1.3.0.0 \ + integer-logarithms-1.0.3 \ +[...] +.... -=== Получение поддельного `DISPLAY`, используя Xvfb +Пакеты Haskell могут содержать ревизии, как и порты FreeBSD. Ревизии могут затрагивать только файлы [.filename]#.cabal#. Обратите внимание на дополнительные номера версий после символа `_`. Замените старый список `USE_CABAL` на вновь сгенерированный. -Некоторые приложения для успешной компиляции требуют наличие работающего дисплея X11. Это создает проблему для машин, которые работают в режиме headless. При использовании следующего канонического хака инфраструктура построения запустит сервер X в виртуальном фреймбуфере. Затем переменная работающего `DISPLAY` передается при построении. +Наконец, файл [.filename]#distinfo# необходимо перегенерировать, чтобы он содержал все файлы дистрибутива: -[.programlisting] +[source, shell] .... -USES= display +% make makesum +=> ShellCheck-0.6.0.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal. +=> Attempting to fetch https://hackage.haskell.org/package/ShellCheck-0.6.0/ShellCheck-0.6.0.tar.gz +ShellCheck-0.6.0.tar.gz 136 kB 642 kBps 00s +=> QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal. +=> Attempting to fetch https://hackage.haskell.org/package/QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz +QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz 65 kB 361 kBps 00s +[...] .... -[[desktop-entries]] -=== Элементы рабочего стола +Порт теперь готов к тестовой сборке и дальнейшим настройкам, таким как создание plist, написание описания, добавление информации о лицензии, опций и т.д., как обычно. -Элементы рабочего стола (http://standards.freedesktop.org/desktop-entry-spec/latest/[стандарта Freedesktop]) предоставляют способ автоматической настройки функций рабочего стола при установке новой программы, не требуя вмешательства пользователя. Например, новые программы автоматически отображаются в меню приложений совместимых окружений рабочего стола. Элементы рабочего стола изначально появились в окружении рабочего стола GNOME, но в настоящее время являются стандартом и также работают с KDE и Xfce. Такая небольшая автоматизация предоставляет реальное удобство для пользователя, и посему элементы рабочего стола приветствуются в приложениях, которые можно использовать в окружении рабочего стола. +Если вы не тестируете свой порт в чистой среде, например, с использованием poudriere, не забудьте выполнить `make clean` перед любым тестированием. +==== -==== Использование предопределенных файлов [.filename]#.desktop# +Некоторые порты Haskell устанавливают различные файлы данных в `share/${PORTNAME}`. В таких случаях требуется особая обработка на стороне порта. Порт должен определить параметр `CABAL_WRAPPER_SCRIPTS`, перечислив каждый исполняемый файл, который будет использовать файлы данных. Более того, в редких случаях портируемая программа использует файлы данных других пакетов Haskell, и тогда на помощь приходит `FOO_DATADIR_VARS`. -Порты, включающие предопределенные файлы [.filename]#*.desktop#, должны включать эти файлы в [.filename]#pkg-plist# и устанавливать их в каталог [.filename]#$LOCALBASE/shared/applications#. Для установки этих файлов используется <>. +[[cabal-ex2]] +.Обработка файлов данных в порте Haskell +[example] +==== +`devel/hs-profiteur` — это приложение на Haskell, которое генерирует одностраничный HTML с некоторым содержимым. -[[updating-desktop-database]] -==== Обновление базы данных рабочего стола +[.programlisting] +.... +PORTNAME= profiteur -Если в файле порта [.filename]#portname.desktop# имеется запись MimeType, то база данных рабочего стола олжна быть обновлена после установки и удаления. Для этого укажите `USES`= desktop-file-utils. +[...] -[[desktop-entries-macro]] -==== Создание элементов рабочего стола с использованием `DESKTOP_ENTRIES` +USES= cabal -Элементы рабочего стола можно легко создавать для приложений, используя переменную `DESKTOP_ENTRIES`. Будет автоматически создан, установлен и добавлен в [.filename]#pkg-plist# файл с названием [.filename]#name.desktop#. Синтаксис: +USE_CABAL= OneTuple-0.3.1_2 \ + QuickCheck-2.14.2 \ + [...] + +.include +.... + +Он устанавливает HTML-шаблоны в `share/profiteur`, поэтому необходимо добавить параметр `CABAL_WRAPPER_SCRIPTS`: [.programlisting] .... -DESKTOP_ENTRIES= "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify +[...] + +USE_CABAL= OneTuple-0.3.1_2 \ + QuickCheck-2.14.2 \ + [...] + + +CABAL_WRAPPER_SCRIPTS= ${CABAL_EXECUTABLES} + +.include .... -Перечень возможных категорий доступен на http://standards.freedesktop.org/menu-spec/latest/apa.html[вебсайте Freedesktop]. `StartupNotify` отобразит, поддерживает ли приложение _уведомления о запуске_. Как правило, это графический индикатор часы вместо указателя мыши, меню или панель, которые уведомляют пользователя о загрузке программы. Программа, поддерживающая уведомления о запуске, очистит этот индикатор после запуска. Программы, несовместимые с уведомлениями о запуске, не будут очищать индикатор (возможно, вызывая путаницу и приводя пользователей в бешенство), и поэтому должны иметь `StartupNotify` в выключенном состоянии `false`; тогда индикатор не будет отображаться совсем. +Программа также пытается получить доступ к файлу `jquery.js`, который является частью пакета Haskell `js-jquery-3.3.1`. Чтобы этот файл был найден, необходимо, чтобы скрипт-обёртка искал файлы данных `js-jquery` также в `share/profiteur`. Для этого используется `profiteur_DATADIR_VARS`: -Пример: +[.programlisting] +.... +[...] + +CABAL_WRAPPER_SCRIPTS= ${CABAL_EXECUTABLES} +profiteur_DATADIR_VARS= js-jquery + +.include +.... + +Теперь порт установит непосредственно бинарный файл в `libexec/cabal/profiteur`, а скрипт — в `bin/profiteur`. + +==== + +Не существует простого способа определить подходящее значение для параметра `FOO_DATADIR_VARS`, кроме как запустить программу и проверить, что всё работает. К счастью, необходимость использовать `FOO_DATADIR_VARS` возникает очень редко. + +Еще один крайний случай при переносе сложных программ на Haskell — наличие зависимостей от систем контроля версий (VCS) в файле `cabal.project`. + +[[cabal-ex3]] +.Портирование приложений Haskell с зависимостями от VCS +[example] +==== + +`net-p2p/cardano-node` — это чрезвычайно сложное программное обеспечение. В его `cabal.project` содержится множество блоков, подобных этому: [.programlisting] .... -DESKTOP_ENTRIES= "ToME" "Roguelike game based on JRR Tolkien's work" \ - "${DATADIR}/xtra/graf/tome-128.png" \ - "tome -v -g" "Application;Game;RolePlaying;" \ - false +[...] +source-repository-package + type: git + location: https://github.com/input-output-hk/cardano-crypto + tag: f73079303f663e028288f9f4a9e08bcca39a923e +[...] .... -[[using-gnome]] -== Использование GNOME +Зависимости типа `source-repository-package` автоматически подтягиваются `cabal` в процессе сборки. К сожалению, это приводит к использованию сети после этапа `fetch`, что запрещено в рамках системы портов. Эти исходники необходимо указать в Makefile порта. Вспомогательная цель `make-use-cabal` может упростить работу с пакетами, размещёнными на GitHub. Запуск этой цели после стандартных `cabal-extract` и `cabal-configure` позволит получить не только параметр `USE_CABAL`, но и `GH_TUPLE`: -Для задания того, какие компоненты GNOME использует конкретный порт, проект FreeBSD/GNOME использует собственный набор переменных. На странице проекта FreeBSD/GNOME размещён http://www.FreeBSD.org/gnome/docs/porting/[ исчерпывающий список этих переменных]. +[source, shell] +.... +% make make-use-cabal +USE_CABAL= Diff-0.4.1 \ + Glob-0.10.2_3 \ + HUnit-1.6.2.0 \ + [...] + +GH_TUPLE= input-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \ + input-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \ + [...] +.... -[[using-qt]] -== Использование Qt +Может быть полезно отделить элементы `GH_TUPLE`, поступающие из `make-use-cabal`, от остальных, чтобы упростить обновление порта: -[[qt-common]] -=== Порты, для которых требуется Qt +[.programlisting] +.... +GH_TUPLE= input-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \ + input-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \ + [...] -.Переменные для портов, использующих Qt -[cols="1,1", frame="none"] +GH_TUPLE+= bitcoin-core:secp256k1:ac83be33d0956faf6b7f61a60ab524ef7d6a473a:secp +.... + +Версия Haskell-портов с зависимостями от систем контроля версий временно требует следующего обходного решения: + +[.programlisting] +.... +BINARY_ALIAS= git=true +.... + +==== + +[[using-autotools]] +== Использование GNU Autotools + +Если порту требуется какое-либо программное обеспечение GNU Autotools, добавьте `USES=autoreconf`. Подробнее см. в crossref:uses[uses-autoreconf,`autoreconf`]. + +[[using-gettext]] +== Использование GNU `gettext` + +[[using-gettext-basic]] +=== Простые варианты использования + +Если порт требует `gettext`, установите `USES=gettext`, и порт унаследует зависимость от [.filename]#libintl.so# из пакета package:devel/gettext[]. Другие значения для использования `gettext` перечислены в crossref:uses[uses-gettext,`USES=gettext`]. + +Довольно распространённый случай — порт, использующий `gettext` и `configure`. Обычно GNU `configure` должен автоматически находить `gettext`. + +[.programlisting] +.... +USES= gettext +GNU_CONFIGURE= yes +.... + +Если он не сработает, можно указать расположение `gettext` через `CPPFLAGS` и `LDFLAGS`, используя `localbase` следующим образом: + +[.programlisting] +.... +USES= gettext localbase:ldflags +GNU_CONFIGURE= yes +.... + +[[using-gettext-optional]] +=== Оптимальное использование + +Некоторые программные продукты позволяют отключать NLS, к примеру, передавая параметр `--disable-nls` сценарию `configure`. В этом случае ваш порт должен использовать `gettext`, в зависимости от значения `NLS`. Для портов небольшой или средней сложности вы можете полагаться на следующую идиому: + +[.programlisting] +.... +GNU_CONFIGURE= yes + +OPTIONS_DEFINE= NLS +OPTIONS_SUB= yes + +NLS_USES= gettext +NLS_CONFIGURE_ENABLE= nls + +.include +.... + +Или используя старый способ с опциями: + +[.programlisting] +.... +GNU_CONFIGURE= yes + +OPTIONS_DEFINE= NLS + +.include + +.if ${PORT_OPTIONS:MNLS} +USES+= gettext +PLIST_SUB+= NLS="" +.else +CONFIGURE_ARGS+= --disable-nls +PLIST_SUB+= NLS="@comment " +.endif + +.include +.... + +Следующий пункт в списке задач — организовать условное включение файлов каталогов сообщений в упаковочный список. Часть, связанная с [.filename]#Makefile#, уже предусмотрена идиомой. Это объясняется в разделе crossref:plist[plist-sub,расширенные практики работы с [.filename]#pkg-plist#]. Вкратце, каждое вхождение `%%NLS%%` в [.filename]#pkg-plist# будет заменено на "`@comment `", если NLS отключен, или на пустую строку, если NLS включен. Следовательно, строки с префиксом `%%NLS%%` станут обычными комментариями в итоговом упаковочном списке, если NLS выключен; в противном случае префикс будет просто удален. Затем вставьте `%%NLS%%` перед каждым путем к файлу каталога сообщений в [.filename]#pkg-plist#. Например: + +[.programlisting] +.... +%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo +%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo +.... + +В особо сложных случаях вам понадобиться использовать более продвинутые техники, чем данный рецепт, такие как crossref:plist[plist-dynamic,динамические списки упаковки]. + +[[using-gettext-catalog-directories]] +=== Управление каталогами сообщений + +Существует момент, который следует учитывать при установке файлов каталогов сообщений. Целевые каталоги для размещения, расположенные под [.filename]#LOCALBASE/shared/locale#, редко когда должны создаваться и удаляться портом. Для наиболее популярных языков имеются собственные каталоги, перечисленные в [.filename]#PORTSDIR/Templates/BSD.local.dist#. Каталоги для множества других языков управляются с помощью порта package:devel/gettext[]. Обратите внимание на его [.filename]#pkg-plist# и посмотрите, куда данный порт собирается установить файлы каталогов сообщений для единственного в своем роде языка. + +[[using-perl]] +== Использование Perl + +Если `MASTER_SITES` установлена в значение `CPAN`, то правильная поддиректория выбирается автоматически. Если подкаталог по умолчанию указан неверно, можно использовать `CPAN/Module` для его изменения. Также можно установить `MASTER_SITES` в старое значение `MASTER_SITE_PERL_CPAN`, тогда предпочтительным значением `MASTER_SITE_SUBDIR` будет имя иерархии выше уровнем. Например, рекомендуемое значение для `p5-Module-Name` - `Module`. Иерархию верхнего уровня можно посмотреть на https://cpan.org/modules/by-module/[cpan.org]. Это гарантирует работоспособность порта при смене автора модуля. + +Исключением этого правила является отсутствие соответствующего каталога или файла с дистрибутивом в этом каталоге. В качестве `MASTER_SITE_SUBDIR` в этом случае разрешается использовать id автора. Можно использовать макрос `CPAN:AUTHOR`, который будет преобразован в хешированный каталог автора. Например, `CPAN:AUTHOR` преобразуется в `authors/id/A/AU/AUTHOR`. + +Когда порту требуется поддержка Perl, он должен установить `USES=perl5` с опциональным `USE_PERL5`, как описано в crossref:uses[uses-perl5,описание USES для perl5]. + +[[using-perl-variables]] +.Переменные (только для чтения) для портов, использующих Perl +[cols="1,1", frame="none", options="header"] |=== -|`USE_QT4` -|Указывает инструменты и библиотеки в качестве зависимостей для портов, которые используют Qt 4. Для получения подробностей смотрите <>. +| Переменные (только для чтения) +| Значение + +|`PERL` +|Полный путь к интерпретатору Perl 5, будь то системный или установленный из порта, но без номера версии. Используйте это, когда программному обеспечению требуется путь к интерпретатору Perl. Для замены строк "``#!``" в скриптах используйте crossref:uses[uses-shebangfix,`shebangfix`]. -|`QT_PREFIX` -|Устанавливается в значение, содержащее путь к установленному Qt (переменная только для чтения). +|`PERL_VERSION` +|Полная версия Perl установлена (например, `5.8.9`). -|`MOC` -|Устанавливается в значение, содержащее путь к `moc` (переменная только для чтения). По умолчанию устанавливается в соответствии со значением `USE_QT_VER`. +|`PERL_LEVEL` +|Установленная версия Perl в виде целого числа формата `MNNNPP` (например, `500809`). -|`QTCPPFLAGS` -|Дополнительные флаги компилятора для инструментального пакета Qt, передаваемые через переменную `CONFIGURE_ENV`. По умолчанию устанавливается в соответствии со значением `USE_QT_VER`. +|`PERL_ARCH` +|Где Perl хранит архитектурно-зависимые библиотеки. По умолчанию: `${ARCH}-freebsd`. -|`QTCFGLIBS` -|Дополнительные флаги компоновки для инструментального пакета Qt, передаваемые через переменную `CONFIGURE_ENV`. По умолчанию устанавливается в соответствии со значением `USE_QT_VER`. +|`PERL_PORT` +|Имя порта Perl, который установлен (например, `perl5`). -|`QTNONSTANDARD` -|Подавляет изменение `CONFIGURE_ENV`, `CONFIGURE_ARGS`, `CPPFLAGS` и `MAKE_ENV`. +|`SITE_PERL` +|Имя каталога, в котором размещаются специфичные для сайта пакеты Perl. Это значение добавляется в `PLIST_SUB`. |=== -.Дополнительные переменные для портов, использующих Qt 4.x +[NOTE] +==== +Порты Perl-модулей, у которых нет официального сайта, должны ссылаться на `cpan.org` в строке WWW файла [.filename]#Makefile#. Предпочтительный формат URL: `https://search.cpan.org/dist/Module-Name/` (включая завершающий слеш). +==== + +[NOTE] +==== +Не используйте `${SITE_PERL}` в объявлениях зависимостей. Это предполагает, что был включён файл [.filename]#perl5.mk#, что не всегда верно. Порты, зависящие от этого порта, будут иметь некорректные зависимости, если файлы этого порта будут перемещены во время обновления. Правильный способ объявления зависимостей модулей Perl показан в примере ниже. +==== + +[[use-perl-dependency-example]] +.Пример зависимости Perl +[example] +==== +[.programlisting] +.... +p5-IO-Tee>=0.64:devel/p5-IO-Tee +.... + +==== + +Для портов Perl, которые устанавливают страницы руководства, макросы `PERL5_MAN3` и `PERL5_MAN1` могут использоваться внутри [.filename]#pkg-plist#. Например, + +[.programlisting] +.... +lib/perl5/5.14/man/man1/event.1.gz +lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz +.... + +может быть заменено на + +[.programlisting] +.... +%%PERL5_MAN1%%/event.1.gz +%%PERL5_MAN3%%/AnyEvent::I3.3.gz +.... + +[NOTE] +==== +Для других разделов (_x_ в `2` и `4`–`9`) макросы `PERL5_MAN_x_` отсутствуют, так как они устанавливаются в обычные каталоги. +==== + +[[use-perl-ex-build]] +.Порт, требующий Perl только для сборки +[example] +==== +Поскольку значение USE_PERL5 по умолчанию включает build и run, установите его в: + +[.programlisting] +.... +USES= perl5 +USE_PERL5= build +.... + +==== + +[[use-perl-ex-patch]] +.Порт, который также требует Perl для исправления +[example] +==== +Время от времени использования man:sed[1] для исправлений недостаточно. Когда использование man:perl[1] проще, примените: + +[.programlisting] +.... +USES= perl5 +USE_PERL5= patch build run +.... + +==== + +[[use-perl-ex-configure]] +.Модуль Perl, для сборки которого требуется `ExtUtils::MakeMaker` +[example] +==== +Большинство модулей Perl поставляются с конфигурационным скриптом [.filename]#Makefile.PL#. В этом случае установите: + +[.programlisting] +.... +USES= perl5 +USE_PERL5= configure +.... + +==== + +[[use-perl-ex-modbuild]] +.Модуль Perl, для сборки которого требуется `Module::Build` +[example] +==== +Когда модуль Perl поставляется с конфигурационным скриптом [.filename]#Build.PL#, он может требовать Module::Build, и в этом случае установите + +[.programlisting] +.... +USES= perl5 +USE_PERL5= modbuild +.... + +Если вместо этого требуется Module::Build::Tiny, установите + +[.programlisting] +.... +USES= perl5 +USE_PERL5= modbuildtiny +.... + +==== + +[[using-x11]] +== Использование X11 + +[[x11-variables]] +=== Компоненты X.Org + +Реализация X11, доступная в Коллекции портов, — это X.Org. Если приложение зависит от компонентов X, добавьте `USES= xorg` и укажите необходимые компоненты в `USE_XORG`. Полный список можно найти в crossref:uses[uses-xorg,`xorg`]. + +Проект Mesa — это инициатива по предоставлению свободной реализации OpenGL. Чтобы указать зависимость от различных компонентов этого проекта, используйте `USES=gl` и `USE_GL`. См. crossref:uses[uses-gl,`gl`] для полного списка доступных компонентов. Для обратной совместимости значение `yes` соответствует `glu`. + +[[use-xorg-example]] +.Пример `USE_XORG` +[example] +==== +[.programlisting] +.... +USES= gl xorg +USE_GL= glu +USE_XORG= xrender xft xkbfile xt xaw +.... + +==== + +[[using-xorg-variables]] +.Переменные для портов, использующих X [cols="1,1", frame="none"] |=== -|`UIC` -|Устанавливает путь к `uic` (переменная только для чтения). +|`USES= imake` +|Порт использует `imake`. -|`QMAKE` -|Устанавливает путь к `qmake` (переменная только для чтения). +|`XMKMF` +|Установить путь к `xmkmf`, если он отсутствует в `PATH`. По умолчанию: `xmkmf -a`. +|=== -|`QMAKESPEC` -|Устанавливает путь к конфигурационному файлу для `qmake` (переменная только для чтения). +[[using-x11-vars]] +.Использование переменных, связанных с X11 +[example] +==== +[.programlisting] +.... +# Use some X11 libraries +USES= xorg +USE_XORG= x11 xpm +.... + +==== -|`QMAKEFLAGS` -|Дополнительные флаги для `qmake`. +[[x11-motif]] +=== Порты, требующие Motif -|`QT_INCDIR` -|Устанавливает каталоги для заголовков Qt 4 (переменная только для чтения). +Если порт требует библиотеку Motif, определите `USES= motif` в [.filename]#Makefile#. Реализация Motif по умолчанию — это package:x11-toolkits/open-motif[]. Пользователи могут выбрать package:x11-toolkits/lesstif[] вместо этого, установив `WANT_LESSTIF` в своём [.filename]#make.conf#. Аналогично package:x11-toolkits/open-motif-devel[] можно выбрать, установив `WANT_OPEN_MOTIF_DEVEL` в [.filename]#make.conf#. -|`QT_LIBDIR` -|Устанавливает путь к библиотекам Qt 4 (переменная только для чтения). +`MOTIFLIB` будет установлен в файле [.filename]#motif.mk# для ссылки на соответствующую библиотеку Motif. Пожалуйста, исправьте исходный код порта, чтобы использовать `${MOTIFLIB}` везде, где библиотека Motif упоминается в оригинальном [.filename]#Makefile# или [.filename]#Imakefile#. -|`QT_PLUGINDIRC` -|Устанавливает путь к плагинам Qt 4 (переменная только для чтения). -|=== +Есть два распространённых случая: + +* Если порт ссылается на библиотеку Motif как `-lXm` в своем [.filename]#Makefile# или [.filename]#Imakefile#, замените это на `${MOTIFLIB}`. +* Если порт использует `XmClientLibs` в своем [.filename]#Imakefile#, замените это на `${MOTIFLIB} ${XTOOLLIB} ${XLIB}`. + +Обратите внимание, что `MOTIFLIB` (обычно) раскрывается в `-L/usr/local/lib -lXm -lXp` или `/usr/local/lib/libXm.a`, поэтому нет необходимости добавлять `-L` или `-l` перед этим. + +[[x11-fonts]] +=== Шрифты X11 + +Если порт устанавливает шрифты для X Window System, поместите их в [.filename]#LOCALBASE/lib/X11/fonts/local#. -При заданной переменной `USE_QT4` применяются следующие настройки: +[[x11-fake-display]] +=== Получение поддельного `DISPLAY` с помощью Xvfb + +Некоторые приложения требуют рабочего дисплея X11 для успешной компиляции. Это создаёт проблему для машин, работающих без монитора. При использовании этой переменной инфраструктура сборки запустит виртуальный X-сервер с буфером кадров. Рабочий `DISPLAY` затем передаётся в процесс сборки. См. crossref:uses[uses-display,`USES=display`] для возможных аргументов. [.programlisting] .... -CONFIGURE_ARGS+= --with-qt-includes=${QT_INCDIR} \ - --with-qt-libraries=${QT_LIBDIR} \ - --with-extra-libs=${LOCALBASE}/lib \ - --with-extra-includes=${LOCALBASE}/include -CONFIGURE_ENV+= MOC="${MOC}" UIC="${UIC}" LIBS="${QTCFGLIBS}" \ - QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" QTDIR="${QT_PREFIX}" -MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" +USES= display +.... + + +[[desktop-entries]] +=== Desktop Entries (пункты рабочего стола) + +Desktop entries (https://standards.freedesktop.org/desktop-entry-spec/latest/[стандарт Freedesktop]) предоставляют способ автоматической настройки функций рабочего стола при установке новой программы без вмешательства пользователя. Например, вновь установленные программы автоматически появляются в меню приложений совместимых сред рабочего стола. Desktop entries появились в среде GNOME, но теперь стали стандартом и также работают с KDE и Xfce. Эта автоматизация приносит реальную пользу пользователю, поэтому Desktop entries рекомендуются для приложений, которые могут использоваться в среде рабочего стола. + +[[desktop-entries-predefined]] +==== Использование предопределенных файлов [.filename]#.desktop# + +Порты, включающие предопределённые файлы [.filename]#*.desktop#, должны добавлять эти файлы в [.filename]#pkg-plist# и устанавливать их в директорию [.filename]#$LOCALBASE/share/applications#. Для установки таких файлов полезен макрос crossref:makefiles[install-macros,`INSTALL_DATA`]. + +[[updating-desktop-database]] +==== Обновление базы данных рабочего стола + +Если порт имеет запись MimeType в файле [.filename]#portname.desktop#, базу данных рабочего стола необходимо обновить после установки и удаления. Для этого определите `USES`= desktop-file-utils. + +[[desktop-entries-macro]] +==== Создание Desktop Entries с помощью `DESKTOP_ENTRIES` + +Desktop Entries могут быть легко созданы для приложений с использованием `DESKTOP_ENTRIES`. Файл с именем [.filename]#name.desktop# будет создан, установлен и автоматически добавлен в [.filename]#pkg-plist#. Синтаксис следующий: + +[.programlisting] +.... +DESKTOP_ENTRIES= "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify +.... + +Список возможных категорий доступен на https://standards.freedesktop.org/menu-spec/latest/apa.html[сайте Freedesktop]. `StartupNotify` указывает, совместимо ли приложение с _уведомлениями о запуске_. Обычно это графический индикатор, например, часы, который появляется у указателя мыши, в меню или на панели, чтобы дать пользователю понять, что программа запускается. Программа, совместимая с уведомлениями о запуске, очищает индикатор после своего старта. Программы, не совместимые с уведомлениями о запуске, никогда не очищают индикатор (что может сбивать с толку и раздражать пользователя), и у них должен быть установлен параметр `StartupNotify` в значение `false`, чтобы индикатор вообще не отображался. + +Пример: + +[.programlisting] +.... +DESKTOP_ENTRIES= "ToME" "Roguelike game based on JRR Tolkien's work" \ + "${DATADIR}/xtra/graf/tome-128.png" \ + "tome -v -g" "Application;Game;RolePlaying;" \ + false +.... + +`DESKTOP_ENTRIES` устанавливаются в директорию, указанную переменной `DESKTOPDIR`. По умолчанию `DESKTOPDIR` имеет значение [.filename]#${PREFIX}/share/applications# + + +[[using-gnome]] +== Использование GNOME + +[[using-gnome-introduction]] +=== Введение + +Эта глава объясняет фреймворк GNOME, используемый в портах. Фреймворк можно условно разделить на базовые компоненты, компоненты рабочего стола GNOME и несколько специальных макросов, упрощающих работу сопровождающих портов. + +[[use-gnome]] +=== Использование `USE_GNOME` + +Добавление этой переменной в порт позволяет использовать макросы и компоненты, определённые в [.filename]#bsd.gnome.mk#. Код в [.filename]#bsd.gnome.mk# добавляет необходимые зависимости для сборки, выполнения или библиотеки, а также обработку специальных файлов. Приложения GNOME в FreeBSD используют инфраструктуру `USE_GNOME`. Включите все необходимые компоненты в виде списка, разделённого пробелами. Компоненты `USE_GNOME` разделены на следующие виртуальные списки: основные компоненты, компоненты GNOME 3 и устаревшие компоненты. Если порту требуются только библиотеки GTK3, это кратчайший способ определить это: + +[.programlisting] +.... +USE_GNOME= gtk30 +.... + +`USE_GNOME` компоненты автоматически добавляют необходимые им зависимости. Подробный список всех компонентов `USE_GNOME`, а также информацию о том, какие другие компоненты они подразумевают и их зависимости, можно найти в crossref:special[gnome-components, Компоненты GNOME]. + +Вот пример [.filename]#Makefile# для порта GNOME, в котором используются многие методы, описанные в этом документе. Пожалуйста, используйте его в качестве руководства при создании новых портов. + +[.programlisting] +.... +PORTNAME= regexxer +DISTVERSION= 0.10 +CATEGORIES= devel textproc gnome +MASTER_SITES= GNOME + +MAINTAINER= kwm@FreeBSD.org +COMMENT= Interactive tool for performing search and replace operations +WWW= http://regexxer.sourceforge.net/ + +USES= gettext gmake localbase:ldflags pathfix pkgconfig tar:xz +GNU_CONFIGURE= yes +USE_GNOME= gnomeprefix intlhack gtksourceviewmm3 + +GLIB_SCHEMAS= org.regexxer.gschema.xml + +.include +.... + +[NOTE] +==== +Макрос `USE_GNOME` без аргументов не добавляет никаких зависимостей к порту. `USE_GNOME` не может быть установлен после [.filename]#bsd.port.pre.mk#. +==== + +[[using-gnome-variables]] +=== Переменные + +Этот раздел объясняет, какие макросы доступны и как они используются. Как, например, в приведённом выше примере. В crossref:special[gnome-components, Компоненты GNOME] содержится более подробное объяснение. Для использования этих макросов необходимо установить `USE_GNOME`. + +`GLIB_SCHEMAS`:: +Список всех файлов схем glib, которые устанавливает порт. Макрос добавит файлы в plist порта и обработает регистрацию этих файлов при установке и удалении. ++ +Файлы схем glib написаны в XML и имеют расширение [.filename]#gschema.xml#. Они устанавливаются в директорию [.filename]#share/glib-2.0/schemas/#. Эти файлы схем содержат все настройки конфигурации приложений со значениями по умолчанию. Фактическая база данных, используемая приложениями, создаётся с помощью glib-compile-schema, которая запускается макросом `GLIB_SCHEMAS`. ++ +[.programlisting] +.... +GLIB_SCHEMAS=foo.gschema.xml +.... ++ +[NOTE] +==== +Не добавляйте схемы glib в файл [.filename]#pkg-plist#. Если они указаны в [.filename]#pkg-plist#, они не будут зарегистрированы, и приложения могут работать некорректно. +==== + +`GCONF_SCHEMAS`:: +Перечислите все файлы схем gconf. Макрос добавит файлы схем в plist порта и обеспечит их регистрацию при установке и удалении. ++ +GConf — это база данных на основе XML, которую используют практически все приложения GNOME для хранения своих настроек. Эти файлы устанавливаются в директорию [.filename]#etc/gconf/schemas#. Эта база данных определяется установленными файлами схем, которые используются для генерации ключевых файлов [.filename]#%gconf.xml#. Для каждого файла схемы, устанавливаемого портом, должна быть запись в [.filename]#Makefile#: ++ +[.programlisting] +.... +GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas +.... ++ +[NOTE] +==== +Схемы Gconf перечислены в макросе `GCONF_SCHEMAS`, а не в файле [.filename]#pkg-plist#. Если они указаны в [.filename]#pkg-plist#, они не будут зарегистрированы, и приложения могут работать некорректно. +==== + +`INSTALLS_OMF`:: +Файлы Open Source Metadata Framework (OMF) часто используются приложениями GNOME 2. Эти файлы содержат информацию о файлах справки приложений и требуют специальной обработки с помощью ScrollKeeper/rarian. Для правильной регистрации файлов OMF при установке приложений GNOME из пакетов убедитесь, что файлы `omf` указаны в `pkg-plist` и что в [.filename]#Makefile# порта определено `INSTALLS_OMF`: ++ +[.programlisting] +.... +INSTALLS_OMF=yes +.... ++ +При установке [.filename]#bsd.gnome.mk# автоматически сканирует [.filename]#pkg-plist# и добавляет соответствующие директивы `@exec` и `@unexec` для каждого файла [.filename]#.omf#, который необходимо отслеживать в базе данных регистрации OMF. + +[[gnome-components]] +== Компоненты GNOME + +Для получения дополнительной помощи с портом GNOME, ознакомьтесь с некоторыми из link:https://ports.FreeBSD.org[существующих портов] в качестве примеров. На странице link:https://www.FreeBSD.org/gnome/[FreeBSD GNOME] указана контактная информация, если требуется дополнительная помощь. Компоненты разделены на используемые в настоящее время компоненты GNOME и устаревшие компоненты. Если компонент поддерживает аргументы, они перечислены в скобках в описании. Первый аргумент является значением по умолчанию. "Both" указывается, если компонент по умолчанию добавляется как в зависимости для сборки, так и для выполнения. + +[[gnome-components-list]] +.Компоненты GNOME +[cols="1,1,1", options="header"] +|=== +| Компонент +| Связанная программа +| Описание + +|`atk` +|accessibility/atk +|Инструментарий доступности (ATK) + +|`atkmm` +|accessibility/atkmm +|C++ интерфейс для atk + +|`cairo` +|graphics/cairo +|Векторная графическая библиотека с поддержкой вывода на различные устройства + +|`cairomm` +|graphics/cairomm +|C++ интерфейс для cairo + +|`dconf` +|devel/dconf +|Система базы данных конфигурации (both, build, run) + +|`evolutiondataserver3` +|databases/evolution-data-server +|Бэкенды данных для интегрированного почтового клиента/PIM Evolution + +|`gdkpixbuf2` +|graphics/gdk-pixbuf2 +|Графическая библиотека для GTK+ + +|`glib20` +|devel/glib20 +|Основная библиотека GNOME `glib20` + +|`glibmm` +|devel/glibmm +|C++ интерфейс для glib20 + +|`gnomecontrolcenter3` +|sysutils/gnome-control-center +|Центр управления GNOME 3 + +|`gnomedesktop3` +|x11/gnome-desktop +|Библиотека пользовательского интерфейса рабочего стола GNOME 3 + +|`gsound` +|audio/gsound +|Библиотека GObject для воспроизведения системных звуков (both, build, run) + +|`gtk-update-icon-cache` +|graphics/gtk-update-icon-cache +|Утилита `gtk-update-icon-cache` из набора инструментов `Gtk+` + +|`gtk20` +|x11-toolkits/gtk20 +|Набор инструментов Gtk+ 2 + +|`gtk30` +|x11-toolkits/gtk30 +|Набор инструментов Gtk+ 3 + +|`gtkmm20` +|x11-toolkits/gtkmm20 +|C++ интерфейс 2.0 для инструментария gtk20 + +|`gtkmm24` +|x11-toolkits/gtkmm24 +|C++ интерфейс 2.4 для инструментария gtk20 + +|`gtkmm30` +|x11-toolkits/gtkmm30 +|C++ интерфейс 3.0 для набора инструментов gtk30 + +|`gtksourceview2` +|x11-toolkits/gtksourceview2 +|Виджет, добавляющий подсветку синтаксиса в GtkTextView + +|`gtksourceview3` +|x11-toolkits/gtksourceview3 +|Текстовая виджет, добавляющая подсветку синтаксиса к виджету GtkTextView + +|`gtksourceviewmm3` +|x11-toolkits/gtksourceviewmm3 +|C++ интерфейс для библиотеки gtksourceview3 + +|`gvfs` +|devel/gvfs +|Виртуальная файловая система GNOME + +|`intltool` +|textproc/intltool +|Инструмент для интернационализации (см. также intlhack) + +|`introspection` +|devel/gobject-introspection +|Базовые привязки (биндинги) интроспекции и инструменты для генерации привязок интроспекции. В большинстве случаев достаточно `:build`, `:both`/`:run` нужны только для приложений, использующих привязки интроспекции. (both, build, run) + +|`libgda5` +|databases/libgda5 +|Обеспечивает единообразный доступ к различным типам источников данных + +|`libgda5-ui` +|databases/libgda5-ui +|Библиотека пользовательского интерфейса из библиотеки libgda5 + +|`libgdamm5` +|databases/libgdamm5 +|привязки C++ для библиотеки libgda5 + +|`libgsf` +|devel/libgsf +|Расширяемая абстракция ввода-вывода для работы со структурированными форматами файлов + +|`librsvg2` +|graphics/librsvg2 +|Библиотека для разбора и отображения SVG-файлов векторной графики + +|`libsigc++20` +|devel/libsigc++20 +|Фреймворк обратных вызовов для C++ + +|`libxml++26` +|textproc/libxml++26 +|C++ привязки для библиотеки libxml2 + +|`libxml2` +|textproc/libxml2 +|Библиотека парсера XML (both, build, run) + +|`libxslt` +|textproc/libxslt +|Библиотека XSLT (сборка, выполнение) + +|`metacity` +|x11-wm/metacity +|Менеджер окон из GNOME + +|`nautilus3` +|x11-fm/nautilus +|GNOME файловый менеджер + +|`pango` +|x11-toolkits/pango +|Открытый фреймворк для разметки и отображения интернационализированного текста + +|`pangomm` +|x11-toolkits/pangomm +|C++ интерфейс для библиотеки pango + +|`py3gobject3` +|devel/py3-gobject3 +|Python 3, интерфейс GObject 3.0 + +|`pygobject3` +|devel/py-gobject3 +|Python 2, интерфейс GObject 3.0 + +|`vte3` +|x11-toolkits/vte3 +|Виджет терминала с улучшенной поддержкой доступности и интернационализации (I18N) +|=== + +[[gnome-components-macro]] +.Компоненты макросов GNOME +[cols="1,1", options="header"] +|=== +| Компонент +| Описание + +|`gnomeprefix` +|Предоставляет `configure` некоторые стандартные расположения. + +|`intlhack` +|То же, что и `intltool`, но с патчами для гарантии использования [.filename]#share/locale/#. Используйте только в случае, когда одного `intltool` недостаточно. + +|`referencehack` +|Этот макрос предназначен для помощи в разделении API или справочной документации на собственный порт. +|=== + +[[gnome-components-legacy]] +.Компоненты GNOME Legacy +[cols="1,1,1", options="header"] +|=== +| Компонент +| Связанная программа +| Описание + +|`atspi` +|accessibility/at-spi +|Интерфейс поставщика услуг вспомогательных технологий (AT-SPI) + +|`esound` +|audio/esound +|Пакет звука Enlightenment + +|`gal2` +|x11-toolkits/gal2 +|Коллекция виджетов, взятых из GNOME 2 gnumeric + +|`gconf2` +|devel/gconf2 +|Система базы данных конфигурации для GNOME 2 + +|`gconfmm26` +|devel/gconfmm26 +|C++ привязки C++ для gconf2 + +|`gdkpixbuf` +|graphics/gdk-pixbuf +|Графическая библиотека для GTK+ + +|`glib12` +|devel/glib12 +|Библиотека ядра glib 1.2 + +|`gnomedocutils` +|textproc/gnome-doc-utils +|Утилиты документации GNOME + +|`gnomemimedata` +|misc/gnome-mime-data +|База данных MIME и приложений для GNOME 2 + +|`gnomesharp20` +|x11-toolkits/gnome-sharp20 +|Интерфейсы GNOME 2 для среды выполнения .NET + +|`gnomespeech` +|accessibility/gnome-speech +|GNOME 2 API преобразования текста в речь + +|`gnomevfs2` +|devel/gnome-vfs +|Виртуальная файловая система GNOME 2 + +|`gtk12` +|x11-toolkits/gtk12 +|Набор инструментов Gtk+ 1.2 + +|`gtkhtml3` +|www/gtkhtml3 +|Облегченный движок для отображения/печати/редактирования HTML + +|`gtkhtml4` +|www/gtkhtml4 +|Облегченный движок для отображения/печати/редактирования HTML + +|`gtksharp20` +|x11-toolkits/gtk-sharp20 +|Интерфейсы GTK+ и GNOME 2 для среды выполнения .NET + +|`gtksourceview` +|x11-toolkits/gtksourceview +|Виджет, добавляющий подсветку синтаксиса в GtkTextView + +|`libartgpl2` +|graphics/libart_lgpl +|Библиотека для высокопроизводительной 2D графики + +|`libbonobo` +|devel/libbonobo +|Система компонентов и составных документов для GNOME 2 + +|`libbonoboui` +|x11-toolkits/libbonoboui +|Интерфейс для libbonobo в GNOME 2 + +|`libgda4` +|databases/libgda4 +|Обеспечивает единообразный доступ к различным типам источников данных + +|`libglade2` +|devel/libglade2 +|Библиотека glade для GNOME 2 + +|`libgnome` +|x11/libgnome +|Библиотеки для GNOME 2, GNU окружения рабочего стола + +|`libgnomecanvas` +|graphics/libgnomecanvas +|Графическая библиотека для GNOME 2 + +|`libgnomekbd` +|x11/libgnomekbd +|Динамическая библиотека клавиатуры GNOME 2 + +|`libgnomeprint` +|print/libgnomeprint +|Библиотека поддержки печати Gnome 2 + +|`libgnomeprintui` +|x11-toolkits/libgnomeprintui +|Библиотека поддержки печати Gnome 2 + +|`libgnomeui` +|x11-toolkits/libgnomeui +|Библиотеки для графического интерфейса GNOME 2, среды рабочего стола GNU + +|`libgtkhtml` +|www/libgtkhtml +|Облегченный движок для отображения/печати/редактирования HTML + +|`libgtksourceviewmm` +|x11-toolkits/libgtksourceviewmm +|C++ интерфейс GtkSourceView + +|`libidl` +|devel/libIDL +|Библиотека для создания деревьев файлов CORBA IDL + +|`libsigc++12` +|devel/libsigc++12 +|Фреймворк обратных вызовов для C++ + +|`libwnck` +|x11-toolkits/libwnck +|Библиотека, используемая для написания пейджеров и списков задач + +|`libwnck3` +|x11-toolkits/libwnck3 +|Библиотека, используемая для написания пейджеров и списков задач + +|`orbit2` +|devel/ORBit2 +|Высокопроизводительный CORBA ORB с поддержкой языка C + +|`pygnome2` +|x11-toolkits/py-gnome2 +|Интерфейс Python для GNOME 2 + +|`pygobject` +|devel/py-gobject +|Python 2, интерфейс GObject 2.0 + +|`pygtk2` +|x11-toolkits/py-gtk2 +|Набор интерфейсов Python для GTK+ + +|`pygtksourceview` +|x11-toolkits/py-gtksourceview +|Интерфейс Python для GtkSourceView 2 + +|`vte` +|x11-toolkits/vte +|Виджет терминала с улучшенной поддержкой доступности и интернационализации (I18N) +|=== + +[[gnome-components-deprecated]] +.Устаревшие компоненты: не использовать +[cols="1,1", options="header"] +|=== +| Компонент +| Описание + +|`pangox-compat` +|pangox-compat устарел и был отделён от пакета pango. +|=== + +[[using-qt]] +== Использование Qt + +[NOTE] +==== +Для портов, которые являются частью самого Qt, см. crossref:uses[uses-qt-dist,`qt-dist`]. +==== + +[[qt-common]] +=== Порты, требующие Qt + +Коллекция портов поддерживает Qt 5 и Qt 6 с помощью `USES+=qt:5` и `USES+=qt:6` соответственно. Установите `USE_QT` в список необходимых компонентов Qt (libraries, tools, plugins - библиотеки, инструменты, плагины). + +Фреймворк Qt экспортирует ряд переменных, которые могут использоваться портами, некоторые из них перечислены ниже: + +[[using-qt-variables]] +.Переменные, предоставляемые портам, использующим Qt +[cols="1,1", frame="none"] +|=== +|`QMAKE` +|Полный путь к исполняемому файлу `qmake`. + +|`LRELEASE` +|Полный путь к утилите `lrelease`. + +|`MOC` +|Полный путь к `moc`. + +|`RCC` +|Полный путь к `rcc`. + +|`UIC` +|Полный путь к `uic`. + +|`QT_INCDIR` +|Каталог включаемых файлов Qt. + +|`QT_LIBDIR` +|Путь к библиотекам Qt. + +|`QT_PLUGINDIR` +|Путь к плагинам Qt. +|=== + +[[qt-components]] +=== Выбор компонентов + +Отдельные зависимости инструментов и библиотек Qt должны быть указаны в `USE_QT`. Каждый компонент может иметь суффикс `_build` или `_run`, указывающий, требуется ли компонент во время сборки или выполнения. Если суффикс отсутствует, компонент будет требоваться как во время сборки, так и во время выполнения. Обычно компоненты библиотек указываются без суффикса, компоненты инструментов чаще всего указываются с суффиксом `_build`, а компоненты плагинов — с суффиксом `_run`. Наиболее часто используемые компоненты перечислены ниже (все доступные компоненты перечислены в `_USE_QT_ALL`, которая формируется из `_USE_QT_COMMON` и `_USE_QT[56]_ONLY` в [.filename]#/usr/ports/Mk/Uses/qt.mk#): + +[[using-qt-library-list]] +.Доступные компоненты библиотеки Qt +[cols="1,1", frame="none", options="header"] +|=== +| Имя +| Описание + +|`3d` +|Модуль Qt3D + +|`5compat` +|Модуль совместимости Qt 5 для Qt 6 + +|`assistant` +|Браузер документации Qt 5 + +|`base` +|Модуль Qt 6 base + +|`canvas3d` +|Модуль Qt canvas3d + +|`charts` +|Модуль Qt 5 charts + +|`concurrent` +|Модуль многопоточности Qt + +|`connectivity` +|Модуль Qt для подключения (Bluetooth/NFC) + +|`core` +|Ядро Qt, неграфический модуль + +|`datavis3d` +|Модуль визуализации 3D данных Qt 5 + +|`dbus` +|Модуль межпроцессного взаимодействия Qt D-Bus + +|`declarative` +|Декларативный фреймворк Qt для динамических пользовательских интерфейсов + +|`designer` +|Интерфейсный конструктор Qt 5 для графического пользовательского интерфейса + +|`diag` +|Инструмент для сбора диагностической информации о Qt и его окружении + +|`doc` +|Документация Qt 5 + +|`examples` +|Исходный код примеров Qt 5 + +|`gamepad` +|Модуль Qt 5 Gamepad + +|`graphicaleffects` +|Графические эффекты Qt Quick + +|`gui` +|Модуль графического интерфейса Qt + +|`help` +|Модуль интеграции справки Qt в режиме онлайн + +|`l10n` +|Локализованные сообщения Qt + +|`languageserver` +|Реализация протокола Language Server Protocol в Qt 6 + +|`linguist` +|Инструмент перевода Qt 5 + +|`location` +|Модуль Qt Location + +|`lottie` +|Qt 6 QML API для отрисовки графики и анимаций + +|`multimedia` +|Модуль поддержки аудио, видео, радио и камеры Qt + +|`network` +|Сетевой модуль Qt + +|`networkauth` +|Модуль сетевой аутентификации Qt + +|`opengl` +|Модуль поддержки OpenGL, совместимый с Qt 5 + +|`paths` +|Клиент командной строки для QStandardPaths + +|`phonon4` +|Мультимедийный фреймворк KDE + +|`pixeltool` +|Увеличитель экрана Qt 5 + +|`plugininfo` +|Дампер метаданных плагинов Qt 5 + +|`positioning` +|Qt 6 API позиционирования из источников, таких как спутники, Wi-Fi или текстовые файлы. + +|`printsupport` +|Модуль поддержки печати Qt + +|`qdbus` +|Интерфейс командной строки Qt для D-Bus + +|`qdbusviewer` +|Графический интерфейс Qt 5 для D-Bus + +|`qdoc` +|Генератор документации Qt + +|`qdoc-data` +|Файлы конфигурации QDoc + +|`qev` +|Инструмент для интроспекции событий Qt QWidget + +|`qmake` +|Генератор Makefile Qt + +|`quickcontrols` +|Набор элементов управления для создания полных интерфейсов в Qt Quick + +|`quickcontrols2` +|Набор элементов управления для создания полных интерфейсов в Qt Quick + +|`remoteobjects` +|Модуль Qt 5 SXCML + +|`script` +|Совместимый с Qt 4 модуль для написания сценариев + +|`scripttools` +|Дополнительные компоненты Qt Script + +|`scxml` +|Модуль Qt 5 SXCML + +|`sensors` +|Модуль Qt sensors + +|`serialbus` +|Функции Qt для доступа к промышленным шинным системам + +|`serialport` +|Функции Qt для доступа к последовательным портам + +|`shadertools` +|Инструменты Qt 6 для кроссплатформенного конвейера шейдеров Qt + +|`speech` +|Доступность в Qt5 + +|`sql` +|Модуль интеграции с базой данных Qt SQL + +|`sql-ibase` +|Плагин Qt баз данных InterBase/Firebird + +|`sql-mysql` +|Плагин Qt базы данных MySQL + +|`sql-odbc` +|Плагин Qt ODBC + +|`sql-pgsql` +|Плагин Qt базы данных PostgreSQL + +|`sql-sqlite2` +|Плагин Qt базы данных SQLite 2 + +|`sql-sqlite3` +|Плагин Qt базы данных SQLite 3 + +|`sql-tds` +|Плагин Qt для подключение к базам данных по протоколу TDS + +|`svg` +|Модуль поддержки SVG в Qt + +|`testlib` +|Модуль тестирования Qt + +|`tools` +|Различные инструменты Qt 6 + +|`translations` +|Модуль перевода Qt 6 + +|`uiplugin` +|Интерфейс плагина пользовательского виджета Qt для Qt Designer + +|`uitools` +|Модуль поддержки форм пользовательского интерфейса Qt Designer + +|`virtualkeyboard` +|Модуль виртуальной клавиатуры Qt 5 + +|`wayland` +|Оболочка Qt 5 для Wayland + +|`webchannel` +|Библиотека Qt 5 для интеграции C++/QML с клиентами на HTML/js + +|`webengine` +|Библиотека Qt 5 для отображения веб-содержимого + +|`webkit` +|QtWebKit с более современной кодовой базой WebKit + +|`websockets` +|Реализация протокола WebSocket на Qt + +|`websockets-qml` +|Реализация протокола WebSocket на Qt (привязки QML) + +|`webview` +|Компонент Qt для отображения веб-содержимого + +|`widgets` +|Модуль виджетов Qt C++ + +|`x11extras` +|Платформо-специфичные возможности Qt для систем на основе X11 + +|`xml` +|Реализации SAX и DOM в Qt + +|`xmlpatterns` +|Поддержка Qt для XPath, XQuery, XSLT и XML Schema +|=== + +Чтобы определить библиотеки, от которых зависит приложение, выполните `ldd` для основного исполняемого файла после успешной компиляции. + +[[using-qt-tools-list]] +.Доступные компоненты инструментов Qt +[cols="1,1", frame="none", options="header"] +|=== +| Имя +| Описание + +|`buildtools` +|инструменты сборки (`moc`, `rcc`), необходимые практически для любого приложения Qt. + +|`linguisttools` +|инструменты локализации: `lrelease`, `lupdate` + +|`qmake` +|Генератор Makefile/утилита сборки +|=== + +[[using-qt-plugins-list]] +.Доступные компоненты плагинов Qt +[cols="1,1", frame="none", options="header"] +|=== +| Имя +| Описание + +|`imageformats` +|плагины для графических форматов TGA, TIFF и MNG +|=== + +[[qt5-components-example]] +.Выбор компонентов Qt 5 +[example] +==== +В этом примере портированное приложение использует библиотеку графического интерфейса Qt 5, основную библиотеку Qt 5, все инструменты генерации кода Qt 5 и генератор Makefile Qt 5. Поскольку библиотека `gui` подразумевает зависимость от основной библиотеки, `core` не нужно указывать. Инструменты генерации кода Qt 5 `moc`, `uic` и `rcc`, а также генератор Makefile `qmake` требуются только во время сборки, поэтому они указаны с суффиксом `_build`: + +[.programlisting] +.... +USES= qt:5 +USE_QT= gui buildtools_build qmake_build +.... + +==== + +[[using-qmake]] +=== Использование `qmake` + +Если приложение предоставляет файл проекта qmake ([.filename]#*.pro#), определите `USES= qmake` вместе с `USE_QT`. `USES= qmake` уже подразумевает зависимость сборки от qmake, поэтому компонент qmake может быть опущен в `USE_QT`. Подобно crossref:special[using-cmake,CMake], qmake поддерживает сборку вне исходного дерева, которую можно включить, указав аргумент `outsource` (см. crossref:special[using-qmake-example,пример `USES= qmake`]). Также см. crossref:special[using-qmake-arguments,Возможные аргументы для `USES qmake`]. + +[[using-qmake-arguments]] +.Возможные аргументы для `USES= qmake` +[cols="1,1", frame="none", options="header"] +|=== +| Переменная +| Описание + +|`no_configure` +|Не добавлять цель configure. Это подразумевается при `HAS_CONFIGURE=yes` и `GNU_CONFIGURE=yes`. Это требуется, когда сборке нужна только настройка окружения из `USES= qmake`, но в остальном она запускает `qmake` самостоятельно. + +|`no_env` +|Подавить модификацию окружения configure и make. Это требуется только когда `qmake` используется для настройки программного обеспечения и сборка не понимает окружение, установленное `USES= qmake`. + +|`norecursive` +|Не передавать аргумент `-recursive` в `qmake`. + +|`outsource` +|Выполнить сборку вне исходного кода. +|=== + +[[using-qmake-variables]] +.Переменные для портов, использующих `qmake` +[cols="1,1", frame="none", options="header"] +|=== +| Переменная +| Описание + +|`QMAKE_ARGS` +|Специфичные для порта флаги qmake, передаваемые в бинарный файл `qmake`. + +|`QMAKE_ENV` +|Переменные окружения, которые должны быть установлены для бинарного файла `qmake`. По умолчанию используется `${CONFIGURE_ENV}`. + +|`QMAKE_SOURCE_PATH` +|Путь к файлам проекта qmake ([.filename]#.pro#). По умолчанию используется `${WRKSRC}`, если запрошена сборка вне исходного кода, в противном случае оставляется пустым. +|=== + +При использовании `USES= qmake` применяются следующие настройки: + +[.programlisting] +.... +CONFIGURE_ARGS+= --with-qt-includes=${QT_INCDIR} \ + --with-qt-libraries=${QT_LIBDIR} \ + --with-extra-libs=${LOCALBASE}/lib \ + --with-extra-includes=${LOCALBASE}/include + +CONFIGURE_ENV+= QTDIR="${QT_PREFIX}" QMAKE="${QMAKE}" \ + MOC="${MOC}" RCC="${RCC}" UIC="${UIC}" \ + QMAKESPEC="${QMAKESPEC}" + +PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \ + QT_LIBDIR=${QT_LIBDIR_REL} \ + QT_PLUGINDIR=${QT_PLUGINDIR_REL} +.... + +Некоторые скрипты configure не поддерживают указанные выше аргументы. Чтобы отключить изменение `CONFIGURE_ENV` и `CONFIGURE_ARGS`, установите `USES= qmake:no_env`. + +[[using-qmake-example]] +.Пример `USES= qmake` +[example] +==== +Этот фрагмент демонстрирует использование qmake для порта Qt 5: + +[.programlisting] +.... +USES= qmake:outsource qt:5 +USE_QT= buildtools_build +.... + +==== + +Приложения Qt часто разрабатываются как кроссплатформенные, и зачастую X11/Unix — не та платформа, на которой они создаются. Это, в свою очередь, приводит к определённым недоработкам, таким как: + +* _Отсутствуют дополнительные пути для заголовочных файлов._ Многие приложения поддерживают значки в системном трее, но не учитывают пути для заголовочных файлов и/или библиотек в каталогах X11. Чтобы добавить каталоги в пути поиска заголовочных файлов и библиотек для `qmake` через командную строку, используйте: ++ +[.programlisting] +.... +QMAKE_ARGS+= INCLUDEPATH+=${LOCALBASE}/include \ + LIBS+=-L${LOCALBASE}/lib +.... + +* _Некорректные пути установки._ Иногда данные, такие как иконки или файлы .desktop, по умолчанию устанавливаются в каталоги, которые не сканируются приложениями, совместимыми с XDG. Например, package:editors/texmaker[] — посмотрите на файл [.filename]#patch-texmaker.pro# в директории [.filename]#files# этого порта, чтобы увидеть шаблон исправления этой проблемы напрямую в проектом файле `qmake`. + +[[using-kde]] +== Использование KDE + +[[kde5-variables]] +=== Определения переменных KDE + +Если приложение зависит от KDE, установите `USES+=kde:5` и `USE_KDE` в список необходимых компонентов. Суффиксы `_build` и `_run` можно использовать для принудительного указания типа зависимости компонентов (например, `baseapps_run`). Если суффикс не задан, будет использован тип зависимости по умолчанию. Чтобы принудительно задать оба типа, добавьте компонент дважды с обоими суффиксами (например, `ecm_build ecm_run`). Доступные компоненты перечислены ниже (актуальный список компонентов также приведён в [.filename]#/usr/ports/Mk/Uses/kde.mk#): + +[[using-kde-components]] +.Доступные компоненты KDE +[cols="1,1", frame="none", options="header"] +|=== +| Имя +| Описание + +|`activities` +|Среда выполнения и библиотека KF5 для организации работы в отдельных автивностях + +|`activities-stats` +|KF5 статистика для активностей + +|`activitymanagerd` +|Системный сервис для управления активностью пользователей, отслеживания шаблонов использования + +|`akonadi` +|Хранилище данных для KDE-Pim + +|`akonadicalendar` +|Интеграция Akonadi с Календарем + +|`akonadiconsole` +|Консоль управления и отладки Akonadi + +|`akonadicontacts` +|Библиотеки и демоны для реализации управления контактами в Akonadi + +|`akonadiimportwizard` +|Импорт данных из других почтовых клиентов в KMail + +|`akonadimime` +|Библиотеки и демоны для реализации базовой обработки электронной почты + +|`akonadinotes` +|Библиотека KDE для доступа к хранилищам почты в формате MBox + +|`akonadisearch` +|Библиотеки и демоны для реализации поиска в Akonadi + +|`akregator` +|Читатель лент от KDE + +|`alarmcalendar` +|KDE API для будильников KAlarm + +|`apidox` +|Документация API KF5 + +|`archive` +|Библиотека KF5, предоставляющая классы для работы с форматами архивов + +|`attica` +|Библиотека API Open Collaboration Services, версия для KDE5 + +|`attica5` +|Библиотека API Open Collaboration Services, версия для KDE5 + +|`auth` +|Абстракция KF5 для системной политики и функций аутентификации + +|`baloo` +|KF5 Фреймворк для поиска и управления пользовательскими метаданными + +|`baloo-widgets` +|Библиотека BalooWidgets + +|`baloo5` +|KF5 Фреймворк для поиска и управления пользовательскими метаданными + +|`blog` +|KDE API для доступа к веб-логам + +|`bookmarks` +|Библиотека KF5 для закладок и формата XBEL + +|`breeze` +|Plasma5 artwork, стили и ресурсы для визуального стиля Breeze + +|`breeze-gtk` +|Plasma5 Breeze визуальный стиль для Gtk + +|`breeze-icons` +|Тема значков Breeze для KDE + +|`calendarcore` +|Библиотека доступа к календарю KDE + +|`calendarsupport` +|Библиотеки поддержки календарей для KDEPim + +|`calendarutils` +|Утилита KDE и пользовательские функции интерфейса для доступа к календарю + +|`codecs` +|Библиотека KF5 для работы со строками + +|`completion` +|KF5 вспомогательные средства и виджеты автодополнения текста + +|`config` +|Виджеты KF5 для диалогов настройки + +|`configwidgets` +|Виджеты KF5 для диалогов настройки + +|`contacts` +|KDE API для управления контактной информацией + +|`coreaddons` +|KF5 аддоны для QtCore + +|`crash` +|Библиотека KF5 для обработки анализа сбоев и отчётов об ошибках в приложениях + +|`dbusaddons` +|KF5 дополнения к QtDBus + +|`decoration` +|Библиотека Plasma5 для создания оформления окон + +|`designerplugin` +|Интеграция KF5 виджетов Frameworks в Qt Designer/Creator + +|`discover` +|Инструменты управления пакетами Plasma5 + +|`dnssd` +|Абстракция KF5 для системных функций DNSSD + +|`doctools` +|Генерация документации KF5 из docbook + +|`drkonqi` +|Обработчик сбоев Plasma5 + +|`ecm` +|Дополнительные модули и скрипты для CMake + +|`emoticons` +|Библиотека KF5 для преобразования эмотиконов + +|`eventviews` +|Библиотеки просмотра событий для KDEPim + +|`filemetadata` +|Библиотека KF5 для извлечения метаданных файлов + +|`frameworkintegration` +|Плагины рабочего пространства KF5 и интеграции фреймворков + +|`gapi` +|Библиотека на основе KDE для доступа к сервисам Google + +|`globalaccel` +|Библиотека KF5 для добавления поддержки глобальных сочетаний клавиш рабочего пространства + +|`grantlee-editor` +|Редактор тем Grantlee + +|`grantleetheme` +|KDE PIM grantleetheme + +|`gravatar` +|Библиотека для поддержки gravatar + +|`guiaddons` +|KF5 аддоны для QtGui + +|`holidays` +|Библиотека KDE для календарных праздников + +|`hotkeys` +|Библиотека Plasma5 для горячих клавиш + +|`i18n` +|KF5 — расширенная инфраструктура интернационализации + +|`iconthemes` +|Библиотека KF5 для работы с иконками в приложениях + +|`identitymanagement` +|KDE pim идентификации + +|`idletime` +|Библиотека KF5 для мониторинга активности пользователей + +|`imap` +|KDE API для поддержки IMAP + +|`incidenceeditor` +|Инцидентные редакторские библиотеки для KDEPim + +|`infocenter` +|Утилита Plasma5, предоставляющая системную информацию + +|`init` +|Запускатель процессов KF5 для ускорения запуска приложений KDE + +|`itemmodels` +|Модели KF5 для системы Qt Model/View + +|`itemviews` +|KF5 виджеты-дополнения для Qt Model/View + +|`jobwidgets` +|Виджеты KF5 для отслеживания экземпляра KJob + +|`js` +|Библиотека KF5, предоставляющая интерпретатор ECMAScript + +|`jsembed` +|Библиотека KF5 для привязки объектов JavaScript к QObjects + +|`kaddressbook` +|Менеджер контактов KDE + +|`kalarm` +|Планировщик персональных сигналов тревоги + +|`kalarm` +|Планировщик персональных сигналов тревоги + +|`kate` +|Базовая структура редактора для системы KDE + +|`kcmutils` +|KF5 утилиты для работы с KCModules + +|`kde-cli-tools` +|Неинтерактивные системные инструменты Plasma5 + +|`kde-gtk-config` +|Plasma5 конфигуратор GTK2 и GTK3 + +|`kdeclarative` +|Библиотека KF5, обеспечивающая интеграцию QML и KDE Frameworks + +|`kded` +|KF5 расширяемый демон для предоставления системных сервисов + +|`kdelibs4support` +|Помощник в портировании KF5 из KDELibs4 + +|`kdepim-addons` +|Дополнения KDE PIM + +|`kdepim-apps-libs` +|Библиотеки KDE PIM, связанные с почтой + +|`kdepim-runtime5` +|Инструменты и службы KDE PIM + +|`kdeplasma-addons` +|Дополнения Plasma5 для улучшения работы с Plasma + +|`kdesu` +|Интеграция KF5 с su для повышенных привилегий + +|`kdewebkit` +|Библиотека KF5, обеспечивающая интеграцию QtWebKit + +|`kgamma5` +|Настройки гаммы монитора Plasma5 + +|`khtml` +|Механизм рендеринга KF5 KTHML + +|`kimageformats` +|Библиотека KF5, обеспечивающая поддержку дополнительных форматов изображений + +|`kio` +|Абстракция ресурсов и сетевого доступа KF5 + +|`kirigami2` +|Набор компонентов на основе QtQuick + +|`kitinerary` +|Модель данных и система извлечения информации о бронировании путешествий + +|`kmail` +|Клиент электронной почты KDE + +|`kmail` +|Клиент электронной почты KDE + +|`kmail-account-wizard` +|Мастер настройки почтового аккаунта KDE + +|`kmenuedit` +|Редактор меню Plasma5 + +|`knotes` +|Всплывающие примечания + +|`kontact` +|KDE Персональный Органайзер + +|`kontact` +|KDE Персональный Органайзер + +|`kontactinterface` +|KDE glue для встраивания KParts в Kontact + +|`korganizer` +|Программа для календаря и планирования + +|`kpimdav` +|Реализация протокола DAV с KJobs + +|`kpkpass` +|Библиотека для работы с файлами паролей Apple Wallet + +|`kross` +|KF5 мультиязыковые прикладные скрипты + +|`kscreen` +|Библиотека управления экраном Plasma5 + +|`kscreenlocker` +|Архитектура безопасной блокировки экрана Plasma5 + +|`ksmtp` +|Библиотека на основе задач для отправки электронной почты через SMTP-сервер + +|`ksshaskpass` +|Plasma5 интерфейс для ssh-add + +|`ksysguard` +|Утилита Plasma5 для отслеживания и управления запущенными процессами + +|`kwallet-pam` +|Интеграция Plasma5 KWallet с PAM + +|`kwayland-integration` +|Интеграционные плагины для рабочего стола на основе Wayland + +|`kwin` +|Менеджер окон Plasma5 + +|`kwrited` +|Демон Plasma5, ожидающий сообщения wall и write + +|`ldap` +|API доступа к LDAP для KDE + +|`libkcddb` +|Библиотека KDE CDDB + +|`libkcompactdisc` +|Библиотека KDE для взаимодействия с аудио-CD + +|`libkdcraw` +|Интерфейс LibRaw для KDE + +|`libkdegames` +|Библиотеки, используемые играми KDE + +|`libkdepim` +|Библиотеки KDE PIM + +|`libkeduvocdocument` +|Библиотека для чтения и записи файлов словарей + +|`libkexiv2` +|Интерфейс библиотеки Exiv2 для KDE + +|`libkipi` +|Интерфейс плагинов изображений KDE + +|`libkleo` +|Менеджер сертификатов для KDE + +|`libksane` +|Интерфейс библиотеки SANE для KDE + +|`libkscreen` +|Библиотека управления экраном Plasma5 + +|`libksieve` +|Библиотеки Sieve для KDEPim + +|`libksysguard` +|Библиотека Plasma5 для отслеживания и управления запущенными процессами + +|`mailcommon` +|Общие библиотеки для KDEPim -PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \ - QT_LIBDIR_REL=${QT_LIBDIR_REL} \ - QT_PLUGINDIR_REL=${QT_PLUGINDIR_REL} -.... +|`mailimporter` +|Импорт файлов mbox в KMail -[[qt4-components]] -=== Выбор компонентов +|`mailtransport` +|Библиотека KDE для управления транспортом почты -В переменной `USE_QT4` должны указываться зависимости от отдельных инструментов и библиотек Qt 4. К каждому компоненту можно добавить суффикс, `_build` или `_run`, отражающий, когда должна быть применена зависимость, во время сборки или выполнения, соответственно. Если суффикс отсутствует, зависимость от компонента будет и для времени сборки, и для времени выполнения. Обычно, компоненты библиотек должны указываться без суффиксов, компоненты инструментов - с суффиксом `_build`, а компоненты плагинов - с суффиксом `_run`. Наиболее общие используемые компоненты перечислены ниже (все доступные компоненты перечислены в `_USE_QT4_ALL` в файле [.filename]#/usr/ports/Mk/bsd.qt.mk#): +|`marble` +|Виртуальный глобус и мировой атлас для KDE -.Доступные библиотечные компоненты Qt 4 -[cols="1,1", frame="none", options="header"] -|=== -| Название -| Описание +|`mbox` +|Библиотека KDE для доступа к хранилищам почты в формате MBox -|`corelib` -|основная библиотека (можно опустить, если порт не использует ничего, кроме `corelib`) +|`mbox-importer` +|Импорт файлов mbox в KMail -|`gui` -|библиотека графического пользовательского интерфейса +|`mediaplayer` +|Интерфейс плагина KF5 для функций медиаплеера -|`network` -|сетевая библиотека +|`messagelib` +|Библиотека для обработки сообщений -|`opengl` -|библиотека OpenGL +|`milou` +|Plasma5 Plasmoid для поиска -|`qt3support` -|библиотека совместимости с Qt 3 +|`mime` +|Библиотека для обработки данных MIME -|`qtestlib` -|библиотека модульного тестирования +|`newstuff` +|Библиотека KF5 для загрузки ресурсов приложений из сети -|`script` -|библиотека сценариев +|`notifications` +|Абстракция KF5 для системных уведомлений -|`sql` -|библиотека SQL +|`notifyconfig` +|Система конфигурации KF5 для KNotify -|`xml` -|библиотека XML -|=== +|`okular` +|Универсальная программа для просмотра документов KDE -Вы можете определить, от каких библиотек зависит приложение, запустив `ldd` на основной исполняемый файл после успешной компиляции. +|`oxygen` +|Стиль Plasma5 Oxygen -.Доступные компоненты инструментов Qt 4 -[cols="1,1", frame="none", options="header"] -|=== -| Название -| Описание +|`oxygen-icons5` +|Тема иконок Oxygen для KDE -|`moc` -|мета-объектный компилятор (нужен при построении почти для каждого приложения Qt) +|`package` +|Библиотека KF5 для загрузки и установки пакетов -|`qmake` -|генератор Makefile / утилита построения +|`parts` +|KF5 система плагинов для работы с документами -|`rcc` -|компилятор ресурсов (нужен, если приложение идет вместе с файлами [.filename]#*.rc# или [.filename]#*.qrc#) +|`people` +|Библиотека KF5, предоставляющая доступ к контактам -|`uic` -|компилятор пользовательского интерфейса (нужен, если приложение идет вместе с файлами [.filename]#*.ui#, созданными при помощи Qt Designer, - на практике каждое приложение Qt с GUI) -|=== +|`pim-data-exporter` +|Импорт и экспорт настроек KDE PIM -.Доступные компоненты плагинов Qt 4 -[cols="1,1", frame="none", options="header"] -|=== -| Название -| Описание +|`pimcommon` +|Общие библиотеки для KDEPim -|`iconengines` -|плагин для движка иконок SVG (если приложение поставляется с иконками SVG) +|`pimtextedit` +|Библиотека KDE для утилит редактирования текста, специфичных для PIM -|`imageformats` -|плагины для графических форматов GIF, JPEG, MNG и SVG (если приложение поставляется с графическими файлами) -|=== +|`plasma-browser-integration` +|Компоненты Plasma5 для интеграции браузеров в рабочий стол -[[qt4-components-example]] -.Выбор компонентов Qt 4 -[example] -==== -В этом примере портированное приложение использует библиотеку графического пользовательского интерфейса Qt 4, основную библиотеку Qt 4, все инструменты генерации кода Qt 4 и генератор Makefile Qt 4. Поскольку библиотека `gui` подразумевает зависимость от основной библиотеки, указывать `corelib` нет необходимости. Инструменты генерации кода Qt 4 `moc`, `uic` и `rcc`, а также генератор Makefile `qmake` нужны только для времени построения, поэтому они указаны с суффиксом `_build`: +|`plasma-desktop` +|Plasma5 рабочий стол Plasma -[.programlisting] -.... -USE_QT4= gui moc_build qmake_build rcc_build uic_build -.... +|`plasma-framework` +|KF5 - среда выполнения пользовательского интерфейса на основе плагинов, используемая для создания пользовательских интерфейсов -==== +|`plasma-integration` +|Плагины интеграции Qt Platform Theme для рабочего окружения Plasma -[[using-qmake]] -=== Использование `qmake` +|`plasma-pa` +|Plasma5 Микшер звука Plasma Pulse -.Переменные для портов, использующих `qmake` -[cols="1,1", frame="none", options="header"] -|=== -| Название -| Описание +|`plasma-sdk` +|Приложения Plasma5, полезные для разработки Plasma -|`QMAKE_ARGS` -|Спефицичные для порта флаги QMake для передачи программе `qmake`. +|`plasma-workspace` +|Plasma5 Рабочее пространство Plasma -|`QMAKE_ENV` -|Переменные окружения, устанавливаемые для программы `qmake`. По умолчанию соответствует значению `${CONFIGURE_ENV}`. +|`plasma-workspace-wallpapers` +|Обои Plasma5 -|`QMAKE_PRO` -|Название файла проекта [.filename]#.pro#. По умолчанию имеет пустое значение (с использованием автоопределения). -|=== +|`plotting` +|KF5 облегченный фреймворк для построения графиков -Если вместе с приложением вместо [.filename]#configure# поставляется файл [.filename]#.pro#, вы можете использовать следующее: +|`polkit-kde-agent-1` +|Демон Plasma5, предоставляющий интерфейс аутентификации polkit -[.programlisting] -.... -USES= qmake -USE_QT4= qmake_build -.... +|`powerdevil` +|Инструмент Plasma5 для управления настройками энергопотребления -`USES=qmake` указывает порту на использование `qmake` в процессе конфигурации. Обратите внимание, что `USES=qmake` не подразумевает зависимость от Qt 4 `qmake`. Для этого в значении `USE_QT4` должен присутствовать компонент `qmake_build`. +|`prison` +|Интерфейс API для создания штрихкодов -Приложения Qt часто пишутся в кроссплатформенной манере, и X11/Unix часто не является для них платформой разработки, что в свою очередь часто приводит к соответствующим упущенным моментам: +|`pty` +|Абстракция pty KF5 -* _Отсутствующие дополнительные пути для заголовочных файлов._ Многие приложения идут с поддержкой иконки в системном трее, но пренебрегают смотреть на наличие заголовочных файлов и/или библиотеками в каталогах X11. Вы можете сообщить `qmake`, чтобы она добавила каталоги в пути поиска заголовочных файлов и библиотек через командную строку. К примеру: -+ -[.programlisting] -.... -QMAKE_ARGS+= INCLUDEPATH+=${LOCALBASE}/include \ - LIBS+=-L${LOCALBASE}/lib -.... +|`purpose` +|Предлагает доступные действия для конкретной цели -* _Фиктивные пути установки._ Иногда данные, такие как иконки и файлы .desktop, устанавливаются по умолчанию в каталоги, которые не просматриваются XDG-совместимыми приложениями. Примером является package:editors/texmaker[] - взгляните на [.filename]#patch-texmaker.pro# из каталога [.filename]#files# этого порта, который можно взять в качестве шаблона исправления этого непосредственно в файле проекта `qmake`. +|`qqc2-desktop-style` +|Стиль Qt QuickControl2 для KDE -[[using-kde]] -== Использование KDE +|`runner` +|KF5 параллелизованная система запросов -[[kde4-variables]] -=== Задание переменных KDE 4 +|`service` +|KF5 расширенные плагины и интроспекция сервисов -Если ваше приложение зависит от KDE 4.x, присвойте `USE_KDE4` список требуемых компонентов. Для переопределения типа зависимости компонента могут быть использованы суффиксы `_build` и `_run` (например, `baseapps_run`). Если суффикс не задан, будет использован тип зависимости по умолчанию. Если вы хотите использовать оба типа, добавьте компонент дважды с обоими суффиксами (например, `automoc4_build automoc4_run`). Основные наиболее используемые компоненты перечислены ниже (актуальные компоненты задокументированы в начале файла [.filename]#/usr/ports/Mk/bsd.kde4.mk#): +|`solid` +|Интеграция и обнаружение оборудования KF5 -.Доступные компоненты KDE 4 -[cols="1,1", frame="none", options="header"] -|=== -| Название -| Описание +|`sonnet` +|KF5 библиотека проверки орфографии на основе плагинов -|`kdehier` -|Иерархия основных каталогов KDE +|`syndication` +|Библиотека KDE для обработки RSS-лент -|`kdelibs` -|KDE Developer Platform +|`syntaxhighlighting` +|Движок подсветки синтаксиса KF5 для структурированного текста и кода -|`kdeprefix` -|Если установлено, то порт будет установлен в `${KDE4_PREFIX}` вместо `${LOCALBASE}` +|`systemsettings` +|Настройки системы Plasma5 -|`sharedmime` -|База данных MIME типов для портов KDE +|`texteditor` +|KF5 продвинутый встраиваемый текстовый редактор -|`automoc4` -|automoc для пакетов Qt 4 +|`textwidgets` +|KF5 расширенные виджеты для редактирования текста -|`akonadi` -|Сервер хранения KDE-Pim +|`threadweaver` +|KF5 дополнения к QtDBus -|`soprano` -|Фреймворк Qt 4 RDF +|`tnef` +|KDE API для обработки данных TNEF -|`strigi` -|Поисковые даемон рабочего стола +|`unitconversion` +|Библиотека KF5 для преобразования единиц измерения -|`libkcddb` -|Библиотека KDE CDDB +|`user-manager` +|Пользовательский менеджер Plasma5 -|`libkcompactdisc` -|Библиотека KDE для взаимодействия с аудио-CD +|`wallet` +|KF5 безопасный и унифицированный контейнер для паролей пользователей -|`libkdeedu` -|Библиотеки, используемые для образовательных приложений +|`wayland` +|Обёртка клиентской и серверной библиотек KF5 для библиотек Wayland -|`libkdcraw` -|Библиотека KDE LibRaw +|`widgetsaddons` +|KF5 аддоны для QtWidgets -|`libkexiv2` -|Библиотека KDE Exiv2 +|`windowsystem` +|Библиотека KF5 для доступа к оконной системе -|`libkipi` -| KDE Image Plugin Interface +|`xmlgui` +|KF5 настраиваемые пользователем главные окна -|`libkonq` -|Основная библиотека Konqueror +|`xmlrpcclient` +|Взаимодействие KF5 с XMLRPC-сервисами +|=== -|`libksane` -|Библиотека KDE SANE ("Scanner Access Now Easy") +[[kde5-components-example]] +.Пример `USE_KDE` +[example] +==== +Это простой пример порта для KDE. `USES= cmake` указывает порту использовать CMake, инструмент конфигурации, широко применяемый в проектах KDE (см. crossref:special[using-cmake, Использование `cmake`] для подробного описания). `USE_KDE` добавляет зависимость от библиотек KDE. Необходимые компоненты KDE и другие зависимости можно определить через лог конфигурации. `USE_KDE` не подразумевает `USE_QT`. Если порту требуются некоторые компоненты Qt, укажите их в `USE_QT`. -|`pimlibs` -|Библиотеки KDE-Pim +[.programlisting] +.... +USES= cmake kde:5 qt:5 +USE_KDE= ecm +USE_QT= core buildtools_build qmake_build +.... -|`kate` -|Тектовый редактор +==== -|`marble` -|Виртуальный глобус +[[using-lxqt]] +== Использование LXQt -|`okular` -|Универсальный просмотрщик документов +Приложения, зависящие от LXQt, должны устанавливать `USES+= lxqt` и задавать `USE_LXQT` списком необходимых компонентов из таблицы ниже -|`korundum` -|Привязка Ruby к KDE +[[using-lxqt-components]] +.Доступные компоненты LXQt +[cols="1,1", frame="none", options="header"] +|=== +| Имя +| Описание -|`perlkde` -|Привязка Perl к KDE +|`buildtools` +|Помощники для дополнительных модулей CMake -|`pykde4` -|Привязка Python к KDE +|`libfmqt` +|Привязки Libfm к Qt -|`pykdeuic4` -|Компилятор пользовательского интерфейса PyKDE +|`lxqt` +|Ядро библиотеки LXQt -|`smokekde` -|Библиотеки KDE SMOKE +|`qtxdg` +|Реализация Qt спецификаций freedesktop.org XDG |=== -Порты KDE 4.x устанавливаются в `KDE4_PREFIX`, что в настоящее время соответствует [.filename]#/usr/local/kde4#. Это достигается путем указания компонента `kdeprefix`, который определяет значение по умолчанию для `PREFIX`. Тем не менее, порты учитывают любые `PREFIX`, установленные через переменную окружения `MAKEFLAGS` и/или параметры `make`. - -[[kde4-components-example]] -.Пример `USE_KDE4` +[[lxqt-components-example]] +.Пример `USE_LXQT` [example] ==== -Это простой пример для порта KDE 4. `USES= cmake:outsource` указывает порту использовать CMake, конфигурационный инструмент, широко применяемый в проектах KDE 4 (подробное описание даёт <>). `USE_KDE4` добавляет зависимость от библиотек KDE и заставляет порты использовать `automoc4` во время сборки. Требуемые компоненты KDE и другие зависимости можно определить в журнале configure. `USE_KDE4` не подразумевает `USE_QT4`. Если порт требует какой-либо из компонентов Qt 4, их следует указать в `USE_QT4`. +Это простой пример, `USE_LXQT` добавляет зависимость от библиотек LXQt. Необходимые компоненты LXQt и другие зависимости можно определить из лога конфигурации. [.programlisting] .... -USES= cmake:outsource -USE_KDE4= kdelibs kdeprefix automoc4 -USE_QT4= moc_build qmake_build rcc_build uic_build +USES= cmake lxqt qt:5 tar:xz +USE_QT= core dbus widgets buildtools_build qmake_build +USE_LXQT= buildtools libfmqt .... ==== @@ -978,155 +2944,159 @@ == Использование Java [[java-variables]] -=== Задание переменных +=== Определения переменных -Если вашему порту необходимо наличие Java(TM) Development Kit (JDK(TM)) для построения, работы или даже распаковки дистрибутивного файла, то в нём должна быть задана переменная `USE_JAVA`. +Если порту требуется Java(TM) Development Kit (JDK(TM)) для сборки, запуска или даже извлечения distfile, определите `USE_JAVA`. -В Коллекции Портов присутствуют несколько JDK различных разработчиков и разных версий. Если ваш порт должен использовать одну из этих версий, то вы должны указать, какую именно. Самой последней версией и версией по умолчанию является package:java/openjdk6[]. +В коллекции портов доступно несколько JDK от различных поставщиков и в нескольких версиях. Если порт должен использовать определённую версию, укажите её с помощью переменной `JAVA_VERSION`. Самая актуальная версия — package:java/openjdk18[], также доступны package:java/openjdk17[], package:java/openjdk16[], package:java/openjdk15[], package:java/openjdk14[], package:java/openjdk13[], package:java/openjdk12[], package:java/openjdk11[], package:java/openjdk8[] и package:java/openjdk7[]. -.Переменные, которые которые могут задаваться портами, использующими Java +[[using-java-variables]] +.Переменные, которые могут быть установлены портами, использующими Java [cols="1,1", frame="none", options="header"] |=== | Переменная | Значение |`USE_JAVA` -|Должна быть определена для того, что последующие переменные вступили в действие. +|Определите для остальных переменных, чтобы они имели какой-либо эффект. |`JAVA_VERSION` -|Список версий Java, перечисленных через пробел, подходящих для порта. Опциональный знак `"+"` позволяет вам указать диапазон версий (возможные значения: `1.5[+] 1.6[+] 1.7[+]`). +|Список подходящих версий Java для порта, разделённых пробелами. +Необязательный символ `\+` позволяет указать диапазон версий (допустимые значения: `8[+] 11[\+] 17[+] 18[\+] 19[+] 20[\+] 21[+]`). |`JAVA_OS` -|Список операционных систем, перечисленных через пробел, порты JDK для которых подходят для порта (возможные значения: `native linux`). +|Список разделенных пробелами подходящих операционных систем портов JDK для порта (допустимые значения: `native linux`). |`JAVA_VENDOR` -|Список разработчиков портов JDK, перечисленных через пробел, которые подходят для порта (возможные значения: `freebsd bsdjava sun openjdk`). +|Список подходящих поставщиков портов JDK для порта через пробел (допустимые значения: `openjdk oracle`). |`JAVA_BUILD` -|Если задана, то означает, что выбранный порт JDK должен быть добавлен к зависимостям порта для его построения. +|Когда установлено, добавляет выбранный порт JDK в зависимости сборки. |`JAVA_RUN` -|Если задана, то означает, что выбранный порт JDK должен быть добавлен в зависимостям порта для его работы. +|Когда установлено, добавляет выбранный порт JDK в зависимости времени выполнения. |`JAVA_EXTRACT` -|Если задана, то означает, что выбранный порт JDK должен быть добавлен в зависимостям порта для распаковки его дистрибутивных файлов. +|Когда установлено, добавляет выбранный порт JDK в зависимости для извлечения. |=== -Ниже перечисляются все значения, которые принимают переменные после задания переменной `USE_JAVA`: +Ниже приведен список всех настроек, которые порт получит после установки `USE_JAVA`: -.Переменные, доступные в портах, использующих Java +[[using-java-variables2]] +.Переменные, предоставляемые портам, использующим Java [cols="1,1", frame="none", options="header"] |=== | Переменная | Значение |`JAVA_PORT` -|Название порта JDK (к примеру, `'java/openjdk6'`). +|Имя порта JDK (например, `java/openjdk6`). |`JAVA_PORT_VERSION` -|Полное наименовании версии порта JDK (к примеру, `'1.6.0'`). Если вам нужны только первые две цифры номера версии, используйте `${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/}`. +|Полная версия порта JDK (например, `1.6.0`). Требуются только первые две цифры номера версии, используйте `${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/}`. |`JAVA_PORT_OS` -|Операционная система, используемая портом JDK (к примеру, `'native'`). +|Операционная система, используемая портом JDK (например, `'native'`). |`JAVA_PORT_VENDOR` -|Разработчик порта JDK (к примеру, `'openjdk'`). +|Поставщик порта JDK (например, `'openjdk'`). |`JAVA_PORT_OS_DESCRIPTION` -|Описание операционной системы, используемой портом JDK (к примеру, `'Native'`). +|Описание операционной системы, используемой портом JDK (например, `'Native'`). |`JAVA_PORT_VENDOR_DESCRIPTION` -|Описание разработчика порта JDK (к примеру, `'OpenJDK BSD Porting Team'`). +|Описание поставщика порта JDK (например, `'OpenJDK BSD Porting Team'`). |`JAVA_HOME` -|Маршрут к установочному каталогу JDK (к примеру, [.filename]#'/usr/local/openjdk6'#). +|Путь к каталогу установки JDK (например, [.filename]#'/usr/local/openjdk6'#). |`JAVAC` -|Маршрут к используемому компилятору Java (к примеру, [.filename]#'/usr/local/openjdk6/bin/javac'#. +|Путь к используемому компилятору Java (например, [.filename]#'/usr/local/openjdk6/bin/javac'#). |`JAR` -|Маршрут к используемой утилите `jar` (к примеру, [.filename]#'/usr/local/openjdk6/bin/jar'# или [.filename]#'/usr/local/bin/fastjar'#). +|Путь к инструменту `jar`, который следует использовать (например, [.filename]#'/usr/local/openjdk6/bin/jar'# или [.filename]#'/usr/local/bin/fastjar'#). |`APPLETVIEWER` -|Маршрут к утилите `appletviewer` (к примеру, [.filename]#'/usr/local/openjdk6/bin/appletviewer'#). +|Путь к утилите `appletviewer` (например, [.filename]#'/usr/local/openjdk6/bin/appletviewer'#). |`JAVA` -|Маршрут к выполняемому файлу `java`. Используйте его для запуска Java-программ (к примеру, [.filename]#'/usr/local/openjdk6/bin/java'#). +|Путь к исполняемому файлу `java`. Используется для запуска программ на Java (например, [.filename]#'/usr/local/openjdk6/bin/java'#). |`JAVADOC` -|Маршрут к вспомогательной программе `javadoc`. +|Путь к программе `javadoc`. |`JAVAH` -|Маршрут к программе `javah`. +|Путь к программе `javah`. |`JAVAP` -|Маршрут к программе `javap`. +|Путь к программе `javap`. |`JAVA_KEYTOOL` -|Маршрут к вспомогательной программе `keytool`. +|Путь к утилите `keytool`. |`JAVA_N2A` -|Маршрут к утилите `native2ascii`. +|Путь к инструменту `native2ascii`. |`JAVA_POLICYTOOL` -|Маршрут к программе `policytool`. +|Путь к программе `policytool`. |`JAVA_SERIALVER` -|Маршрут к вспомогательной программе `serialver`. +|Путь к утилите `serialver`. |`RMIC` -|Маршрут к генератору каркаса программ RMI, утилите `rmic`. +|Путь к генератору RMI-заглушек/скелетов, `rmic`. |`RMIREGISTRY` -|Маршрут к программе регистрации RMI, `rmiregistry`. +|Путь к программе реестра RMI, `rmiregistry`. |`RMID` -|Маршрут к программе-даемону RMI `rmid`. +|Путь к программе демона RMI `rmid`. |`JAVA_CLASSES` -|Маршрут к архиву, который содержит файлы классов JDK, [.filename]#${JAVA_HOME}/jre/lib/rt.jar#. +|Путь к архиву, содержащему файлы классов JDK, [.filename]#${JAVA_HOME}/jre/lib/rt.jar#. |=== -Вы можете воспользоваться make-целью `java-debug` для получения информации, необходимой для отладки вашего порта. При её выполнении будут выданы значения многих упомянутых выше переменных. +Используйте цель `java-debug` в make для получения информации для отладки порта. Она отобразит значения многих из перечисленных ранее переменных. -Кроме того, для единообразия установки всех портов Java определены следующие константы: +Кроме того, определены следующие константы, чтобы все порты Java могли быть установлены единообразно: -.Константы, определённые для портов, использующих Java +[[using-java-constants]] +.Константы, определенные для портов, использующих Java [cols="1,1", frame="none", options="header"] |=== | Константа | Значение |`JAVASHAREDIR` -|Корневой каталог для всего, что связано с Java. По умолчанию: [.filename]#${PREFIX}/shared/java#. +|Базовый каталог для всего, связанного с Java. По умолчанию: [.filename]#${PREFIX}/share/java#. |`JAVAJARDIR` -|Каталог, в который должны устанавливаться JAR-файлы. По умолчанию: [.filename]#${JAVASHAREDIR}/classes#. +|Каталог, в котором установлены JAR-файлы. По умолчанию: [.filename]#${JAVASHAREDIR}/classes#. |`JAVALIBDIR` -|Каталог, в который устанавливаются JAR-файлы из других портов. По умолчанию: [.filename]#${LOCALBASE}/shared/java/classes#. +|Каталог, в котором расположены JAR-файлы, установленные другими портами. По умолчанию: [.filename]#${LOCALBASE}/share/java/classes#. |=== -Соответствующие записи определяются в обоих переменных `PLIST_SUB` (описана в crossref:plist[plist-sub,Изменение содержимого pkg-plist в зависимости от make-переменных]) и `SUB_LIST`. +Связанные записи определены как в `PLIST_SUB` (документировано в crossref:plist[plist-sub,Изменение pkg-plist на основе переменных Make]), так и в `SUB_LIST`. [[java-building-with-ant]] -=== Построение с Ant +=== Сборка с Ant -Если построение порта производится с использованием Apache Ant, то необходимо определить `USE_ANT`. Таким образом Ant становится подкомандой make. Если в порте не определена цель `do-build`, то будет установлена цель по умолчанию, которая просто запускает Ant в соответствии со значением `MAKE_ENV`, `MAKE_ARGS` и `ALL_TARGET`. Это похоже на механизм `USES= gmake`, который описан в <>. +Когда порт должен собираться с использованием Apache Ant, он должен определять `USE_ANT`. Таким образом, Ant считается командой sub-make. Если цель `do-build` не определена в порте, будет установлена цель по умолчанию, которая запускает Ant в соответствии с `MAKE_ENV`, `MAKE_ARGS` и `ALL_TARGET`. Это аналогично механизму `USES= gmake`, который документирован в crossref:special[building, Building Mechanisms]. [[java-best-practices]] -=== Практические рекомендации +=== Лучшие практики -При портировании Java-библиотеки ваш порт должен устанавливать JAR-файл(ы) в каталог [.filename]#${JAVAJARDIR}#, а все остальные данные в каталог [.filename]#${JAVASHAREDIR}/${PORTNAME}# (за исключением документации, о которой пойдёт речь ниже). Для уменьшения размера упакованного файла вы можете сослаться на JAR-файл(ы) непосредственно в файле [.filename]#Makefile#. Просто воспользуйтесь следующей директивой (в которой [.filename]#myport.jar# является именем JAR-файла, устанавливаемого как часть порта): +При переносе библиотеки Java порт должен устанавливать JAR-файл(ы) в [.filename]#${JAVAJARDIR}#, а все остальное — в [.filename]#${JAVASHAREDIR}/${PORTNAME}# (за исключением документации, см. ниже). Чтобы уменьшить размер упаковочного файла, ссылайтесь на JAR-файл(ы) напрямую в [.filename]#Makefile#. Используйте следующую инструкцию (где [.filename]#myport.jar# — имя JAR-файла, устанавливаемого как часть порта): [.programlisting] .... -PLIST_FILES+= %%JAVAJARDIR%%/myport.jar +PLIST_FILES+= ${JAVAJARDIR}/myport.jar .... -При портировании Java-приложения порт обычно устанавливает всё в один каталог (в том числе все свои JAR-зависимости). В этом отношении настоятельно рекомендуется использование [.filename]#${JAVASHAREDIR}/${PORTNAME}#. На усмотрение создателя порта остаётся решение вопроса о том, устанавливать ли дополнительные JAR-зависимости в этот каталог или напрямую использовать уже установленные (из каталога [.filename]#${JAVAJARDIR}#). +При переносе Java-приложения порт обычно устанавливает все компоненты в единый каталог (включая зависимости в виде JAR-файлов). В этом отношении настоятельно рекомендуется использовать [.filename]#${JAVASHAREDIR}/${PORTNAME}#. Портеру предстоит решить, устанавливать ли дополнительные JAR-зависимости в этот каталог или использовать уже установленные (из [.filename]#${JAVAJARDIR}#). -При портировании приложения Java(TM), для запуска сервиса которого требуется сервер приложений, такой как package:www/tomcat7[], для производителя в порядке вещей является распространение файла [.filename]#.war#. Файл [.filename]#.war# - это Веб-приложение АРхивированное и оно распаковывается при вызове данным приложением. Избегайте добавлять файлы [.filename]#.war# в [.filename]#pkg-plist#. Это не является наилучшим решением. Сервер приложений производит расширение архива [.filename]#war# без должной его очистки при удалении порта. Более подходящим способом работы с этим файлом будет распаковать архив, установить файлы и добавить их в [.filename]#pkg-plist#. +При переносе Java(TM)-приложения, которое требует сервера приложений, такого как package:www/tomcat7[], для запуска службы, вендор часто распространяет файл [.filename]#.war#. [.filename]#.war# — это веб-архив приложения (Web application ARchive), который извлекается при вызове приложением. Избегайте добавления [.filename]#.war# в [.filename]#pkg-plist#. Это не считается лучшей практикой. Сервер приложений развернет архив war, но не очистит его должным образом при удалении порта. Более предпочтительный способ работы с этим файлом — извлечь архив, затем установить файлы и, наконец, добавить эти файлы в [.filename]#pkg-plist#. [.programlisting] .... @@ -1140,20 +3110,20 @@ do-install: cd ${WRKDIR} && \ ${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME} - @cd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \* ${WEBAPPDIR}/${PORTDIRNAME} + cd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \* ${WEBAPPDIR}/${PORTDIRNAME} .... -Вне зависимости от типа вашего порта (библиотека это или приложение), дополнительная документация должна устанавливаться <>, что и для других портов. Известно, что в зависимости от используемой версии JDK утилита JavaDoc генерирует различные наборы файлов. Для портов, которые не привязаны к использованию определённой версии JDK, таким образом становится проблематичным определить список файлов для упаковки ([.filename]#pkg-plist#). Это одна из причин, по которой создателям портов настоятельно рекомендуется использовать макрос `PORTDOCS`. Более того, даже если вы сможете угадать набор файлов, который будет сгенерирован утилитой `javadoc`, размер получающегося файла [.filename]#pkg-plist# голосует за использование `PORTDOCS`. +Независимо от типа порта (библиотека или приложение), дополнительная документация устанавливается crossref:makefiles[install-documentation,в том же месте], что и для любого другого порта. Известно, что инструмент Javadoc создает разный набор файлов в зависимости от версии используемого JDK. Для портов, которые не требуют использования конкретной версии JDK, указание списка упаковки ([.filename]#pkg-plist#) становится сложной задачей. Это одна из причин, по которой разработчикам портов настоятельно рекомендуется использовать `PORTDOCS`. Более того, даже если набор файлов, генерируемых `javadoc`, можно предсказать, размер результирующего [.filename]#pkg-plist# говорит в пользу использования `PORTDOCS`. -Значением по умолчанию для переменной `DATADIR` является [.filename]#${PREFIX}/shared/${PORTNAME}#. Хорошей идеей является переопределение для Java-портов значения `DATADIR` как [.filename]#${JAVASHAREDIR}/${PORTNAME}#. На самом деле `DATADIR` автоматически добавляется к `PLIST_SUB` (это описано в crossref:plist[plist-sub,Изменение содержимого pkg-plist в зависимости от make-переменных]), так что вы сможете использовать `%%DATADIR%%` непосредственно в [.filename]#pkg-plist#. +Значение по умолчанию для `DATADIR` — [.filename]#${PREFIX}/share/${PORTNAME}#. Рекомендуется переопределить `DATADIR` на [.filename]#${JAVASHAREDIR}/${PORTNAME}# для портов Java. Действительно, `DATADIR` автоматически добавляется в `PLIST_SUB` (документировано в crossref:plist[plist-sub,Изменение pkg-plist на основе переменных Make]), поэтому используйте `%%DATADIR%%` напрямую в [.filename]#pkg-plist#. -Что касается выбора между построением портов Java из исходных текстов или их прямой установкой из бинарных дистрибутивов, то на момент создания этого текста определённой политики на этот счёт не существует. Однако участники http://www.freebsd.org/java/[Проекта FreeBSD Java] рекомендуют создателям портов строить их из исходных текстов, если эта задача является несложной. +Что касается выбора между сборкой портов Java из исходного кода или их непосредственной установкой из бинарного дистрибутива, на момент написания документации определённой политики не существует. Однако участники https://www.freebsd.org/java/[FreeBSD Java Project] рекомендуют сопровождающим портов по возможности собирать их из исходного кода, если это не представляет сложностей. -Все возможности, которые были описаны в этом разделе, реализованы в файле [.filename]#bsd.java.mk#. Если вы предположите, что вашему порту требуется менее тривиальная поддержка Java, пожалуйста, взгляните сначала на http://svnweb.FreeBSD.org/ports/head/Mk/bsd.java.mk?view=markup[журнал изменений bsd.java.mk в Subversion], так как для документирования последних изменений требуется какое-то время. Затем, если вы думаете, что не хватающая вам поддержка окажется полезной для многих других портов Java, обсудите ваш вопрос в freebsd-java. +Все функции, представленные в этом разделе, реализованы в [.filename]#bsd.java.mk#. Если порту требуется более сложная поддержка Java, сначала ознакомьтесь с https://cgit.FreeBSD.org/ports/tree/Mk/bsd.java.mk[историей изменений bsd.java.mk], так как документирование новых функций обычно занимает некоторое время. Затем, если отсутствующая поддержка будет полезна для многих других Java-портов, не стесняйтесь обсудить это на списке рассылки freebsd-java. -Хотя в базе сообщений об ошибках для соответствующих PR имеется категория `java`, она относится к работе над портированием JDK, которые проводит Проект FreeBSD Java. Таким образом, вы должны относить свой Java-порт, как и любой другой, к категории `ports`, если решаемый вами вопрос не относится ни к реализации JDK, ни к [.filename]#bsd.java.mk#. +Хотя существует категория `java` для PR, она относится к усилиям по портированию JDK в рамках проекта FreeBSD Java. Поэтому отправляйте порт Java в категорию `ports`, как и любой другой порт, если только проблема не связана либо с реализацией JDK, либо с [.filename]#bsd.java.mk#. -Похожим образом определена политика по отношению к `CATEGORIES` порта Java, которая подробно описана в crossref:makefiles[makefile-categories, Разделение по категориям]. +Аналогично существует определённая политика в отношении `CATEGORIES` для портов Java, которая подробно описана в crossref:makefiles[makefile-categories,Категоризация]. [[using-php]] == Веб-приложения, Apache и PHP @@ -1161,315 +3131,334 @@ [[using-apache]] === Apache +[[using-apache-variables]] .Переменные для портов, использующих Apache [cols="1,1", frame="none"] |=== |`USE_APACHE` -|Порт требует Apache. Возможные значения: `yes` (берёт любую версию), `22`, `24`, `22-24`, `22+` и так далее. Версия по умолчанию `22`. Более подробная информация содержится в файле [.filename]#ports/Mk/bsd.apache.mk# и на странице http://wiki.freebsd.org/Apache/[wiki.freebsd.org/Apache/]. +|Порт требует Apache. Возможные значения: `yes` (любая версия), `22`, `24`, `22-24`, `22+` и т.д. Версия APACHE по умолчанию — `22`. Подробнее см. в [.filename]#ports/Mk/bsd.apache.mk# и на https://wiki.freebsd.org/Apache/[wiki.freebsd.org/Apache/]. |`APXS` -|Полный путь к исполняемому файлу `apxs`. Может быть переопределен в вашем порту. +|Полный путь к бинарному файлу `apxs`. Может быть переопределён в порте. |`HTTPD` -|Полный путь к исполняемому файлу `httpd`. Может быть переопределен в вашем порту. +|Полный путь к бинарному файлу `httpd`. Может быть переопределён в порте. |`APACHE_VERSION` -|Версия установленного Apache (переменная только для чтения). Эта переменная доступна только после подключения [.filename]#bsd.port.pre.mk#. Возможные значения: `22`, `24`. +|Версия установленной Apache (переменная только для чтения). Эта переменная доступна только после включения [.filename]#bsd.port.pre.mk#. Возможные значения: `22`, `24`. |`APACHEMODDIR` -|Каталог для модулей Apache. Значение переменной автоматически подставляется в [.filename]#pkg-plist#. +|Каталог для модулей Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#. |`APACHEINCLUDEDIR` -|Каталог для заголовков Apache. Значение переменной автоматически подставляется в [.filename]#pkg-plist#. +|Каталог для заголовков Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#. |`APACHEETCDIR` -|Каталог для конфигурационных файлов Apache. Значение переменной автоматически подставляется в [.filename]#pkg-plist#. +|Каталог для файлов конфигурации Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#. |=== -.Используемые переменные при портировании модулей Apache +[[using-apache-modules]] +.Полезные переменные для переноса модулей Apache [cols="1,1", frame="none"] |=== |`MODULENAME` -|Название модуля. Значением по умолчанию является `PORTNAME`. Пример: `mod_hello` +|Имя модуля. Значение по умолчанию — `PORTNAME`. Пример: `mod_hello` |`SHORTMODNAME` -|Краткое название модуля. Наследуется автоматически от `MODULENAME`, но может быть переопределено. Пример: `hello` +|Короткое имя модуля. Автоматически определяется из `MODULENAME`, но может быть переопределено. Пример: `hello` |`AP_FAST_BUILD` -|Использовать `apxs` для компиляции и установки модуля. +|Используйте `apxs` для компиляции и установки модуля. |`AP_GENPLIST` -|Также автоматически создает [.filename]#pkg-plist#. +|Также автоматически создаёт файл [.filename]#pkg-plist#. |`AP_INC` -|Добавляет каталог к пути поиска заголовков во время компиляции. +|Добавляет каталог в путь поиска заголовков во время компиляции. |`AP_LIB` -|Добавляет каталог к пути поиска библиотек во время компиляции. +|Добавляет каталог в путь поиска библиотек во время компиляции. |`AP_EXTRAS` -|Дополнительные флаги, передаваемые `apxs`. +|Дополнительные флаги для передачи в `apxs`. |=== [[web-apps]] === Веб-приложения -Веб-приложения следует устанавливать в [.filename]#PREFIX/www/appname#. Для вашего удобства этот путь одинаково доступен в [.filename]#Makefile# и [.filename]#pkg-plist# как переменная `WWWDIR`, а путь относительно `PREFIX` доступен в [.filename]#Makefile# как `WWWDIR_REL`. +Веб-приложения должны быть установлены в [.filename]#PREFIX/www/appname#. Этот путь доступен как в [.filename]#Makefile#, так и в [.filename]#pkg-plist# как `WWWDIR`, а путь относительно `PREFIX` доступен в [.filename]#Makefile# как `WWWDIR_REL`. -Пользователь и группа процесса веб-сервера доступны как `WWWOWN` и `WWWGRP`, в случае если вам нужно изменить владельца для некоторых файлов. Значением по умолчанию и для владельца, и для группы является `www`. Если вы хотите использовать в вашем порте другие значения, воспользуйтесь для этого нотацией `WWWOWN?= myuser`, чтобы позволить пользователю легко переопределить их. +Пользователь и группа процесса веб-сервера доступны как `WWWOWN` и `WWWGRP`, если необходимо изменить владельца некоторых файлов. Значения по умолчанию для обоих — `www`. Используйте `WWWOWN?= myuser` и `WWWGRP?= mygroup`, если порту требуются другие значения. Это позволяет пользователю легко их переопределить. + +[IMPORTANT] +==== +Используйте `WWWOWN` и `WWWGRP` с осторожностью. Помните, что каждый файл, доступный для записи веб-серверу, представляет собой потенциальную угрозу безопасности. +==== -Не добавляйте зависимость от Apache, если веб-приложение явным образом не нуждается в Apache. Учитывайте, что пользователи могут пожелать запустить ваше веб-приложение на другом веб-сервере помимо Apache. +Не зависьте от Apache, если веб-приложение явно не требует Apache. Учитывайте, что пользователи могут захотеть запускать веб-приложение на другом веб-сервере, кроме Apache. [[php-variables]] === PHP -.Переменные для портов, использующих PHP -[cols="1,1", frame="none"] -|=== -|`USE_PHP` -|Порт требует PHP. Значение `yes` добавляет зависимость от PHP. Вместо этого может быть указан перечень требуемых расширений PHP. Пример: `pcre xml gettext` +Веб-приложения PHP объявляют свою зависимость от него с помощью `USES=php`. Подробнее см. в crossref:uses[uses-php,`php`]. -|`DEFAULT_PHP_VER` -|Выбирает старший номер версии, с которым будет установлен PHP как зависимость в случае, когда PHP еще не установлен. По умолчанию `5`. Возможные значения: `4`, `5` +[[php-pear]] +=== Модули PEAR -|`IGNORE_WITH_PHP` -|Порт не работает с PHP данной версии. Возможные значения: `4`, `5` +Портирование модулей PEAR — это очень простой процесс. -|`USE_PHPIZE` -|Порт будет построен как расширение PHP. +Добавьте `USES=pear` в [.filename]#Makefile# порта. Фреймворк установит соответствующие файлы в нужные места и автоматически сгенерирует plist во время установки. -|`USE_PHPEXT` -|Порт будет считаться расширением PHP, включая установку и регистрацию в реестре расширений. +[[pear-makefile]] +.Пример Makefile для PEAR Class +[example] +==== +[.programlisting] +.... +PORTNAME= Date +DISTVERSION= 1.4.3 +CATEGORIES= devel www pear -|`USE_PHP_BUILD` -|Установить PHP как зависимость времени построения. +MAINTAINER= someone@example.org +COMMENT= PEAR Date and Time Zone Classes +WWW= https://pear.php.net/package/Date/ -|`WANT_PHP_CLI` -|Хочет CLI (командная строка) версию PHP. +USES= pear -|`WANT_PHP_CGI` -|Хочет CGI версию PHP. +.include +.... -|`WANT_PHP_MOD` -|Хочет PHP как модуль Apache. +==== -|`WANT_PHP_SCR` -|Хочет CLI или CGI версию PHP. +[TIP] +==== +Модули PEAR будут автоматически преобразованы в порт с флейвором с использованием crossref:flavors[flavors-auto-php,флейворов PHP]. +==== -|`WANT_PHP_WEB` -|Хочет модуль Apache или CGI версию PHP. -|=== +[NOTE] +==== +Если используется нестандартный `PEAR_CHANNEL`, зависимости для сборки и выполнения будут добавлены автоматически. +==== -=== Модули PEAR +[IMPORTANT] +==== +Модули PEAR не требуют определения `PKGNAMESUFFIX`, так как он автоматически заполняется с использованием `PEAR_PKGNAMEPREFIX`. Если порту необходимо добавить к `PKGNAMEPREFIX`, он также должен использовать `PEAR_PKGNAMEPREFIX`, чтобы отличать различные флейворы. +==== -Портирование модулей PEAR является очень простым процессом. +[[php-horde]] +==== Модули Horde -Используйте переменные `FILES`, `TESTS`, `DATA`, `SQLS`, `SCRIPTFILES`, `DOCS` and `EXAMPLES` для перечисления файлов, которые вы хотите установить. Все перечисленные файлы будут автоматически установлены в подходящие места и добавлены в [.filename]#pkg-plist#. +Также и перенос модулей Horde является простым процессом. -Подключите [.filename]#${PORTSDIR}/devel/pear/bsd.pear.mk# на последней строке [.filename]#Makefile#. +Добавьте `USES=horde` в [.filename]#Makefile# порта. Фреймворк установит соответствующие файлы в нужные места и автоматически сгенерирует plist во время установки. -[[pear-makefile]] -.Пример Makefile для классов PEAR +Переменные `USE_HORDE_BUILD` и `USE_HORDE_RUN` могут использоваться для добавления зависимостей времени сборки и выполнения от других модулей Horde. Полный список доступных модулей можно найти в [.filename]#Mk/Uses/horde.mk#. + +[[horde-Makefile]] +.Пример Makefile для модуля Horde [example] ==== [.programlisting] .... -PORTNAME= Date -PORTVERSION= 1.4.3 +PORTNAME= Horde_Core +DISTVERSION= 2.14.0 CATEGORIES= devel www pear -MAINTAINER= example@domain.com -COMMENT= PEAR Date and Time Zone Classes +MAINTAINER= horde@FreeBSD.org +COMMENT= Horde Core Framework libraries +WWW= https://pear.horde.org/ -BUILD_DEPENDS= ${PEARDIR}/PEAR.php:${PORTSDIR}/devel/pear-PEAR -RUN_DEPENDS:= ${BUILD_DEPENDS} +OPTIONS_DEFINE= KOLAB SOCKETS +KOLAB_DESC= Enable Kolab server support +SOCKETS_DESC= Depend on sockets PHP extension -FILES= Date.php Date/Calc.php Date/Human.php Date/Span.php \ - Date/TimeZone.php -TESTS= test_calc.php test_date_methods_span.php testunit.php \ - testunit_date.php testunit_date_span.php wknotest.txt \ - bug674.php bug727_1.php bug727_2.php bug727_3.php \ - bug727_4.php bug967.php weeksinmonth_4_monday.txt \ - weeksinmonth_4_sunday.txt weeksinmonth_rdm_monday.txt \ - weeksinmonth_rdm_sunday.txt -DOCS= TODO -_DOCSDIR= . +USES= horde +USE_PHP= session -.include -.include "${PORTSDIR}/devel/pear/bsd.pear.mk" -.include +USE_HORDE_BUILD= Horde_Role +USE_HORDE_RUN= Horde_Role Horde_History Horde_Pack \ + Horde_Text_Filter Horde_View + +KOLAB_USE= HORDE_RUN=Horde_Kolab_Server,Horde_Kolab_Session +SOCKETS_USE= PHP=sockets + +.include .... ==== +[TIP] +==== +Поскольку модули Horde также являются модулями PEAR, они будут автоматически преобразованы с использованием crossref:flavors[flavors-auto-php,флейворов PHP]. +==== + [[using-python]] == Использование Python -Коллекция Портов поддерживает параллельную установку множества версий Python. Следует убедиться, что в портах используется правильный интерпретатор `python` в соответствии с переменной `PYTHON_VERSION`, установленной пользователем. По большей части это означает замену пути к исполняемому файлу `python` в сценариях на значение переменной `PYTHON_CMD`. +Коллекция портов поддерживает параллельную установку нескольких версий Python. Порты должны использовать правильный интерпретатор `python` в соответствии с настраиваемым пользователем параметром `PYTHON_VERSION`. Важнее всего заменить путь к исполняемому файлу `python` в скриптах на значение `PYTHON_CMD`. -Порты, устанавливающие файлы под каталог `PYTHON_SITELIBDIR`, должны использовать префикс вида `pyXY-`, таким образом названия пакетов будут включать в себя версию Python, с которой они установлены. +Порты, которые устанавливают файлы в `PYTHON_SITELIBDIR`, должны использовать префикс имени пакета `pyXY-`, чтобы их имя пакета включало версию Python, для которой они предназначены. [.programlisting] .... PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} .... -.Переменные для портов, которые используют Python + +[[using-python-variables]] +.Наиболее полезные переменные для портов, использующих Python [cols="1,1", frame="none"] |=== -|`USE_PYTHON` -|Для этого порта нужен Python. Минимальная требуемая версия может быть указана с таким значением как `2.6+`. Также можно указан диапазон версий с разделением двух версий через -, например: `2.6-2.7` +|`USES=python` +|Порту требуется Python. Минимально необходимая версия может быть указана с такими значениями, как `3.10+`. Диапазоны версий также можно указать, разделив две версии дефисом: `USES=python:3.8-3.9`. Обратите внимание, что `USES=python` _не_ включает Python 2.7, его нужно запрашивать явно с помощью `USES=python:2.7+`. + +|`USE_PYTHON=distutils` +|Используйте Python distutils для настройки, компиляции и установки. Это требуется, когда порт поставляется с [.filename]#setup.py#. Это переопределяет цели `do-build` и `do-install`, а также может переопределить `do-configure`, если `GNU_CONFIGURE` не определён. Кроме того, подразумевается `USE_PYTHON=flavors`. + +|`USE_PYTHON=autoplist` +|Создать список пакетов автоматически. Это также требует установки `USE_PYTHON=distutils`. + +|`USE_PYTHON=concurrent` +|Порт будет использовать уникальный префикс, обычно `PYTHON_PKGNAMEPREFIX`, для определённых каталогов, таких как `EXAMPLESDIR` и `DOCSDIR`, а также добавлять суффикс — версию Python из `PYTHON_VER` — к устанавливаемым бинарным файлам и скриптам. Это позволяет устанавливать порты для разных версий Python одновременно, что в противном случае приводило бы к конфликту файлов. -|`USE_PYDISTUTILS` -|Использовать дистрибутивные утилиты (distutils) Python для конфигурации, компиляции и установки. Необходимо, если порт использует [.filename]#setup.py#. Переопределяет цели `do-build` и `do-install` и также может переопределять `do-configure`, если не определена `GNU_CONFIGURE`. +|`USE_PYTHON=flavors` +|Порт не использует distutils, но по-прежнему поддерживает несколько версий Python. `FLAVORS` будет установлен в поддерживаемые версии Python. Дополнительную информацию см. в crossref:flavors[flavors-auto-python,`USES`=python и флейворы]. + +|`USE_PYTHON=optsuffix` +|Если текущая версия Python не является версией по умолчанию, порт получит `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. Полезно только для флейворов. |`PYTHON_PKGNAMEPREFIX` -|Используется как `PKGNAMEPREFIX` для отличия пакетов, использующих разные версии Python. Пример: `py24-` +|Используется как `PKGNAMEPREFIX` для различения пакетов разных версий Python. Пример: `py27-` |`PYTHON_SITELIBDIR` -|Местонахождение дерева site-packages, которое содержит путь установки Python (обычно, `LOCALBASE`). Переменная `PYTHON_SITELIBDIR` может быть очень полезной при установке модулей Python. +|Расположение дерева site-packages, которое содержит путь установки Python (обычно `LOCALBASE`). `PYTHON_SITELIBDIR` может быть очень полезно при установке модулей Python. |`PYTHONPREFIX_SITELIBDIR` -|Вариант PYTHON_SITELIBDIR без PREFIX. По возможности всегда используйте `%%PYTHON_SITELIBDIR%%` в [.filename]#pkg-plist#. Значением по умолчанию для `%%PYTHON_SITELIBDIR%%` является `lib/python%%PYTHON_VERSION%%/site-packages`. +|Вариант PREFIX-clean для PYTHON_SITELIBDIR. Всегда используйте `%%PYTHON_SITELIBDIR%%` в [.filename]#pkg-plist#, когда это возможно. Значение по умолчанию для `%%PYTHON_SITELIBDIR%%` — `lib/python%%PYTHON_VERSION%%/site-packages` |`PYTHON_CMD` -|Командная строка интерпретатора Python, включая номер версии. +|Интерпретатор командной строки Python, включая номер версии. +|=== +[[using-python-variables-helpers]] +.Помощники зависимостей модуля Python +[cols="1,1", frame="none"] +|=== |`PYNUMERIC` -|Строка зависимости для расширения numeric. +|Строка зависимости для числового расширения. |`PYNUMPY` -|Строка зависимости для нового расширения numeric, numpy (PYNUMERIC объявлен устаревшим вышестоящим производителем). +|Строка зависимости для нового числового расширения, numpy. (PYNUMERIC устарел у вендора). |`PYXML` -|Строка зависимости для расширения XML (не нужно для Python 2.0 и выше, т.к. включено в основной дистрибутив). -|=== - -Полный перечень доступных переменных можно найти в [.filename]#/usr/ports/Mk/bsd.python.mk#. - -Некоторые приложения на Python заявляют о поддержке `DESTDIR` (требуется для staging), которая не работает (в частности, у Mailman до версии 2.1.16). Ограничение можно обойти путём перекомпиляции сценариев. Например, это можно выполнить в цели `post-build`. С учётом того, что после установки предполагаемое место размещения сценариев Python будет находиться в `PYTHONPREFIX_SITELIBDIR`, можно применить следующее решение: - -[.programlisting] -.... -(cd ${STAGEDIR}${PREFIX} \ - && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ - -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}) -.... +|Строка зависимости для расширения XML (не требуется для Python 2.0 и выше, так как оно также входит в базовую поставку). -Эта команда перекомпилирует исходный текст с заменой путей на относительные к каталогу сборки, а также дописывает значение `PREFIX` перед именем файла, записанного в выходном файле с промежуточным представлением, с использованием `-d`. `-f` требуется для безусловной перекомпиляции, `:S;${PREFIX}/;;` удаляет префиксы из значения переменной `PYTHONPREFIX_SITELIBDIR`, чтобы сделать его относительным к `PREFIX`. +|`PY_ENUM34` +|Условная зависимость от пакета package:devel/py-enum34[] в зависимости от версии Python. -Для этого требуется Python 2.7 или выше. Это не работает с Python 2.6. +|`PY_ENUM_COMPAT` +|Условная зависимость от пакета package:devel/py-enum-compat[] в зависимости от версии Python. -[[using-tcl]] -== Использование Tcl/Tk +|`PY_PATHLIB` +|Условная зависимость от пакета package:devel/py-pathlib[] в зависимости от версии Python. -В Коллекции Портов поддерживается одновременная установка множественных версий Tcl/Tk. Порты должны пытаться поддерживать по крайней мере версию Tcl/Tk, используемую по умолчанию, и выше с помощью переменных `USE_TCL` и `USE_TK`. Желаемую версию `tcl` можно указать в переменной `WITH_TCL_VER`. +|`PY_IPADDRESS` +|Условная зависимость от пакета package:net/py-ipaddress[] в зависимости от версии Python. -.Наиболее востребованные переменные для портов, которые используют Tcl/Tk -[cols="1,1", frame="none"] +|`PY_FUTURES` +|Условная зависимость от пакета package:devel/py-futures[] в зависимости от версии Python. |=== -|`USE_TCL` -|Порт зависит от библиотеки Tcl (не оболочки). Минимальную требуемую версию можно указать с использованием таких значений, как 84+. Отдельные неподдерживаемые версии указываются в переменной `INVALID_TCL_VER`. -|`USE_TCL_BUILD` -|Tcl нужен для порта только на время сборки. +Полный список доступных переменных можно найти в [.filename]#/usr/ports/Mk/Uses/python.mk#. -|`USE_TCL_WRAPPER` -|Эту новую переменную следует использовать для портов, для которых требуется оболочка Tcl и не требуется конкретная версия `tclsh`. Обертка `tclsh` устанавливается в систему. Пользователь может указать желаемую оболочку `tcl` для использования. +[IMPORTANT] +==== +Все зависимости для портов Python, использующих crossref:flavors[flavors-auto-python,флейворы Python] (с `USE_PYTHON=distutils` или `USE_PYTHON=flavors`), должны иметь флейвор Python, добавленную к их origin с помощью `@${PY_FLAVOR}`. См. crossref:special[python-Makefile,Makefile для простого модуля Python]. +==== -|`WITH_TCL_VER` -|Определяемые пользователем переменные, которые устанавливают желаемую версию Tcl. +[[python-Makefile]] +.Makefile для Простого Модуля Python +[example] +==== +[.programlisting] +.... +PORTNAME= sample +DISTVERSION= 1.2.3 +CATEGORIES= devel -|`UNIQUENAME_WITH_TCL_VER` -|Подобно `WITH_TCL_VER`, но для каждого порта. +MAINTAINER= fred.bloggs@example.com +COMMENT= Python sample module +WWW= https://example.com/project/sample/ -|`USE_TCL_THREADS` -|Требует многопоточную сборку Tcl/Tk. +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} -|`USE_TK` -|Порт зависит от библиотеки Tk (не от предпочитаемой оболочки). Подразумевает `USE_TCL` с тем же значением. Для большей информации смотрите описание переменной `USE_TCL`. +USES= python +USE_PYTHON= autoplist distutils -|`USE_TK_BUILD` -|Аналогично `USE_TCL_BUILD`. +.include +.... -|`USE_TK_WRAPPER` -|Аналогично `USE_TCL_WRAPPER`. +==== -|`WITH_TK_VER` -|Аналогично `WITH_TCL_VER`, подразумевает `WITH_TCL_VER` той же версии. -|=== +Некоторые приложения на Python заявляют о поддержке `DESTDIR` (что необходимо для промежуточной сборки), но она не работает (например, Mailman до версии 2.1.16). Это можно обойти, перекомпилировав скрипты. Это можно сделать, например, в цели `post-build`. Предполагая, что Python-скрипты должны находиться в `PYTHONPREFIX_SITELIBDIR` после установки, можно применить следующее решение: -Полный перечень доступных переменных находится в [.filename]#/usr/ports/Mk/bsd.tcl.mk#. +[.programlisting] +.... +(cd ${STAGEDIR}${PREFIX} \ + && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ + -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}) +.... -[[using-emacs]] -== Использование Emacs +Это перекомпилирует исходники с путём, относительным к stage-директории, и добавляет значение `PREFIX` к имени файла, записанному в байт-компилированном выходном файле с помощью `-d`. `-f` требуется для принудительной перекомпиляции, а `:S;${PREFIX}/;;` удаляет префиксы из значения `PYTHONPREFIX_SITELIBDIR`, чтобы сделать его относительным к `PREFIX`. -Этот раздел ещё предстоит написать. +[[using-tcl]] +== Использование Tcl/Tk -[[using-ruby]] -== Использование Ruby +Коллекция Ports поддерживает параллельную установку нескольких версий Tcl/Tk. Порты должны стараться поддерживать как минимум версию Tcl/Tk по умолчанию и выше с помощью `USES=tcl`. Можно указать желаемую версию `tcl`, добавив `:_xx_`, например, `USES=tcl:85`. -.Полезные переменные для портов, использующих Ruby -[cols="1,1", frame="none", options="header"] +[[using-tcl-variables]] +.Самые полезные переменные только для чтения для портов, использующих Tcl/Tk +[cols="1,1", frame="none"] |=== -| Переменная -| Описание +|`TCL_VER` +| выбранная версия Tcl major.minor -|`USE_RUBY` -|Порт требует Ruby. - -|`USE_RUBY_EXTCONF` -|Порт использует для конфигурации [.filename]#extconf.rb#. - -|`USE_RUBY_SETUP` -|Порт использует для конфигурации [.filename]#setup.rb#. - -|`RUBY_SETUP` -|Устанавливает альтернативное имя для [.filename]#setup.rb#. Распространенным значением является [.filename]#install.rb#. -|=== +|`TCLSH` +| полный путь к интерпретатору Tcl -Следующая таблица отражает некоторые переменные, доступные авторам портов через инфраструктуру портов. Эти переменные должны использоваться для установки файлов в правильное месторасположение. Используйте их в [.filename]#pkg-plist# как можно больше. Эти переменные не должны переопределяться в самом порте. +|`TCL_LIBDIR` +| путь к библиотекам Tcl -.Отобранные переменные только для чтения для портов, использующих Ruby -[cols="1,1,1", frame="none", options="header"] -|=== -| Переменная -| Описание -| Примерное значение +|`TCL_INCLUDEDIR` +| путь к заголовочным файлам Tcl C -|`RUBY_PKGNAMEPREFIX` -|Используется как `PKGNAMEPREFIX` для различия пакетов от разных версий Ruby. -|`ruby18-` +|`TCL_PKG_LIB_PREFIX` +| Префикс библиотеки, согласно TIP595 -|`RUBY_VERSION` -|Полная версия Ruby в форме `x.y.z`. -|`1.8.2` +|`TCL_PKG_STUB_POSTFIX` +|Заглушка библиотеки postfix -|`RUBY_SITELIBDIR` -|Путь для установки архитектуронезависимых библиотек. -|`/usr/local/lib/ruby/site_ruby/1.8` +|`TK_VER` +| выбранная версия Tk major.minor -|`RUBY_SITEARCHLIBDIR` -|Путь для установки архитектурозависимых библиотек. -|`/usr/local/lib/ruby/site_ruby/1.8/amd64-freebsd6` +|`WISH` +| полный путь к интерпретатору Tk -|`RUBY_MODDOCDIR` -|Путь для установки документации модуля. -|`/usr/local/shared/doc/ruby18/patsy` +|`TK_LIBDIR` +| путь к библиотекам Tk -|`RUBY_MODEXAMPLESDIR` -|Путь для установки примеров модуля. -|`/usr/local/shared/examples/ruby18/patsy` +|`TK_INCLUDEDIR` +| путь к заголовочным файлам Tk C |=== -Полный перечень доступных переменных находится в [.filename]#/usr/ports/Mk/bsd.ruby.mk#. +См. crossref:uses[uses-tcl,`USES=tcl`] и crossref:uses[uses-tk,`USES=tk`] в crossref:uses[uses,Использование макросов `USES`] для полного описания этих переменных. Полный список этих переменных доступен в [.filename]#/usr/ports/Mk/Uses/tcl.mk#. [[using-sdl]] == Использование SDL -Переменная `USE_SDL` используется для автоматической настройки зависимостей для портов, использующих библиотеки на основе SDL, такие как package:devel/sdl12[] или package:graphics/sdl_image[]. +`USE_SDL` используется для автоматической настройки зависимостей для портов, которые используют библиотеку на основе SDL, такие как package:devel/sdl12[] и package:graphics/sdl_image[]. -Для версии 1.2 на данный момент распознаются следующие SDL-библиотеки: +Эти библиотеки SDL для версии 1.2 распознаются: * sdl: package:devel/sdl12[] * console: package:devel/sdl_console[] @@ -1482,7 +3471,7 @@ * sound: package:audio/sdl_sound[] * ttf: package:graphics/sdl_ttf[] -Для версии 2.0 на данный момент распознаются следующие SDL-библиотеки: +Эти библиотеки SDL для версии 2.0 распознаются: * sdl: package:devel/sdl20[] * gfx: package:graphics/sdl2_gfx[] @@ -1491,61 +3480,47 @@ * net: package:net/sdl2_net[] * ttf: package:graphics/sdl2_ttf[] -Таким образом, если порт имеет зависимость от package:net/sdl_net[] и package:audio/sdl_mixer[], то строка будет следующей: +Следовательно, если порт зависит от package:net/sdl_net[] и package:audio/sdl_mixer[], синтаксис будет следующим: [.programlisting] .... USE_SDL= net mixer .... -Зависимость от порта package:devel/sdl12[], который требуется для package:net/sdl_net[] и package:audio/sdl_mixer[], будет также автоматически добавлен. - -Если вы используете `USE_SDL` с элементами SDL 1.2, то он автоматически: - -* Добавляет зависимость от sdl12-config к `BUILD_DEPENDS` -* Добавляет переменную `SDL_CONFIG` к `CONFIGURE_ENV` -* Добавляет зависимости от указанных библиотек к `LIB_DEPENDS` - -Если вы используете `USE_SDL` с элементами SDL 2.0, то он автоматически: - -* Добавляет зависимость от sdl2-config к `BUILD_DEPENDS` -* Добавляет переменную `SDL2_CONFIG` к `CONFIGURE_ENV` -* Добавляет зависимости от указанных библиотек к `LIB_DEPENDS` +Пакет зависимости package:devel/sdl12[], который требуется для package:net/sdl_net[] и package:audio/sdl_mixer[], также автоматически добавляется. -Для проверки наличия библиотеки SDL вы можете делать это при помощи переменной `WANT_SDL`: +Использование `USE_SDL` с указанием SDL 1.2 автоматически: -[.programlisting] -.... -WANT_SDL= yes +* Добавить зависимость от sdl12-config в `BUILD_DEPENDS` +* Добавьте переменную `SDL_CONFIG` в `CONFIGURE_ENV` +* Добавьте зависимости выбранных библиотек в `LIB_DEPENDS` -.include +Используя `USE_SDL` с записями для SDL 2.0, это автоматически: -.if ${HAVE_SDL:Mmixer}!="" -USE_SDL+= mixer -.endif +* Добавить зависимость от sdl2-config в `BUILD_DEPENDS` +* Добавьте переменную `SDL2_CONFIG` в `CONFIGURE_ENV` +* Добавьте зависимости выбранных библиотек в `LIB_DEPENDS` -.include -.... [[using-wx]] == Использование wxWidgets -Эта глава описывает статус библиотек wxWidgets в дереве портов и их интеграцию с системой портов. +Этот раздел описывает состояние библиотек wxWidgets в дереве портов и их интеграцию с системой портов. [[wx-introduction]] === Введение -Существует множество версий библиотек wxWidgets, конфликтующих между собой (устанавливают файлы под тем же именем). В дереве портов эта проблема решена путем установки каждой версии под собственным названием с использованием номера версии в качестве суффикса. +Существует множество версий библиотек wxWidgets, которые конфликтуют между собой (устанавливают файлы с одинаковыми именами). В дереве портов эта проблема решена путем установки каждой версии под разными именами с использованием суффиксов номеров версий. -Очевидным недостатком этого является необходимость изменения каждого приложения для нахождения искомой версии. К счастью, большинство приложений для определения нужного компилятора и флагов компоновки вызывают сценарий `wx-config`. Для каждой доступной версии этот сценарий имеет своё имя. Большинство приложений учитывают переменную окружения или принимают аргумент configure для указания, какой сценарий `wx-config` следует вызывать. На все остальные приходится накладывать патч. +Очевидный недостаток этого подхода заключается в том, что каждое приложение необходимо модифицировать для поиска нужной версии. К счастью, большинство приложений вызывают скрипт `wx-config` для определения необходимых флагов компилятора и компоновщика. Имя этого скрипта отличается для каждой доступной версии. Большинство приложений учитывают переменную окружения или принимают аргумент configure, чтобы указать, какой скрипт `wx-config` вызывать. В противном случае их необходимо патчить. [[wx-version]] === Выбор версии -Для того, чтобы заставить ваш порт использовать конкретную версию wxWidgets, существует две доступные для определения переменные (если определена только одна, то вторая примет значение по умолчанию): +Чтобы порт использовал определённую версию wxWidgets, доступны две переменные для определения (если задана только одна, другая будет установлена в значение по умолчанию): [[wx-ver-sel-table]] -.Переменные для выбора версии wxWidgets +.Переменные для выбора версий wxWidgets [cols="1,1,1", frame="none", options="header"] |=== | Переменная @@ -1553,65 +3528,59 @@ | Значение по умолчанию |`USE_WX` -|Перечень версий, которые порт может использовать +|Список версий, которые порт может использовать |Все доступные версии |`USE_WX_NOT` -|Перечень версий, которые порт не может использовать -|Нет +|Список версий, которые порт не может использовать +|Ничего |=== -Перечень доступных версий wxWidgets и соответствующих им портов в дереве: +Доступные версии wxWidgets и соответствующие порты в дереве: +[[wx-widgets-versions-table]] .Доступные версии wxWidgets [cols="1,1", frame="none", options="header"] |=== | Версия | Порт -|`2.4` -|package:x11-toolkits/wxgtk24[] - -|`2.6` -|package:x11-toolkits/wxgtk26[] - |`2.8` |package:x11-toolkits/wxgtk28[] -|=== -[NOTE] -==== -Версии начиная с `2.5` также поставляются с Unicode и устанавливается подчиненным портом с названием как как у обычного, но с суффиксом `-unicode`, но этим можно управлять при помощи переменных (смотрите <>). -==== +|`3.0` +|package:x11-toolkits/wxgtk30[] +|=== -Переменные в <> можно установить в одну или более следующих комбинаций, разделенных пробелами: +Переменные в crossref:special[wx-ver-sel-table,Переменные для выбора версий wxWidgets] могут быть установлены в одну или несколько комбинаций, разделенных пробелами: -.Определение версии для wxWidgets +[[wx-widgets-versions-specification]] +.Спецификации версий wxWidgets [cols="1,1", frame="none", options="header"] |=== | Описание | Пример -|Единичная версия -|`2.4` +|Единственная версия +|`2.8` -|Восходящий диапазон -|`2.4+` +|Возрастающий диапазон +|`2.8+` |Нисходящий диапазон -|`2.6-` +|`3.0-` -|Полный диапазон (обязан быть восходящим) -|`2.4-2.6` +|Полный диапазон (должен быть возрастающим) +|`2.8-3.0` |=== -Кроме того, существует несколько переменных для выбора предпочитаемых версий из перечня доступных. Они могут быть установлены в несколько версий, первая из которых будет иметь наибольший приоритет. - -.Переменные для выбора предпочитаемых версий wxWidgets +Существуют также переменные для выбора предпочтительных версий из доступных. Их можно установить в виде списка версий, где первые будут иметь более высокий приоритет. +[[wx-widgets-preferred-version]] +.Переменные для выбора предпочтительных версий wxWidgets [cols="1,1", frame="none", options="header"] |=== -| Название -| Предназначение +| Имя +| Предназначен для |`WANT_WX_VER` |порт @@ -1623,58 +3592,52 @@ [[wx-components]] === Выбор компонентов -Существуют другие приложения, которые, хотя и не являются библиотеками wxWidgets, но в тоже время относятся к ним. Эти приложения можно указать в переменной `WX_COMPS`. Доступны следующие компоненты: +Существуют другие приложения, которые, не являясь библиотеками wxWidgets, связаны с ними. Эти приложения можно указать в `WX_COMPS`. Доступны следующие компоненты: +[[wx-widgets-components-table]] .Доступные компоненты wxWidgets [cols="1,1,1", frame="none", options="header"] |=== -| Название +| Имя | Описание | Ограничение версии |`wx` |основная библиотека -|нет +|none |`contrib` |сторонние библиотеки -|`нет` +|`none` |`python` -|wxPython (привязки к Python) -|`2.4-2.6` - -|`mozilla` -|wxMozilla -|`2.4` - -|`svg` -|wxSVG -|`2.6` +|wxPython (интерфейс Python) +|`2.8-3.0` |=== -Тип добавляемой зависимости при выборе каждого компонента может быть указан вручную путем добавления суффикса, отделенного точкой с запятой. Если таковой отсутствует, но будет использовано значение по умолчанию (смотрите <>). Доступные типы зависимости: +Тип зависимости может быть выбран для каждого компонента путем добавления суффикса, разделенного точкой с запятой. Если он отсутствует, будет использоваться тип по умолчанию (см. crossref:special[wx-def-dep-types,Типы зависимостей wxWidgets по умолчанию]). Доступны следующие типы: -.Доступные типы зависимости wxWidgets +[[wx-widgets-dependency-table]] +.Доступные типы зависимостей wxWidgets [cols="1,1", frame="none", options="header"] |=== -| Название +| Имя | Описание |`build` -|Компонент требуется для построения, эквивалентен `BUILD_DEPENDS` +|Компонент необходим для сборки, эквивалентен `BUILD_DEPENDS` |`run` -|Компонент требуется для запуска, эквивалентен `RUN_DEPENDS` +|Компонент необходим для запуска, эквивалентно `RUN_DEPENDS` |`lib` -|Компонент требуется для построения и запуска, эквивалентен `LIB_DEPENDS` +|Компонент необходим для сборки и запуска, эквивалентен `LIB_DEPENDS` |=== -Значения по умолчанию для компонентов подробно рассматриваются в следующей таблице: +Значения по умолчанию для компонентов подробно описаны в этой таблице: [[wx-def-dep-types]] -.Типы зависимости wxWidgets, используемые по умолчанию +.Типы зависимостей wxWidgets по умолчанию [cols="1,1", frame="none", options="header"] |=== | Компонент @@ -1700,61 +3663,26 @@ .Выбор компонентов wxWidgets [example] ==== -Следующий фрагмент относится к порту, в котором используется wxWidgets версии `2.4` с его сторонними библиотеками. +Этот фрагмент соответствует порту, который использует wxWidgets версии `2.4` и дополнительные библиотеки. [.programlisting] .... -USE_WX= 2.4 +USE_WX= 2.8 WX_COMPS= wx contrib .... ==== -[[wx-unicode]] -=== Unicode - -Библиотека wxWidgets поддерживает Unicode начиная с версии `2.5`. В дереве портов доступны обе версии и могут быть выбраны с использованием следующих переменных: -[[wx-unicode-var-table]] -.Переменные для выбора версии wxWidgets с Unicode -[cols="1,1,1", frame="none", options="header"] -|=== -| Переменная -| Описание -| Предназначение - -|`WX_UNICODE` -|Порт работает _только_ с версией Unicode -|порт - -|`WANT_UNICODE` -|Порт работает с обеими версиями, но предпочитает версию с Unicode -|порт - -|`WITH_UNICODE` -|Порт будет использовать версию Unicode -|пользователь - -|`WITHOUT_UNICODE` -|Порт будет использовать обычную версию, если это поддерживается (когда `WX_UNICODE` не определена) -|пользователь -|=== - -[WARNING] -==== - -Не используйте `WX_UNICODE` для портов, которые могут использовать обе версии. Если вы хотите, чтобы порт по умолчанию использовал Unicode, определите вместо этого `WANT_UNICODE`. -==== - [[wx-version-detection]] === Обнаружение установленных версий -Для обнаружения установленной версии вам необходимо задать переменную `WANT_WX`. Если вы не присвоите ей определенную версию, то компоненты получат суффикс версии. Переменная `HAVE_WX` будет заполнена после обнаружения. +Для определения установленной версии определите `WANT_WX`. Если значение не задано для конкретной версии, компоненты будут иметь суффикс версии. `HAVE_WX` будет заполнен после обнаружения. [[wx-ver-det-example]] .Обнаружение установленных версий и компонентов wxWidgets [example] ==== -Следующий фрагмент может быть использован в порту, который использует wxWidgets, в случае если он установлен или выбран соответствующий параметр. +Этот фрагмент может использоваться в порте, который использует wxWidgets, если они установлены или выбран соответствующий параметр. [.programlisting] .... @@ -1762,19 +3690,19 @@ .include -.if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.4) -USE_WX= 2.4 +.if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.8) +USE_WX= 2.8 CONFIGURE_ARGS+= --enable-wx .endif .... -Следующий фрагмент может быть использован в порту, который задействует поддержку wxPython, в случае если он установлен или выбран соответствующий параметр, в дополнение к wxWidgets, обе версии `2.6`. +Этот фрагмент может использоваться в порте, который включает поддержку wxPython, если она установлена или выбрана соответствующая опция, в дополнение к wxWidgets, обе версии `2.8`. [.programlisting] .... -USE_WX= 2.6 +USE_WX= 2.8 WX_COMPS= wx -WANT_WX= 2.6 +WANT_WX= 2.8 .include @@ -1787,48 +3715,46 @@ ==== [[wx-defined-variables]] -=== Переменные для определения +=== Переменные, определенные в фреймворке -Следующие переменные доступны в порту (после определения одной из переменных из <>). +Эти переменные доступны в порте (после определения одной из crossref:special[wx-ver-sel-table,переменных для выбора версий wxWidgets]). +[[wx-widgets-variables]] .Переменные, определенные для портов, использующих wxWidgets [cols="1,1", frame="none", options="header"] |=== -| Название +| Имя | Описание |`WX_CONFIG` -|Путь к сценарию wxWidgets `wx-config` (с другим именем) +|Путь к скрипту `wx-config` wxWidgets (с другим именем) |`WXRC_CMD` -|Путь к программе wxWidgets `wxrc` (с другим именем) +|Путь к программе `wxrc` wxWidgets (с другим именем) |`WX_VERSION` |Версия wxWidgets, которая будет использоваться (например, `2.6`) - -|`WX_UNICODE` -|Если не определена, но Unicode будет использоваться, то она будет определена |=== [[wx-premk]] === Обработка в [.filename]#bsd.port.pre.mk# -Если вам нужно использовать переменные для запуска команд сразу после подключения [.filename]#bsd.port.pre.mk#, то вам нужно определить `WX_PREMK`. +Определите `WX_PREMK`, чтобы иметь возможность использовать переменные сразу после включения [.filename]#bsd.port.pre.mk#. [IMPORTANT] ==== -Если вы определите `WX_PREMK`, то версия, зависимости, компоненты и заданные переменные не изменяться, в случае вы изменили переменные порта wxWidgets после подключения [.filename]#bsd.port.pre.mk#. +При определении `WX_PREMK` версия, зависимости, компоненты и определенные переменные не изменятся при модификации переменных порта wxWidgets _после_ включения [.filename]#bsd.port.pre.mk#. ==== [[wx-premk-example]] .Использование переменных wxWidgets в командах [example] ==== -Следующий фрагмент иллюстрирует использование переменной `WX_PREMK` посредством запуска сценария `wx-config` для получения строки с полной версией с присвоением ее переменной и передачей в программу. +Этот фрагмент иллюстрирует использование `WX_PREMK` путем запуска скрипта `wx-config` для получения полной строки версии, присвоения её переменной и передачи в программу. [.programlisting] .... -USE_WX= 2.4 +USE_WX= 2.8 WX_PREMK= yes .include @@ -1844,398 +3770,490 @@ [NOTE] ==== -Переменные wxWidgets можно безопасно использовать в командах внутри целей без необходимости в использовании `WX_PREMK`. +Переменные wxWidgets можно безопасно использовать в командах внутри целей без необходимости в `WX_PREMK`. ==== [[wx-additional-config-args]] === Дополнительные параметры `configure` -Некоторые сценарии GNU `configure` не могут найти wxWidgets только с установленной переменной окружения `WX_CONFIG`, требуя дополнительные параметры. Для их передачи можно использовать переменную `WX_CONF_ARGS`. +Некоторые скрипты GNU `configure` не могут найти wxWidgets, если задана только переменная окружения `WX_CONFIG`, и требуют дополнительные параметры. `WX_CONF_ARGS` можно использовать для их указания. + +[[wx-conf-args-values]] +.Допустимые значения для `WX_CONF_ARGS` +[cols="1,1", frame="none", options="header"] +|=== +| Возможное значение +| Получаемый параметр + +|`absolute` +|`--with-wx-config=${WX_CONFIG}` + +|`relative` +|`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}` +|=== + +[[using-lua]] +== Использование Lua + +Этот раздел описывает состояние библиотек Lua в дереве портов и их интеграцию с системой портов. + +[[lua-introduction]] +=== Введение + +Существует множество версий библиотек Lua и соответствующих интерпретаторов, которые конфликтуют между собой (устанавливают файлы с одинаковыми именами). В дереве портов эта проблема решена установкой каждой версии под разными именами с использованием суффиксов номеров версий. + +Очевидный недостаток этого заключается в том, что каждое приложение необходимо модифицировать для поиска ожидаемой версии. Однако это можно решить, добавив дополнительные флаги компилятору и компоновщику. + +Приложения, использующие Lua, обычно должны собираться только для одной версии. Однако загружаемые модули для Lua собираются в отдельных флейворах для каждой поддерживаемой версии Lua, и зависимости от таких модулей должны указывать флейвор с использованием суффикса `@${LUA_FLAVOR}` в расположении (origin) порта. + +[[lua-version]] +=== Выбор версии + +Порт, использующий Lua, должен содержать строку следующего вида: + +[.programlisting] +.... +USES= lua +.... + +Если требуется определённая версия Lua или диапазон версий, его можно указать в виде параметра `XY` (который можно использовать несколько раз), `XY+`, `-XY` или `XY-ZA`. Версия Lua, установленная через `DEFAULT_VERSIONS`, будет использована, если она попадает в запрошенный диапазон, в противном случае будет использована ближайшая к умолчанию запрошенная версия. Например: + +[.programlisting] +.... +USES= lua:52-53 +.... + +Обратите внимание, что не предпринимается попытка изменить выбор версии на основе наличия любой уже установленной версии Lua. + +[NOTE] +==== +Форма указания версии `XY+` не должна использоваться без тщательного обдумывания; Lua API в некоторой степени меняется с каждой версией, и инструменты конфигурации, такие как CMake или Autoconf, скорее всего не будут работать с будущими версиями Lua, пока не будут обновлены для этого. +==== + +[[lua-version-config]] +=== Конфигурация и флаги компилятора + +Программное обеспечение, использующее Lua, может быть написано с автоматическим определением версии Lua в использовании. В общем случае порты должны переопределять это предположение и принудительно использовать конкретную выбранную версию Lua, как описано выше. В зависимости от портируемого программного обеспечения, это может потребовать любого или всех из следующих действий: + +* Использование `LUA_VER` в качестве части параметра для скрипта конфигурации программного обеспечения через `CONFIGURE_ARGS` или `CONFIGURE_ENV` (или эквивалентные для других систем сборки); +* Добавление `-I${LUA_INCDIR}`, `-L${LUA_LIBDIR}` и `-llua-${LUA_VER}` в `CFLAGS`, `LDFLAGS` и `LIBS` соответственно, где это необходимо; +* Исправьте конфигурационные или файлы сборки программного обеспечения, чтобы выбрать правильную версию. + + +[[lua-version-flavors]] +=== Флейворы версии + +Порт, который устанавливает модуль Lua (а не приложение, просто использующее Lua), должен собирать отдельный флейвор для каждой поддерживаемой версии Lua. Это делается путем добавления параметра `module`: + +[.programlisting] +.... +USES= lua:module +.... -.Допустимые значения `WX_CONF_ARGS` -[cols="1,1", frame="none", options="header"] -|=== -| Возможное значение -| Получаемый параметр +Так же может быть указае номер версии или диапазон версий. Используйте запятую для разделения параметров. -|`absolute` -|`--with-wx-config=${WX_CONFIG}` +Поскольку каждый флейвор должен иметь уникальное имя пакета, предоставляется переменная `LUA_PKGNAMEPREFIX`, которая будет установлена в соответствующее значение; предполагаемое использование: -|`relative` -|`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}` -|=== +[.programlisting] +.... +PKGNAMEPREFIX= ${LUA_PKGNAMEPREFIX} +.... -[[using-lua]] -== Использование Lua +Модульные порты обычно должны устанавливать файлы только в `LUA_MODLIBDIR`, `LUA_MODSHAREDIR`, `LUA_DOCSDIR` и `LUA_EXAMPLESDIR`, все из которых настроены на ссылки в версионно-зависимые подкаталоги. Установка любых других файлов должна выполняться с осторожностью, чтобы избежать конфликтов между версиями. -Эта глава описывает статус библиотек Lua в дереве портов и их интеграцию в систему портов. +Порт (кроме модуля Lua), который хочет собрать отдельный пакет для каждой версии Lua, должен использовать параметр `flavors`: -[[lua-introduction]] -=== Введение +[.programlisting] +.... +USES= lua:flavors +.... -Существует множество версий библиотек Lua и соответствующих интерпретаторов, конфликтующих между собой (устанавливают файлы под тем же именем). В дереве портов эта проблема решена путем установки каждой версии в собственное место с использованием номера версии в качестве суффикса. +Это работает так же, как параметр `module`, описанный выше, но без предположения, что пакет должен быть задокументирован как модуль Lua (поэтому `LUA_DOCSDIR` и `LUA_EXAMPLESDIR` по умолчанию не определены). Однако порт может определить `LUA_DOCSUBDIR` как подходящее имя подкаталога (обычно `PORTNAME` порта, если это не конфликтует с `PORTNAME` любого модуля), и в этом случае фреймворк определит как `LUA_DOCSDIR`, так и `LUA_EXAMPLESDIR`. -Очевидным недостатком этого является необходимость изменения каждого приложения для нахождения искомой версии. Но это решается добавлением некоторых дополнительных флагов для компилятора и компоновщика. +Как и в случае с модульными портами, порт с флейворами должен избегать установки файлов, которые могут конфликтовать между версиями. Обычно это достигается добавлением `LUA_VER_STR` в качестве суффикса к именам программ (например, с использованием crossref:uses[uses-uniquefiles,`uniquefiles`]), а также использованием `LUA_VER` или `LUA_VER_STR` в составе других файлов или поддиректорий, используемых вне `LUA_MODLIBDIR` и `LUA_MODSHAREDIR`. -[[lua-version]] -=== Выбор версии +[[lua-defined-variables]] +=== Переменные, определенные в фреймворке -Для того, чтобы заставить ваш порт использовать конкретную версию Lua, существует две доступные для определения переменные (если определена только одна, то вторая примет значение по умолчанию): +В порте доступны эти переменные. -[[lua-ver-sel-table]] -.Переменные для выбора версии Lua -[cols="1,1,1", frame="none", options="header"] +[[using-lua-variables-ports]] +.Переменные, определенные для портов, использующих Lua +[cols="1,1", frame="none", options="header"] |=== -| Переменная +| Имя | Описание -| Значение по умолчанию -|`USE_LUA` -|Перечень версий, которые порт может использовать -|Все доступные версии +|`LUA_VER` +|Версия Lua, которая будет использоваться (например, `5.4`) -|`USE_LUA_NOT` -|Перечень версий, которые порт не может использовать -|Пусто -|=== +|`LUA_VER_STR` +|Версия Lua без точек (например, `54`) -Перечень доступных версий Lua и соответствующих портов в дереве: +|`LUA_FLAVOR` +|Имя флейвора, соответствующее выбранной версии Lua, используемое для указания зависимостей -.Доступные версии Lua -[cols="1,1", frame="none", options="header"] -|=== -| Версия -| Порт +|`LUA_BASE` +|Префикс, который должен использоваться для поиска Lua (и компонентов), уже установленных -|`4.0` -|package:lang/lua4[] +|`LUA_PREFIX` +|Префикс, куда этим портом будут установлены Lua (и компоненты) -|`5.0` -|package:lang/lua50[] +|`LUA_INCDIR` +|Каталог, в котором установлены заголовочные файлы Lua -|`5.1` -|package:lang/lua[] -|=== +|`LUA_LIBDIR` +|Каталог, в котором установлены библиотеки Lua -Переменные из <> могут иметь комбинации из одного или нескольких значений, разделенных пробелом: +|`LUA_REFMODLIBDIR` +|Каталог, в котором находятся уже установленные библиотеки модулей Lua ([.filename]#.so#) -.Определение версии Lua -[cols="1,1", frame="none", options="header"] -|=== -| Описание -| Пример +|`LUA_REFMODSHAREDIR` +|Каталог, в котором находятся установленные модули Lua ([.filename]#.lua#) -|Единичная версия -|`4.0` +|`LUA_MODLIBDIR` +|Каталог, в котором библиотеки модулей Lua ([.filename]#.so#) должны быть установлены данным портом -|Восходящий диапазон -|`5.0+` +|`LUA_MODSHAREDIR` +|Каталог, в котором должны быть установлены модули Lua ([.filename]#.lua#) данным портом -|Нисходящий диапазон -|`5.0-` +|`LUA_PKGNAMEPREFIX` +|Префикс имени пакета, используемый модулями Lua -|Полный диапазон (обязан быть восходящим) -|`5.0-5.1` +|`LUA_CMD` +|Название интерпретатора Lua (например, `lua54`) + +|`LUAC_CMD` +|Название компилятора Lua (например, `luac54`) |=== -Кроме того, существует несколько переменных для выбора предпочитаемых версий из перечня доступных. Они могут быть установлены в несколько версий, первая из которых будет иметь наибольший приоритет. +Эти дополнительные переменные доступны для портов, которые указали параметр `module`: -.Переменные для выбора предпочитаемых версий Lua +[[using-lua-variables-modules]] +.Переменные, определенные для модулей Lua в портах [cols="1,1", frame="none", options="header"] |=== -| Название -| Предназначение +| Имя +| Описание -|`WANT_LUA_VER` -|порт +|`LUA_DOCSDIR` +|каталог, в который должна быть установлена документация модуля. -|`WITH_LUA_VER` -|пользователь +|`LUA_EXAMPLESDIR` +|каталог, в который должны быть установлены примеры файлов модуля. |=== -[[lua-version-example]] -.Выбор версии Lua +[[lua-examples]] +=== Примеры + +[[lua-app-Makefile]] +.`Makefile` для приложения, использующего Lua [example] ==== -Следующий фрагмент взят из порта, который использует Lua версий `5.0` или `5.1`, по умолчанию `5.0`. Значение может быть переопределено пользователем с использованием переменной `WITH_LUA_VER`. +Этот пример показывает, как сослаться на модуль Lua, требуемый во время выполнения. Обратите внимание, что ссылка должна указывать флейвор. [.programlisting] .... -USE_LUA= 5.0-5.1 -WANT_LUA_VER= 5.0 +PORTNAME= sample +DISTVERSION= 1.2.3 +CATEGORIES= whatever + +MAINTAINER= fred.bloggs@example.com +COMMENT= Sample +WWW= https://example.com/lua_sample/sample/ + +RUN_DEPENDS= ${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR} + +USES= lua + +.include .... ==== -[[lua-components]] -=== Выбор компонентов - -Существуют другие приложения, которые хотя и не являются библиотеками Lua, но относятся к ним. Эти приложения можно указать в переменной `LUA_COMPS`. Доступны следующие компоненты: +[[lua-mod-Makefile]] +.`Makefile` для простого модуля Lua +[example] +==== +[.programlisting] +.... +PORTNAME= sample +DISTVERSION= 1.2.3 +CATEGORIES= whatever +PKGNAMEPREFIX= ${LUA_PKGNAMEPREFIX} -.Доступные компоненты Lua -[cols="1,1,1", frame="none", options="header"] -|=== -| Название -| Описание -| Ограничение версии +MAINTAINER= fred.bloggs@example.com +COMMENT= Sample +WWW= https://example.com/lua_sample/sample/ -|`lua` -|Основная библиотека -|нет +USES= lua:module -|`tolua` -|Библиотека доступа к коду C/C++ -|4.0-5.0 +DOCSDIR= ${LUA_DOCSDIR} -|`ruby` -|Привязка к Ruby -|4.0-5.0 -|=== +.include +.... -[NOTE] -==== -Есть и другие компоненты, но они относятся к модулям для интерпретатора и не используются приложениями (только другими модулями). ==== -Тип зависимости можно выбрать для каждого компонента через добавление суффикса, отделенного точкой с запятой. В случае отсутствия будет использован тип по умолчанию (смотрите <>). Доступные следующие типы: +[[using-guile]] +== Использование Guile -.Доступные типы зависимости Lua -[cols="1,1", frame="none", options="header"] -|=== -| Название -| Описание +Этот раздел описывает состояние Guile в дереве портов и его интеграцию с системой портов. -|`build` -|Компонент требуется для построения, эквивалентен `BUILD_DEPENDS` +[[guile-introduction]] +=== Введение -|`run` -|Компонент требуется для запуска, эквивалентен `RUN_DEPENDS` +Существует несколько версий библиотек Guile и соответствующих интерпретаторов, которые конфликтуют между собой (устанавливают файлы с одинаковыми именами). В дереве портов эта проблема решена путем установки каждой версии под разными именами с использованием суффиксов номеров версий. В большинстве случаев приложения должны определять правильную версию из предоставленных конфигурационных переменных и использовать `pkg-config` для определения имени и связанных путей. Однако некоторые приложения (особенно те, которые используют собственные правила конфигурации для `cmake` или `meson`) всегда будут пытаться использовать последнюю доступную версию. В этом случае либо исправьте порт, либо объявите конфликт сборки (см. опцию `conflicts` ниже), чтобы гарантировать создание правильной зависимости при сборке вне poudriere. -|`lib` -|Компонент требуется для построения и запуска, эквивалентен `LIB_DEPENDS` -|=== +Приложения, использующие Guile, обычно должны собираться только для одной версии, предпочтительно указанной в `DEFAULT_VERSIONS`, или, если это невозможно, для последней поддерживаемой версии. Однако библиотеки Guile или Scheme, а также модули расширения для Guile собираются в отдельных флейворах для каждой поддерживаемой версии Guile. Зависимости от таких портов должны указывать флейвор с использованием суффикса `@${GUILE_FLAVOR}` в расположении (origin) порта. + +[[guile-version]] +=== Выбор версии -Значения по умолчанию для компонентов подробно рассматриваются в следующей таблице: +Порт, использующий Guile, должен определять `USES=guile:__arg,arg...__` с соответствующими параметрами следующим образом: -[[lua-def-dep-types]] -.Типы зависимости Lua, используемые по умолчанию -[cols="1,1", frame="none", options="header"] +[[guile-defined-uses-args]] +.Параметры, определенные для портов, использующих Guile +[cols="1m,4", frame="none", options="header"] |=== -| Компонент -| Тип зависимости +| Имя +| Описание + +|_X.Y_ +|Объявить совместимость с версией Guile `X.Y`. +Доступные версии: `1.8` (устарела), `2.2` и `3.0`. +Можно указать несколько версий. + +|flavors +|Создать флейвор для каждой указанной версии Guile. +Версия, указанная в `DEFAULT_VERSIONS`, станет флейвором по умолчанию. +Названия флейворов имеют вид `guileXY`. + +|build +|Добавить интерпретатор Guile только как зависимость для сборки, а не как зависимость библиотеки. +`build` и `run` могут быть указаны оба. -|`lua` -|`lib` для `4.0-5.0` (динамическая) и `build` для `5.1` (статическая) +|run +|Добавить интерпретатор Guile только как зависимость во время выполнения, а не как зависимость от библиотеки. +`build` и `run` могут быть указаны оба. -|`tolua` -|`build` (статическая) +|alias +|Добавить значения `BINARY_ALIAS` для интерпретатора и инструментов. -|`ruby` -|`lib` (динамическая) +|conflicts +|Объявить `CONFLICTS_BUILD` для версий Guile новее выбранной. +Используйте это, когда порт нельзя настроить на использование определённой версии Guile. |=== -[[lua-components-example]] -.Выбор компонентов Lua -[example] -==== -Следующий фрагмент соответствует порту, использующему Lua версии `4.0` и привязку к Ruby. +Некоторые дополнительные аргументы доступны для обработки нестандартных случаев; подробности см. в `Mk/Uses/guile.mk`. -[.programlisting] -.... -USE_LUA= 4.0 -LUA_COMPS= lua ruby -.... +Если не указано `build` или `run`, то `LIB_DEPENDS` получает зависимость от библиотеки `libguile`, а также любые дополнительные зависимости, требуемые версией guile, например, `libgc`. Обычно порту не требуются дополнительные зависимости, связанные с использованием Guile. -==== +[[guile-version-config]] +=== Флаги конфигурации -[[lua-version-detection]] -=== Обнаружение установленных версий +Программное обеспечение, использующее Guile, должно использовать механизм `pkg-config` для получения флагов компилятора и компоновщика. Некоторые старые или экзотические порты могут использовать `guile-config` или получать значения напрямую из `guile`, что также должно работать (в некоторых из этих случаев может быть полезен аргумент `alias`). -Для обнаружения установленной версии вам необходимо задать переменную `WANT_LUA`. Если вы не присвоите ей определенную версию, то компоненты получат суффикс версии. Переменная `HAVE_LUA` будет заполнена после обнаружения. +Фреймворк пытается сообщить порту желаемую версию Guile, используя следующие методы: -[[lua-ver-det-example]] -.Обнаружение установленных версий и компонентов Lua -[example] -==== -Следующий фрагмент можно использовать для порта, использующего Lua, если она установлена, или был выбран соответствующий параметр. +* `GUILE_EFFECTIVE_VERSION` добавлен в `CONFIGURE_ENV`; +* Полный путь к исполняемому файлу Guile указан в переменной `GUILE` в `CONFIGURE_ENV` и `MAKE_ENV`; +* Если используется опция `alias`, то желаемые версии бинарных файлов Guile являются теми, которые имеют алиасы; +* Если параметр `alias` не используется, пути к инструментам нужной версии Guile (`guild`, `guile-config` и т.д.) добавляются в `CONFIGURE_ENV` и `MAKE_ENV` в виде переменных `GUILD`, `GUILE_CONFIG` и т.д. -[.programlisting] -.... -WANT_LUA= yes +Для некоторых портов может потребоваться указать версию дополнительными способами, например, через `CONFIGURE_ARGS` или `MESON_ARGS`, в зависимости от порта. -.include +Если ни один из этих методов не приводит к тому, что порт выбирает указанную версию Guile при наличии других версий, то предпочтительно исправить его, чтобы это происходило. Если это невозможно, укажите опцию `conflicts`, чтобы предотвратить сборку порта в условиях, когда он обнаруживает неправильную версию. -.if defined(WITH_LUA5) || !empty(PORT_OPTIONS:MLUA5) || !empty(HAVE_LUA:Mlua-5.[01]) -USE_LUA= 5.0-5.1 -CONFIGURE_ARGS+= --enable-lua5 -.endif -.... +[[guile-version-flavors]] +=== Флейворы версии -Следующий фрагмент можно использовать для порта, который включает поддержку tolua, если такой компонент установлен, или был выбран соответствующий параметр в дополнение к Lua, оба имеют версию `4.0`. +Порт, который устанавливает расширение или библиотеку Guile, или библиотеку Scheme, которая предварительно компилируется для Guile, должен собирать отдельный флейвор для каждой поддерживаемой версии Guile. Это делается путем добавления опции `flavors`. + +Поскольку каждый флейвор должен иметь уникальное имя пакета, такие порты обычно устанавливают `PKGNAMESUFFIX`, например: [.programlisting] .... -USE_LUA= 4.0 -LUA_COMPS= lua -WANT_LUA= 4.0 +PKGNAMESUFFIX= -${FLAVOR} +.... -.include +Такие порты должны устанавливать файлы Scheme в `GUILE_SITE_DIR`, а не в `GUILE_GLOBAL_SITE_DIR`, даже если файлы не зависят от версии. Это часто требует исправления порта. -.if defined(WITH_TOLUA) || !empty(PORT_OPTIONS:MTOLUA) || !empty(HAVE_LUA:Mtolua) -LUA_COMPS+= tolua -CONFIGURE_ARGS+= --enable-tolua -.endif -.... +Кроме того, если такой порт устанавливает файл `.pc`, он должен быть размещён в `GUILE_PKGCONFIG_PATH`, а не в глобальной директории `pkgconfig`. Это позволяет зависимым портам находить правильную конфигурацию для используемой версии Guile. -==== +Если порт расширения Guile устанавливает файл `.so`, то обычно он должен быть размещён в специфичной для версии Guile директории `extensions`. Обычно не следует использовать `USE_LDCONFIG`. -[[lua-defined-variables]] -=== Переменные для определения +Любые другие файлы, устанавливаемые портом с флейвором, также должны находиться в версионных каталогах или использовать версионные имена файлов. Для документации и примеров переменные `GUILE_DOCS_DIR` и `GUILE_EXAMPLES_DIR` указывают подходящие расположения, в которых порт должен создать подкаталог (см. ниже). -Следующие переменные доступны в порту (после определения одной из переменных из <>). +[[guile-defined-variables]] +=== Переменные, определенные в фреймворке -.Переменные, определенные для портов, использующих Lua -[cols="1,1", frame="none", options="header"] +В порте доступны эти переменные. + +[[using-guile-variables-ports]] +.Переменные, определенные для портов, использующих Guile +[cols="1,3m,6", frame="none", options="header"] |=== -| Название +| Имя +| Пример значения | Описание -|`LUA_VER` -|Версия Lua, которая будет использоваться (например, `5.1`) +|`GUILE_VER` +|3.0 +|Используемая версия Guile. -|`LUA_VER_SH` -|Старший номер версии динамической библиотеки Lua (например, `1`) +|`GUILE_SFX` +|3 +|Короткий суффикс, используемый в некоторых именах. +Используйте с осторожностью; может быть неуникальным или измениться в будущем. -|`LUA_VER_STR` -|Версия Lua без точки (например, `51`) +|`GUILE_FLAVOR` +|guile30 +|Название флейвора, соответствующее выбранной версии. -|`LUA_PREFIX` -|Префикс, в который установлена Lua (и компоненты) +|`GUILE_PORT` +|lang/guile3 +|Расположение порта (origin) для указанной версии Guile. -|`LUA_SUBDIR` -|Каталог под [.filename]#${PREFIX}/bin#, [.filename]#${PREFIX}/share# и [.filename]#${PREFIX}/lib#, в который установлена Lua +|`GUILE_PREFIX` +|${PREFIX} +|Префикс каталога для использования при установке. -|`LUA_INCDIR` -|Каталог, в который установлены заголовочные файлы Lua и tolua +|`GUILE_CMD` +|guile-3.0 +|Имя интерпретатора Guile с суффиксом версии. -|`LUA_LIBDIR` -|Каталог, в который установлены библиотеки Lua и tolua +|`GUILE_CMDPATH` +|${LOCALBASE}/bin/guile-3.0 +|Полный путь к интерпретатору Guile. -|`LUA_MODLIBDIR` -|Каталог, в который установлены модули библиотеки Lua ([.filename]#.so#) +|`GUILD_CMD` +|guild-3.0 +|Название инструмента Guild, с суффиксом версии. -|`LUA_MODSHAREDIR` -|Каталог, в который установлены модули Lua ([.filename]#.lua#) +|`GUILD_CMDPATH` +|`${LOCALBASE}/bin/guild-3.0` +|Полный путь к инструменту Guild. -|`LUA_PKGNAMEPREFIX` -|Префикс с именем пакета, используемый модулями Lua +|`++GUILE_*_CMD++` + +`++GUILE_*_CMDPATH++` +| +|Как `GUILE_CMD` и `GUILE_CMDPATH`, но для других исполняемых файлов утилит. -|`LUA_CMD` -|Путь к интерпретатору Lua +|`GUILE_PKGCONFIG_PATH` +|${LOCALBASE}/libdata/pkgconfig/guile/3.0 +|Где пакеты, использующие `flavors`, должны устанавливать файлы `.pc`. -|`LUAC_CMD` -|Путь к компилятору Lua +|`GUILE_INFO_PATH` +|share/info/guile3 +|Подходящее значение для `INFO_PATH` для портов, использующих опцию `flavors`. +|=== + +Следующие элементы определены как переменные и как записи `PLIST_SUB`. Форма переменной имеет суффикс `_DIR` и представляет собой полный путь (с префиксом `GUILE_PREFIX`). -|`TOLUA_CMD` -|Путь к программе tolua +[[using-guile-path-variables-ports]] +.Подстановки путей, определенные для портов, использующих Guile +[cols="1m,3m,6", frame="none", options="header"] |=== +| Имя +| Пример значения +| Описание -[[lua-variables-example]] -.Указание для порта, где искать Lua -[example] -==== -Следующий фрагмент показывает, как сообщить порту, который использует сценарий configure, где расположены заголовочные файлы и библиотеки Lua. +|GUILE_GLOBAL_SITE +|share/guile/site +|Каталог сайта, общий для всех версий guile; обычно не должен использоваться. -[.programlisting] -.... -USE_LUA= 4.0 -GNU_CONFIGURE= yes -CONFIGURE_ENV= CPPFLAGS="-I${LUA_INCDIR}" LDFLAGS="-L${LUA_LIBDIR}" -.... +|GUILE_SITE +|share/guile/3.0/site +|Каталог сайта для выбранной версии Guile. -==== +|GUILE_SITE_CCACHE +|lib/guile/3.0/site-ccache +|Каталог для скомпилированных файлов байт-кода. -[[lua-premk]] -=== Обработка в [.filename]#bsd.port.pre.mk# +|GUILE_DOCS +|share/doc/guile30 +|Родительский каталог для документации, специфичной для версий. -Если вам нужно использовать переменные для запуска команд сразу после подключения [.filename]#bsd.port.pre.mk#, для этого вам нужно определить переменную `LUA_PREMK`. +|GUILE_EXAMPLES +|share/examples/guile30 +|Родительский каталог для примеров, специфичных для версий. +|=== -[IMPORTANT] -==== -Если вы задаете `LUA_PREMK`, то версия, зависимости, компоненты и уже заданные переменные не будут изменены, в случае если вы изменили переменные порта Lua после подключения [.filename]#bsd.port.pre.mk#. -==== +[[guile-examples]] +=== Примеры -[[lua-premk-example]] -.Использование переменных Lua в командах +[[guile-app-Makefile]] +.`Makefile` для приложения, использующего Guile [example] ==== -Следующий фрагмент иллюстрирует использование `LUA_PREMK` посредством запуска интерпретатора Lua для того, чтобы получить строку с полной версией, сохранить ее в переменную и передать программе. +Этот пример демонстрирует, как сослаться на библиотеку Guile, необходимую во время сборки и выполнения. Обратите внимание, что ссылка должна указывать флейвор. В этом примере предполагается, что приложение использует `pkg-config` для поиска зависимостей. [.programlisting] .... -USE_LUA= 5.0 -LUA_PREMK= yes +PORTNAME= sample +DISTVERSION= 1.2.3 +CATEGORIES= whatever -.include +MAINTAINER= fred.bloggs@example.com +COMMENT= Sample +WWW= https://example.com/guile_sample/sample/ -.if exists(${LUA_CMD}) -VER_STR!= ${LUA_CMD} -v +BUILD_DEPENDS= guile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR} +RUN_DEPENDS= guile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR} -CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" -.endif -.... +USES= guile:2.2,3.0 pkgconfig -==== +.include +.... -[NOTE] -==== -Переменные Lua можно безопасно использовать в командах внутри целей без необходимости в использовании `LUA_PREMK`. ==== [[using-iconv]] == Использование `iconv` -После 10-08-2013 (link:https://svnweb.freebsd.org/changeset/base/254273[r254273]) в составе FreeBSD 10-CURRENT и более новых версий имеется собственный `iconv`. В более ранних версиях дополнительной зависимостью выступал package:converters/libiconv[]. +В FreeBSD имеется встроенная реализация `iconv` в самой операционной системе. -Для программного обеспечения, которому нужен `iconv`, определите `USES=iconv`. Версии FreeBSD до 10-CURRENT от 13-08-2013 (link:https://svnweb.freebsd.org/changeset/base/254273[r254273]) не имеют собственного `iconv`. На этих более ранных версиях будет автоматически добавлена зависимость от package:converters/libiconv[]. +Для программного обеспечения, требующего `iconv`, определите `USES=iconv`. -Когда порт задаёт `USES=iconv`, становятся доступными следующие переменные: +Когда порт определяет `USES=iconv`, становятся доступны следующие переменные: [.informaltable] [cols="1,1,1,1", frame="none", options="header"] |=== | Имя переменной | Назначение -| Значение до FreeBSD 10-CURRENT 254273 (13-08-2013) -| Значение после FreeBSD 10-CURRENT 254273 (13-08-2013) +| Порт iconv (при использовании расширений WCHAR_T или //TRANSLIT) +| Базовый iconv + |`ICONV_CMD` -|Каталог размещения двоичного файла `iconv` +|Каталог, в котором находится бинарный файл `iconv` |`${LOCALBASE}/bin/iconv` |[.filename]#/usr/bin/iconv# |`ICONV_LIB` -|Аргумент `ld` для компоновки с [.filename]#libiconv# (если нужно) +|аргумент `ld` для линковки с [.filename]#libiconv# (если требуется) |`-liconv` |(пусто) |`ICONV_PREFIX` -|Каталог размещения реализации `iconv` (используется для сценариев конфигурации) +|Каталог, в котором находится реализация `iconv` (полезно для скриптов configure) |`${LOCALBASE}` |[.filename]#/usr# |`ICONV_CONFIGURE_ARG` -|Параметр предварительно собранной конфигурации для сценариев конфигурации +|Предварительно сконструированный аргумент configure для скриптов configure |`--with-libiconv-prefix=${LOCALBASE}` |(пусто) |`ICONV_CONFIGURE_BASE` -|Параметр предварительно собранной конфигурации для сценариев конфигурации +|Предварительно сконструированный аргумент configure для скриптов configure |`--with-libiconv=${LOCALBASE}` |(пусто) |=== -В следующих двух примерах демонстрируется автоматическое присвоение переменным правильных значений для систем, использующих package:converters/libiconv[] или собственный `iconv`. +Эти два примера автоматически заполняют переменные правильным значением для систем, использующих package:converters/libiconv[] или `iconv`, входящий в состав операционной системы, соответственно: [[iconv-simple-use]] .Простое использование `iconv` @@ -2261,12 +4279,12 @@ ==== -Как показано выше, `ICONV_LIB` имеет пустое значение с собственным `iconv`. Эту особенность можно использовать для обнаружения собственного `iconv` с соответствующими действиями. +Как показано выше, `ICONV_LIB` пуста, когда присутствует встроенный `iconv`. Это можно использовать для обнаружения встроенного `iconv` и действовать соответственно. -Иногда в программе параметр `ld` или путь поиска жёстко заданы в [.filename]#Makefile# или сценарии конфигурации. Для решения этой проблемы можно использовать следующий подход: +Иногда в программе аргумент `ld` или путь поиска жестко заданы в [.filename]#Makefile# или скрипте configure. Для решения этой проблемы можно использовать следующий подход: [[iconv-reinplace]] -.Исправление жёстко заданного `-liconv` +.Исправление жестко заданного `-liconv` [example] ==== [.programlisting] @@ -2279,10 +4297,10 @@ ==== -В некоторых случаях необходимо установить альтернативные значения или выполнить операции в случае использования собственного `iconv`. Перед проверкой значения `ICONV_LIB` обязан быть подключён [.filename]#bsd.port.pre.mk#: +В некоторых случаях необходимо установить альтернативные значения или выполнить операции в зависимости от наличия встроенного `iconv`. [.filename]#bsd.port.pre.mk# должен быть включен до проверки значения `ICONV_LIB`: [[iconv-conditional]] -.Проверка доступности собственного `iconv` +.Проверка доступности встроенной поддержки `iconv` [example] ==== [.programlisting] @@ -2293,7 +4311,7 @@ post-patch: .if empty(ICONV_LIB) - # обнаружен собственный iconv + # native iconv detected @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh .endif @@ -2305,126 +4323,239 @@ [[using-xfce]] == Использование Xfce -Переменная `USE_XFCE` используется для автоматической конфигурации зависимостей для портов, использующих библиотеки или приложения на основе Xfce, такие как package:x11-toolkits/libxfce4gui[] и package:x11-wm/xfce4-panel[]. +Порты, которым требуются библиотеки или приложения Xfce, устанавливают `USES=xfce`. -В настоящее время распознаются следующие библиотеки и приложения Xfce: +Конкретные зависимости библиотек и приложений Xfce задаются с помощью значений, присвоенных `USE_XFCE`. Они определены в [.filename]#/usr/ports/Mk/Uses/xfce.mk#. Возможные значения: -* libexo: package:x11/libexo[] -* libgui: package:x11-toolkits/libxfce4gui[] -* libutil: package:x11/libxfce4util[] -* libmcs: package:x11/libxfce4mcs[] -* mcsmanager: package:sysutils/xfce4-mcs-manager[] -* panel: package:x11-wm/xfce4-panel[] -* thunar: package:x11-fm/thunar[] -* wm: package:x11-wm/xfce4-wm[] -* xfdev: package:dev/xfce4-dev-tools[] +.Значения `USE_XFCE` +garcon:: +package:sysutils/garcon[] -Распознаются следующие дополнительные параметры: +libexo:: +package:x11/libexo[] + +libgui:: +package:x11-toolkits/libxfce4gui[] + +libmenu:: +package:x11/libxfce4menu[] + +libutil:: +package:x11/libxfce4util[] + +panel:: +package:x11-wm/xfce4-panel[] + +thunar:: +package:x11-fm/thunar[] + +xfconf:: +package:x11/xfce4-conf[] + +[[use-xfce]] +.Пример `USES=xfce` +[example] +==== +[.programlisting] +.... +USES= xfce +USE_XFCE= libmenu +.... + +==== + +[[use-xfce-gtk2]] +.Использование собственных виджетов GTK2 в Xfce +[example] +==== +В этом примере портированное приложение использует пакет виджетов, специфичных для GTK2: package:x11/libxfce4menu[] и package:x11/xfce4-conf[]. -* configenv: Используйте, если ваш порт требует специально измененного значения `CONFIGURE_ENV` для поиска требуемых для порта библиотек. -+ [.programlisting] .... --I${LOCALBASE}/include -L${LOCALBASE}/lib +USES= xfce:gtk2 +USE_XFCE= libmenu xfconf .... -+ -добавляется в CPPFLAGS к `CONFIGURE_ENV`. +==== -Следовательно, если у порта имеется зависимость от package:sysutils/xfce4-mcs-manager[], и порт требует специальных CPPFLAGS в своем окружении configure, то синтаксис будет следующим: +[TIP] +==== +Компоненты Xfce, включённые таким образом, автоматически загрузят все необходимые зависимости. Указывать полный список больше не требуется. Если порту нужен только package:x11-wm/xfce4-panel[], используйте: [.programlisting] .... -USE_XFCE= mcsmanager configenv +USES= xfce +USE_XFCE= panel .... -[[using-mozilla]] -== Использование Mozilla +Нет необходимости перечислять компоненты package:x11-wm/xfce4-panel[], которые ему самому требуются, вот так: -.Переменные для портов, использующих Mozilla -[cols="1,1", frame="none"] -|=== -|`USE_GECKO` -|Один из бэкэндов Gecko, с которым может работать порт. Возможные значения: `libxul` ([.filename]#libxul.so#), `seamonkey` ([.filename]#libgtkembedmoz.so#, устаревший, больше не должен использоваться). +[.programlisting] +.... +USES= xfce +USE_XFCE= libexo libmenu libutil panel +.... + +Однако компоненты Xfce и зависимости порта, не относящиеся к Xfce, должны быть явно включены. Не рассчитывайте, что компонент Xfce предоставит дополнительную зависимость, кроме себя, для основного порта. +==== + +[[using-budgie]] +== Использование Budgie -|`USE_FIREFOX` -|Для запуска порта требуется Firefox. Возможные значения: `yes` (версия по умолчанию), `40`, `36`, `35`. По умолчанию устанавливает зависимость от версии `40`. +Приложения или библиотеки, зависящие от рабочего стола Budgie, должны указывать `USES= budgie` и устанавливать `USE_BUDGIE` в список необходимых компонентов. + +[cols="1,1", frame="none", options="header"] +|=== +| Имя +| Описание -|`USE_FIREFOX_BUILD` -|Для построения порта требуется Firefox. Возможные значения: смотрите USE_FIREFOX. Автоматически устанавливает USE_FIREFOX с присвоением того же значения. +| `libbudgie` +| Ядро рабочего стола (библиотека) -|`USE_SEAMONKEY` -|Для запуска порта требуется SeaMonkey. Возможные значения: `yes` (версия по умолчанию), `20`, `11` (устарело, больше не должно использоваться). По умолчанию устанавливает зависимость от версии `20`. +| `libmagpie` +| Оконный менеджер X11 и библиотека композитинга Budgie -|`USE_SEAMONKEY_BUILD` -|Для построения порта требуется SeaMonkey. Возможные значения: смотрите USE_SEAMONKEY. Автоматически устанавливает USE_SEAMONKEY с присвоением того же значения. +| `raven` +| Универсальный центр в панели для доступа к различным виджетам приложений -|`USE_THUNDERBIRD` -|Для запуска порта требуется Thunderbird. Возможные значения: `yes` (версия по умолчанию), `31`, `30` (устарело, больше не должно использоваться). По умолчанию устанавливает зависимость от версии `31`. +| `screensaver` +| Рабочий стол: специальная заставка -|`USE_THUNDERBIRD_BUILD` -|Для построения порта требуется Thunderbird. Возможные значения: смотрите USE_THUNDERBIRD. Автоматически устанавливает USE_THUNDERBIRD с присвоением того же значения. |=== -Полный перечень доступных переменных можно получить в файле [.filename]#/usr/ports/Mk/bsd.gecko.mk#. +[NOTE] +==== +Все виджеты приложений взаимодействуют через службу *org.budgie_desktop.Raven*. + +Зависимость по умолчанию включает время сборки и выполнения, её можно изменить с помощью `:build` или `:run`, например: + +[.programlisting] +.... +USES= budgie +USE_BUDGIE= screensaver:build +.... +==== + +[[budgie-components-example]] +.Пример `USE_BUDGIE` +[example] +==== +[.programlisting] +.... +USES= budgie gettext gnome meson pkgconfig +USE_BUDGIE= libbudgie +.... +==== [[using-databases]] == Использование баз данных -.Переменные для портов, использующих базы данных +Используйте один из макросов `USES` из crossref:special[using-databases-uses,Макросы `USES` для баз данных], чтобы добавить зависимость от базы данных. + +[[using-databases-uses]] +.Макросы `USES` для баз данных [cols="1,1", frame="none", options="header"] |=== -| Переменная -| Значение +| База данных +| Макрос USES -|`USE_BDB` -|Если переменная установлена в `yes`, добавляет зависимость от порта package:databases/db41[]. Также переменной можно присвоить значения: 2, 3, 40, 41, 42, 43, 44, 46, 47, 48 или 51. Вы можете объявить диапазон принимаемых значений, `USE_BDB`=42+ будет искать установленную версию с наибольшим номером, и, если ничего не установлено, вернется к 42. +|Berkeley DB +|crossref:uses[uses-bdb,`bdb`] -|`USE_MYSQL` -|Если переменная установлена в `yes`, добавляет зависимость от порта package:databases/mysql55-client[]. Как связанная переменная, `WANT_MYSQL_VER` может быть установлена в значение 323, 40, 41, 50, 51, 52, 55 или 60. +|MariaDB, MySQL, Percona +|crossref:uses[uses-mysql,`mysql`] -|`USE_PGSQL` -|Если установлена в `yes`, добавляет зависимость от порта package:databases/postgresql90-client[]. Как связанная переменная, `WANT_PGSQL_VER` может быть установлена в значение 83, 84, 90, 91 или 92. Вы можете указать максимальное и минимальное значения; `WANT_PGSQL_VER=90+` сделает порт зависимым от минимальной версии 9.0. +|PostgreSQL +|crossref:uses[uses-pgsql,`pgsql`] -|`USE_SQLITE` -|Если переменная имеет значение `yes`, добавляет зависимость от порта package:databases/sqlite3[]. Переменная может принимать значения: 3, 2. +|SQLite +|crossref:uses[uses-sqlite,`sqlite`] |=== -Подробнее смотрите в http://svnweb.FreeBSD.org/ports/head/Mk/bsd.database.mk?view=markup[bsd.database.mk]. +[[using-databases-bdb-ex1]] +.Использование Berkeley DB 6 +[example] +==== +[.programlisting] +.... +USES= bdb:6 +.... + +См. crossref:uses[uses-bdb,`bdb`] для получения дополнительной информации. +==== + +[[using-databases-mysql-ex1]] +.Использование MySQL +[example] +==== +Когда порту требуется клиентская библиотека MySQL, добавьте + +[.programlisting] +.... +USES= mysql +.... + +См. crossref:uses[uses-mysql,`mysql`] для получения дополнительной информации. +==== + +[[using-databases-pgsql-ex1]] +.Использование PostgreSQL +[example] +==== +Когда порту требуется сервер PostgreSQL версии 9.6 или новее, добавьте + +[.programlisting] +.... +USES= pgsql:9.6+ +WANT_PGSQL= server +.... + +См. crossref:uses[uses-pgsql,`pgsql`] для получения дополнительной информации. +==== + +[[using-databases-sqlite-ex1]] +.Использование SQLite 3 +[example] +==== +[.programlisting] +.... +USES= sqlite:3 +.... + +См. crossref:uses[uses-sqlite,`sqlite`] для получения дополнительной информации. +==== [[rc-scripts]] -== Запуск и остановка служб (сценарии `rc`) +== Запуск и остановка служб (скрипты `rc`) -Сценарии [.filename]#rc.d# используются для запуска служб при запуске системы и дают администратору стандартный способ остановки, запуска и перезапуска службы. Порты интегрируются в системную инфраструктуру [.filename]#rc.d#. Подробности по её использованию можно найти в extref:{handbook}config-tuning/[главе rc.d Руководства, configtuning-rcd]. Подробное объяснение доступных команд находится в man:rc[8] и man:rc.subr[8]. Наконец, есть extref:{rc-scripting}[статья]о практических аспектах написания сценариев [.filename]#rc.d#. +[.filename]#rc.d# скрипты используются для запуска служб при загрузке системы, а также предоставляют администраторам стандартный способ остановки, запуска и перезапуска служб. Порты интегрируются в систему [.filename]#rc.d#. Подробности использования можно найти в extref:{handbook}[соответствующей главе Handbook, configtuning-rcd]. Детальное объяснение доступных команд приведено в man:rc[8] и man:rc.subr[8]. Наконец, существует extref:{rc-scripting}[статья], посвящённая практическим аспектам написания [.filename]#rc.d# скриптов. -Установить можно один или более сценариев [.filename]#rc.d#: +С мифическим портом под названием _doorman_, которому необходимо запустить демон _doormand_. Добавьте следующее в [.filename]#Makefile#: [.programlisting] .... USE_RC_SUBR= doormand .... -Сценарии обязаны размещаться в подкаталоге [.filename]#files# с обязательным добавлением суффикса `.in` к имени файла. Для этого файла будут использоваться стандартные расширения `SUB_LIST`. Также особенно приветствуется использование расширений `%%PREFIX%%` и `%%LOCALBASE%%`. Подробнее о `SUB_LIST` в <>. +Можно указать несколько скриптов, которые будут установлены. Скрипты должны быть размещены в подкаталоге [.filename]#files#, и к их имени должен быть добавлен суффикс `.in`. Для этого файла будут выполнены стандартные подстановки `SUB_LIST`. Также настоятельно рекомендуется использовать подстановки `%%PREFIX%%` и `%%LOCALBASE%%`. Подробнее о `SUB_LIST` см. в crossref:pkg-files[using-sub-files,соответствующем разделе]. -Начиная с FreeBSD 6.1-RELEASE локальные сценарии [.filename]#rc.d# (включая установленные из портов) включены в общий man:rcorder[8] основной системы. +Начиная с FreeBSD 6.1-RELEASE, локальные скрипты [.filename]#rc.d# (включая те, что установлены через порты) включены в общий man:rcorder[8] базовой системы. -Пример простого сценария [.filename]#rc.d#: +Пример простого скрипта [.filename]#rc.d# для запуска демона doormand: [.programlisting] .... #!/bin/sh -# $FreeBSD$ -# # PROVIDE: doormand # REQUIRE: LOGIN # KEYWORD: shutdown # -# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# Add these lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # doormand_enable (bool): Set to NO by default. -# Set it to YES to enable doorman. +# Set it to YES to enable doormand. # doormand_config (path): Set to %%PREFIX%%/etc/doormand/doormand.cf # by default. @@ -2446,73 +4577,76 @@ run_rc_command "$1" .... -Если нет стоящей причины запускать службы раньше всех портов, сценарии должны использовать +Если нет очень веской причины запускать службу раньше или она работает от имени определенного пользователя (не root), все скрипты портов должны использовать: [.programlisting] .... REQUIRE: LOGIN .... -Если служба работает под определенным пользователем (отличным от root), то это делается принудительно. В сценарий выше включена конструкция +Если скрипт запуска демона требует его остановки, следующий код активирует остановку службы при выключении системы: [.programlisting] .... KEYWORD: shutdown .... -потому что вымышленный порт, который мы используем в качестве примера, запускает службу, и она должна корректно завершиться при выключении системы. Если сценарий не запускает постоянную службу, то это не является необходимым. +Если скрипт не запускает постоянную службу, это не требуется. -Для необязательных элементов конфигурации присвоение переменной по умолчанию в стиле "=" является более предпочтительным по сравнению со стилем ":=", используемым здесь, поскольку первый устанавливает значение по умолчанию только если переменная не установлена, а последний устанавливает её, если переменная не установлена _или_ обнулена. Пользователь вполне может написать в своем файле [.filename]#rc.conf.local# что-нибудь типа +Для необязательных элементов конфигурации предпочтительнее использовать стиль присваивания переменных по умолчанию "=" вместо стиля ":=", так как первый устанавливает значение по умолчанию только если переменная не задана, а второй — если переменная не задана _или_ равна null. Пользователь может включить что-то вроде: [.programlisting] .... doormand_flags="" .... -и тогда произойдет неуместная подстановка переменной с использованием ":=", что переопределит намерения пользователя. Переменная `_enable` является обязательной; значением по умолчанию должно быть ":". +в свой [.filename]#rc.conf.local#, а подстановка переменной с использованием ":=" некорректно переопределила бы намерение пользователя. Переменная `_enable` не является опциональной и должна использовать ":" для значения по умолчанию. + +[IMPORTANT] +==== +Порты _не должны_ запускать и останавливать свои службы при установке и удалении. Не злоупотребляйте ключевыми словами [.filename]#plist#, описанными в crossref:plist[plist-keywords-base-exec, "разделе @preexec command,@postexec command,@preunexec command,@postunexec command"], выполняя команды, которые изменяют работающую систему, включая запуск или остановку служб. +==== -=== Контрольный список перед внесением изменений +[[rc-scripts-checklist]] +=== Pre-Commit Checklist -Перед тем, как отсылать порт со сценарием [.filename]#rc.d#, и тем более перед его коммитом, сверьтесь со следующим контрольным списком, чтобы убедиться, что порт для этого готов. +Прежде чем внести порт с [.filename]#rc.d# скриптом, и что более важно, перед его коммитом, пожалуйста, ознакомьтесь с этим контрольным списком, чтобы убедиться, что он готов. -Большинство из этих проверок умеет выполнять порт package:devel/rclint[], но это не является заменой надлежащему просмотру. +Порт package:devel/rclint[] может проверить большинство из них, но он не заменяет тщательного просмотра и проверки. [.procedure] -==== -. Если это новый файл, заканчивается ли он на [.filename]#.sh#? Если это так, то имя файла должно быть изменено на [.filename]#file.in#, поскольку файлы [.filename]#rc.d# не могут оканчиваться на такое расширение. -. Присутствует ли в файле тег `$FreeBSD$`? -. Соответствуют ли друг другу имя файла (без [.filename]#.in#), строка `PROVIDE` и ``$``__name__? Имя файла, совпадающее с `PROVIDE`, упрощает отладку, особенно для проблем, связанных с man:rcorder[8]. Соответствие имени файла и ``$``__name__ также упрощает понимание, какие переменные имеют отношение к сценарию в [.filename]#rc.conf[.local]#. Последнее также является тем, что вы могли бы назвать "политикой" для всех новых сценариев, включая те, что входят в базовую систему. -. Содержит ли строка `REQUIRE` значение LOGIN? Это условие обязательно для сценариев, работающих не из-под суперпользователя. Если сценарий запускается из-под суперпользователя, то стоит ли его запускать до `LOGIN`? Если нет, то его следует запускать после, так чтобы мы могли свободно сгруппировать локальные сценарии в той точке man:rcorder[8], когда почти все сценарии в базовой системе уже стартовали. -. Запускает ли сценарий постоянную службу? Если да, то он должен иметь `KEYWORD: shutdown`. -. Убедитесь в том, что в сценарии отсутствует `KEYWORD: FreeBSD`. Это перестало быть нужным и нежелательно уже много лет. Это также служит индикатором того, что новый сценарий был скопирован со старого, поэтому особое внимание должно быть уделено при проверке. -. Если сценарий использует интерпретируемый язык, такой как `perl`, `python` или `ruby`, то убедитесь, что значение `command_interpreter` установлено должным образом. В противном случае +. Если это новый файл, имеет ли он расширение [.filename]#.sh#? Если да, его необходимо изменить на просто [.filename]#file.in#, поскольку файлы [.filename]#rc.d# не могут оканчиваться таким расширением. +. Совпадают ли имя файла (без [.filename]#.in#), строка `PROVIDE` и `$`_name_? Совпадение имени файла с `PROVIDE` упрощает отладку, особенно при проблемах с man:rcorder[8]. Совпадение имени файла и `$`_name_ облегчает понимание того, какие переменные актуальны в [.filename]#rc.conf[.local]#. Это также является политикой для всех новых скриптов, включая те, что в базовой системе. +. Установлена ли строка `REQUIRE` в значение `LOGIN`? Это обязательно для скриптов, выполняемых от имени непривилегированного пользователя. Если скрипт выполняется от имени root, есть ли веская причина для его запуска до `LOGIN`? Если нет, он должен запускаться после, чтобы локальные скрипты можно было условно сгруппировать в man:rcorder[8] после запуска большинства компонентов базовой системы. +. Запускает ли скрипт постоянную службу? Если да, он должен содержать `KEYWORD: shutdown`. +. Убедитесь, что отсутствует `KEYWORD: FreeBSD`. Это перестало быть необходимым или желательным уже много лет. Это также указывает на то, что новый скрипт был скопирован/вставлен из старого скрипта, поэтому следует проявить дополнительную осторожность при проверке. +. Если скрипт использует интерпретируемый язык, например `perl`, `python` или `ruby`, убедитесь, что `command_interpreter` установлен корректно. Например, для Perl добавьте `PERL=${PERL}` в `SUB_LIST` и используйте `%%PERL%%`. В противном случае, + -[source,shell] +[source, shell] .... # service name stop .... -+ -возможно будет работать неправильно. Смотрите man:service[8] для дополнительной информации. -. Все ли вхождения [.filename]#/usr/local# были заменены на `%%PREFIX%%`? -. Идет ли присвоение переменным значений по умолчанию после `load_rc_config`? ++ +вероятно, не будет работать корректно. Дополнительную информацию смотрите в man:service[8]. +. Проверено, что все вхождения [.filename]#/usr/local# заменены на `%%PREFIX%%`? +. Делаются ли присваивания переменным по умолчанию после `load_rc_config`? . Используются ли пустые строки при присвоении значений по умолчанию? Такие присвоения должны быть удалены, но перепроверьте, что эти параметры задокументированы в комментариях в начале файла. . Действительно ли в сценариях используются значения, присвоенные переменным? -. Являются ли параметры по умолчанию, перечисленные в __name__``_flags``, обязательными? Если это так, то их следует поместить в `command_args`. Параметр `-d` здесь - это как красный флаг (прошу прощения за каламбур), поскольку обычно он применяется для "демонизации" процесса и поэтому на самом деле обязательный. -. Никогда не включайте переменную __name__``_flags`` в `command_args` (и наоборот; в прочем, такая ошибка встречается реже). -. Запускает ли сценарий какой-либо код безусловно? Это нехорошо. Обычно такие вещи могут/должны помещаться в `start_precmd`. -. Все логические условия должны использовать функцию `checkyesno`. Не пишите самописных проверок для `[Yy][Ee][Ss]`, и так далее. -. Если в сценарии выполняется цикл (например, ожидание чего-либо перед стартом), используется ли счетчик для завершения цикла? Мы не хотим бесконечного ожидания загрузки в случае возникновения ошибки. -. Создает ли сценарий файлы или каталоги, которым нужны особые права доступа? Например, файл [.filename]#pid#, который должен принадлежать пользователю, из-под которого запускается процесс. Вместо традиционных команд man:touch[1]/man:chown[8]/man:chmod[1] подумайте об использовании man:install[1] с подходящими аргументами командной строки, для того чтобы выполнить всю процедуру за один шаг. -==== +. Являются ли опции, перечисленные в стандартном _name_`_flags`, обязательными? Если да, они должны быть в `command_args`. Флаг `-d` здесь, как красный флаг (простите за каламбур), так как обычно это опция для "демонизации" процесса и, следовательно, фактически обязательна. +. `_name__flags` никогда не должны включаться в `command_args` (и наоборот, хотя такая ошибка встречается реже). +. Выполняет ли скрипт любой код безусловно? Это не приветствуется. Обычно такие вещи должны обрабатываться через `start_precmd`. +. Все логические проверки должны использовать функцию `checkyesno`. Не допускаются самодельные проверки на `[Yy][Ee][Ss]` и т.п. +. Если есть цикл (например, ожидание запуска чего-либо), есть ли в нём счётчик для завершения цикла? Мы не хотим, чтобы загрузка зависала навсегда в случае ошибки. +. Создает ли скрипт файлы или каталоги, требующие определенных разрешений, например, [.filename]#pid#, который должен принадлежать пользователю, запускающему процесс? Вместо традиционной последовательности man:touch[1]/man:chown[8]/man:chmod[1] рассмотрите использование man:install[1] с соответствующими аргументами командной строки, чтобы выполнить всю процедуру за один шаг. [[users-and-groups]] == Добавление пользователей и групп -Некоторые порты требуют в установленной системе наличие определенного пользователя. Выберите свободный UID в диапазоне от 50 до 999 и зарегистрируйте его в [.filename]#ports/UIDs# (для пользователей) и/или в [.filename]#ports/GIDs# (для групп). Удостоверьтесь, что не используете UID, уже используемый системой или другими портами. +Некоторые порты требуют наличия определённой учётной записи пользователя, обычно для демонов, работающих от имени этого пользователя. Для таких портов выберите _уникальный_ UID в диапазоне от 50 до 999 и зарегистрируйте его в [.filename]#ports/UIDs# (для пользователей) и [.filename]#ports/GIDs# (для групп). Уникальный идентификатор должен быть одинаковым для пользователей и групп. -Пожалуйста, включите в патч изменение для этих двух файлов, если вам требуется создать нового пользователя или группу для вашего порта. +Пожалуйста, приложите патч для этих двух файлов, если требуется создать нового пользователя или группу для порта. -Затем вы сможете использовать в вашем [.filename]#Makefile# переменные `USERS` и `GROUPS`, и пользователь автоматически создастся при установке порта. +Затем используйте `USERS` и `GROUPS` в [.filename]#Makefile#, и пользователь будет автоматически создан при установке порта. [.programlisting] .... @@ -2520,16 +4654,58 @@ GROUPS= pulse pulse-access pulse-rt .... -Текущий перечень зарезервированных UID и GID находится в [.filename]#ports/UIDs# и [.filename]#ports/GIDs#. +Текущий список зарезервированных UID и GID можно найти в [.filename]#ports/UIDs# и [.filename]#ports/GIDs#. [[requiring-kernel-sources]] -== Порты, требующие наличия исходных текстов ядра +== Порты, зависящие от исходных кодов ядра -Некоторым портам (таким как загружаемые модули ядра) для компиляции нужны файлы с исходными текстами ядра. Ниже указан корректный способ определения, установлены ли они пользователем: +Некоторые порты (например, загружаемые модули ядра) требуют исходные файлы ядра для компиляции порта. Вот правильный способ проверить, установлены ли они у пользователя: [.programlisting] .... USES= kmod .... -Кроме этой проверки, `kmod` заботится о большинстве пунктов, которые должны учитываться в этих портах. +Помимо этой проверки, функция `kmod` учитывает большинство аспектов, которые необходимо принимать во внимание данным портам. + +[[go-libs]] +== Библиотеки Go + +Порты не должны упаковывать или устанавливать библиотеки или исходный код Go. Порты Go должны загружать необходимые зависимости в обычное время загрузки и должны устанавливать только программы и то, что нужно пользователям, а не то, что нужно разработчикам на Go. + +Порты должны (в порядке предпочтения): + +* Использовать зависимости, включенные в исходный код пакета. +* Получить версии зависимостей, указанные вышестоящим проектом (в случае go.mod, vendor.json или аналогичных). +* В крайнем случае (зависимости не включены и версии не указаны точно) получить версии зависимостей, доступные на момент разработки/выпуска вышестоящего проекта. + +[[haskell-libs]] +== Библиотеки Haskell + +Как и в случае с языком Go, коллекция портов не должна включать или устанавливать библиотеки Haskell. Порты Haskell должны статически линковаться со своими зависимостями и загружать все распространяемые файлы на этапе fetch. + +[[shell-completion]] +== Файлы завершения командной оболочки + +Многие современные оболочки (включая bash, fish, tcsh и zsh) поддерживают табуляцию для параметров и/или опций. Эта поддержка обычно обеспечивается файлами завершения, которые содержат определения того, как будет работать завершение по табуляции для определённой команды. Порты иногда поставляются со своими собственными файлами завершения, или разработчики портов могут создавать их самостоятельно. + +Если доступны файлы завершения, их всегда следует устанавливать. Нет необходимости создавать для этого опцию. Однако если опция используется, всегда включайте её в `OPTIONS_DEFAULT`. + +[[shell-completion-paths]] +.Полные имена файлов завершения оболочки +[cols="1,1,1", frame="none"] +|=== +|`bash` +|[.filename]#${PREFIX}/etc/bash_completion.d# or [.filename]#${PREFIX}/share/bash-completion/completions# +|(любые уникальные имена файлов в одной из этих папок) + +|`fish` +|[.filename]#${PREFIX}/share/fish/completions/${PORTNAME}.fish# +| + +|`zsh` +|[.filename]#${PREFIX}/share/zsh/site-functions/_${PORTNAME}# +| +|=== + +Не регистрируйте зависимости от самих оболочек. diff --git a/documentation/content/ru/books/porters-handbook/special/_index.po b/documentation/content/ru/books/porters-handbook/special/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/special/_index.po @@ -0,0 +1,14978 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1 +#, no-wrap +msgid "Special considerations when creating a new FreeBSD Port" +msgstr "Особые соображения при создании нового порта FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1 +#, no-wrap +msgid "Chapter 6. Special Considerations" +msgstr "Глава 6. Особые соглашения" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/special/_index.adoc:14 +#, no-wrap +msgid "Special Considerations" +msgstr "Особые соглашения" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:52 +msgid "" +"This section explains the most common things to consider when creating a " +"port." +msgstr "" +"Имеется ещё несколько вещей, которые вы должны иметь в виду при создании " +"порта. Этот раздел описывает наиболее часто встречающиеся из них." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:54 +#, no-wrap +msgid "Splitting long files" +msgstr "Разделение длинных файлов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:61 +msgid "" +"Sometimes, port [.filename]#Makefiles# can be really long. For example, " +"rust ports can have a very long `CARGO_CRATES` list. In other cases, the " +"[.filename]#Makefile# might have code that varies depending on the " +"architecture. In such cases, it can be convenient to split the original " +"[.filename]#Makefile# into several files. [.filename]#bsd.port.mk# " +"automatically includes some types of [.filename]#Makefiles# into the main " +"port [.filename]#Makefile#." +msgstr "" +"Иногда [.filename]#Makefiles# могут быть очень длинными. Например, порты " +"rust могут содержать очень длинный список `CARGO_CRATES`. В других случаях " +"[.filename]#Makefile# может содержать код, который варьируется в зависимости " +"от архитектуры. В таких ситуациях может быть удобно разделить исходный " +"[.filename]#Makefile# на несколько файлов. [.filename]#bsd.port.mk# " +"автоматически включает некоторые типы [.filename]#Makefiles# в основной " +"[.filename]#Makefile# порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:63 +msgid "" +"These are the files that the framework handles automatically if they are " +"found:" +msgstr "" +"Вот файлы, которые система обрабатывает автоматически, если они обнаружены:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:65 +msgid "" +"[.filename]#Makefile.crates#. An example can be found in package:audio/" +"ebur128[]." +msgstr "" +"[.filename]#Makefile.crates#. Пример можно найти в пакете package:audio/" +"ebur128[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:66 +msgid "" +"[.filename]#Makefile.inc#. An example can be found in package:net/ntp[]." +msgstr "" +"[.filename]#Makefile.inc#. Пример можно найти в пакете package:net/ntp[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:67 +msgid "[.filename]#Makefile.${ARCH}-${OPSYS}#" +msgstr "[.filename]#Makefile.${ARCH}-${OPSYS}#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:68 +msgid "" +"[.filename]#Makefile.${OPSYS}#. An example can be found in package:net/cvsup-" +"static[]." +msgstr "" +"[.filename]#Makefile.${OPSYS}#. Пример можно найти в пакете package:net/" +"cvsup-static[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:69 +msgid "[.filename]#Makefile.${ARCH}#" +msgstr "[.filename]#Makefile.${ARCH}#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:70 +msgid "[.filename]#Makefile.local#" +msgstr "[.filename]#Makefile.local#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:76 +msgid "" +"It is also usual practice to split the packaging list of the port into " +"several files if the list varies a lot from one architecture to another or " +"depends on the selected flavor. In this case, the [.filename]#pkg-plist# " +"file for each architecture is named following the pattern [.filename]#pkg-" +"plist.${ARCH}# or [.filename]#pkg-plist.${FLAVOR}#. The framework does not " +"create the packaging list automatically if multiple [.filename]#pkg-plist# " +"files exist. It is the responsibility of the porter to select the proper " +"[.filename]#pkg-plist# and assign it to the `PLIST` variable. Examples on " +"how to deal with this can be found in package:audio/logitechmediaserver[] " +"and package:deskutils/libportal[]." +msgstr "" +"Также распространённой практикой является разделение списка пакетов порта на " +"несколько файлов, если список сильно различается в зависимости от " +"архитектуры или выбранного флейвора. В этом случае файл [.filename]#pkg-" +"plist# для каждой архитектуры именуется по шаблону [.filename]#pkg-plist.$" +"{ARCH}# или [.filename]#pkg-plist.${FLAVOR}#. Фреймворк не создаёт список " +"пакетов автоматически, если существует несколько файлов [.filename]#pkg-" +"plist#. Ответственность за выбор подходящего файла [.filename]#pkg-plist# и " +"его присвоение переменной `PLIST` лежит на того, кто делает порт. Примеры " +"работы с этим можно найти в портах package:audio/logitechmediaserver[] и " +"package:deskutils/libportal[]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:78 +#, no-wrap +msgid "Staging" +msgstr "Staging" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:85 +msgid "" +"[.filename]#bsd.port.mk# expects ports to work with a \"stage directory\". " +"This means that a port must not install files directly to the regular " +"destination directories (that is, under `PREFIX`, for example) but instead " +"into a separate directory from which the package is then built. In many " +"cases, this does not require root privileges, making it possible to build " +"packages as an unprivileged user. With staging, the port is built and " +"installed into the stage directory, `STAGEDIR`. A package is created from " +"the stage directory and then installed on the system. Automake tools refer " +"to this concept as `DESTDIR`, but in FreeBSD, `DESTDIR` has a different " +"meaning (see crossref:testing[porting-prefix,`PREFIX` and `DESTDIR`])." +msgstr "" +"[.filename]#bsd.port.mk# ожидает, что порты будут работать с \"директорией " +"стадии\". Это означает, что порт не должен устанавливать файлы напрямую в " +"обычные целевые директории (например, под `PREFIX`), а вместо этого в " +"отдельную директорию, из которой затем собирается пакет. Во многих случаях " +"это не требует прав root, что позволяет собирать пакеты от имени " +"непривилегированного пользователя. При использовании стадии порт собирается " +"и устанавливается в директорию стадии `STAGEDIR`. Пакет создаётся из " +"директории стадии и затем устанавливается в систему. Инструменты Automake " +"называют эту концепцию `DESTDIR`, но в FreeBSD `DESTDIR` имеет другое " +"значение (см. crossref:testing[porting-prefix,`PREFIX` и `DESTDIR`])." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:92 +msgid "" +"No port _really_ needs to be root. It can mostly be avoided by using " +"crossref:uses[uses-uidfix,`USES=uidfix`]. If the port still runs commands " +"like man:chown[8], man:chgrp[1], or forces owner or group with " +"man:install[1] then use crossref:uses[uses-fakeroot,`USES=fakeroot`] to fake " +"those calls. Some patching of the port's [.filename]#Makefiles# will be " +"needed." +msgstr "" +"Ни один порт _на самом деле_ не должен работать от root. Этого в большинстве " +"случаев можно избежать, используя crossref:uses[uses-uidfix,`USES=uidfix`]. " +"Если порт всё ещё выполняет команды, такие как man:chown[8], man:chgrp[1], " +"или принудительно устанавливает владельца или группу с помощью " +"man:install[1], то используйте crossref:uses[uses-fakeroot,`USES=fakeroot`], " +"чтобы подделать эти вызовы. Потребуется некоторая правка " +"[.filename]#Makefiles# порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:97 +msgid "" +"Meta ports, or ports that do not install files themselves but only depend on " +"other ports, must avoid needlessly extracting the man:mtree[8] to the stage " +"directory. This is the basic directory layout of the package, and these " +"empty directories will be seen as orphans. To prevent man:mtree[8] " +"extraction, add this line:" +msgstr "" +"Метапорты, то есть порты, которые не устанавливают файлы непосредственно, а " +"только зависят от других портов, должны по возможности избегать распаковки " +"man:mtree[8] в каталог сборки. Это основная иерархия каталогов пакета, и эти " +"пустые каталоги будут выглядеть лишними. Для предотвращения распаковки " +"man:mtree[8] добавьте эту строку:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:101 +#, no-wrap +msgid "NO_MTREE=\tyes\n" +msgstr "NO_MTREE=\tyes\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:107 +msgid "" +"Metaports should use crossref:special[uses-metaport,`USES=metaport`]. It " +"sets up defaults for ports that do not fetch, build, or install anything." +msgstr "" +"Метапорты должны использовать crossref:special[uses-" +"metaport,`USES=metaport`]. Это устанавливает значения по умолчанию для " +"портов, которые не загружают, не собирают и не устанавливают ничего." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:113 +msgid "" +"Staging is enabled by prepending `STAGEDIR` to paths used in the `pre-" +"install`, `do-install`, and `post-install` targets (see the examples through " +"the book). Typically, this includes `PREFIX`, `ETCDIR`, `DATADIR`, " +"`EXAMPLESDIR`, `DOCSDIR`, and so on. Directories should be created as part " +"of the `post-install` target. Avoid using absolute paths whenever possible." +msgstr "" +"Этап подготовки включается путем добавления `STAGEDIR` к путям, используемым " +"в целях `pre-install`, `do-install` и `post-install` (см. примеры в книге). " +"Обычно это включает `PREFIX`, `ETCDIR`, `DATADIR`, `EXAMPLESDIR`, `DOCSDIR` " +"и т. д. Каталоги должны создаваться как часть цели `post-install`. По " +"возможности избегайте использования абсолютных путей." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:117 +msgid "" +"Ports that install kernel modules must prepend `STAGEDIR` to their " +"destination, by default [.filename]#/boot/modules#." +msgstr "" +"Порты, которые устанавливают модули ядра, должны добавлять `STAGEDIR` к пути " +"назначения, по умолчанию это [.filename]#/boot/modules#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:120 +#, no-wrap +msgid "Handling Symbolic Links" +msgstr "Обработка символических ссылок" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:125 +msgid "" +"When creating a symbolic link, relative ones are strongly recommended. Use " +"`${RLN}` to create relative symbolic links. It uses man:install[1] under " +"the hood to automatically figure out the relative link to create." +msgstr "" +"При создании символической ссылки настоятельно рекомендуется использовать " +"относительные пути. Используйте `${RLN}` для создания относительных " +"символических ссылок. Эта команда использует man:install[1] для " +"автоматического определения относительной ссылки, которую нужно создать." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:127 +#, no-wrap +msgid "Create Relative Symbolic Links Automatically" +msgstr "Автоматическое создание относительных символических ссылок" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:131 +msgid "" +"`${RLN}` uses man:install[1]'s relative symbolic feature which frees the " +"porter of computing the relative path." +msgstr "" +"`${RLN}` использует относительную символическую ссылку из man:install[1], " +"что освобождает сборщика порта от вычисления относительного пути." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:137 +#, no-wrap +msgid "" +"${RLN} ${STAGEDIR}${PREFIX}/lib/libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so\n" +"${RLN} ${STAGEDIR}${PREFIX}/libexec/foo/bar ${STAGEDIR}${PREFIX}/bin/bar\n" +"${RLN} ${STAGEDIR}/var/cache/foo ${STAGEDIR}${PREFIX}/share/foo\n" +msgstr "" +"${RLN} ${STAGEDIR}${PREFIX}/lib/libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so\n" +"${RLN} ${STAGEDIR}${PREFIX}/libexec/foo/bar ${STAGEDIR}${PREFIX}/bin/bar\n" +"${RLN} ${STAGEDIR}/var/cache/foo ${STAGEDIR}${PREFIX}/share/foo\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:140 +msgid "Will generate:" +msgstr "Будет создано:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:150 +#, no-wrap +msgid "" +"% ls -lF ${STAGEDIR}${PREFIX}/lib\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 libfoo.so@ -> libfoo.so.42\n" +"-rwxr-xr-x 1 nobody nobody 15 Aug 3 11:24 libfoo.so.42*\n" +"% ls -lF ${STAGEDIR}${PREFIX}/bin\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 bar@ -> ../libexec/foo/bar\n" +"% ls -lF ${STAGEDIRDIR}${PREFIX}/share\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 foo@ -> ../../../var/cache/foo\n" +msgstr "" +"% ls -lF ${STAGEDIR}${PREFIX}/lib\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 libfoo.so@ -> libfoo.so.42\n" +"-rwxr-xr-x 1 nobody nobody 15 Aug 3 11:24 libfoo.so.42*\n" +"% ls -lF ${STAGEDIR}${PREFIX}/bin\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 bar@ -> ../libexec/foo/bar\n" +"% ls -lF ${STAGEDIRDIR}${PREFIX}/share\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 foo@ -> ../../../var/cache/foo\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:155 +#, no-wrap +msgid "Bundled Libraries" +msgstr "Встроенные библиотеки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:158 +msgid "" +"This section explains why bundled dependencies are considered bad and what " +"to do about them." +msgstr "" +"Этот раздел объясняет, почему встроенные зависимости считаются плохими и что " +"с этим делать." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:160 +#, no-wrap +msgid "Why Bundled Libraries Are Bad" +msgstr "Почему встроенные библиотеки — это плохо" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:165 +msgid "" +"Some software requires the porter to locate third-party libraries and add " +"the required dependencies to the port. Other software bundles all necessary " +"libraries into the distribution file. The second approach seems easier at " +"first, but there are some serious drawbacks:" +msgstr "" +"Некоторое программное обеспечение требует от упаковщика найти сторонние " +"библиотеки и добавить необходимые зависимости в порт. Другое ПО включает все " +"необходимые библиотеки в дистрибутивный файл. Второй подход кажется проще на " +"первый взгляд, но имеет серьёзные недостатки:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:167 +msgid "" +"This list is loosely based on the https://fedoraproject.org/wiki/" +"Packaging:No_Bundled_Libraries[Fedora] and https://wiki.gentoo.org/wiki/" +"Why_not_bundle_dependencies[Gentoo] wikis, both licensed under the https://" +"creativecommons.org/licenses/by-sa/3.0/[CC-BY-SA 3.0] license." +msgstr "" +"Этот список частично основан на вики https://fedoraproject.org/wiki/" +"Packaging:No_Bundled_Libraries[Fedora] и https://wiki.gentoo.org/wiki/" +"Why_not_bundle_dependencies[Gentoo], оба распространяются по лицензии " +"https://creativecommons.org/licenses/by-sa/3.0/[CC-BY-SA 3.0]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:168 +#, no-wrap +msgid "Security" +msgstr "Безопасность" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:174 +msgid "" +"If vulnerabilities are found in the upstream library and fixed there, they " +"might not be fixed in the library bundled with the port. One reason could " +"be that the author is not aware of the problem. This means that the porter " +"must fix them, or upgrade to a non-vulnerable version, and send a patch to " +"the author. This all takes time, which results in software being vulnerable " +"longer than necessary. This in turn makes it harder to coordinate a fix " +"without unnecessarily leaking information about the vulnerability." +msgstr "" +"Если уязвимости обнаружены в вышестоящей библиотеке и исправлены там, они " +"могут остаться неисправленными в библиотеке, поставляемой с портом. Одной из " +"причин может быть то, что автор не знает о проблеме. Это означает, что " +"портировщик должен исправить их или обновить до не уязвимой версии и " +"отправить исправление автору. Всё это требует времени, что приводит к тому, " +"что программное обеспечение остаётся уязвимым дольше, чем необходимо. Это, в " +"свою очередь, затрудняет координацию исправления без неоправданного " +"раскрытия информации об уязвимости." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:175 +#, no-wrap +msgid "Bugs" +msgstr "Ошибки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:177 +msgid "" +"This problem is similar to the problem with security in the last paragraph, " +"but generally less severe." +msgstr "" +"Эта проблема аналогична проблеме с безопасностью в последнем абзаце, но в " +"целом менее серьезная." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:178 +#, no-wrap +msgid "Forking" +msgstr "Ветвление" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:182 +msgid "" +"It is easier for the author to fork the upstream library once it is " +"bundled. While convenient on first sight, it means that the code diverges " +"from upstream making it harder to address security or other problems with " +"the software. A reason for this is that patching becomes harder." +msgstr "" +"Автору проще создать форк upstream-библиотеки после её включения в " +"дистрибутив. Хотя на первый взгляд это кажется удобным, такой подход " +"приводит к расхождению кода с исходным репозиторием, что усложняет " +"исправление уязвимостей и других проблем в ПО. Одна из причин — затруднённое " +"применение патчей." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:185 +msgid "" +"Another problem of forking is that because code diverges from upstream, bugs " +"get solved over and over again instead of just once at a central location. " +"This defeats the idea of open source software in the first place." +msgstr "" +"Еще одна проблема форкинга заключается в том, что из-за расхождения кода с " +"основной веткой, ошибки исправляются снова и снова, вместо того чтобы быть " +"исправленными один раз в центральном месте. Это противоречит самой идее " +"открытого программного обеспечения." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:186 +#, no-wrap +msgid "Symbol collision" +msgstr "Конфликты символов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:191 +msgid "" +"When a library is installed on the system, it might collide with the bundled " +"version. This can cause immediate errors at compile or link time. It can " +"also cause errors when running the program which might be harder to track " +"down. The latter problem could be caused because the versions of the two " +"libraries are incompatible." +msgstr "" +"Когда библиотека установлена в системе, может возникнуть конфликт с " +"встроенной в порт версией. Это может привести к немедленным ошибкам во время " +"компиляции или компоновки. Также могут возникать ошибки при запуске " +"программы, которые сложнее отследить. Последняя проблема может быть вызвана " +"несовместимостью версий двух библиотек." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:192 +#, no-wrap +msgid "Licensing" +msgstr "Лицензирование" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:194 +msgid "" +"When bundling projects from different sources, license issues can arise more " +"easily, especially when licenses are incompatible." +msgstr "" +"При объединении проектов из различных источников могут возникать проблемы с " +"лицензиями, особенно если лицензии несовместимы." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:195 +#, no-wrap +msgid "Waste of resources" +msgstr "Растрата ресурсов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:199 +msgid "" +"Bundled libraries waste resources on several levels. It takes longer to " +"build the actual application, especially if these libraries are already " +"present on the system. At run-time, they can take up unnecessary memory " +"when the system-wide library is already loaded by one program and the " +"bundled library is loaded by another program." +msgstr "" +"Библиотеки, поставляемые в комплекте, растрачивают ресурсы на нескольких " +"уровнях. Сборка самого приложения занимает больше времени, особенно если эти " +"библиотеки уже присутствуют в системе. Во время выполнения они могут " +"занимать дополнительную память, когда общесистемная библиотека уже загружена " +"одной программой, а входящая в комплект библиотека загружена другой " +"программой." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:200 +#, no-wrap +msgid "Waste of effort" +msgstr "Пустая трата усилий" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:204 +msgid "" +"When a library needs patches for FreeBSD, these patches have to be " +"duplicated again in the bundled library. This wastes developer time because " +"the patches might not apply cleanly. It can also be hard to notice that " +"these patches are required in the first place." +msgstr "" +"Когда библиотеке требуются патчи для FreeBSD, эти патчи приходится " +"дублировать в составе библиотеки. Это приводит к потере времени " +"разработчиков, поскольку патчи могут применяться некорректно. Кроме того, " +"бывает сложно сразу заметить, что эти патчи вообще необходимы." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:206 +#, no-wrap +msgid "What to do About Bundled Libraries" +msgstr "Что делать со встроенными библиотеками" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:210 +msgid "" +"Whenever possible, use the unbundled version of the library by adding a " +"`LIB_DEPENDS` to the port. If such a port does not exist yet, consider " +"creating it." +msgstr "" +"По возможности используйте независимую версию библиотеки, добавив " +"`LIB_DEPENDS` в порт. Если такого порта ещё не существует, рассмотрите " +"возможность его создания." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:212 +msgid "" +"Only use bundled libraries if the upstream has a good track record on " +"security and using unbundled versions leads to overly complex patches." +msgstr "" +"Используйте встроенные библиотеки только в том случае, если разработчик " +"имеет хорошую репутацию в вопросах безопасности, а использование внешних " +"версий приводит к излишне сложным исправлениям." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:220 +msgid "" +"In some very special cases, for example emulators, like Wine, a port has to " +"bundle libraries, because they are in a different architecture, or they have " +"been modified to fit the software's use. In that case, those libraries " +"should not be exposed to other ports for linking. Add `BUNDLE_LIBS=yes` to " +"the port's [.filename]#Makefile#. This will tell man:pkg[8] to not compute " +"provided libraries. Always ask the {portmgr} before adding this to a port." +msgstr "" +"В некоторых особых случаях, например, для эмуляторов, таких как Wine, порт " +"должен включать библиотеки, потому что они предназначены для другой " +"архитектуры или были изменены для использования в данном программном " +"обеспечении. В таком случае эти библиотеки не должны быть доступны для " +"связывания с другими портами. Добавьте `BUNDLE_LIBS=yes` в " +"[.filename]#Makefile# порта. Это укажет man:pkg[8] не учитывать " +"предоставляемые библиотеки. Всегда спрашивайте {portmgr}, прежде чем " +"добавлять это в порт." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:223 +#, no-wrap +msgid "Shared Libraries" +msgstr "Динамические библиотеки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:227 +msgid "" +"If the port installs one or more shared libraries, define a `USE_LDCONFIG` " +"make variable, which will instruct a [.filename]#bsd.port.mk# to run `$" +"{LDCONFIG} -m` on the directory where the new library is installed (usually " +"[.filename]#PREFIX/lib#) during `post-install` target to register it into " +"the shared library cache. This variable, when defined, will also facilitate " +"addition of an appropriate `@exec /sbin/ldconfig -m` and `@unexec /sbin/" +"ldconfig -R` pair into [.filename]#pkg-plist#, so that a user who installed " +"the package can start using the shared library immediately and de-" +"installation will not cause the system to still believe the library is there." +msgstr "" +"Если ваш порт устанавливает одну или несколько динамических библиотек, " +"определите переменную `USE_LDCONFIG`, которая приведёт к запуску из " +"[.filename]#bsd.port.mk# команды `${LDCONFIG} -m` относительно каталога, в " +"который устанавливается новая библиотека (как правило, это " +"[.filename]#PREFIX/lib#), во время выполнения цели `post-install` для её " +"регистрации в кэше динамических библиотек. Эта переменная, если она " +"определена, также приведёт к добавлению соответствующей пары команд `@exec /" +"sbin/ldconfig -m` и `@unexec /sbin/ldconfig -R` в ваш файл [.filename]#pkg-" +"plist#, так что пользователь, устанавливающий пакет, сможет сразу же " +"использовать динамическую библиотеку, а удаление пакета не приведёт к тому, " +"что система будет предполагать, что библиотека всё ещё имеется в наличии." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:231 +#, no-wrap +msgid "USE_LDCONFIG=\tyes\n" +msgstr "USE_LDCONFIG=\tyes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:235 +msgid "" +"The default directory can be overridden by setting `USE_LDCONFIG` to a list " +"of directories into which shared libraries are to be installed. For " +"example, if the port installs shared libraries into [.filename]#PREFIX/lib/" +"foo# and [.filename]#PREFIX/lib/bar# use this in [.filename]#Makefile#:" +msgstr "" +"Если нужно, вы можете переопределить каталог по умолчанию, задав значение " +"`USE_LDCONFIG`, в котором должны быть перечислены каталоги, в которые " +"устанавливаются динамические библиотеки. Например, если ваш порт " +"устанавливает динамические библиотеки в каталоги [.filename]#PREFIX/lib/foo# " +"и [.filename]#PREFIX/lib/bar#, то вы можете в файле [.filename]#Makefile# " +"указать следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:239 +#, no-wrap +msgid "USE_LDCONFIG=\t${PREFIX}/lib/foo ${PREFIX}/lib/bar\n" +msgstr "USE_LDCONFIG=\t${PREFIX}/lib/foo ${PREFIX}/lib/bar\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:242 +msgid "" +"Please double-check, often this is not necessary at all or can be avoided " +"through `-rpath` or setting `LD_RUN_PATH` during linking (see package:lang/" +"mosml[] for an example), or through a shell-wrapper which sets " +"`LD_LIBRARY_PATH` before invoking the binary, like package:www/seamonkey[] " +"does." +msgstr "" +"Будьте добры перепроверить, т.к. часто это вовсе не является необходимым и " +"может быть решено иначе с помощью `-rpath` или установки `LD_RUN_PATH` во " +"время компоновки (для примера смотрите package:lang/moscow_ml[]), или с " +"помощью сценария-обёртки, который выставляет `LD_LIBRARY_PATH` перед " +"запуском исполняемого файла как это делает package:www/seamonkey[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:244 +msgid "" +"When installing 32-bit libraries on a 64-bit system, use `USE_LDCONFIG32` " +"instead." +msgstr "" +"При установке 32-разрядных библиотек на 64-разрядной системе используйте " +"вместо этого `USE_LDCONFIG32`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:246 +msgid "" +"If the software uses crossref:special[using-autotools,autotools], and " +"specifically `libtool`, add crossref:uses[uses-libtool,`USES=libtool`]." +msgstr "" +"Если программное обеспечение использует crossref:special[using-" +"autotools,autotools], в частности `libtool`, добавьте crossref:uses[uses-" +"libtool,`USES=libtool`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:248 +msgid "" +"When the major library version number increments in the update to the new " +"port version, all other ports that link to the affected library must have " +"their `PORTREVISION` incremented, to force recompilation with the new " +"library version." +msgstr "" +"Если при обновлении порта увеличивается старший номер версии библиотеки, то " +"для всех портов, компонуемых с затронутой библиотекой, следует увеличить " +"значение `PORTREVISION` для форсирования перекомпиляции с новой версией " +"библиотеки." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:250 +#, no-wrap +msgid "Ports with Distribution Restrictions or Legal Concerns" +msgstr "Порты с ограничениями на распространение или с правовым обременением" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:253 +msgid "" +"Licenses vary, and some of them place restrictions on how the application " +"can be packaged, whether it can be sold for profit, and so on." +msgstr "" +"Лицензии бывают разных видов, и некоторые накладывают ограничение на то, как " +"приложение может быть оформлено в виде пакета, может ли оно продаваться для " +"извлечения коммерческой выгоды, и так далее." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:258 +msgid "" +"It is the responsibility of a porter to read the licensing terms of the " +"software and make sure that the FreeBSD project will not be held accountable " +"for violating them by redistributing the source or compiled binaries either " +"via FTP/HTTP or CD-ROM. If in doubt, please contact the {freebsd-ports}." +msgstr "" +"На вас, как на человека, портирующего приложение, ложится обязанность " +"прочесть лицензионные соглашения на программное обеспечение и " +"удостовериться, что проект FreeBSD не будет являться их нарушителем, если " +"будет заниматься распространением исходного кода или в бинарном виде по FTP/" +"HTTP или на CD-ROM. Если у вас возникли сомнения, то, пожалуйста, обратитесь " +"в {freebsd-ports}." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:261 +msgid "" +"In situations like this, the variables described in the next sections can be " +"set." +msgstr "" +"В подобных ситуациях можно использовать переменные, описываемые в " +"последующих разделах." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:263 +#, no-wrap +msgid "`NO_PACKAGE`" +msgstr "`NO_PACKAGE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:267 +msgid "" +"This variable indicates that we may not generate a binary package of the " +"application. For instance, the license may disallow binary redistribution, " +"or it may prohibit distribution of packages created from patched sources." +msgstr "" +"Эта переменная указывает, что мы не можем создавать для приложения двоичный " +"пакет. К примеру, лицензия не позволяет бинарное распространение или она " +"может запрещать распространение пакетов, созданных из изменённых исходников." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:270 +msgid "" +"However, the port's `DISTFILES` may be freely mirrored on FTP/HTTP. They " +"may also be distributed on a CD-ROM (or similar media) unless `NO_CDROM` is " +"set as well." +msgstr "" +"Однако файлы `DISTFILES` могут свободно зеркалироваться по FTP/HTTP. Они " +"также могут распространяться, используя CD-ROM (или на похожих носителях), " +"если не установлена переменная `NO_CDROM`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:273 +msgid "" +"If the binary package is not generally useful, and the application must " +"always be compiled from the source code, use `NO_PACKAGE`. For example, if " +"the application has configuration information that is site specific hard " +"coded into it at compile time, set `NO_PACKAGE`." +msgstr "" +"`NO_PACKAGE` должна также использоваться, если двоичный пакет, как правило, " +"бесполезен, а приложение должно всегда компилироваться из исходного кода. К " +"примеру, если в приложение во время компиляции жёстко включается " +"конфигурационная информация, привязанная к конкретной системе, то задайте " +"переменную `NO_PACKAGE`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:275 +msgid "" +"Set `NO_PACKAGE` to a string describing the reason why the package cannot be " +"generated." +msgstr "" +"Значением переменной `NO_PACKAGE` должна быть строка, описывающая причину, " +"по которой пакет не должен создаваться." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:277 +#, no-wrap +msgid "`NO_CDROM`" +msgstr "`NO_CDROM`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:281 +msgid "" +"This variable alone indicates that, although we are allowed to generate " +"binary packages, we may put neither those packages nor the port's " +"`DISTFILES` onto a CD-ROM (or similar media) for resale. However, the " +"binary packages and the port's `DISTFILES` will still be available via FTP/" +"HTTP." +msgstr "" +"Эта переменная указывает на то, что, хотя мы имеем право создавать бинарные " +"пакеты, мы не можем помещать эти пакеты или файлы `DISTFILES` порта на CD-" +"ROM (или на похожие носители) для перепродажи. Однако бинарные пакеты и " +"файлы `DISTFILES` порта будут оставаться доступными посредством FTP/HTTP." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:283 +msgid "" +"If this variable is set along with `NO_PACKAGE`, then only the port's " +"`DISTFILES` will be available, and only via FTP/HTTP." +msgstr "" +"Если эта переменная устанавливается вместе с `NO_PACKAGE`, то только файлы " +"порта `DISTFILES` будут доступны, и только посредством FTP/HTTP." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:286 +msgid "" +"Set `NO_CDROM` to a string describing the reason why the port cannot be " +"redistributed on CD-ROM. For instance, use this if the port's license is " +"for \"non-commercial\" use only." +msgstr "" +"В качестве значения `NO_CDROM` должна указываться строка, описывающая " +"причины, по которым порт не может распространяться на CD-ROM. К примеру, это " +"применяется, если лицензионное соглашение приложения предполагает только его " +"\"некоммерческое\" использование." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:288 +#, no-wrap +msgid "`NOFETCHFILES`" +msgstr "`NOFETCHFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:292 +msgid "" +"Files defined in `NOFETCHFILES` are not fetchable from any of " +"`MASTER_SITES`. An example of such a file is when the file is supplied on " +"CD-ROM by the vendor." +msgstr "" +"Файлы, определенные в переменной `NOFETCHFILES`, не будут извлекаться ни из " +"одного из `MASTER_SITES`. Примером такого файла является файл, поставляемый " +"на CD-ROM." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:294 +msgid "" +"Tools which check for the availability of these files on `MASTER_SITES` have " +"to ignore these files and not report about them." +msgstr "" +"Инструменты, проверяющие доступность этих файлов на `MASTER_SITES`, должны " +"игнорировать эти файлы и не сообщать о них." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:296 +#, no-wrap +msgid "`RESTRICTED`" +msgstr "`RESTRICTED`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:299 +msgid "" +"Set this variable alone if the application's license permits neither " +"mirroring the application's `DISTFILES` nor distributing the binary package " +"in any way." +msgstr "" +"Задайте эту переменную, если лицензия на приложение не позволяет ни " +"зеркалировать файлы `DISTFILES`, ни распространять бинарный пакет через FTP/" +"HTTP или на CD-ROM." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:301 +msgid "" +"Do not set `NO_CDROM` or `NO_PACKAGE` along with `RESTRICTED`, since the " +"latter variable implies the former ones." +msgstr "" +"Ни `NO_CDROM`, ни `NO_PACKAGE` не стоит устанавливать вместе с `RESTRICTED`, " +"так как последняя переменная подразумевает первые две." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:305 +msgid "" +"Set `RESTRICTED` to a string describing the reason why the port cannot be " +"redistributed. Typically, this indicates that the port contains proprietary " +"software and that the user will need to manually download the `DISTFILES`, " +"possibly after registering for the software or agreeing to accept the terms " +"of an EULA." +msgstr "" +"В качестве значения `RESTRICTED` должна указываться строка, описывающая " +"причины, по которым порт нельзя распространять. Обычно это означает, что " +"порт использует закрытое программное обеспечение, а пользователь должен " +"вручную сгрузить файлы `DISTFILES`, возможно, после заполнения " +"регистрационной формы или подтверждения соглашения с условиями EULA." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:307 +#, no-wrap +msgid "`RESTRICTED_FILES`" +msgstr "`RESTRICTED_FILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:311 +msgid "" +"When `RESTRICTED` or `NO_CDROM` is set, this variable defaults to `$" +"{DISTFILES} ${PATCHFILES}`, otherwise it is empty. If only some of the " +"distribution files are restricted, then set this variable to list them." +msgstr "" +"Если заданы `RESTRICTED` или `NO_CDROM`, то значение этой переменной по " +"умолчанию соответствует `${DISTFILES} ${PATCHFILES}`, в противном случае она " +"пуста. Если ограничены в распространении лишь некоторые из дистрибутивных " +"файлов, то в этой переменной задаётся их список." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:313 +#, no-wrap +msgid "`LEGAL_TEXT`" +msgstr "`LEGAL_TEXT`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:317 +msgid "" +"If the port has legal concerns not addressed by the above variables, set " +"`LEGAL_TEXT` to a string explaining the concern. For example, if special " +"permission was obtained for FreeBSD to redistribute the binary, this " +"variable must indicate so." +msgstr "" +"Если порт имеет правовое обременение, которое не покрывается перечисленными " +"выше переменными, то переменной `LEGAL_TEXT` следует присвоить строку с " +"описанием данного обременения. Например, если было получено особое " +"разрешение для FreeBSD на распространение двоичного файла, то эта переменная " +"должна содержать соответствующее указание." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:319 +#, no-wrap +msgid "[.filename]#/usr/ports/LEGAL# and `LEGAL`" +msgstr "[.filename]#/usr/ports/LEGAL# и `LEGAL`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:325 +msgid "" +"A port which sets any of the above variables must also be added to " +"[.filename]#/usr/ports/LEGAL#. The first column is a glob which matches the " +"restricted distfiles. The second column is the port's origin. The third " +"column is the output of `make -VLEGAL`." +msgstr "" +"Порт, содержащий любую из перечисленных выше переменных, также должен быть " +"добавлен в [.filename]#/usr/ports/LEGAL#. Первый столбец содержит шаблон " +"совпадения с дистрибутивными файлами, имеющими ограничения на " +"распространение. Второй столбец содержит корень порта. Третий столбец " +"содержит вывод `make -VLEGAL`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:327 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4228 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4488 +#, no-wrap +msgid "Examples" +msgstr "Примеры" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:330 +msgid "" +"The preferred way to state \"the distfiles for this port must be fetched " +"manually\" is as follows:" +msgstr "" +"Предпочтительным способом реализации утверждения \"архивы исходных текстов " +"для этого порта должны загружаться самостоятельно\" является следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:336 +#, no-wrap +msgid "" +".if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})\n" +"IGNORE=\tmay not be redistributed because of licensing reasons. Please visit some-website to accept their license and download ${DISTFILES} into ${DISTDIR}\n" +".endif\n" +msgstr "" +".if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})\n" +"IGNORE=\tmay not be redistributed because of licensing reasons. Please visit some-website to accept their license and download ${DISTFILES} into ${DISTDIR}\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:339 +msgid "" +"This both informs the user, and sets the proper metadata on the user's " +"machine for use by automated programs." +msgstr "" +"Это одновременно и информирует пользователя, и устанавливает нужные " +"метаданные на пользовательской машине для использования автоматическими " +"программами." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:341 +msgid "" +"Note that this stanza must be preceded by an inclusion of " +"[.filename]#bsd.port.pre.mk#." +msgstr "" +"Обратите внимание, что данная кляуза должна предшествовать подключению файла " +"[.filename]#bsd.port.pre.mk#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:343 +#, no-wrap +msgid "Building Mechanisms" +msgstr "Механизмы построения" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:346 +#, no-wrap +msgid "Building Ports in Parallel" +msgstr "Параллельное построение портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:350 +msgid "" +"The FreeBSD ports framework supports parallel building using multiple `make` " +"sub-processes, which allows SMP systems to utilize all of their available " +"CPU power, allowing port builds to be faster and more effective." +msgstr "" +"Инфраструктура портов FreeBSD поддерживает параллельное построение с " +"использованием множественных подпроцессов `make`, что позволяет системам SMP " +"задействовать всю доступную мощность CPU, тем самым делая построение портов " +"более быстрым и эффективным." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:355 +msgid "" +"This is achieved by passing `-jX` flag to man:make[1] running on vendor " +"code. This is the default build behavior of ports. Unfortunately, not all " +"ports handle parallel building well and it may be required to explicitly " +"disable this feature by adding the `MAKE_JOBS_UNSAFE=yes` variable. It is " +"used when a port is known to be broken with `-jX` due to race conditions " +"causing intermittent build failures." +msgstr "" +"Это достигается путём передачи флага `-jX` команде man:make[1]. Такое " +"построение портов является поведением по умолчанию. К сожалению, не все " +"порты поддерживают параллельную сборку достаточно хорошо, и поэтому может " +"потребоваться выключить этот механизм явным образом путём добавления " +"переменной `MAKE_JOBS_UNSAFE=yes`. Эта переменная используется в случае, " +"когда известно, что порт ломается с `-jX`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:360 +msgid "" +"When setting `MAKE_JOBS_UNSAFE`, it is very important to explain either with " +"a comment in the [.filename]#Makefile#, or at least in the commit message, " +"_why_ the port does not build when enabling. Otherwise, it is almost " +"impossible to either fix the problem, or test if it has been fixed when " +"committing an update at a later date." +msgstr "" +"При установке `MAKE_JOBS_UNSAFE` очень важно объяснить либо комментарием в " +"[.filename]#Makefile#, либо хотя бы в сообщении коммита, _почему_ порт не " +"собирается при включении. В противном случае практически невозможно ни " +"исправить проблему, ни проверить, была ли она исправлена при коммите " +"обновления в дальнейшем." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:363 +#, no-wrap +msgid "`make`, `gmake`, and `imake`" +msgstr "`make`, `gmake` и `imake`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:366 +msgid "" +"Several differing `make` implementations exist. Ported software often " +"requires a particular implementation, like GNU `make`, known in FreeBSD as " +"`gmake`." +msgstr "" +"Существует несколько различных реализаций `make`. Переносимому программному " +"обеспечению часто требуется конкретная реализация, например GNU `make`, " +"известная в FreeBSD как `gmake`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:368 +msgid "If the port uses GNU make, add `gmake` to `USES`." +msgstr "Если порт использует GNU make, добавьте `gmake` в `USES`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:371 +msgid "" +"`MAKE_CMD` can be used to reference the specific command configured by the " +"`USES` setting in the port's [.filename]#Makefile#. Only use `MAKE_CMD` " +"within the application [.filename]##Makefile##s in `WRKSRC` to call the " +"`make` implementation expected by the ported software." +msgstr "" +"`MAKE_CMD` может использоваться для ссылки на конкретную команду, " +"настроенную параметром `USES` в [.filename]#Makefile# порта. Используйте " +"`MAKE_CMD` только внутри [.filename]##Makefile## приложения в `WRKSRC` для " +"вызова реализации `make`, ожидаемой портируемым программным обеспечением." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:374 +msgid "" +"If the port is an X application that uses imake to create " +"[.filename]##Makefile##s from [.filename]##Imakefile##s, set `USES= imake`. " +"See the crossref:uses[uses-imake,`USES=imake`] section of " +"crossref:uses[uses,Using `USES` Macros] for more details." +msgstr "" +"Если ваш порт является приложением X, которое создает файлы " +"[.filename]#Makefile# из [.filename]#Imakefile#, используя imake, то " +"установите `USES= imake`. Это заставит стадию конфигурирования автоматически " +"выполнить `xmkmf -a`. Если флаг `-a` представляет для вашего порта проблему, " +"то установите `XMKMF=xmkmf`. Если порт использует imake, но не понимает цель " +"`install.man`, то следует установить `NO_INSTALL_MANPAGES=yes`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:377 +msgid "" +"If the port's source [.filename]#Makefile# has something other than `all` as " +"the main build target, set `ALL_TARGET` accordingly. The same goes for " +"`install` and `INSTALL_TARGET`." +msgstr "" +"Если исходный [.filename]#Makefile# вашего порта имеет что-нибудь помимо " +"`all` в качестве основной цели построения, то задайте соответствующее " +"значение `ALL_TARGET`. То же касается `install` и `INSTALL_TARGET`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:379 +#, no-wrap +msgid "`configure` Script" +msgstr "Сценарий `configure`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:384 +msgid "" +"If the port uses the `configure` script to generate [.filename]#Makefile# " +"from [.filename]#Makefile.in#, set `GNU_CONFIGURE=yes`. To give extra " +"arguments to the `configure` script (the default argument is `--prefix=$" +"{PREFIX} --infodir=${PREFIX}/${INFO_PATH} --mandir=${PREFIX}/man --build=$" +"{CONFIGURE_TARGET}`), set those extra arguments in `CONFIGURE_ARGS`. Extra " +"environment variables can be passed using `CONFIGURE_ENV`." +msgstr "" +"Если ваш порт использует сценарий `configure` для получения файлов " +"[.filename]#Makefile# из файлов [.filename]#Makefile.in#, то установите " +"`GNU_CONFIGURE=yes`. Если вы хотите дать дополнительные параметры сценарию " +"`configure` (аргументом по умолчанию является `--prefix=${PREFIX} --infodir=$" +"{PREFIX}/${INFO_PATH} --mandir=${MANPREFIX}/man --build=${CONFIGURE_TARGET}" +"`), установите эти параметры в `CONFIGURE_ARGS`. Дополнительные переменные " +"окружения можно передать, используя переменную `CONFIGURE_ENV`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:386 +#, no-wrap +msgid "Variables for Ports That Use `configure`" +msgstr "Переменные для портов, использующих `configure`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:390 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:418 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:446 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:529 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:812 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2449 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2469 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3173 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3205 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3790 +#, no-wrap +msgid "Variable" +msgstr "Переменная" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:392 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:420 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:448 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1325 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3175 +#, no-wrap +msgid "Means" +msgstr "Значение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:393 +#, no-wrap +msgid "`GNU_CONFIGURE`" +msgstr "`GNU_CONFIGURE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:395 +#, no-wrap +msgid "The port uses `configure` script to prepare build." +msgstr "Порт использует сценарий `configure` для подготовки построения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:396 +#, no-wrap +msgid "`HAS_CONFIGURE`" +msgstr "`HAS_CONFIGURE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:398 +#, no-wrap +msgid "Same as `GNU_CONFIGURE`, except default configure target is not added to `CONFIGURE_ARGS`." +msgstr "То же, что и `GNU_CONFIGURE`, кроме того, что цель configure по умолчанию не добавляется в `CONFIGURE_ARGS`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:399 +#, no-wrap +msgid "`CONFIGURE_ARGS`" +msgstr "`CONFIGURE_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:401 +#, no-wrap +msgid "Additional arguments passed to `configure` script." +msgstr "Дополнительные параметры, передаваемые сценарию `configure`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:402 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:438 +#, no-wrap +msgid "`CONFIGURE_ENV`" +msgstr "`CONFIGURE_ENV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:404 +#, no-wrap +msgid "Additional environment variables to be set for `configure` script run." +msgstr "Дополнительные переменные окружения, задаваемые для запуска сценария `configure`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:405 +#, no-wrap +msgid "`CONFIGURE_TARGET`" +msgstr "`CONFIGURE_TARGET`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:406 +#, no-wrap +msgid "Override default configure target. Default value is `${MACHINE_ARCH}-portbld-freebsd${OSREL}`." +msgstr "Переопределить цель configure по умолчанию. Значением по умолчанию является `${MACHINE_ARCH}-portbld-freebsd${OSREL}`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:409 +#, no-wrap +msgid "Using `cmake`" +msgstr "Использование `cmake`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:412 +msgid "For ports that use CMake, define `USES= cmake`." +msgstr "Если порт использует CMake, определите `USES= cmake`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:414 +#, no-wrap +msgid "Variables for Ports That Use `cmake`" +msgstr "Переменные для портов, использующих `cmake`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:421 +#, no-wrap +msgid "`CMAKE_ARGS`" +msgstr "`CMAKE_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:423 +#, no-wrap +msgid "Port specific CMake flags to be passed to the `cmake` binary." +msgstr "Специфичные для порта флаги CMake, передаваемые в бинарный файл `cmake`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:424 +#, no-wrap +msgid "`CMAKE_ON`" +msgstr "`CMAKE_ON`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:427 +#, no-wrap +msgid "" +"For each entry in `CMAKE_ON`, an enabled boolean value is added to\n" +"`CMAKE_ARGS`. See crossref:special[using-cmake-example2,`CMAKE_ON` and `CMAKE_OFF`]." +msgstr "" +"Для каждой записи в `CMAKE_ON` добавляется булево значение \"включено\" в\n" +"`CMAKE_ARGS`. См. crossref:special[using-cmake-example2,`CMAKE_ON` и `CMAKE_OFF`]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:428 +#, no-wrap +msgid "`CMAKE_OFF`" +msgstr "`CMAKE_OFF`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:431 +#, no-wrap +msgid "" +"For each entry in `CMAKE_OFF`, a disabled boolean value is added to\n" +"`CMAKE_ARGS`. See crossref:special[using-cmake-example2,`CMAKE_ON` and `CMAKE_OFF`]." +msgstr "" +"Для каждой записи в `CMAKE_OFF` в `CMAKE_ARGS` добавляется отключенное булево\n" +"значение. См. crossref:special[using-cmake-example2,`CMAKE_ON` и `CMAKE_OFF`]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:432 +#, no-wrap +msgid "`CMAKE_BUILD_TYPE`" +msgstr "`CMAKE_BUILD_TYPE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:434 +#, no-wrap +msgid "Type of build (CMake predefined build profiles). Default is `Release`, or `Debug` if `WITH_DEBUG` is set." +msgstr "Тип сборки (предопределённые профили сборки CMake). По умолчанию `Release`, или `Debug`, если установлен `WITH_DEBUG`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:435 +#, no-wrap +msgid "`CMAKE_SOURCE_PATH`" +msgstr "`CMAKE_SOURCE_PATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:437 +#, no-wrap +msgid "Path to the source directory. Default is `${WRKSRC}`." +msgstr "Путь к исходному каталогу. По умолчанию `${WRKSRC}`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:439 +#, no-wrap +msgid "Additional environment variables to be set for the `cmake` binary." +msgstr "Дополнительные переменные окружения, которые должны быть установлены для бинарного файла `cmake`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:442 +#, no-wrap +msgid "Variables the Users Can Define for `cmake` Builds" +msgstr "Переменные, которые пользователи могут определить для сборок `cmake`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:449 +#, no-wrap +msgid "`CMAKE_NOCOLOR`" +msgstr "`CMAKE_NOCOLOR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:450 +#, no-wrap +msgid "Disables color build output. Default not set, unless `BATCH` or `PACKAGE_BUILDING` are set." +msgstr "Запрещает цветной вывод сообщений при построении. Значение по умолчанию не задано, если не заданы `BATCH` или `PACKAGE_BUILDING`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:457 +msgid "" +"CMake supports these build profiles: `Debug`, `Release`, `RelWithDebInfo` " +"and `MinSizeRel`. `Debug` and `Release` profiles respect system `\\*FLAGS`, " +"`RelWithDebInfo` and `MinSizeRel` will set `CFLAGS` to `-O2 -g` and `-Os " +"-DNDEBUG` correspondingly. The lower-cased value of `CMAKE_BUILD_TYPE` is " +"exported to `PLIST_SUB` and must be used if the port installs " +"[.filename]#*.cmake# depending on the build type (see package:devel/kf5-" +"kcrash[] for an example). Please note that some projects may define their " +"own build profiles and/or force particular build type by setting " +"`CMAKE_BUILD_TYPE` in [.filename]#CMakeLists.txt#. To make a port for such " +"a project respect `CFLAGS` and `WITH_DEBUG`, the `CMAKE_BUILD_TYPE` " +"definitions must be removed from those files." +msgstr "" +"CMake поддерживает следующие профили построения: `Debug`, `Release`, " +"`RelWithDebInfo` и `MinSizeRel`. Профили `Debug` и `Release` учитывают " +"системные флаги `\\*FLAGS`; `RelWithDebInfo` и `MinSizeRel` соответственно " +"определяют `CFLAGS` со значением `-O2 -g` и `-Os -DNDEBUG`. Значение " +"`CMAKE_BUILD_TYPE` экспортируется в нижнем регистре в `PLIST_SUB` и должно " +"использоваться, если порт устанавливает файлы `*.cmake` в зависимости от " +"типа построения (для примера посмотрите на package:deskutils/strigi[]). " +"Следует учитывать, что некоторые проекты могут определять собственные " +"профили построения и/или форсировать конкретный тип построения через " +"установку `CMAKE_BUILD_TYPE` в файлах [.filename]#CMakeLists.txt#. Для того " +"чтобы порт для такого проекта учитывал `CFLAGS` и `WITH_DEBUG`, из этих " +"файлов должны быть удалены значения `CMAKE_BUILD_TYPE`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:462 +msgid "" +"Most CMake-based projects support an out-of-source method of building. The " +"out-of-source build for a port is the default setting. An in-source build " +"can be requested by using the `:insource` suffix. With out-of-source " +"builds, `CONFIGURE_WRKSRC`, `BUILD_WRKSRC` and `INSTALL_WRKSRC` will be set " +"to `${WRKDIR}/.build` and this directory will be used to keep all files " +"generated during configuration and build stages, leaving the source " +"directory intact." +msgstr "" +"Большинство проектов, основанных на CMake, поддерживают метод внешнего (out-" +"of-source) построения. Для порта внешнее построение можно запросить с " +"использованием суффикса `:outsource`. В этом случае `CONFIGURE_WRKSRC`, " +"`BUILD_WRKSRC` и `INSTALL_WRKSRC` будут иметь значение `${WRKDIR}/.build` " +"для каталога, содержащего файлы, получаемые на этапах конфигурации и " +"построения; при этом каталог с исходным кодом будет оставаться без изменений." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:464 +#, no-wrap +msgid "`USES= cmake` Example" +msgstr "Пример для `USES= cmake`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:469 +msgid "" +"This snippet demonstrates the use of CMake for a port. `CMAKE_SOURCE_PATH` " +"is not usually required, but can be set when the sources are not located in " +"the top directory, or if only a subset of the project is intended to be " +"built by the port." +msgstr "" +"Следующий отрывок демонстрирует использование CMake для порта. " +"`CMAKE_SOURCE_PATH` обычно не требуется, но может быть установлен, когда " +"исходный код не находится в верхнем каталоге или если порт используется для " +"построения части проекта." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:474 +#, no-wrap +msgid "" +"USES=\t\t\tcmake\n" +"CMAKE_SOURCE_PATH=\t${WRKSRC}/subproject\n" +msgstr "" +"USES=\t\t\tcmake\n" +"CMAKE_SOURCE_PATH=\t${WRKSRC}/subproject\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:479 +#, no-wrap +msgid "`CMAKE_ON` and `CMAKE_OFF`" +msgstr "`CMAKE_ON` и `CMAKE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:483 +msgid "" +"When adding boolean values to `CMAKE_ARGS`, it is easier to use the " +"`CMAKE_ON` and `CMAKE_OFF` variables instead. This:" +msgstr "" +"При добавлении логических значений в `CMAKE_ARGS` проще использовать " +"переменные `CMAKE_ON` и `CMAKE_OFF` вместо этого. Это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:488 +#, no-wrap +msgid "" +"CMAKE_ON=\tVAR1 VAR2\n" +"CMAKE_OFF=\tVAR3\n" +msgstr "" +"CMAKE_ON=\tVAR1 VAR2\n" +"CMAKE_OFF=\tVAR3\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:491 +msgid "Is equivalent to:" +msgstr "Эквивалентно:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:495 +#, no-wrap +msgid "CMAKE_ARGS=\t-DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE\n" +msgstr "CMAKE_ARGS=\t-DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE\n" + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:501 +msgid "" +"This is only for the default values off `CMAKE_ARGS`. The helpers described " +"in crossref:makefiles[options-cmake_bool,`OPT_CMAKE_BOOL` and " +"`OPT_CMAKE_BOOL_OFF`] use the same semantics, but for optional values." +msgstr "" +"Это относится только к значениям по умолчанию в `CMAKE_ARGS`. " +"Вспомогательные функции, описанные в crossref:makefiles[options-" +"cmake_bool,`OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`], используют ту же " +"семантику, но для опциональных значений." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:506 +#, no-wrap +msgid "Using `scons`" +msgstr "Использование `scons`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:509 +msgid "If the port uses SCons, define `USES=scons`." +msgstr "Если порт использует SCons, определите `USES=scons`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:511 +msgid "" +"To make third party [.filename]#SConstruct# respect everything that is " +"passed to SCons in the environment (that is, most importantly, `CC/CXX/" +"CFLAGS/CXXFLAGS`), patch [.filename]#SConstruct# so build `Environment` is " +"constructed like this:" +msgstr "" +"Чтобы сторонний [.filename]#SConstruct# учитывал все, что передается в SCons " +"через окружение (то есть, что наиболее важно, `CC/CXX/CFLAGS/CXXFLAGS`), " +"исправьте [.filename]#SConstruct#, чтобы сборка `Environment` создавалась " +"следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:515 +#, no-wrap +msgid "env = Environment(**ARGUMENTS)\n" +msgstr "env = Environment(**ARGUMENTS)\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:518 +msgid "It may be then modified with `env.Append` and `env.Replace`." +msgstr "Он может быть изменён с помощью `env.Append` и `env.Replace`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:520 +#, no-wrap +msgid "Building Rust Applications with `cargo`" +msgstr "Сборка приложений на Rust с помощью `cargo`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:523 +msgid "For ports that use Cargo, define `USES=cargo`." +msgstr "Для портов, использующих Cargo, определите `USES=cargo`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:525 +#, no-wrap +msgid "Variables the Users Can Define for `cargo` Builds" +msgstr "Переменные, которые пользователи могут определить для сборок `cargo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:530 +#, no-wrap +msgid "Default" +msgstr "По умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:532 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:814 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1733 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1901 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1919 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2087 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2153 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2397 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2414 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2451 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2471 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2547 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3127 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3791 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3825 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3868 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3894 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3998 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4168 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4220 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4312 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4404 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4466 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4726 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:533 +#, no-wrap +msgid "`CARGO_CRATES`" +msgstr "`CARGO_CRATES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:539 +#, no-wrap +msgid "" +"List of crates the port depends on. Each entry needs to have a format like `cratename-semver` for example, `libc-0.2.40`. Port maintainers can generate this list from [.filename]#Cargo.lock# using `make cargo-crates`. Manually bumping crate versions is possible but be mindful of transitive dependencies.\n" +"If the list generated by `make cargo-crates` is big, it might be convenient to place it inside a `Makefile.crates` file in the top-level port directory.\n" +"If present, the ports framework sources that file automatically.\n" +"This help keep the main port Makefile within a manageable size." +msgstr "" +"Список ящиков (crates), от которых зависит порт. Каждая запись должна быть в формате `имя_ящика-семвер`, например, `libc-0.2.40`. Поддерживающие порт могут сгенерировать этот список из файла [.filename]#Cargo.lock# с помощью команды `make cargo-crates`. Вручную обновлять версии ящиков возможно, но следует учитывать транзитивные зависимости.\n" +"Если список, сгенерированный `make cargo-crates`, слишком велик, его можно разместить в файле `Makefile.crates` в корневом каталоге порта.\n" +"Если такой файл присутствует, фреймворк портов автоматически загружает его.\n" +"Это помогает сохранять основной Makefile порта в удобном для работы размере." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:540 +#, no-wrap +msgid "`CARGO_FEATURES`" +msgstr "`CARGO_FEATURES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:543 +#, no-wrap +msgid "List of application features to build (space separated list). To deactivate all default features add the special token `--no-default-features` to `CARGO_FEATURES`. Manually passing it to `CARGO_BUILD_ARGS`, `CARGO_INSTALL_ARGS`, and `CARGO_TEST_ARGS` is not needed." +msgstr "Список функций приложения для сборки (список через пробел). Чтобы отключить все функции по умолчанию, добавьте специальный токен `--no-default-features` в `CARGO_FEATURES`. Вручную передавать его в `CARGO_BUILD_ARGS`, `CARGO_INSTALL_ARGS` и `CARGO_TEST_ARGS` не требуется." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:544 +#, no-wrap +msgid "`CARGO_CARGOTOML`" +msgstr "`CARGO_CARGOTOML`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:545 +#, no-wrap +msgid "`${WRKSRC}/Cargo.toml`" +msgstr "`${WRKSRC}/Cargo.toml`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:547 +#, no-wrap +msgid "The path to the [.filename]#Cargo.toml# to use." +msgstr "Путь к файлу [.filename]#Cargo.toml#, который следует использовать." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:548 +#, no-wrap +msgid "`CARGO_CARGOLOCK`" +msgstr "`CARGO_CARGOLOCK`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:549 +#, no-wrap +msgid "`${WRKSRC}/Cargo.lock`" +msgstr "`${WRKSRC}/Cargo.lock`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:551 +#, no-wrap +msgid "The path to the [.filename]#Cargo.lock# to use for `make cargo-crates`. It is possible to specify more than one lock file when necessary." +msgstr "Путь к файлу [.filename]#Cargo.lock#, используемому для `make cargo-crates`. Можно указать более одного файла блокировки, если это необходимо." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:552 +#, no-wrap +msgid "`CARGO_ENV`" +msgstr "`CARGO_ENV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:555 +#, no-wrap +msgid "A list of environment variables to pass to Cargo similar to `MAKE_ENV`." +msgstr "Список переменных окружения, передаваемых в Cargo, аналогично `MAKE_ENV`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:556 +#, no-wrap +msgid "`RUSTFLAGS`" +msgstr "`RUSTFLAGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:559 +#, no-wrap +msgid "Flags to pass to the Rust compiler." +msgstr "Флаги для передачи компилятору Rust." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:560 +#, no-wrap +msgid "`CARGO_CONFIGURE`" +msgstr "`CARGO_CONFIGURE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:561 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:569 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:577 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:585 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:597 +#, no-wrap +msgid "`yes`" +msgstr "`yes`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:563 +#, no-wrap +msgid "Use the default `do-configure`." +msgstr "Используйте стандартный `do-configure`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:564 +#, no-wrap +msgid "`CARGO_UPDATE_ARGS`" +msgstr "`CARGO_UPDATE_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:567 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the configure phase. Valid arguments can be looked up with `cargo update --help`." +msgstr "Дополнительные аргументы для передачи Cargo во время фазы настройки. Допустимые аргументы можно посмотреть с помощью `cargo update --help`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:568 +#, no-wrap +msgid "`CARGO_BUILDDEP`" +msgstr "`CARGO_BUILDDEP`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:571 +#, no-wrap +msgid "Add a build dependency on package:lang/rust[]." +msgstr "Добавить зависимость сборки на package:lang/rust[]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:572 +#, no-wrap +msgid "`CARGO_CARGO_BIN`" +msgstr "`CARGO_CARGO_BIN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:573 +#, no-wrap +msgid "`${LOCALBASE}/bin/cargo`" +msgstr "`${LOCALBASE}/bin/cargo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:575 +#, no-wrap +msgid "Location of the `cargo` binary." +msgstr "Расположение бинарного файла `cargo`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:576 +#, no-wrap +msgid "`CARGO_BUILD`" +msgstr "`CARGO_BUILD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:579 +#, no-wrap +msgid "Use the default `do-build`." +msgstr "Используйте значение по умолчанию `do-build`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:580 +#, no-wrap +msgid "`CARGO_BUILD_ARGS`" +msgstr "`CARGO_BUILD_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:583 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the build phase. Valid arguments can be looked up with `cargo build --help`." +msgstr "Дополнительные аргументы для передачи Cargo во время фазы сборки. Допустимые аргументы можно посмотреть с помощью `cargo build --help`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:584 +#, no-wrap +msgid "`CARGO_INSTALL`" +msgstr "`CARGO_INSTALL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:587 +#, no-wrap +msgid "Use the default `do-install`." +msgstr "Используйте настройку `do-install` по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:588 +#, no-wrap +msgid "`CARGO_INSTALL_ARGS`" +msgstr "`CARGO_INSTALL_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:591 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the install phase. Valid arguments can be looked up with `cargo install --help`." +msgstr "Дополнительные аргументы для передачи Cargo во время фазы установки. Допустимые аргументы можно посмотреть с помощью `cargo install --help`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:592 +#, no-wrap +msgid "`CARGO_INSTALL_PATH`" +msgstr "`CARGO_INSTALL_PATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:593 +#, no-wrap +msgid "`.`" +msgstr "`.`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:595 +#, no-wrap +msgid "Path to the crate to install. This is passed to `cargo install` via its `--path` argument. When multiple paths are specified `cargo install` is run multiple times." +msgstr "Путь к пакету для установки. Этот аргумент передается в `cargo install` через параметр `--path`. Если указано несколько путей, `cargo install` запускается несколько раз." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:596 +#, no-wrap +msgid "`CARGO_TEST`" +msgstr "`CARGO_TEST`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:599 +#, no-wrap +msgid "Use the default `do-test`." +msgstr "Используйте значение по умолчанию `do-test`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:600 +#, no-wrap +msgid "`CARGO_TEST_ARGS`" +msgstr "`CARGO_TEST_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:603 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the test phase. Valid arguments can be looked up with `cargo test --help`." +msgstr "Дополнительные аргументы для передачи Cargo во время тестовой фазы. Допустимые аргументы можно посмотреть с помощью `cargo test --help`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:604 +#, no-wrap +msgid "`CARGO_TARGET_DIR`" +msgstr "`CARGO_TARGET_DIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:605 +#, no-wrap +msgid "`${WRKDIR}/target`" +msgstr "`${WRKDIR}/target`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:607 +#, no-wrap +msgid "Location of the cargo output directory." +msgstr "Расположение выходного каталога cargo." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:608 +#, no-wrap +msgid "`CARGO_DIST_SUBDIR`" +msgstr "`CARGO_DIST_SUBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:609 +#, no-wrap +msgid "[.filename]#rust/crates#" +msgstr "[.filename]#rust/crates#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:611 +#, no-wrap +msgid "Directory relative to `DISTDIR` where the crate distribution files will be stored." +msgstr "Каталог относительно `DISTDIR`, в котором будут храниться файлы дистрибутивов пакетов (crates)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:612 +#, no-wrap +msgid "`CARGO_VENDOR_DIR`" +msgstr "`CARGO_VENDOR_DIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:613 +#, no-wrap +msgid "`${WRKSRC}/cargo-crates`" +msgstr "`${WRKSRC}/cargo-crates`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:615 +#, no-wrap +msgid "Location of the vendor directory where all crates will be extracted to. Try to keep this under `PATCH_WRKSRC`, so that patches can be applied easily." +msgstr "Расположение каталога сторонних поставщиков ПО, в который будут извлечены все крейты. Старайтесь держать его в пределах `PATCH_WRKSRC`, чтобы упростить применение патчей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:616 +#, no-wrap +msgid "`CARGO_USE_GITHUB`" +msgstr "`CARGO_USE_GITHUB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:617 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:621 +#, no-wrap +msgid "`no`" +msgstr "`no`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:619 +#, no-wrap +msgid "Enable fetching of crates locked to specific Git commits on GitHub via `GH_TUPLE`. This will try to patch all [.filename]#Cargo.toml# under `WRKDIR` to point to the offline sources instead of fetching them from a Git repository during the build." +msgstr "Включить загрузку крейтов, привязанных к определённым коммитам Git на GitHub, с помощью `GH_TUPLE`. Это попытается исправить все файлы [.filename]#Cargo.toml# в `WRKDIR`, чтобы они ссылались на автономные источники вместо загрузки из репозитория Git во время сборки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:620 +#, no-wrap +msgid "`CARGO_USE_GITLAB`" +msgstr "`CARGO_USE_GITLAB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:622 +#, no-wrap +msgid "Same as `CARGO_USE_GITHUB` but for GitLab instances and `GL_TUPLE`." +msgstr "То же, что и `CARGO_USE_GITHUB`, но для экземпляров GitLab и `GL_TUPLE`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:625 +#, no-wrap +msgid "Creating a Port for a Simple Rust Application" +msgstr "Создание порта для простого приложения на Rust" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:630 +msgid "" +"Creating a Cargo based port is a three stage process. First we need to " +"provide a ports template that fetches the application distribution file:" +msgstr "" +"Создание порта на основе Cargo — это процесс из трёх этапов. Сначала " +"необходимо предоставить шаблон портов, который загружает дистрибутивный файл " +"приложения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:637 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:682 +#, no-wrap +msgid "" +"PORTNAME=\ttokei\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t7.0.2\n" +"CATEGORIES=\tdevel\n" +msgstr "" +"PORTNAME=\ttokei\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t7.0.2\n" +"CATEGORIES=\tdevel\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:641 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:686 +#, no-wrap +msgid "" +"MAINTAINER=\ttobik@FreeBSD.org\n" +"COMMENT=\tDisplay statistics about your code\n" +"WWW=\t\thttps://github.com/XAMPPRocky/tokei/\n" +msgstr "" +"MAINTAINER=\ttobik@FreeBSD.org\n" +"COMMENT=\tDisplay statistics about your code\n" +"WWW=\t\thttps://github.com/XAMPPRocky/tokei/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:645 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:690 +#, no-wrap +msgid "" +"USES=\t\tcargo\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tAaronepower\n" +msgstr "" +"USES=\t\tcargo\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tAaronepower\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:647 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:700 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:867 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:890 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:948 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1019 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1106 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1122 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1136 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1253 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1274 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1647 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3475 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3535 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3651 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4252 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4276 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4514 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:650 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:893 +msgid "Generate an initial [.filename]#distinfo#:" +msgstr "Сгенерировать первоначальный [.filename]#distinfo#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:658 +#, no-wrap +msgid "" +"% make makesum\n" +"=> Aaronepower-tokei-v7.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz\n" +"fetch: https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz: size of remote file is not known\n" +"Aaronepower-tokei-v7.0.2_GH0.tar.gz 45 kB 239 kBps 00m00s\n" +msgstr "" +"% make makesum\n" +"=> Aaronepower-tokei-v7.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz\n" +"fetch: https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz: size of remote file is not known\n" +"Aaronepower-tokei-v7.0.2_GH0.tar.gz 45 kB 239 kBps 00m00s\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:661 +msgid "" +"Now the distribution file is ready to use and we can go ahead and extract " +"crate dependencies from the bundled [.filename]#Cargo.lock#:" +msgstr "" +"Теперь файл дистрибутива готов к использованию, и мы можем продолжить, " +"извлекая зависимости пакета из встроенного файла [.filename]#Cargo.lock#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:672 +#, no-wrap +msgid "" +"% make cargo-crates\n" +"CARGO_CRATES= aho-corasick-0.6.4 \\\n" +" ansi_term-0.11.0 \\\n" +" arrayvec-0.4.7 \\\n" +" atty-0.2.9 \\\n" +" bitflags-1.0.1 \\\n" +" byteorder-1.2.2 \\\n" +" [...]\n" +msgstr "" +"% make cargo-crates\n" +"CARGO_CRATES= aho-corasick-0.6.4 \\\n" +" ansi_term-0.11.0 \\\n" +" arrayvec-0.4.7 \\\n" +" atty-0.2.9 \\\n" +" bitflags-1.0.1 \\\n" +" byteorder-1.2.2 \\\n" +" [...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:675 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:923 +msgid "" +"The output of this command needs to be pasted directly into the Makefile:" +msgstr "Вывод этой команды необходимо вставить напрямую в Makefile:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:698 +#, no-wrap +msgid "" +"CARGO_CRATES= aho-corasick-0.6.4 \\\n" +" ansi_term-0.11.0 \\\n" +" arrayvec-0.4.7 \\\n" +" atty-0.2.9 \\\n" +" bitflags-1.0.1 \\\n" +" byteorder-1.2.2 \\\n" +" [...]\n" +msgstr "" +"CARGO_CRATES= aho-corasick-0.6.4 \\\n" +" ansi_term-0.11.0 \\\n" +" arrayvec-0.4.7 \\\n" +" atty-0.2.9 \\\n" +" bitflags-1.0.1 \\\n" +" byteorder-1.2.2 \\\n" +" [...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:703 +msgid "" +"[.filename]#distinfo# needs to be regenerated to contain all the crate " +"distribution files:" +msgstr "" +"[.filename]#distinfo# необходимо перегенерировать, чтобы включить все " +"дистрибутивные файлы крейтов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:721 +#, no-wrap +msgid "" +"% make makesum\n" +"=> rust/crates/aho-corasick-0.6.4.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/aho-corasick/0.6.4/download?dummy=/rust/crates/aho-corasick-0.6.4.tar.gz\n" +"rust/crates/aho-corasick-0.6.4.tar.gz 100% of 24 kB 6139 kBps 00m00s\n" +"=> rust/crates/ansi_term-0.11.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/ansi_term/0.11.0/download?dummy=/rust/crates/ansi_term-0.11.0.tar.gz\n" +"rust/crates/ansi_term-0.11.0.tar.gz 100% of 16 kB 21 MBps 00m00s\n" +"=> rust/crates/arrayvec-0.4.7.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/arrayvec/0.4.7/download?dummy=/rust/crates/arrayvec-0.4.7.tar.gz\n" +"rust/crates/arrayvec-0.4.7.tar.gz 100% of 22 kB 3237 kBps 00m00s\n" +"=> rust/crates/atty-0.2.9.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/atty/0.2.9/download?dummy=/rust/crates/atty-0.2.9.tar.gz\n" +"rust/crates/atty-0.2.9.tar.gz 100% of 5898 B 81 MBps 00m00s\n" +"=> rust/crates/bitflags-1.0.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"[...]\n" +msgstr "" +"% make makesum\n" +"=> rust/crates/aho-corasick-0.6.4.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/aho-corasick/0.6.4/download?dummy=/rust/crates/aho-corasick-0.6.4.tar.gz\n" +"rust/crates/aho-corasick-0.6.4.tar.gz 100% of 24 kB 6139 kBps 00m00s\n" +"=> rust/crates/ansi_term-0.11.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/ansi_term/0.11.0/download?dummy=/rust/crates/ansi_term-0.11.0.tar.gz\n" +"rust/crates/ansi_term-0.11.0.tar.gz 100% of 16 kB 21 MBps 00m00s\n" +"=> rust/crates/arrayvec-0.4.7.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/arrayvec/0.4.7/download?dummy=/rust/crates/arrayvec-0.4.7.tar.gz\n" +"rust/crates/arrayvec-0.4.7.tar.gz 100% of 22 kB 3237 kBps 00m00s\n" +"=> rust/crates/atty-0.2.9.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/atty/0.2.9/download?dummy=/rust/crates/atty-0.2.9.tar.gz\n" +"rust/crates/atty-0.2.9.tar.gz 100% of 5898 B 81 MBps 00m00s\n" +"=> rust/crates/bitflags-1.0.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:724 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:967 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1079 +msgid "" +"The port is now ready for a test build and further adjustments like creating " +"a plist, writing a description, adding license information, options, etc. as " +"normal." +msgstr "" +"Порт теперь готов к тестовой сборке и дальнейшим настройкам, таким как " +"создание plist, написание описания, добавление информации о лицензии, опций " +"и т.д., как обычно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:726 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:969 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1081 +msgid "" +"If you are not testing your port in a clean environment like with poudriere, " +"remember to run `make clean` before any testing." +msgstr "" +"Если вы не тестируете свой порт в чистой среде, например, с использованием " +"poudriere, не забудьте выполнить `make clean` перед любым тестированием." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:729 +#, no-wrap +msgid "Enabling Additional Application Features" +msgstr "Включение дополнительных возможностей приложений" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:734 +msgid "" +"Some applications define additional features in their " +"[.filename]#Cargo.toml#. They can be compiled in by setting " +"`CARGO_FEATURES` in the port." +msgstr "" +"Некоторые приложения определяют дополнительные возможности в своем " +"[.filename]#Cargo.toml#. Их можно включить при компиляции, установив " +"`CARGO_FEATURES` в порте." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:736 +msgid "Here we enable Tokei's `json` and `yaml` features:" +msgstr "Здесь мы включаем функции `json` и `yaml` в Tokei:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:740 +#, no-wrap +msgid "CARGO_FEATURES=\tjson yaml\n" +msgstr "CARGO_FEATURES=\tjson yaml\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:745 +#, no-wrap +msgid "Encoding Application Features As Port Options" +msgstr "Кодирование характеристик приложений как параметров порта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:749 +msgid "" +"An example `[features]` section in [.filename]#Cargo.toml# could look like " +"this:" +msgstr "" +"Пример раздела `[features]` в [.filename]#Cargo.toml# может выглядеть так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:756 +#, no-wrap +msgid "" +"[features]\n" +"pulseaudio_backend = [\"librespot-playback/pulseaudio-backend\"]\n" +"portaudio_backend = [\"librespot-playback/portaudio-backend\"]\n" +"default = [\"pulseaudio_backend\"]\n" +msgstr "" +"[features]\n" +"pulseaudio_backend = [\"librespot-playback/pulseaudio-backend\"]\n" +"portaudio_backend = [\"librespot-playback/portaudio-backend\"]\n" +"default = [\"pulseaudio_backend\"]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:761 +msgid "" +"`pulseaudio_backend` is a default feature. It is always enabled unless we " +"explicitly turn off default features by adding `--no-default-features` to " +"`CARGO_FEATURES`. Here we turn the `portaudio_backend` and " +"`pulseaudio_backend` features into port options:" +msgstr "" +"`pulseaudio_backend` — это функция по умолчанию. Она всегда включена, если " +"мы явно не отключим функции по умолчанию, добавив `--no-default-features` в " +"`CARGO_FEATURES`. Здесь мы превращаем функции `portaudio_backend` и " +"`pulseaudio_backend` в опции порта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:765 +#, no-wrap +msgid "CARGO_FEATURES=\t--no-default-features\n" +msgstr "CARGO_FEATURES=\t--no-default-features\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:767 +#, no-wrap +msgid "OPTIONS_DEFINE=\tPORTAUDIO PULSEAUDIO\n" +msgstr "OPTIONS_DEFINE=\tPORTAUDIO PULSEAUDIO\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:770 +#, no-wrap +msgid "" +"PORTAUDIO_VARS=\t\tCARGO_FEATURES+=portaudio_backend\n" +"PULSEAUDIO_VARS=\tCARGO_FEATURES+=pulseaudio_backend\n" +msgstr "" +"PORTAUDIO_VARS=\t\tCARGO_FEATURES+=portaudio_backend\n" +"PULSEAUDIO_VARS=\tCARGO_FEATURES+=pulseaudio_backend\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:775 +#, no-wrap +msgid "Listing Crate Licenses" +msgstr "Перечисление лицензий крейтов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:781 +msgid "" +"Crates have their own licenses. It is important to know what they are when " +"adding a `LICENSE` block to the port (see " +"crossref:makefiles[licenses,Licenses]). The helper target `cargo-crates-" +"licenses` will try to list all the licenses of all crates defined in " +"`CARGO_CRATES`." +msgstr "" +"Крейты имеют собственные лицензии. Важно знать, какие они, при добавлении " +"блока `LICENSE` в порт (см. crossref:makefiles[licenses,Лицензии]). " +"Вспомогательная цель `cargo-crates-licenses` попытается перечислить все " +"лицензии всех ящиков, определённых в `CARGO_CRATES`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:792 +#, no-wrap +msgid "" +"% make cargo-crates-licenses\n" +"aho-corasick-0.6.4 Unlicense/MIT\n" +"ansi_term-0.11.0 MIT\n" +"arrayvec-0.4.7 MIT/Apache-2.0\n" +"atty-0.2.9 MIT\n" +"bitflags-1.0.1 MIT/Apache-2.0\n" +"byteorder-1.2.2 Unlicense/MIT\n" +"[...]\n" +msgstr "" +"% make cargo-crates-licenses\n" +"aho-corasick-0.6.4 Unlicense/MIT\n" +"ansi_term-0.11.0 MIT\n" +"arrayvec-0.4.7 MIT/Apache-2.0\n" +"atty-0.2.9 MIT\n" +"bitflags-1.0.1 MIT/Apache-2.0\n" +"byteorder-1.2.2 Unlicense/MIT\n" +"[...]\n" + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:798 +msgid "" +"The license names `make cargo-crates-licenses` outputs are SPDX 2.1 licenses " +"expression which do not match the license names defined in the ports " +"framework. They need to be translated to the names from " +"crossref:makefiles[licenses-license-list,Predefined License List]." +msgstr "" +"Названия лицензий, которые выводит `make cargo-crates-licenses`, являются " +"SPDX 2.1-совместимыми лицензионными выражениями, которые не совпадают с " +"названиями лицензий, определёнными в фреймворке портов. Их необходимо " +"перевести в названия из crossref:makefiles[licenses-license-list,Списка " +"предопределённых лицензий]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:803 +#, no-wrap +msgid "Using `meson`" +msgstr "Использование `meson`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:806 +msgid "For ports that use Meson, define `USES=meson`." +msgstr "Для портов, использующих Meson, определите `USES=meson`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:808 +#, no-wrap +msgid "Variables for Ports That Use `meson`" +msgstr "Переменные для портов, использующих `meson`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:815 +#, no-wrap +msgid "`MESON_ARGS`" +msgstr "`MESON_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:817 +#, no-wrap +msgid "Port specific Meson flags to be passed to the `meson` binary." +msgstr "Порт-специфичные флаги Meson, передаваемые в бинарный файл `meson`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:818 +#, no-wrap +msgid "`MESON_BUILD_DIR`" +msgstr "`MESON_BUILD_DIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:819 +#, no-wrap +msgid "Path to the build directory relative to `WRKSRC`. Default is `_build`." +msgstr "Путь к директории сборки относительно `WRKSRC`. По умолчанию — `_build`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:822 +#, no-wrap +msgid "`USES=meson` Example" +msgstr "Пример `USES=meson`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:826 +msgid "This snippet demonstrates the use of Meson for a port." +msgstr "Этот фрагмент демонстрирует использование Meson для порта." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:831 +#, no-wrap +msgid "" +"USES=\t\tmeson\n" +"MESON_ARGS=\t-Dfoo=enabled\n" +msgstr "" +"USES=\t\tmeson\n" +"MESON_ARGS=\t-Dfoo=enabled\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:836 +#, no-wrap +msgid "Building Go Applications" +msgstr "Создание приложений на Go" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:840 +msgid "" +"For ports that use Go, define `USES=go`. Refer to crossref:uses[uses-" +"go,`go`] for a list of variables that can be set to control the build " +"process." +msgstr "" +"Для портов, использующих Go, определите `USES=go`. Обратитесь к " +"crossref:uses[uses-go,`go`] для получения списка переменных, которые можно " +"задать для управления процессом сборки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:842 +#, no-wrap +msgid "Creating a Port for a Go Modules Based Application" +msgstr "Создание порта для приложения на основе модулей Go" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:846 +msgid "" +"In most cases, it is sufficient to set the `GO_MODULE` variable to the value " +"specified by the `module` directive in `go.mod`:" +msgstr "" +"В большинстве случаев достаточно установить переменную `GO_MODULE` в " +"значение, указанное директивой `module` в `go.mod`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:853 +#, no-wrap +msgid "" +"PORTNAME= hey\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION= 0.1.4\n" +"CATEGORIES= benchmarks\n" +msgstr "" +"PORTNAME= hey\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION= 0.1.4\n" +"CATEGORIES= benchmarks\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:857 +#, no-wrap +msgid "" +"MAINTAINER= dmgk@FreeBSD.org\n" +"COMMENT= Tiny program that sends some load to a web application\n" +"WWW= https://github.com/rakyll/hey/\n" +msgstr "" +"MAINTAINER= dmgk@FreeBSD.org\n" +"COMMENT= Tiny program that sends some load to a web application\n" +"WWW= https://github.com/rakyll/hey/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:860 +#, no-wrap +msgid "" +"LICENSE= APACHE20\n" +"LICENSE_FILE= ${WRKSRC}/LICENSE\n" +msgstr "" +"LICENSE= APACHE20\n" +"LICENSE_FILE= ${WRKSRC}/LICENSE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:863 +#, no-wrap +msgid "" +"USES= go:modules\n" +"GO_MODULE= github.com/rakyll/hey\n" +msgstr "" +"USES= go:modules\n" +"GO_MODULE= github.com/rakyll/hey\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:865 +#, no-wrap +msgid "PLIST_FILES= bin/hey\n" +msgstr "PLIST_FILES= bin/hey\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:870 +msgid "" +"If the \"easy\" way is not adequate or more control over dependencies is " +"needed, the full porting process is described below." +msgstr "" +"Если «простой» способ не подходит или требуется больший контроль над " +"зависимостями, полный процесс переноса описан ниже." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:873 +msgid "" +"Creating a Go-based port is a five-stage process. First we need to provide " +"a ports template that fetches the application distribution file:" +msgstr "" +"Создание порта на основе Go — это процесс из пяти этапов. Сначала необходимо " +"предоставить шаблон портов, который загружает дистрибутивный файл приложения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:880 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:930 +#, no-wrap +msgid "" +"PORTNAME=\tghq\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t0.12.5\n" +"CATEGORIES=\tdevel\n" +msgstr "" +"PORTNAME=\tghq\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t0.12.5\n" +"CATEGORIES=\tdevel\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:884 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:934 +#, no-wrap +msgid "" +"MAINTAINER=\ttobik@FreeBSD.org\n" +"COMMENT=\tRemote repository management made easy\n" +"WWW=\t\thttps://github.com/x-motemen/ghq/\n" +msgstr "" +"MAINTAINER=\ttobik@FreeBSD.org\n" +"COMMENT=\tRemote repository management made easy\n" +"WWW=\t\thttps://github.com/x-motemen/ghq/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:888 +#, no-wrap +msgid "" +"USES=\t\tgo:modules\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tmotemen\n" +msgstr "" +"USES=\t\tgo:modules\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tmotemen\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:902 +#, no-wrap +msgid "" +"% make makesum\n" +"===> License MIT accepted by the user\n" +"=> motemen-ghq-v0.12.5_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz\n" +"fetch: https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz: size of remote file is not known\n" +"motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s\n" +msgstr "" +"% make makesum\n" +"===> License MIT accepted by the user\n" +"=> motemen-ghq-v0.12.5_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz\n" +"fetch: https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz: size of remote file is not known\n" +"motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:906 +msgid "" +"Now the distribution file is ready to use and we can extract the required Go " +"module dependencies. This step requires having package:ports-mgmt/" +"modules2tuple[] installed:" +msgstr "" +"Теперь файл дистрибутива готов к использованию, и мы можем извлечь " +"необходимые зависимости модуля Go. Этот шаг требует наличия установленного " +"пакета package:ports-mgmt/modules2tuple[]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:920 +#, no-wrap +msgid "" +"% make gomod-vendor\n" +"[...]\n" +"GH_TUPLE=\t\\\n" +"\t\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" +"\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" +"\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" +"\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" +"\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" +"\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" +"\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" +"\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" +msgstr "" +"% make gomod-vendor\n" +"[...]\n" +"GH_TUPLE=\t\\\n" +"\t\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" +"\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" +"\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" +"\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" +"\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" +"\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" +"\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" +"\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:946 +#, no-wrap +msgid "" +"USES=\t\tgo:modules\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tmotemen\n" +"GH_TUPLE=\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" +"\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" +"\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" +"\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" +"\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" +"\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" +"\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" +"\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" +msgstr "" +"USES=\t\tgo:modules\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tmotemen\n" +"GH_TUPLE=\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" +"\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" +"\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" +"\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" +"\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" +"\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" +"\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" +"\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:951 +msgid "" +"[.filename]#distinfo# needs to be regenerated to contain all the " +"distribution files:" +msgstr "" +"[.filename]#distinfo# необходимо обновить, чтобы включить все дистрибутивные " +"файлы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:964 +#, no-wrap +msgid "" +"% make makesum\n" +"=> Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz\n" +"fetch: https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz: size of remote file is not known\n" +"Songmu-gitconfig-v0.0.2_GH0.tar.gz 5662 B 936 kBps 00s\n" +"=> daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz\n" +"fetch: https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz: size of remote file is not known\n" +"daviddengcn-go-colortext-186a3d44e920_GH0.tar. 4534 B 1098 kBps 00s\n" +"[...]\n" +msgstr "" +"% make makesum\n" +"=> Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz\n" +"fetch: https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz: size of remote file is not known\n" +"Songmu-gitconfig-v0.0.2_GH0.tar.gz 5662 B 936 kBps 00s\n" +"=> daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz\n" +"fetch: https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz: size of remote file is not known\n" +"daviddengcn-go-colortext-186a3d44e920_GH0.tar. 4534 B 1098 kBps 00s\n" +"[...]\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:972 +#, no-wrap +msgid "Setting Output Binary Name or Installation Path" +msgstr "Установка имени выходного бинарного файла или пути установки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:977 +msgid "" +"Some ports need to install the resulting binary under a different name or to " +"a path other than the default `${PREFIX}/bin`. This can be done by using " +"`GO_TARGET` tuple syntax, for example:" +msgstr "" +"Некоторые порты требуют установки результирующего бинарного файла под другим " +"именем или в путь, отличный от стандартного `${PREFIX}/bin`. Это можно " +"сделать с помощью синтаксиса кортежа `GO_TARGET`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:981 +#, no-wrap +msgid "GO_TARGET= ./cmd/ipfs:ipfs-go\n" +msgstr "GO_TARGET= ./cmd/ipfs:ipfs-go\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:984 +msgid "will install `ipfs` binary as `${PREFIX}/bin/ipfs-go` and" +msgstr "установит бинарный файл `ipfs` как `${PREFIX}/bin/ipfs-go` и" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:988 +#, no-wrap +msgid "GO_TARGET= ./dnscrypt-proxy:${PREFIX}/sbin/dnscrypt-proxy\n" +msgstr "GO_TARGET= ./dnscrypt-proxy:${PREFIX}/sbin/dnscrypt-proxy\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:991 +msgid "will install `dnscrypt-proxy` to `${PREFIX}/sbin`." +msgstr "установит `dnscrypt-proxy` в `${PREFIX}/sbin`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:994 +#, no-wrap +msgid "Building Haskell Applications with `cabal`" +msgstr "Построение приложений на Haskell с помощью `cabal`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:998 +msgid "" +"For ports that use Cabal, build system defines `USES=cabal`. Refer to " +"crossref:uses[uses-cabal,`cabal`] for a list of variables that can be set to " +"control the build process." +msgstr "" +"Для портов, использующих Cabal, система сборки определяет `USES=cabal`. " +"Обратитесь к crossref:uses[uses-cabal,`cabal`] для получения списка " +"переменных, которые можно задать для управления процессом сборки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1000 +#, no-wrap +msgid "Creating a Port for a Hackage-hosted Haskell Application" +msgstr "Создание порта для приложения Haskell с Hackage" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1005 +msgid "" +"When preparing a Haskell Cabal port, package:devel/hs-cabal-install[] and " +"package:ports-mgmt/hs-cabal2tuple[] programs are required, so make sure they " +"are installed beforehand. First we need to define common ports variables " +"that allow cabal-install to fetch the package distribution file:" +msgstr "" +"При подготовке порта Haskell Cabal требуются программы package:devel/hs-" +"cabal-install[] и package:ports-mgmt/hs-cabal2tuple[], поэтому убедитесь, " +"что они установлены заранее. Сначала необходимо определить общие переменные " +"портов, которые позволяют cabal-install загрузить файл дистрибутива пакета:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1011 +#, no-wrap +msgid "" +"PORTNAME=\tShellCheck\n" +"DISTVERSION=\t0.6.0\n" +"CATEGORIES=\tdevel\n" +msgstr "" +"PORTNAME=\tShellCheck\n" +"DISTVERSION=\t0.6.0\n" +"CATEGORIES=\tdevel\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1015 +#, no-wrap +msgid "" +"MAINTAINER=\thaskell@FreeBSD.org\n" +"COMMENT=\tShell script analysis tool\n" +"WWW=\t\thttps://www.shellcheck.net/\n" +msgstr "" +"MAINTAINER=\thaskell@FreeBSD.org\n" +"COMMENT=\tShell script analysis tool\n" +"WWW=\t\thttps://www.shellcheck.net/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1017 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1100 +#, no-wrap +msgid "USES=\t\tcabal\n" +msgstr "USES=\t\tcabal\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1022 +msgid "" +"This minimal Makefile fetches the distribution file with the `cabal-extract` " +"helper target:" +msgstr "" +"Этот минимальный Makefile загружает файл дистрибутива с помощью " +"вспомогательной цели `cabal-extract`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1032 +#, no-wrap +msgid "" +"% make cabal-extract\n" +"[...]\n" +"Downloading the latest package list from hackage.haskell.org\n" +"cabal get ShellCheck-0.6.0\n" +"Downloading ShellCheck-0.6.0\n" +"Downloaded ShellCheck-0.6.0\n" +"Unpacking to ShellCheck-0.6.0/\n" +msgstr "" +"% make cabal-extract\n" +"[...]\n" +"Downloading the latest package list from hackage.haskell.org\n" +"cabal get ShellCheck-0.6.0\n" +"Downloading ShellCheck-0.6.0\n" +"Downloaded ShellCheck-0.6.0\n" +"Unpacking to ShellCheck-0.6.0/\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1035 +msgid "" +"Now that we have ShellCheck.cabal package description file under `${WRKSRC}" +"`, we can use `cabal-configure` to generate the build plan:" +msgstr "" +"Теперь, когда у нас есть файл описания пакета ShellCheck.cabal в `${WRKSRC}" +"`, мы можем использовать `cabal-configure` для создания плана сборки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1046 +#, no-wrap +msgid "" +"% make cabal-configure\n" +"[...]\n" +"Resolving dependencies...\n" +"Build profile: -w ghc-8.10.7 -O1\n" +"In order, the following would be built (use -v for more details):\n" +" - Diff-0.4.1 (lib) (requires download & build)\n" +" - OneTuple-0.3.1 (lib) (requires download & build)\n" +"[...]\n" +msgstr "" +"% make cabal-configure\n" +"[...]\n" +"Resolving dependencies...\n" +"Build profile: -w ghc-8.10.7 -O1\n" +"In order, the following would be built (use -v for more details):\n" +" - Diff-0.4.1 (lib) (requires download & build)\n" +" - OneTuple-0.3.1 (lib) (requires download & build)\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1049 +msgid "Once done, a list of required dependencies can generated:" +msgstr "После завершения можно сгенерировать список необходимых зависимостей:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1057 +#, no-wrap +msgid "" +"% make make-use-cabal\n" +"USE_CABAL=\tQuickCheck-2.12.6.1 \\\n" +"\t\thashable-1.3.0.0 \\\n" +"\t\tinteger-logarithms-1.0.3 \\\n" +"[...]\n" +msgstr "" +"% make make-use-cabal\n" +"USE_CABAL=\tQuickCheck-2.12.6.1 \\\n" +"\t\thashable-1.3.0.0 \\\n" +"\t\tinteger-logarithms-1.0.3 \\\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1063 +msgid "" +"Haskell packages may contain revisions, just like FreeBSD ports. Revisions " +"can affect [.filename]#.cabal# files only. Note additional version numbers " +"after the `_` symbol. Put newly generated `USE_CABAL` list instead of an " +"old one." +msgstr "" +"Пакеты Haskell могут содержать ревизии, как и порты FreeBSD. Ревизии могут " +"затрагивать только файлы [.filename]#.cabal#. Обратите внимание на " +"дополнительные номера версий после символа `_`. Замените старый список " +"`USE_CABAL` на вновь сгенерированный." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1065 +msgid "" +"Finally, [.filename]#distinfo# needs to be regenerated to contain all the " +"distribution files:" +msgstr "" +"Наконец, файл [.filename]#distinfo# необходимо перегенерировать, чтобы он " +"содержал все файлы дистрибутива:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1076 +#, no-wrap +msgid "" +"% make makesum\n" +"=> ShellCheck-0.6.0.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" +"=> Attempting to fetch https://hackage.haskell.org/package/ShellCheck-0.6.0/ShellCheck-0.6.0.tar.gz\n" +"ShellCheck-0.6.0.tar.gz 136 kB 642 kBps 00s\n" +"=> QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" +"=> Attempting to fetch https://hackage.haskell.org/package/QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz\n" +"QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz 65 kB 361 kBps 00s\n" +"[...]\n" +msgstr "" +"% make makesum\n" +"=> ShellCheck-0.6.0.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" +"=> Attempting to fetch https://hackage.haskell.org/package/ShellCheck-0.6.0/ShellCheck-0.6.0.tar.gz\n" +"ShellCheck-0.6.0.tar.gz 136 kB 642 kBps 00s\n" +"=> QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" +"=> Attempting to fetch https://hackage.haskell.org/package/QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz\n" +"QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz 65 kB 361 kBps 00s\n" +"[...]\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1086 +msgid "" +"Some Haskell ports install various data files under `share/${PORTNAME}`. For " +"such cases special handling is required on the port side. The port should " +"define the `CABAL_WRAPPER_SCRIPTS` knob listing each executable that is " +"going to use data files. Moreover, in rare cases the program being ported " +"uses data files of other Haskell packages, in which case the " +"`FOO_DATADIR_VARS` comes to the rescue." +msgstr "" +"Некоторые порты Haskell устанавливают различные файлы данных в `share/$" +"{PORTNAME}`. В таких случаях требуется особая обработка на стороне порта. " +"Порт должен определить параметр `CABAL_WRAPPER_SCRIPTS`, перечислив каждый " +"исполняемый файл, который будет использовать файлы данных. Более того, в " +"редких случаях портируемая программа использует файлы данных других пакетов " +"Haskell, и тогда на помощь приходит `FOO_DATADIR_VARS`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1088 +#, no-wrap +msgid "Handling Data Files in a Haskell Port" +msgstr "Обработка файлов данных в порте Haskell" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1092 +msgid "" +"`devel/hs-profiteur` is a Haskell application that generates a single-page " +"HTML with some content." +msgstr "" +"`devel/hs-profiteur` — это приложение на Haskell, которое генерирует " +"одностраничный HTML с некоторым содержимым." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1096 +#, no-wrap +msgid "PORTNAME=\tprofiteur\n" +msgstr "PORTNAME=\tprofiteur\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1098 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1113 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1131 +#, no-wrap +msgid "[...]\n" +msgstr "[...]\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1104 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1117 +#, no-wrap +msgid "" +"USE_CABAL=\tOneTuple-0.3.1_2 \\\n" +"\t\tQuickCheck-2.14.2 \\\n" +"\t\t[...]\n" +msgstr "" +"USE_CABAL=\tOneTuple-0.3.1_2 \\\n" +"\t\tQuickCheck-2.14.2 \\\n" +"\t\t[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1109 +msgid "" +"It installs HTML templates under `share/profiteur`, so we need to add " +"`CABAL_WRAPPER_SCRIPTS` knob:" +msgstr "" +"Он устанавливает HTML-шаблоны в `share/profiteur`, поэтому необходимо " +"добавить параметр `CABAL_WRAPPER_SCRIPTS`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1120 +#, no-wrap +msgid "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" +msgstr "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1127 +msgid "" +"The program also tries to access the `jquery.js` file, which is a part of " +"`js-jquery-3.3.1` Haskell package. For that file to be found, we need to " +"make the wrapper script to look for `js-jquery` data files in `share/" +"profiteur` too. We use `profiteur_DATADIR_VARS` for this:" +msgstr "" +"Программа также пытается получить доступ к файлу `jquery.js`, который " +"является частью пакета Haskell `js-jquery-3.3.1`. Чтобы этот файл был " +"найден, необходимо, чтобы скрипт-обёртка искал файлы данных `js-jquery` " +"также в `share/profiteur`. Для этого используется `profiteur_DATADIR_VARS`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1134 +#, no-wrap +msgid "" +"CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" +"profiteur_DATADIR_VARS=\t\tjs-jquery\n" +msgstr "" +"CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" +"profiteur_DATADIR_VARS=\t\tjs-jquery\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1139 +msgid "" +"Now the port will install the actual binary into `libexec/cabal/profiteur` " +"and the script into `bin/profiteur`." +msgstr "" +"Теперь порт установит непосредственно бинарный файл в `libexec/cabal/" +"profiteur`, а скрипт — в `bin/profiteur`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1144 +msgid "" +"There is no easy way to find out a proper value for the `FOO_DATADIR_VARS` " +"knob apart from running the program and checking that everything works. " +"Luckily, the need to use `FOO_DATADIR_VARS` is very rare." +msgstr "" +"Не существует простого способа определить подходящее значение для параметра " +"`FOO_DATADIR_VARS`, кроме как запустить программу и проверить, что всё " +"работает. К счастью, необходимость использовать `FOO_DATADIR_VARS` возникает " +"очень редко." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1146 +msgid "" +"Another corner case when porting complex Haskell programs is the presence of " +"VCS dependencies in the `cabal.project` file." +msgstr "" +"Еще один крайний случай при переносе сложных программ на Haskell — наличие " +"зависимостей от систем контроля версий (VCS) в файле `cabal.project`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1148 +#, no-wrap +msgid "Porting Haskell Applications with VCS Dependencies" +msgstr "Портирование приложений Haskell с зависимостями от VCS" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1153 +msgid "" +"`net-p2p/cardano-node` is an extremely complex piece of software. In its " +"`cabal.project` there are a lot of blocks like this:" +msgstr "" +"`net-p2p/cardano-node` — это чрезвычайно сложное программное обеспечение. В " +"его `cabal.project` содержится множество блоков, подобных этому:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1162 +#, no-wrap +msgid "" +"[...]\n" +"source-repository-package\n" +" type: git\n" +" location: https://github.com/input-output-hk/cardano-crypto\n" +" tag: f73079303f663e028288f9f4a9e08bcca39a923e\n" +"[...]\n" +msgstr "" +"[...]\n" +"source-repository-package\n" +" type: git\n" +" location: https://github.com/input-output-hk/cardano-crypto\n" +" tag: f73079303f663e028288f9f4a9e08bcca39a923e\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1168 +msgid "" +"Dependencies of type `source-repository-package` are automatically pulled in " +"by `cabal` during the build process. Unfortunately, this makes use of the " +"network after the `fetch` stage. This is disallowed by the ports framework. " +"These sources need to be listed in the port's Makefile. The `make-use-cabal` " +"helper target can make it easy for packages hosted on GitHub. Running this " +"target after the usual `cabal-extract` and `cabal-configure` will produce " +"not only the `USE_CABAL` knob, but also `GH_TUPLE`:" +msgstr "" +"Зависимости типа `source-repository-package` автоматически подтягиваются " +"`cabal` в процессе сборки. К сожалению, это приводит к использованию сети " +"после этапа `fetch`, что запрещено в рамках системы портов. Эти исходники " +"необходимо указать в Makefile порта. Вспомогательная цель `make-use-cabal` " +"может упростить работу с пакетами, размещёнными на GitHub. Запуск этой цели " +"после стандартных `cabal-extract` и `cabal-configure` позволит получить не " +"только параметр `USE_CABAL`, но и `GH_TUPLE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1176 +#, no-wrap +msgid "" +"% make make-use-cabal\n" +"USE_CABAL=\tDiff-0.4.1 \\\n" +"\t\tGlob-0.10.2_3 \\\n" +"\t\tHUnit-1.6.2.0 \\\n" +"\t\t[...]\n" +msgstr "" +"% make make-use-cabal\n" +"USE_CABAL=\tDiff-0.4.1 \\\n" +"\t\tGlob-0.10.2_3 \\\n" +"\t\tHUnit-1.6.2.0 \\\n" +"\t\t[...]\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1180 +#, no-wrap +msgid "" +"GH_TUPLE=\t\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" +"\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" +"\t\t[...]\n" +msgstr "" +"GH_TUPLE=\t\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" +"\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" +"\t\t[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1183 +msgid "" +"It might be useful to separate the `GH_TUPLE` items coming from `make-use-" +"cabal` from the other ones to make it easy to update the port:" +msgstr "" +"Может быть полезно отделить элементы `GH_TUPLE`, поступающие из `make-use-" +"cabal`, от остальных, чтобы упростить обновление порта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1189 +#, no-wrap +msgid "" +"GH_TUPLE=\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" +"\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" +"\t\t[...]\n" +msgstr "" +"GH_TUPLE=\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" +"\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" +"\t\t[...]\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1191 +#, no-wrap +msgid "GH_TUPLE+=\tbitcoin-core:secp256k1:ac83be33d0956faf6b7f61a60ab524ef7d6a473a:secp\n" +msgstr "GH_TUPLE+=\tbitcoin-core:secp256k1:ac83be33d0956faf6b7f61a60ab524ef7d6a473a:secp\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1194 +msgid "" +"Haskell ports with VCS dependencies also require the following hack for the " +"time being:" +msgstr "" +"Версия Haskell-портов с зависимостями от систем контроля версий временно " +"требует следующего обходного решения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1198 +#, no-wrap +msgid "BINARY_ALIAS=\tgit=true\n" +msgstr "BINARY_ALIAS=\tgit=true\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1203 +#, no-wrap +msgid "Using GNU Autotools" +msgstr "Использование GNU Autotools" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1207 +msgid "" +"If a port needs any of the GNU Autotools software, add `USES=autoreconf`. " +"See crossref:uses[uses-autoreconf,`autoreconf`] for more information." +msgstr "" +"Если порту требуется какое-либо программное обеспечение GNU Autotools, " +"добавьте `USES=autoreconf`. Подробнее см. в crossref:uses[uses-" +"autoreconf,`autoreconf`]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1209 +#, no-wrap +msgid "Using GNU `gettext`" +msgstr "Использование GNU `gettext`" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1212 +#, no-wrap +msgid "Basic Usage" +msgstr "Простые варианты использования" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1216 +msgid "" +"If the port requires `gettext`, set `USES= gettext`, and the port will " +"inherit a dependency on [.filename]#libintl.so# from package:devel/" +"gettext[]. Other values for `gettext` usage are listed in " +"crossref:uses[uses-gettext,`USES=gettext`]." +msgstr "" +"Если порт требует `gettext`, установите `USES=gettext`, и порт унаследует " +"зависимость от [.filename]#libintl.so# из пакета package:devel/gettext[]. " +"Другие значения для использования `gettext` перечислены в crossref:uses[uses-" +"gettext,`USES=gettext`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1219 +msgid "" +"A rather common case is a port using `gettext` and `configure`. Generally, " +"GNU `configure` should be able to locate `gettext` automatically." +msgstr "" +"Довольно распространённый случай — порт, использующий `gettext` и " +"`configure`. Обычно GNU `configure` должен автоматически находить `gettext`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1224 +#, no-wrap +msgid "" +"USES=\tgettext\n" +"GNU_CONFIGURE=\tyes\n" +msgstr "" +"USES=\tgettext\n" +"GNU_CONFIGURE=\tyes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1227 +msgid "" +"If it ever fails to, hints at the location of `gettext` can be passed in " +"`CPPFLAGS` and `LDFLAGS` using `localbase` as follows:" +msgstr "" +"Если он не сработает, можно указать расположение `gettext` через `CPPFLAGS` " +"и `LDFLAGS`, используя `localbase` следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1232 +#, no-wrap +msgid "" +"USES=\tgettext localbase:ldflags\n" +"GNU_CONFIGURE=\tyes\n" +msgstr "" +"USES=\tgettext localbase:ldflags\n" +"GNU_CONFIGURE=\tyes\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1235 +#, no-wrap +msgid "Optional Usage" +msgstr "Оптимальное использование" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1241 +msgid "" +"Some software products allow for disabling NLS. For example, through " +"passing `--disable-nls` to `configure`. In that case, the port must use " +"`gettext` conditionally, depending on the status of the `NLS` option. For " +"ports of low to medium complexity, use this idiom:" +msgstr "" +"Некоторые программные продукты позволяют отключать NLS, к примеру, передавая " +"параметр `--disable-nls` сценарию `configure`. В этом случае ваш порт должен " +"использовать `gettext`, в зависимости от значения `NLS`. Для портов " +"небольшой или средней сложности вы можете полагаться на следующую идиому:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1245 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1260 +#, no-wrap +msgid "GNU_CONFIGURE=\t\tyes\n" +msgstr "GNU_CONFIGURE=\t\tyes\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1248 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\t\tNLS\n" +"OPTIONS_SUB=\t\tyes\n" +msgstr "" +"OPTIONS_DEFINE=\t\tNLS\n" +"OPTIONS_SUB=\t\tyes\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1251 +#, no-wrap +msgid "" +"NLS_USES=\t\tgettext\n" +"NLS_CONFIGURE_ENABLE=\tnls\n" +msgstr "" +"NLS_USES=\t\tgettext\n" +"NLS_CONFIGURE_ENABLE=\tnls\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1256 +msgid "Or using the older way of using options:" +msgstr "Или используя старый способ с опциями:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1262 +#, no-wrap +msgid "OPTIONS_DEFINE=\t\tNLS\n" +msgstr "OPTIONS_DEFINE=\t\tNLS\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1264 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1272 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MNLS}\n" +"USES+=\t\t\tgettext\n" +"PLIST_SUB+=\t\tNLS=\"\"\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-nls\n" +"PLIST_SUB+=\t\tNLS=\"@comment \"\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MNLS}\n" +"USES+=\t\t\tgettext\n" +"PLIST_SUB+=\t\tNLS=\"\"\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-nls\n" +"PLIST_SUB+=\t\tNLS=\"@comment \"\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1283 +msgid "" +"The next item on the to-do list is to arrange so that the message catalog " +"files are included in the packing list conditionally. The " +"[.filename]#Makefile# part of this task is already provided by the idiom. " +"It is explained in the section on crossref:plist[plist-sub,advanced " +"[.filename]#pkg-plist# practices]. In a nutshell, each occurrence of `%%NLS%" +"%` in [.filename]#pkg-plist# will be replaced by \"`@comment `\" if NLS is " +"disabled, or by a null string if NLS is enabled. Consequently, the lines " +"prefixed by `%%NLS%%` will become mere comments in the final packing list if " +"NLS is off; otherwise the prefix will be just left out. Then insert `%%NLS%" +"%` before each path to a message catalog file in [.filename]#pkg-plist#. " +"For example:" +msgstr "" +"Следующий пункт в списке задач — организовать условное включение файлов " +"каталогов сообщений в упаковочный список. Часть, связанная с " +"[.filename]#Makefile#, уже предусмотрена идиомой. Это объясняется в разделе " +"crossref:plist[plist-sub,расширенные практики работы с [.filename]#pkg-" +"plist#]. Вкратце, каждое вхождение `%%NLS%%` в [.filename]#pkg-plist# будет " +"заменено на \"`@comment `\", если NLS отключен, или на пустую строку, если " +"NLS включен. Следовательно, строки с префиксом `%%NLS%%` станут обычными " +"комментариями в итоговом упаковочном списке, если NLS выключен; в противном " +"случае префикс будет просто удален. Затем вставьте `%%NLS%%` перед каждым " +"путем к файлу каталога сообщений в [.filename]#pkg-plist#. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1288 +#, no-wrap +msgid "" +"%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo\n" +"%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo\n" +msgstr "" +"%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo\n" +"%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1291 +msgid "" +"In high complexity cases, more advanced techniques may be needed, such as " +"crossref:plist[plist-dynamic,dynamic packing list generation]." +msgstr "" +"В особо сложных случаях вам понадобиться использовать более продвинутые " +"техники, чем данный рецепт, такие как crossref:plist[plist-" +"dynamic,динамические списки упаковки]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1293 +#, no-wrap +msgid "Handling Message Catalog Directories" +msgstr "Управление каталогами сообщений" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1300 +msgid "" +"There is a point to note about installing message catalog files. The target " +"directories for them, which reside under [.filename]#LOCALBASE/share/" +"locale#, must not be created and removed by a port. The most popular " +"languages have their respective directories listed in [.filename]#PORTSDIR/" +"Templates/BSD.local.dist#. The directories for many other languages are " +"governed by the package:devel/gettext[] port. Consult its [.filename]#pkg-" +"plist# and see whether the port is going to install a message catalog file " +"for a unique language." +msgstr "" +"Существует момент, который следует учитывать при установке файлов каталогов " +"сообщений. Целевые каталоги для размещения, расположенные под " +"[.filename]#LOCALBASE/shared/locale#, редко когда должны создаваться и " +"удаляться портом. Для наиболее популярных языков имеются собственные " +"каталоги, перечисленные в [.filename]#PORTSDIR/Templates/BSD.local.dist#. " +"Каталоги для множества других языков управляются с помощью порта " +"package:devel/gettext[]. Обратите внимание на его [.filename]#pkg-plist# и " +"посмотрите, куда данный порт собирается установить файлы каталогов сообщений " +"для единственного в своем роде языка." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1302 +#, no-wrap +msgid "Using Perl" +msgstr "Использование Perl" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1310 +msgid "" +"If `MASTER_SITES` is set to `CPAN`, the correct subdirectory is usually " +"selected automatically. If the default subdirectory is wrong, `CPAN/Module` " +"can be used to change it. `MASTER_SITES` can also be set to the old " +"`MASTER_SITE_PERL_CPAN`, then the preferred value of `MASTER_SITE_SUBDIR` is " +"the top-level hierarchy name. For example, the recommended value for `p5-" +"Module-Name` is `Module`. The top-level hierarchy can be examined at " +"https://cpan.org/modules/by-module/[cpan.org]. This keeps the port working " +"when the author of the module changes." +msgstr "" +"Если `MASTER_SITES` установлена в значение `CPAN`, то правильная " +"поддиректория выбирается автоматически. Если подкаталог по умолчанию указан " +"неверно, можно использовать `CPAN/Module` для его изменения. Также можно " +"установить `MASTER_SITES` в старое значение `MASTER_SITE_PERL_CPAN`, тогда " +"предпочтительным значением `MASTER_SITE_SUBDIR` будет имя иерархии выше " +"уровнем. Например, рекомендуемое значение для `p5-Module-Name` - `Module`. " +"Иерархию верхнего уровня можно посмотреть на https://cpan.org/modules/by-" +"module/[cpan.org]. Это гарантирует работоспособность порта при смене автора " +"модуля." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1315 +msgid "" +"The exception to this rule is when the relevant directory does not exist or " +"the distfile does not exist in that directory. In such case, using author's " +"id as `MASTER_SITE_SUBDIR` is allowed. The `CPAN:AUTHOR` macro can be used, " +"which will be translated to the hashed author directory. For example, " +"`CPAN:AUTHOR` will be converted to `authors/id/A/AU/AUTHOR`." +msgstr "" +"Исключением этого правила является отсутствие соответствующего каталога или " +"файла с дистрибутивом в этом каталоге. В качестве `MASTER_SITE_SUBDIR` в " +"этом случае разрешается использовать id автора. Можно использовать макрос " +"`CPAN:AUTHOR`, который будет преобразован в хешированный каталог автора. " +"Например, `CPAN:AUTHOR` преобразуется в `authors/id/A/AU/AUTHOR`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1317 +msgid "" +"When a port needs Perl support, it must set `USES=perl5` with the optional " +"`USE_PERL5` described in crossref:uses[uses-perl5,the perl5 USES " +"description]." +msgstr "" +"Когда порту требуется поддержка Perl, он должен установить `USES=perl5` с " +"опциональным `USE_PERL5`, как описано в crossref:uses[uses-perl5,описание " +"USES для perl5]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1319 +#, no-wrap +msgid "Read-Only Variables for Ports That Use Perl" +msgstr "Переменные (только для чтения) для портов, использующих Perl" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1323 +#, no-wrap +msgid "Read only variables" +msgstr "Переменные (только для чтения)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1326 +#, no-wrap +msgid "`PERL`" +msgstr "`PERL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1328 +#, no-wrap +msgid "The full path of the Perl 5 interpreter, either in the system or installed from a port, but without the version number. Use this when the software needs the path to the Perl interpreter. To replace \"``#!``\"lines in scripts, use crossref:uses[uses-shebangfix,`shebangfix`]." +msgstr "Полный путь к интерпретатору Perl 5, будь то системный или установленный из порта, но без номера версии. Используйте это, когда программному обеспечению требуется путь к интерпретатору Perl. Для замены строк \"``#!``\" в скриптах используйте crossref:uses[uses-shebangfix,`shebangfix`]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1329 +#, no-wrap +msgid "`PERL_VERSION`" +msgstr "`PERL_VERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1331 +#, no-wrap +msgid "The full version of Perl installed (for example, `5.8.9`)." +msgstr "Полная версия Perl установлена (например, `5.8.9`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1332 +#, no-wrap +msgid "`PERL_LEVEL`" +msgstr "`PERL_LEVEL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1334 +#, no-wrap +msgid "The installed Perl version as an integer of the form `MNNNPP` (for example, `500809`)." +msgstr "Установленная версия Perl в виде целого числа формата `MNNNPP` (например, `500809`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1335 +#, no-wrap +msgid "`PERL_ARCH`" +msgstr "`PERL_ARCH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1337 +#, no-wrap +msgid "Where Perl stores architecture dependent libraries. Defaults to `${ARCH}-freebsd`." +msgstr "Где Perl хранит архитектурно-зависимые библиотеки. По умолчанию: `${ARCH}-freebsd`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1338 +#, no-wrap +msgid "`PERL_PORT`" +msgstr "`PERL_PORT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1340 +#, no-wrap +msgid "Name of the Perl port that is installed (for example, `perl5`)." +msgstr "Имя порта Perl, который установлен (например, `perl5`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1341 +#, no-wrap +msgid "`SITE_PERL`" +msgstr "`SITE_PERL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1342 +#, no-wrap +msgid "Directory name where site specific Perl packages go. This value is added to `PLIST_SUB`." +msgstr "Имя каталога, в котором размещаются специфичные для сайта пакеты Perl. Это значение добавляется в `PLIST_SUB`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1348 +msgid "" +"Ports of Perl modules which do not have an official website must link to " +"`cpan.org` in the WWW line of [.filename]#Makefile#. The preferred URL form " +"is `https://search.cpan.org/dist/Module-Name/` (including the trailing " +"slash)." +msgstr "" +"Порты Perl-модулей, у которых нет официального сайта, должны ссылаться на " +"`cpan.org` в строке WWW файла [.filename]#Makefile#. Предпочтительный формат " +"URL: `https://search.cpan.org/dist/Module-Name/` (включая завершающий слеш)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1356 +msgid "" +"Do not use `${SITE_PERL}` in dependency declarations. Doing so assumes that " +"[.filename]#perl5.mk# has been included, which is not always true. Ports " +"depending on this port will have incorrect dependencies if this port's files " +"move later in an upgrade. The right way to declare Perl module dependencies " +"is shown in the example below." +msgstr "" +"Не используйте `${SITE_PERL}` в объявлениях зависимостей. Это предполагает, " +"что был включён файл [.filename]#perl5.mk#, что не всегда верно. Порты, " +"зависящие от этого порта, будут иметь некорректные зависимости, если файлы " +"этого порта будут перемещены во время обновления. Правильный способ " +"объявления зависимостей модулей Perl показан в примере ниже." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1359 +#, no-wrap +msgid "Perl Dependency Example" +msgstr "Пример зависимости Perl" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1365 +#, no-wrap +msgid "p5-IO-Tee>=0.64:devel/p5-IO-Tee\n" +msgstr "p5-IO-Tee>=0.64:devel/p5-IO-Tee\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1370 +msgid "" +"For Perl ports that install manual pages, the macro `PERL5_MAN3` and " +"`PERL5_MAN1` can be used inside [.filename]#pkg-plist#. For example," +msgstr "" +"Для портов Perl, которые устанавливают страницы руководства, макросы " +"`PERL5_MAN3` и `PERL5_MAN1` могут использоваться внутри [.filename]#pkg-" +"plist#. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1375 +#, no-wrap +msgid "" +"lib/perl5/5.14/man/man1/event.1.gz\n" +"lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz\n" +msgstr "" +"lib/perl5/5.14/man/man1/event.1.gz\n" +"lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1378 +msgid "can be replaced with" +msgstr "может быть заменено на" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1383 +#, no-wrap +msgid "" +"%%PERL5_MAN1%%/event.1.gz\n" +"%%PERL5_MAN3%%/AnyEvent::I3.3.gz\n" +msgstr "" +"%%PERL5_MAN1%%/event.1.gz\n" +"%%PERL5_MAN3%%/AnyEvent::I3.3.gz\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1388 +msgid "" +"There are no `PERL5_MAN_x_` macros for the other sections (_x_ in `2` and " +"`4` to `9`) because those get installed in the regular directories." +msgstr "" +"Для других разделов (_x_ в `2` и `4`–`9`) макросы `PERL5_MAN_x_` " +"отсутствуют, так как они устанавливаются в обычные каталоги." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1391 +#, no-wrap +msgid "A Port Which Only Requires Perl to Build" +msgstr "Порт, требующий Perl только для сборки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1395 +msgid "As the default USE_PERL5 value is build and run, set it to:" +msgstr "" +"Поскольку значение USE_PERL5 по умолчанию включает build и run, установите " +"его в:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1400 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tbuild\n" +msgstr "" +"USES=\t\tperl5\n" +"USE_PERL5=\tbuild\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1405 +#, no-wrap +msgid "A Port Which Also Requires Perl to Patch" +msgstr "Порт, который также требует Perl для исправления" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1410 +msgid "" +"From time to time, using man:sed[1] for patching is not enough. When using " +"man:perl[1] is easier, use:" +msgstr "" +"Время от времени использования man:sed[1] для исправлений недостаточно. " +"Когда использование man:perl[1] проще, примените:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1415 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tpatch build run\n" +msgstr "" +"USES=\t\tperl5\n" +"USE_PERL5=\tpatch build run\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1420 +#, no-wrap +msgid "A Perl Module Which Needs `ExtUtils::MakeMaker` to Build" +msgstr "Модуль Perl, для сборки которого требуется `ExtUtils::MakeMaker`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1425 +msgid "" +"Most Perl modules come with a [.filename]#Makefile.PL# configure script. In " +"this case, set:" +msgstr "" +"Большинство модулей Perl поставляются с конфигурационным скриптом " +"[.filename]#Makefile.PL#. В этом случае установите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1430 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tconfigure\n" +msgstr "" +"USES=\t\tperl5\n" +"USE_PERL5=\tconfigure\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1435 +#, no-wrap +msgid "A Perl Module Which Needs `Module::Build` to Build" +msgstr "Модуль Perl, для сборки которого требуется `Module::Build`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1439 +msgid "" +"When a Perl module comes with a [.filename]#Build.PL# configure script, it " +"can require Module::Build, in which case, set" +msgstr "" +"Когда модуль Perl поставляется с конфигурационным скриптом " +"[.filename]#Build.PL#, он может требовать Module::Build, и в этом случае " +"установите" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1444 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tmodbuild\n" +msgstr "" +"USES=\t\tperl5\n" +"USE_PERL5=\tmodbuild\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1447 +msgid "If it instead requires Module::Build::Tiny, set" +msgstr "Если вместо этого требуется Module::Build::Tiny, установите" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1452 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tmodbuildtiny\n" +msgstr "" +"USES=\t\tperl5\n" +"USE_PERL5=\tmodbuildtiny\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1457 +#, no-wrap +msgid "Using X11" +msgstr "Использование X11" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1460 +#, no-wrap +msgid "X.Org Components" +msgstr "Компоненты X.Org" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1465 +msgid "" +"The X11 implementation available in The Ports Collection is X.Org. If the " +"application depends on X components, add `USES= xorg` and set `USE_XORG` to " +"the list of required components. A full list can be found in " +"crossref:uses[uses-xorg,`xorg`]." +msgstr "" +"Реализация X11, доступная в Коллекции портов, — это X.Org. Если приложение " +"зависит от компонентов X, добавьте `USES= xorg` и укажите необходимые " +"компоненты в `USE_XORG`. Полный список можно найти в crossref:uses[uses-" +"xorg,`xorg`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1470 +msgid "" +"The Mesa Project is an effort to provide free OpenGL implementation. To " +"specify a dependency on various components of this project, use `USES= gl` " +"and `USE_GL`. See crossref:uses[uses-gl,`gl`] for a full list of available " +"components. For backwards compatibility, the value of `yes` maps to `glu`." +msgstr "" +"Проект Mesa — это инициатива по предоставлению свободной реализации OpenGL. " +"Чтобы указать зависимость от различных компонентов этого проекта, " +"используйте `USES=gl` и `USE_GL`. См. crossref:uses[uses-gl,`gl`] для " +"полного списка доступных компонентов. Для обратной совместимости значение " +"`yes` соответствует `glu`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1472 +#, no-wrap +msgid "`USE_XORG` Example" +msgstr "Пример `USE_XORG`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1480 +#, no-wrap +msgid "" +"USES=\t\tgl xorg\n" +"USE_GL=\t\tglu\n" +"USE_XORG=\txrender xft xkbfile xt xaw\n" +msgstr "" +"USES=\t\tgl xorg\n" +"USE_GL=\t\tglu\n" +"USE_XORG=\txrender xft xkbfile xt xaw\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1485 +#, no-wrap +msgid "Variables for Ports That Use X" +msgstr "Переменные для портов, использующих X" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1489 +#, no-wrap +msgid "`USES= imake`" +msgstr "`USES= imake`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1491 +#, no-wrap +msgid "The port uses `imake`." +msgstr "Порт использует `imake`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1492 +#, no-wrap +msgid "`XMKMF`" +msgstr "`XMKMF`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1493 +#, no-wrap +msgid "Set to the path of `xmkmf` if not in the `PATH`. Defaults to `xmkmf -a`." +msgstr "Установить путь к `xmkmf`, если он отсутствует в `PATH`. По умолчанию: `xmkmf -a`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1496 +#, no-wrap +msgid "Using X11-Related Variables" +msgstr "Использование переменных, связанных с X11" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1504 +#, no-wrap +msgid "" +"# Use some X11 libraries\n" +"USES=\t\txorg\n" +"USE_XORG=\tx11 xpm\n" +msgstr "" +"# Use some X11 libraries\n" +"USES=\t\txorg\n" +"USE_XORG=\tx11 xpm\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1509 +#, no-wrap +msgid "Ports That Require Motif" +msgstr "Порты, требующие Motif" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1515 +msgid "" +"If the port requires a Motif library, define `USES= motif` in the " +"[.filename]#Makefile#. Default Motif implementation is package:x11-toolkits/" +"open-motif[]. Users can choose package:x11-toolkits/lesstif[] instead by " +"setting `WANT_LESSTIF` in their [.filename]#make.conf#. Similarly " +"package:x11-toolkits/open-motif-devel[] can be chosen by setting " +"`WANT_OPEN_MOTIF_DEVEL` in [.filename]#make.conf#." +msgstr "" +"Если порт требует библиотеку Motif, определите `USES= motif` в " +"[.filename]#Makefile#. Реализация Motif по умолчанию — это package:x11-" +"toolkits/open-motif[]. Пользователи могут выбрать package:x11-toolkits/" +"lesstif[] вместо этого, установив `WANT_LESSTIF` в своём " +"[.filename]#make.conf#. Аналогично package:x11-toolkits/open-motif-devel[] " +"можно выбрать, установив `WANT_OPEN_MOTIF_DEVEL` в [.filename]#make.conf#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1518 +msgid "" +"`MOTIFLIB` will be set by [.filename]#motif.mk# to reference the appropriate " +"Motif library. Please patch the source of the port to use `${MOTIFLIB}` " +"wherever the Motif library is referenced in the original " +"[.filename]#Makefile# or [.filename]#Imakefile#." +msgstr "" +"`MOTIFLIB` будет установлен в файле [.filename]#motif.mk# для ссылки на " +"соответствующую библиотеку Motif. Пожалуйста, исправьте исходный код порта, " +"чтобы использовать `${MOTIFLIB}` везде, где библиотека Motif упоминается в " +"оригинальном [.filename]#Makefile# или [.filename]#Imakefile#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1520 +msgid "There are two common cases:" +msgstr "Есть два распространённых случая:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1522 +msgid "" +"If the port refers to the Motif library as `-lXm` in its " +"[.filename]#Makefile# or [.filename]#Imakefile#, substitute `${MOTIFLIB}` " +"for it." +msgstr "" +"Если порт ссылается на библиотеку Motif как `-lXm` в своем " +"[.filename]#Makefile# или [.filename]#Imakefile#, замените это на `$" +"{MOTIFLIB}`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1523 +msgid "" +"If the port uses `XmClientLibs` in its [.filename]#Imakefile#, change it to " +"`${MOTIFLIB} ${XTOOLLIB} ${XLIB}`." +msgstr "" +"Если порт использует `XmClientLibs` в своем [.filename]#Imakefile#, замените " +"это на `${MOTIFLIB} ${XTOOLLIB} ${XLIB}`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1525 +msgid "" +"Note that `MOTIFLIB` (usually) expands to `-L/usr/local/lib -lXm -lXp` or `/" +"usr/local/lib/libXm.a`, so there is no need to add `-L` or `-l` in front." +msgstr "" +"Обратите внимание, что `MOTIFLIB` (обычно) раскрывается в `-L/usr/local/lib " +"-lXm -lXp` или `/usr/local/lib/libXm.a`, поэтому нет необходимости добавлять " +"`-L` или `-l` перед этим." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1527 +#, no-wrap +msgid "X11 Fonts" +msgstr "Шрифты X11" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1530 +msgid "" +"If the port installs fonts for the X Window System, put them in " +"[.filename]#LOCALBASE/lib/X11/fonts/local#." +msgstr "" +"Если порт устанавливает шрифты для X Window System, поместите их в " +"[.filename]#LOCALBASE/lib/X11/fonts/local#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1532 +#, no-wrap +msgid "Getting a Fake `DISPLAY` with Xvfb" +msgstr "Получение поддельного `DISPLAY` с помощью Xvfb" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1539 +msgid "" +"Some applications require a working X11 display for compilation to succeed. " +"This poses a problem for machines that operate headless. When this variable " +"is used, the build infrastructure will start the virtual framebuffer X " +"server. The working `DISPLAY` is then passed to the build. See " +"crossref:uses[uses-display,`USES=display`] for the possible arguments." +msgstr "" +"Некоторые приложения требуют рабочего дисплея X11 для успешной компиляции. " +"Это создаёт проблему для машин, работающих без монитора. При использовании " +"этой переменной инфраструктура сборки запустит виртуальный X-сервер с " +"буфером кадров. Рабочий `DISPLAY` затем передаётся в процесс сборки. См. " +"crossref:uses[uses-display,`USES=display`] для возможных аргументов." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1543 +#, no-wrap +msgid "USES=\tdisplay\n" +msgstr "USES=\tdisplay\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1547 +#, no-wrap +msgid "Desktop Entries" +msgstr "Desktop Entries (пункты рабочего стола)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1553 +msgid "" +"Desktop entries (https://standards.freedesktop.org/desktop-entry-spec/latest/" +"[a Freedesktop standard]) provide a way to automatically adjust desktop " +"features when a new program is installed, without requiring user " +"intervention. For example, newly-installed programs automatically appear in " +"the application menus of compatible desktop environments. Desktop entries " +"originated in the GNOME desktop environment, but are now a standard and also " +"work with KDE and Xfce. This bit of automation provides a real benefit to " +"the user, and desktop entries are encouraged for applications which can be " +"used in a desktop environment." +msgstr "" +"Desktop entries (https://standards.freedesktop.org/desktop-entry-spec/latest/" +"[стандарт Freedesktop]) предоставляют способ автоматической настройки " +"функций рабочего стола при установке новой программы без вмешательства " +"пользователя. Например, вновь установленные программы автоматически " +"появляются в меню приложений совместимых сред рабочего стола. Desktop " +"entries появились в среде GNOME, но теперь стали стандартом и также работают " +"с KDE и Xfce. Эта автоматизация приносит реальную пользу пользователю, " +"поэтому Desktop entries рекомендуются для приложений, которые могут " +"использоваться в среде рабочего стола." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1555 +#, no-wrap +msgid "Using Predefined [.filename]#.desktop# Files" +msgstr "Использование предопределенных файлов [.filename]#.desktop#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1559 +msgid "" +"Ports that include predefined [.filename]#*.desktop# must include those " +"files in [.filename]#pkg-plist# and install them in the " +"[.filename]#$LOCALBASE/share/applications# directory. The " +"crossref:makefiles[install-macros,`INSTALL_DATA` macro] is useful for " +"installing these files." +msgstr "" +"Порты, включающие предопределённые файлы [.filename]#*.desktop#, должны " +"добавлять эти файлы в [.filename]#pkg-plist# и устанавливать их в директорию " +"[.filename]#$LOCALBASE/share/applications#. Для установки таких файлов " +"полезен макрос crossref:makefiles[install-macros,`INSTALL_DATA`]." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1561 +#, no-wrap +msgid "Updating Desktop Database" +msgstr "Обновление базы данных рабочего стола" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1565 +msgid "" +"If a port has a MimeType entry in its [.filename]#portname.desktop#, the " +"desktop database must be updated after install and deinstall. To do this, " +"define `USES`= desktop-file-utils." +msgstr "" +"Если порт имеет запись MimeType в файле [.filename]#portname.desktop#, базу " +"данных рабочего стола необходимо обновить после установки и удаления. Для " +"этого определите `USES`= desktop-file-utils." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1567 +#, no-wrap +msgid "Creating Desktop Entries with `DESKTOP_ENTRIES`" +msgstr "Создание Desktop Entries с помощью `DESKTOP_ENTRIES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1572 +msgid "" +"Desktop entries can be easily created for applications by using " +"`DESKTOP_ENTRIES`. A file named [.filename]#name.desktop# will be created, " +"installed, and added to [.filename]#pkg-plist# automatically. Syntax is:" +msgstr "" +"Desktop Entries могут быть легко созданы для приложений с использованием " +"`DESKTOP_ENTRIES`. Файл с именем [.filename]#name.desktop# будет создан, " +"установлен и автоматически добавлен в [.filename]#pkg-plist#. Синтаксис " +"следующий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1576 +#, no-wrap +msgid "DESKTOP_ENTRIES=\t\"NAME\" \"COMMENT\" \"ICON\" \"COMMAND\" \"CATEGORY\" StartupNotify\n" +msgstr "DESKTOP_ENTRIES=\t\"NAME\" \"COMMENT\" \"ICON\" \"COMMAND\" \"CATEGORY\" StartupNotify\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1583 +msgid "" +"The list of possible categories is available on the https://" +"standards.freedesktop.org/menu-spec/latest/apa.html[Freedesktop website]. " +"`StartupNotify` indicates whether the application is compatible with " +"_startup notifications_. These are typically a graphic indicator like a " +"clock that appear at the mouse pointer, menu, or panel to give the user an " +"indication when a program is starting. A program that is compatible with " +"startup notifications clears the indicator after it has started. Programs " +"that are not compatible with startup notifications would never clear the " +"indicator (potentially confusing and infuriating the user), and must have " +"`StartupNotify` set to `false` so the indicator is not shown at all." +msgstr "" +"Список возможных категорий доступен на https://standards.freedesktop.org/" +"menu-spec/latest/apa.html[сайте Freedesktop]. `StartupNotify` указывает, " +"совместимо ли приложение с _уведомлениями о запуске_. Обычно это " +"графический индикатор, например, часы, который появляется у указателя мыши, " +"в меню или на панели, чтобы дать пользователю понять, что программа " +"запускается. Программа, совместимая с уведомлениями о запуске, очищает " +"индикатор после своего старта. Программы, не совместимые с уведомлениями о " +"запуске, никогда не очищают индикатор (что может сбивать с толку и " +"раздражать пользователя), и у них должен быть установлен параметр " +"`StartupNotify` в значение `false`, чтобы индикатор вообще не отображался." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1585 +msgid "Example:" +msgstr "Пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1592 +#, no-wrap +msgid "" +"DESKTOP_ENTRIES=\t\"ToME\" \"Roguelike game based on JRR Tolkien's work\" \\\n" +"\t\t\t\"${DATADIR}/xtra/graf/tome-128.png\" \\\n" +"\t\t\t\"tome -v -g\" \"Application;Game;RolePlaying;\" \\\n" +"\t\t\tfalse\n" +msgstr "" +"DESKTOP_ENTRIES=\t\"ToME\" \"Roguelike game based on JRR Tolkien's work\" \\\n" +"\t\t\t\"${DATADIR}/xtra/graf/tome-128.png\" \\\n" +"\t\t\t\"tome -v -g\" \"Application;Game;RolePlaying;\" \\\n" +"\t\t\tfalse\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1597 +msgid "" +"`DESKTOP_ENTRIES` are installed in the directory pointed to by the " +"`DESKTOPDIR` variable. `DESKTOPDIR` defaults to [.filename]#${PREFIX}/share/" +"applications#" +msgstr "" +"`DESKTOP_ENTRIES` устанавливаются в директорию, указанную переменной " +"`DESKTOPDIR`. По умолчанию `DESKTOPDIR` имеет значение [.filename]#${PREFIX}/" +"share/applications#" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1600 +#, no-wrap +msgid "Using GNOME" +msgstr "Использование GNOME" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1603 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3769 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4070 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4286 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1607 +msgid "" +"This chapter explains the GNOME framework as used by ports. The framework " +"can be loosely divided into the base components, GNOME desktop components, " +"and a few special macros that simplify the work of port maintainers." +msgstr "" +"Эта глава объясняет фреймворк GNOME, используемый в портах. Фреймворк можно " +"условно разделить на базовые компоненты, компоненты рабочего стола GNOME и " +"несколько специальных макросов, упрощающих работу сопровождающих портов." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1609 +#, no-wrap +msgid "Using `USE_GNOME`" +msgstr "Использование `USE_GNOME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1617 +msgid "" +"Adding this variable to the port allows the use of the macros and components " +"defined in [.filename]#bsd.gnome.mk#. The code in [.filename]#bsd.gnome.mk# " +"adds the needed build-time, run-time or library dependencies or the handling " +"of special files. GNOME applications under FreeBSD use the `USE_GNOME` " +"infrastructure. Include all the needed components as a space-separated " +"list. The `USE_GNOME` components are divided into these virtual lists: " +"basic components, GNOME 3 components and legacy components. If the port " +"needs only GTK3 libraries, this is the shortest way to define it:" +msgstr "" +"Добавление этой переменной в порт позволяет использовать макросы и " +"компоненты, определённые в [.filename]#bsd.gnome.mk#. Код в " +"[.filename]#bsd.gnome.mk# добавляет необходимые зависимости для сборки, " +"выполнения или библиотеки, а также обработку специальных файлов. Приложения " +"GNOME в FreeBSD используют инфраструктуру `USE_GNOME`. Включите все " +"необходимые компоненты в виде списка, разделённого пробелами. Компоненты " +"`USE_GNOME` разделены на следующие виртуальные списки: основные компоненты, " +"компоненты GNOME 3 и устаревшие компоненты. Если порту требуются только " +"библиотеки GTK3, это кратчайший способ определить это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1621 +#, no-wrap +msgid "USE_GNOME=\tgtk30\n" +msgstr "USE_GNOME=\tgtk30\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1625 +msgid "" +"`USE_GNOME` components automatically add the dependencies they need. Please " +"see crossref:special[gnome-components, GNOME Components] for an exhaustive " +"list of all `USE_GNOME` components and which other components they imply and " +"their dependencies." +msgstr "" +"`USE_GNOME` компоненты автоматически добавляют необходимые им зависимости. " +"Подробный список всех компонентов `USE_GNOME`, а также информацию о том, " +"какие другие компоненты они подразумевают и их зависимости, можно найти в " +"crossref:special[gnome-components, Компоненты GNOME]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1628 +msgid "" +"Here is an example [.filename]#Makefile# for a GNOME port that uses many of " +"the techniques outlined in this document. Please use it as a guide for " +"creating new ports." +msgstr "" +"Вот пример [.filename]#Makefile# для порта GNOME, в котором используются " +"многие методы, описанные в этом документе. Пожалуйста, используйте его в " +"качестве руководства при создании новых портов." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1635 +#, no-wrap +msgid "" +"PORTNAME=\tregexxer\n" +"DISTVERSION=\t0.10\n" +"CATEGORIES=\tdevel textproc gnome\n" +"MASTER_SITES=\tGNOME\n" +msgstr "" +"PORTNAME=\tregexxer\n" +"DISTVERSION=\t0.10\n" +"CATEGORIES=\tdevel textproc gnome\n" +"MASTER_SITES=\tGNOME\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1639 +#, no-wrap +msgid "" +"MAINTAINER=\tkwm@FreeBSD.org\n" +"COMMENT=\tInteractive tool for performing search and replace operations\n" +"WWW=\t\thttp://regexxer.sourceforge.net/\n" +msgstr "" +"MAINTAINER=\tkwm@FreeBSD.org\n" +"COMMENT=\tInteractive tool for performing search and replace operations\n" +"WWW=\t\thttp://regexxer.sourceforge.net/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1643 +#, no-wrap +msgid "" +"USES=\t\tgettext gmake localbase:ldflags pathfix pkgconfig tar:xz\n" +"GNU_CONFIGURE=\tyes\n" +"USE_GNOME=\tgnomeprefix intlhack gtksourceviewmm3\n" +msgstr "" +"USES=\t\tgettext gmake localbase:ldflags pathfix pkgconfig tar:xz\n" +"GNU_CONFIGURE=\tyes\n" +"USE_GNOME=\tgnomeprefix intlhack gtksourceviewmm3\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1645 +#, no-wrap +msgid "GLIB_SCHEMAS=\torg.regexxer.gschema.xml\n" +msgstr "GLIB_SCHEMAS=\torg.regexxer.gschema.xml\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1653 +msgid "" +"The `USE_GNOME` macro without any arguments does not add any dependencies to " +"the port. `USE_GNOME` cannot be set after [.filename]#bsd.port.pre.mk#." +msgstr "" +"Макрос `USE_GNOME` без аргументов не добавляет никаких зависимостей к порту. " +"`USE_GNOME` не может быть установлен после [.filename]#bsd.port.pre.mk#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1656 +#, no-wrap +msgid "Variables" +msgstr "Переменные" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1662 +msgid "" +"This section explains which macros are available and how they are used. " +"Like they are used in the above example. The crossref:special[gnome-" +"components, GNOME Components] has a more in-depth explanation. `USE_GNOME` " +"has to be set for these macros to be of use." +msgstr "" +"Этот раздел объясняет, какие макросы доступны и как они используются. Как, " +"например, в приведённом выше примере. В crossref:special[gnome-components, " +"Компоненты GNOME] содержится более подробное объяснение. Для использования " +"этих макросов необходимо установить `USE_GNOME`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1663 +#, no-wrap +msgid "`GLIB_SCHEMAS`" +msgstr "`GLIB_SCHEMAS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1666 +msgid "" +"List of all the glib schema files the port installs. The macro will add the " +"files to the port plist and handle the registration of these files on " +"install and deinstall." +msgstr "" +"Список всех файлов схем glib, которые устанавливает порт. Макрос добавит " +"файлы в plist порта и обработает регистрацию этих файлов при установке и " +"удалении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1671 +msgid "" +"The glib schema files are written in XML and end with the " +"[.filename]#gschema.xml# extension. They are installed in the " +"[.filename]#share/glib-2.0/schemas/# directory. These schema files contain " +"all application config values with their default settings. The actual " +"database used by the applications is built by glib-compile-schema, which is " +"run by the `GLIB_SCHEMAS` macro." +msgstr "" +"Файлы схем glib написаны в XML и имеют расширение [.filename]#gschema.xml#. " +"Они устанавливаются в директорию [.filename]#share/glib-2.0/schemas/#. Эти " +"файлы схем содержат все настройки конфигурации приложений со значениями по " +"умолчанию. Фактическая база данных, используемая приложениями, создаётся с " +"помощью glib-compile-schema, которая запускается макросом `GLIB_SCHEMAS`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1675 +#, no-wrap +msgid "GLIB_SCHEMAS=foo.gschema.xml\n" +msgstr "GLIB_SCHEMAS=foo.gschema.xml\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1681 +msgid "" +"Do not add glib schemas to the [.filename]#pkg-plist#. If they are listed " +"in [.filename]#pkg-plist#, they will not be registered and the applications " +"might not work properly." +msgstr "" +"Не добавляйте схемы glib в файл [.filename]#pkg-plist#. Если они указаны в " +"[.filename]#pkg-plist#, они не будут зарегистрированы, и приложения могут " +"работать некорректно." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1683 +#, no-wrap +msgid "`GCONF_SCHEMAS`" +msgstr "`GCONF_SCHEMAS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1686 +msgid "" +"List all the gconf schema files. The macro will add the schema files to the " +"port plist and will handle their registration on install and deinstall." +msgstr "" +"Перечислите все файлы схем gconf. Макрос добавит файлы схем в plist порта и " +"обеспечит их регистрацию при установке и удалении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1691 +msgid "" +"GConf is the XML-based database that virtually all GNOME applications use " +"for storing their settings. These files are installed into the " +"[.filename]#etc/gconf/schemas# directory. This database is defined by " +"installed schema files that are used to generate [.filename]#%gconf.xml# key " +"files. For each schema file installed by the port, there must be an entry " +"in the [.filename]#Makefile#:" +msgstr "" +"GConf — это база данных на основе XML, которую используют практически все " +"приложения GNOME для хранения своих настроек. Эти файлы устанавливаются в " +"директорию [.filename]#etc/gconf/schemas#. Эта база данных определяется " +"установленными файлами схем, которые используются для генерации ключевых " +"файлов [.filename]#%gconf.xml#. Для каждого файла схемы, устанавливаемого " +"портом, должна быть запись в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1695 +#, no-wrap +msgid "GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas\n" +msgstr "GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1701 +msgid "" +"Gconf schemas are listed in the `GCONF_SCHEMAS` macro rather than " +"[.filename]#pkg-plist#. If they are listed in [.filename]#pkg-plist#, they " +"will not be registered and the applications might not work properly." +msgstr "" +"Схемы Gconf перечислены в макросе `GCONF_SCHEMAS`, а не в файле " +"[.filename]#pkg-plist#. Если они указаны в [.filename]#pkg-plist#, они не " +"будут зарегистрированы, и приложения могут работать некорректно." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1703 +#, no-wrap +msgid "`INSTALLS_OMF`" +msgstr "`INSTALLS_OMF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1707 +msgid "" +"Open Source Metadata Framework (OMF) files are commonly used by GNOME 2 " +"applications. These files contain the application help file information, " +"and require special processing by ScrollKeeper/rarian. To properly register " +"OMF files when installing GNOME applications from packages, make sure that " +"`omf` files are listed in `pkg-plist` and that the port " +"[.filename]#Makefile# has `INSTALLS_OMF` defined:" +msgstr "" +"Файлы Open Source Metadata Framework (OMF) часто используются приложениями " +"GNOME 2. Эти файлы содержат информацию о файлах справки приложений и требуют " +"специальной обработки с помощью ScrollKeeper/rarian. Для правильной " +"регистрации файлов OMF при установке приложений GNOME из пакетов убедитесь, " +"что файлы `omf` указаны в `pkg-plist` и что в [.filename]#Makefile# порта " +"определено `INSTALLS_OMF`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1711 +#, no-wrap +msgid "INSTALLS_OMF=yes\n" +msgstr "INSTALLS_OMF=yes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1714 +msgid "" +"When set, [.filename]#bsd.gnome.mk# automatically scans [.filename]#pkg-" +"plist# and adds appropriate `@exec` and `@unexec` directives for each " +"[.filename]#.omf# to track in the OMF registration database." +msgstr "" +"При установке [.filename]#bsd.gnome.mk# автоматически сканирует " +"[.filename]#pkg-plist# и добавляет соответствующие директивы `@exec` и " +"`@unexec` для каждого файла [.filename]#.omf#, который необходимо " +"отслеживать в базе данных регистрации OMF." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1716 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1726 +#, no-wrap +msgid "GNOME Components" +msgstr "Компоненты GNOME" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1724 +msgid "" +"For further help with a GNOME port, look at some of the link:https://" +"ports.FreeBSD.org[existing ports] for examples. The link:https://" +"www.FreeBSD.org/gnome/[FreeBSD GNOME page] has contact information if more " +"help is needed. The components are divided into GNOME components that are " +"currently in use and legacy components. If the component supports argument, " +"they are listed between parenthesis in the description. The first is the " +"default. \"Both\" is shown if the component defaults to adding to both " +"build and run dependencies." +msgstr "" +"Для получения дополнительной помощи с портом GNOME, ознакомьтесь с " +"некоторыми из link:https://ports.FreeBSD.org[существующих портов] в качестве " +"примеров. На странице link:https://www.FreeBSD.org/gnome/[FreeBSD GNOME] " +"указана контактная информация, если требуется дополнительная помощь. " +"Компоненты разделены на используемые в настоящее время компоненты GNOME и " +"устаревшие компоненты. Если компонент поддерживает аргументы, они " +"перечислены в скобках в описании. Первый аргумент является значением по " +"умолчанию. \"Both\" указывается, если компонент по умолчанию добавляется как " +"в зависимости для сборки, так и для выполнения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1730 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1899 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1916 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2085 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3911 +#, no-wrap +msgid "Component" +msgstr "Компонент" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1731 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1917 +#, no-wrap +msgid "Associated program" +msgstr "Связанная программа" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1734 +#, no-wrap +msgid "`atk`" +msgstr "`atk`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1735 +#, no-wrap +msgid "accessibility/atk" +msgstr "accessibility/atk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1737 +#, no-wrap +msgid "Accessibility toolkit (ATK)" +msgstr "Инструментарий доступности (ATK)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1738 +#, no-wrap +msgid "`atkmm`" +msgstr "`atkmm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1739 +#, no-wrap +msgid "accessibility/atkmm" +msgstr "accessibility/atkmm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1741 +#, no-wrap +msgid "c++ bindings for atk" +msgstr "C++ интерфейс для atk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1742 +#, no-wrap +msgid "`cairo`" +msgstr "`cairo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1743 +#, no-wrap +msgid "graphics/cairo" +msgstr "graphics/cairo" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1745 +#, no-wrap +msgid "Vector graphics library with cross-device output support" +msgstr "Векторная графическая библиотека с поддержкой вывода на различные устройства" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1746 +#, no-wrap +msgid "`cairomm`" +msgstr "`cairomm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1747 +#, no-wrap +msgid "graphics/cairomm" +msgstr "graphics/cairomm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1749 +#, no-wrap +msgid "c++ bindings for cairo" +msgstr "C++ интерфейс для cairo" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1750 +#, no-wrap +msgid "`dconf`" +msgstr "`dconf`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1751 +#, no-wrap +msgid "devel/dconf" +msgstr "devel/dconf" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1753 +#, no-wrap +msgid "Configuration database system (both, build, run)" +msgstr "Система базы данных конфигурации (both, build, run)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1754 +#, no-wrap +msgid "`evolutiondataserver3`" +msgstr "`evolutiondataserver3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1755 +#, no-wrap +msgid "databases/evolution-data-server" +msgstr "databases/evolution-data-server" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1757 +#, no-wrap +msgid "Data backends for the Evolution integrated mail/PIM suite" +msgstr "Бэкенды данных для интегрированного почтового клиента/PIM Evolution" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1758 +#, no-wrap +msgid "`gdkpixbuf2`" +msgstr "`gdkpixbuf2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1759 +#, no-wrap +msgid "graphics/gdk-pixbuf2" +msgstr "graphics/gdk-pixbuf2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1761 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1943 +#, no-wrap +msgid "Graphics library for GTK+" +msgstr "Графическая библиотека для GTK+" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1762 +#, no-wrap +msgid "`glib20`" +msgstr "`glib20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1763 +#, no-wrap +msgid "devel/glib20" +msgstr "devel/glib20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1765 +#, no-wrap +msgid "GNOME core library `glib20`" +msgstr "Основная библиотека GNOME `glib20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1766 +#, no-wrap +msgid "`glibmm`" +msgstr "`glibmm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1767 +#, no-wrap +msgid "devel/glibmm" +msgstr "devel/glibmm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1769 +#, no-wrap +msgid "c++ bindings for glib20" +msgstr "C++ интерфейс для glib20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1770 +#, no-wrap +msgid "`gnomecontrolcenter3`" +msgstr "`gnomecontrolcenter3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1771 +#, no-wrap +msgid "sysutils/gnome-control-center" +msgstr "sysutils/gnome-control-center" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1773 +#, no-wrap +msgid "GNOME 3 Control Center" +msgstr "Центр управления GNOME 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1774 +#, no-wrap +msgid "`gnomedesktop3`" +msgstr "`gnomedesktop3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1775 +#, no-wrap +msgid "x11/gnome-desktop" +msgstr "x11/gnome-desktop" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1777 +#, no-wrap +msgid "GNOME 3 desktop UI library" +msgstr "Библиотека пользовательского интерфейса рабочего стола GNOME 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1778 +#, no-wrap +msgid "`gsound`" +msgstr "`gsound`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1779 +#, no-wrap +msgid "audio/gsound" +msgstr "audio/gsound" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1781 +#, no-wrap +msgid "GObject library for playing system sounds (both, build, run)" +msgstr "Библиотека GObject для воспроизведения системных звуков (both, build, run)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1782 +#, no-wrap +msgid "`gtk-update-icon-cache`" +msgstr "`gtk-update-icon-cache`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1783 +#, no-wrap +msgid "graphics/gtk-update-icon-cache" +msgstr "graphics/gtk-update-icon-cache" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1785 +#, no-wrap +msgid "Gtk-update-icon-cache utility from the Gtk+ toolkit" +msgstr "Утилита `gtk-update-icon-cache` из набора инструментов `Gtk+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1786 +#, no-wrap +msgid "`gtk20`" +msgstr "`gtk20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1787 +#, no-wrap +msgid "x11-toolkits/gtk20" +msgstr "x11-toolkits/gtk20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1789 +#, no-wrap +msgid "Gtk+ 2 toolkit" +msgstr "Набор инструментов Gtk+ 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1790 +#, no-wrap +msgid "`gtk30`" +msgstr "`gtk30`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1791 +#, no-wrap +msgid "x11-toolkits/gtk30" +msgstr "x11-toolkits/gtk30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1793 +#, no-wrap +msgid "Gtk+ 3 toolkit" +msgstr "Набор инструментов Gtk+ 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1794 +#, no-wrap +msgid "`gtkmm20`" +msgstr "`gtkmm20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1795 +#, no-wrap +msgid "x11-toolkits/gtkmm20" +msgstr "x11-toolkits/gtkmm20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1797 +#, no-wrap +msgid "c++ bindings 2.0 for the gtk20 toolkit" +msgstr "C++ интерфейс 2.0 для инструментария gtk20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1798 +#, no-wrap +msgid "`gtkmm24`" +msgstr "`gtkmm24`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1799 +#, no-wrap +msgid "x11-toolkits/gtkmm24" +msgstr "x11-toolkits/gtkmm24" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1801 +#, no-wrap +msgid "c++ bindings 2.4 for the gtk20 toolkit" +msgstr "C++ интерфейс 2.4 для инструментария gtk20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1802 +#, no-wrap +msgid "`gtkmm30`" +msgstr "`gtkmm30`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1803 +#, no-wrap +msgid "x11-toolkits/gtkmm30" +msgstr "x11-toolkits/gtkmm30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1805 +#, no-wrap +msgid "c++ bindings 3.0 for the gtk30 toolkit" +msgstr "C++ интерфейс 3.0 для набора инструментов gtk30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1806 +#, no-wrap +msgid "`gtksourceview2`" +msgstr "`gtksourceview2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1807 +#, no-wrap +msgid "x11-toolkits/gtksourceview2" +msgstr "x11-toolkits/gtksourceview2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1809 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1987 +#, no-wrap +msgid "Widget that adds syntax highlighting to GtkTextView" +msgstr "Виджет, добавляющий подсветку синтаксиса в GtkTextView" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1810 +#, no-wrap +msgid "`gtksourceview3`" +msgstr "`gtksourceview3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1811 +#, no-wrap +msgid "x11-toolkits/gtksourceview3" +msgstr "x11-toolkits/gtksourceview3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1813 +#, no-wrap +msgid "Text widget that adds syntax highlighting to the GtkTextView widget" +msgstr "Текстовая виджет, добавляющая подсветку синтаксиса к виджету GtkTextView" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1814 +#, no-wrap +msgid "`gtksourceviewmm3`" +msgstr "`gtksourceviewmm3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1815 +#, no-wrap +msgid "x11-toolkits/gtksourceviewmm3" +msgstr "x11-toolkits/gtksourceviewmm3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1817 +#, no-wrap +msgid "c++ bindings for the gtksourceview3 library" +msgstr "C++ интерфейс для библиотеки gtksourceview3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1818 +#, no-wrap +msgid "`gvfs`" +msgstr "`gvfs`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1819 +#, no-wrap +msgid "devel/gvfs" +msgstr "devel/gvfs" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1821 +#, no-wrap +msgid "GNOME virtual file system" +msgstr "Виртуальная файловая система GNOME" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1822 +#, no-wrap +msgid "`intltool`" +msgstr "`intltool`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1823 +#, no-wrap +msgid "textproc/intltool" +msgstr "textproc/intltool" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1825 +#, no-wrap +msgid "Tool for internationalization (also see intlhack)" +msgstr "Инструмент для интернационализации (см. также intlhack)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1826 +#, no-wrap +msgid "`introspection`" +msgstr "`introspection`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1827 +#, no-wrap +msgid "devel/gobject-introspection" +msgstr "devel/gobject-introspection" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1829 +#, no-wrap +msgid "Basic introspection bindings and tools to generate introspection bindings. Most of the time :build is enough, :both/:run is only need for applications that use introspection bindings. (both, build, run)" +msgstr "Базовые привязки (биндинги) интроспекции и инструменты для генерации привязок интроспекции. В большинстве случаев достаточно `:build`, `:both`/`:run` нужны только для приложений, использующих привязки интроспекции. (both, build, run)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1830 +#, no-wrap +msgid "`libgda5`" +msgstr "`libgda5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1831 +#, no-wrap +msgid "databases/libgda5" +msgstr "databases/libgda5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1833 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2003 +#, no-wrap +msgid "Provides uniform access to different kinds of data sources" +msgstr "Обеспечивает единообразный доступ к различным типам источников данных" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1834 +#, no-wrap +msgid "`libgda5-ui`" +msgstr "`libgda5-ui`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1835 +#, no-wrap +msgid "databases/libgda5-ui" +msgstr "databases/libgda5-ui" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1837 +#, no-wrap +msgid "UI library from the libgda5 library" +msgstr "Библиотека пользовательского интерфейса из библиотеки libgda5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1838 +#, no-wrap +msgid "`libgdamm5`" +msgstr "`libgdamm5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1839 +#, no-wrap +msgid "databases/libgdamm5" +msgstr "databases/libgdamm5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1841 +#, no-wrap +msgid "c++ bindings for the libgda5 library" +msgstr "привязки C++ для библиотеки libgda5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1842 +#, no-wrap +msgid "`libgsf`" +msgstr "`libgsf`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1843 +#, no-wrap +msgid "devel/libgsf" +msgstr "devel/libgsf" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1845 +#, no-wrap +msgid "Extensible I/O abstraction for dealing with structured file formats" +msgstr "Расширяемая абстракция ввода-вывода для работы со структурированными форматами файлов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1846 +#, no-wrap +msgid "`librsvg2`" +msgstr "`librsvg2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1847 +#, no-wrap +msgid "graphics/librsvg2" +msgstr "graphics/librsvg2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1849 +#, no-wrap +msgid "Library for parsing and rendering SVG vector-graphic files" +msgstr "Библиотека для разбора и отображения SVG-файлов векторной графики" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1850 +#, no-wrap +msgid "`libsigc++20`" +msgstr "`libsigc++20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1851 +#, no-wrap +msgid "devel/libsigc++20" +msgstr "devel/libsigc++20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1853 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2047 +#, no-wrap +msgid "Callback Framework for C++" +msgstr "Фреймворк обратных вызовов для C++" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1854 +#, no-wrap +msgid "`libxml++26`" +msgstr "`libxml++26`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1855 +#, no-wrap +msgid "textproc/libxml++26" +msgstr "textproc/libxml++26" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1857 +#, no-wrap +msgid "c++ bindings for the libxml2 library" +msgstr "C++ привязки для библиотеки libxml2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1858 +#, no-wrap +msgid "`libxml2`" +msgstr "`libxml2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1859 +#, no-wrap +msgid "textproc/libxml2" +msgstr "textproc/libxml2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1861 +#, no-wrap +msgid "XML parser library (both, build, run)" +msgstr "Библиотека парсера XML (both, build, run)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1862 +#, no-wrap +msgid "`libxslt`" +msgstr "`libxslt`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1863 +#, no-wrap +msgid "textproc/libxslt" +msgstr "textproc/libxslt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1865 +#, no-wrap +msgid "XSLT C library (both, build, run)" +msgstr "Библиотека XSLT (сборка, выполнение)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1866 +#, no-wrap +msgid "`metacity`" +msgstr "`metacity`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1867 +#, no-wrap +msgid "x11-wm/metacity" +msgstr "x11-wm/metacity" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1869 +#, no-wrap +msgid "Window manager from GNOME" +msgstr "Менеджер окон из GNOME" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1870 +#, no-wrap +msgid "`nautilus3`" +msgstr "`nautilus3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1871 +#, no-wrap +msgid "x11-fm/nautilus" +msgstr "x11-fm/nautilus" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1873 +#, no-wrap +msgid "GNOME file manager" +msgstr "GNOME файловый менеджер" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1874 +#, no-wrap +msgid "`pango`" +msgstr "`pango`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1875 +#, no-wrap +msgid "x11-toolkits/pango" +msgstr "x11-toolkits/pango" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1877 +#, no-wrap +msgid "Open-source framework for the layout and rendering of i18n text" +msgstr "Открытый фреймворк для разметки и отображения интернационализированного текста" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1878 +#, no-wrap +msgid "`pangomm`" +msgstr "`pangomm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1879 +#, no-wrap +msgid "x11-toolkits/pangomm" +msgstr "x11-toolkits/pangomm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1881 +#, no-wrap +msgid "c++ bindings for the pango library" +msgstr "C++ интерфейс для библиотеки pango" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1882 +#, no-wrap +msgid "`py3gobject3`" +msgstr "`py3gobject3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1883 +#, no-wrap +msgid "devel/py3-gobject3" +msgstr "devel/py3-gobject3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1885 +#, no-wrap +msgid "Python 3, GObject 3.0 bindings" +msgstr "Python 3, интерфейс GObject 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1886 +#, no-wrap +msgid "`pygobject3`" +msgstr "`pygobject3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1887 +#, no-wrap +msgid "devel/py-gobject3" +msgstr "devel/py-gobject3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1889 +#, no-wrap +msgid "Python 2, GObject 3.0 bindings" +msgstr "Python 2, интерфейс GObject 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1890 +#, no-wrap +msgid "`vte3`" +msgstr "`vte3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1891 +#, no-wrap +msgid "x11-toolkits/vte3" +msgstr "x11-toolkits/vte3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1892 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2078 +#, no-wrap +msgid "Terminal widget with improved accessibility and I18N support" +msgstr "Виджет терминала с улучшенной поддержкой доступности и интернационализации (I18N)" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1895 +#, no-wrap +msgid "GNOME Macro Components" +msgstr "Компоненты макросов GNOME" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1902 +#, no-wrap +msgid "`gnomeprefix`" +msgstr "`gnomeprefix`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1904 +#, no-wrap +msgid "Supply `configure` with some default locations." +msgstr "Предоставляет `configure` некоторые стандартные расположения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1905 +#, no-wrap +msgid "`intlhack`" +msgstr "`intlhack`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1907 +#, no-wrap +msgid "Same as intltool, but patches to make sure [.filename]#share/locale/# is used. Please only use when `intltool` alone is not enough." +msgstr "То же, что и `intltool`, но с патчами для гарантии использования [.filename]#share/locale/#. Используйте только в случае, когда одного `intltool` недостаточно." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1908 +#, no-wrap +msgid "`referencehack`" +msgstr "`referencehack`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1909 +#, no-wrap +msgid "This macro is there to help splitting of the API or reference documentation into its own port." +msgstr "Этот макрос предназначен для помощи в разделении API или справочной документации на собственный порт." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1912 +#, no-wrap +msgid "GNOME Legacy Components" +msgstr "Компоненты GNOME Legacy" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1920 +#, no-wrap +msgid "`atspi`" +msgstr "`atspi`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1921 +#, no-wrap +msgid "accessibility/at-spi" +msgstr "accessibility/at-spi" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1923 +#, no-wrap +msgid "Assistive Technology Service Provider Interface" +msgstr "Интерфейс поставщика услуг вспомогательных технологий (AT-SPI)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1924 +#, no-wrap +msgid "`esound`" +msgstr "`esound`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1925 +#, no-wrap +msgid "audio/esound" +msgstr "audio/esound" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1927 +#, no-wrap +msgid "Enlightenment sound package" +msgstr "Пакет звука Enlightenment" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1928 +#, no-wrap +msgid "`gal2`" +msgstr "`gal2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1929 +#, no-wrap +msgid "x11-toolkits/gal2" +msgstr "x11-toolkits/gal2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1931 +#, no-wrap +msgid "Collection of widgets taken from GNOME 2 gnumeric" +msgstr "Коллекция виджетов, взятых из GNOME 2 gnumeric" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1932 +#, no-wrap +msgid "`gconf2`" +msgstr "`gconf2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1933 +#, no-wrap +msgid "devel/gconf2" +msgstr "devel/gconf2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1935 +#, no-wrap +msgid "Configuration database system for GNOME 2" +msgstr "Система базы данных конфигурации для GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1936 +#, no-wrap +msgid "`gconfmm26`" +msgstr "`gconfmm26`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1937 +#, no-wrap +msgid "devel/gconfmm26" +msgstr "devel/gconfmm26" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1939 +#, no-wrap +msgid "c++ bindings for gconf2" +msgstr "C++ привязки C++ для gconf2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1940 +#, no-wrap +msgid "`gdkpixbuf`" +msgstr "`gdkpixbuf`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1941 +#, no-wrap +msgid "graphics/gdk-pixbuf" +msgstr "graphics/gdk-pixbuf" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1944 +#, no-wrap +msgid "`glib12`" +msgstr "`glib12`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1945 +#, no-wrap +msgid "devel/glib12" +msgstr "devel/glib12" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1947 +#, no-wrap +msgid "glib 1.2 core library" +msgstr "Библиотека ядра glib 1.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1948 +#, no-wrap +msgid "`gnomedocutils`" +msgstr "`gnomedocutils`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1949 +#, no-wrap +msgid "textproc/gnome-doc-utils" +msgstr "textproc/gnome-doc-utils" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1951 +#, no-wrap +msgid "GNOME doc utils" +msgstr "Утилиты документации GNOME" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1952 +#, no-wrap +msgid "`gnomemimedata`" +msgstr "`gnomemimedata`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1953 +#, no-wrap +msgid "misc/gnome-mime-data" +msgstr "misc/gnome-mime-data" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1955 +#, no-wrap +msgid "MIME and Application database for GNOME 2" +msgstr "База данных MIME и приложений для GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1956 +#, no-wrap +msgid "`gnomesharp20`" +msgstr "`gnomesharp20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1957 +#, no-wrap +msgid "x11-toolkits/gnome-sharp20" +msgstr "x11-toolkits/gnome-sharp20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1959 +#, no-wrap +msgid "GNOME 2 interfaces for the .NET runtime" +msgstr "Интерфейсы GNOME 2 для среды выполнения .NET" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1960 +#, no-wrap +msgid "`gnomespeech`" +msgstr "`gnomespeech`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1961 +#, no-wrap +msgid "accessibility/gnome-speech" +msgstr "accessibility/gnome-speech" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1963 +#, no-wrap +msgid "GNOME 2 text-to-speech API" +msgstr "GNOME 2 API преобразования текста в речь" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1964 +#, no-wrap +msgid "`gnomevfs2`" +msgstr "`gnomevfs2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1965 +#, no-wrap +msgid "devel/gnome-vfs" +msgstr "devel/gnome-vfs" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1967 +#, no-wrap +msgid "GNOME 2 Virtual File System" +msgstr "Виртуальная файловая система GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1968 +#, no-wrap +msgid "`gtk12`" +msgstr "`gtk12`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1969 +#, no-wrap +msgid "x11-toolkits/gtk12" +msgstr "x11-toolkits/gtk12" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1971 +#, no-wrap +msgid "Gtk+ 1.2 toolkit" +msgstr "Набор инструментов Gtk+ 1.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1972 +#, no-wrap +msgid "`gtkhtml3`" +msgstr "`gtkhtml3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1973 +#, no-wrap +msgid "www/gtkhtml3" +msgstr "www/gtkhtml3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1975 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1979 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2035 +#, no-wrap +msgid "Lightweight HTML rendering/printing/editing engine" +msgstr "Облегченный движок для отображения/печати/редактирования HTML" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1976 +#, no-wrap +msgid "`gtkhtml4`" +msgstr "`gtkhtml4`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1977 +#, no-wrap +msgid "www/gtkhtml4" +msgstr "www/gtkhtml4" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1980 +#, no-wrap +msgid "`gtksharp20`" +msgstr "`gtksharp20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1981 +#, no-wrap +msgid "x11-toolkits/gtk-sharp20" +msgstr "x11-toolkits/gtk-sharp20" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1983 +#, no-wrap +msgid "GTK+ and GNOME 2 interfaces for the .NET runtime" +msgstr "Интерфейсы GTK+ и GNOME 2 для среды выполнения .NET" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1984 +#, no-wrap +msgid "`gtksourceview`" +msgstr "`gtksourceview`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1985 +#, no-wrap +msgid "x11-toolkits/gtksourceview" +msgstr "x11-toolkits/gtksourceview" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1988 +#, no-wrap +msgid "`libartgpl2`" +msgstr "`libartgpl2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1989 +#, no-wrap +msgid "graphics/libart_lgpl" +msgstr "graphics/libart_lgpl" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1991 +#, no-wrap +msgid "Library for high-performance 2D graphics" +msgstr "Библиотека для высокопроизводительной 2D графики" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1992 +#, no-wrap +msgid "`libbonobo`" +msgstr "`libbonobo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1993 +#, no-wrap +msgid "devel/libbonobo" +msgstr "devel/libbonobo" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1995 +#, no-wrap +msgid "Component and compound document system for GNOME 2" +msgstr "Система компонентов и составных документов для GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1996 +#, no-wrap +msgid "`libbonoboui`" +msgstr "`libbonoboui`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1997 +#, no-wrap +msgid "x11-toolkits/libbonoboui" +msgstr "x11-toolkits/libbonoboui" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1999 +#, no-wrap +msgid "GUI frontend to the libbonobo component of GNOME 2" +msgstr "Интерфейс для libbonobo в GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2000 +#, no-wrap +msgid "`libgda4`" +msgstr "`libgda4`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2001 +#, no-wrap +msgid "databases/libgda4" +msgstr "databases/libgda4" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2004 +#, no-wrap +msgid "`libglade2`" +msgstr "`libglade2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2005 +#, no-wrap +msgid "devel/libglade2" +msgstr "devel/libglade2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2007 +#, no-wrap +msgid "GNOME 2 glade library" +msgstr "Библиотека glade для GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2008 +#, no-wrap +msgid "`libgnome`" +msgstr "`libgnome`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2009 +#, no-wrap +msgid "x11/libgnome" +msgstr "x11/libgnome" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2011 +#, no-wrap +msgid "Libraries for GNOME 2, a GNU desktop environment" +msgstr "Библиотеки для GNOME 2, GNU окружения рабочего стола" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2012 +#, no-wrap +msgid "`libgnomecanvas`" +msgstr "`libgnomecanvas`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2013 +#, no-wrap +msgid "graphics/libgnomecanvas" +msgstr "graphics/libgnomecanvas" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2015 +#, no-wrap +msgid "Graphics library for GNOME 2" +msgstr "Графическая библиотека для GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2016 +#, no-wrap +msgid "`libgnomekbd`" +msgstr "`libgnomekbd`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2017 +#, no-wrap +msgid "x11/libgnomekbd" +msgstr "x11/libgnomekbd" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2019 +#, no-wrap +msgid "GNOME 2 keyboard shared library" +msgstr "Динамическая библиотека клавиатуры GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2020 +#, no-wrap +msgid "`libgnomeprint`" +msgstr "`libgnomeprint`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2021 +#, no-wrap +msgid "print/libgnomeprint" +msgstr "print/libgnomeprint" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2023 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2027 +#, no-wrap +msgid "Gnome 2 print support library" +msgstr "Библиотека поддержки печати Gnome 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2024 +#, no-wrap +msgid "`libgnomeprintui`" +msgstr "`libgnomeprintui`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2025 +#, no-wrap +msgid "x11-toolkits/libgnomeprintui" +msgstr "x11-toolkits/libgnomeprintui" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2028 +#, no-wrap +msgid "`libgnomeui`" +msgstr "`libgnomeui`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2029 +#, no-wrap +msgid "x11-toolkits/libgnomeui" +msgstr "x11-toolkits/libgnomeui" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2031 +#, no-wrap +msgid "Libraries for the GNOME 2 GUI, a GNU desktop environment" +msgstr "Библиотеки для графического интерфейса GNOME 2, среды рабочего стола GNU" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2032 +#, no-wrap +msgid "`libgtkhtml`" +msgstr "`libgtkhtml`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2033 +#, no-wrap +msgid "www/libgtkhtml" +msgstr "www/libgtkhtml" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2036 +#, no-wrap +msgid "`libgtksourceviewmm`" +msgstr "`libgtksourceviewmm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2037 +#, no-wrap +msgid "x11-toolkits/libgtksourceviewmm" +msgstr "x11-toolkits/libgtksourceviewmm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2039 +#, no-wrap +msgid "c++ binding of GtkSourceView" +msgstr "C++ интерфейс GtkSourceView" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2040 +#, no-wrap +msgid "`libidl`" +msgstr "`libidl`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2041 +#, no-wrap +msgid "devel/libIDL" +msgstr "devel/libIDL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2043 +#, no-wrap +msgid "Library for creating trees of CORBA IDL file" +msgstr "Библиотека для создания деревьев файлов CORBA IDL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2044 +#, no-wrap +msgid "`libsigc++12`" +msgstr "`libsigc++12`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2045 +#, no-wrap +msgid "devel/libsigc++12" +msgstr "devel/libsigc++12" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2048 +#, no-wrap +msgid "`libwnck`" +msgstr "`libwnck`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2049 +#, no-wrap +msgid "x11-toolkits/libwnck" +msgstr "x11-toolkits/libwnck" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2051 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2055 +#, no-wrap +msgid "Library used for writing pagers and taskslists" +msgstr "Библиотека, используемая для написания пейджеров и списков задач" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2052 +#, no-wrap +msgid "`libwnck3`" +msgstr "`libwnck3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2053 +#, no-wrap +msgid "x11-toolkits/libwnck3" +msgstr "x11-toolkits/libwnck3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2056 +#, no-wrap +msgid "`orbit2`" +msgstr "`orbit2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2057 +#, no-wrap +msgid "devel/ORBit2" +msgstr "devel/ORBit2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2059 +#, no-wrap +msgid "High-performance CORBA ORB with support for the C language" +msgstr "Высокопроизводительный CORBA ORB с поддержкой языка C" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2060 +#, no-wrap +msgid "`pygnome2`" +msgstr "`pygnome2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2061 +#, no-wrap +msgid "x11-toolkits/py-gnome2" +msgstr "x11-toolkits/py-gnome2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2063 +#, no-wrap +msgid "Python bindings for GNOME 2" +msgstr "Интерфейс Python для GNOME 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2064 +#, no-wrap +msgid "`pygobject`" +msgstr "`pygobject`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2065 +#, no-wrap +msgid "devel/py-gobject" +msgstr "devel/py-gobject" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2067 +#, no-wrap +msgid "Python 2, GObject 2.0 bindings" +msgstr "Python 2, интерфейс GObject 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2068 +#, no-wrap +msgid "`pygtk2`" +msgstr "`pygtk2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2069 +#, no-wrap +msgid "x11-toolkits/py-gtk2" +msgstr "x11-toolkits/py-gtk2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2071 +#, no-wrap +msgid "Set of Python bindings for GTK+" +msgstr "Набор интерфейсов Python для GTK+" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2072 +#, no-wrap +msgid "`pygtksourceview`" +msgstr "`pygtksourceview`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2073 +#, no-wrap +msgid "x11-toolkits/py-gtksourceview" +msgstr "x11-toolkits/py-gtksourceview" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2075 +#, no-wrap +msgid "Python bindings for GtkSourceView 2" +msgstr "Интерфейс Python для GtkSourceView 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2076 +#, no-wrap +msgid "`vte`" +msgstr "`vte`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2077 +#, no-wrap +msgid "x11-toolkits/vte" +msgstr "x11-toolkits/vte" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2081 +#, no-wrap +msgid "Deprecated Components: Do Not Use" +msgstr "Устаревшие компоненты: не использовать" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2088 +#, no-wrap +msgid "`pangox-compat`" +msgstr "`pangox-compat`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2089 +#, no-wrap +msgid "pangox-compat has been deprecated and split off from the pango package." +msgstr "pangox-compat устарел и был отделён от пакета pango." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2092 +#, no-wrap +msgid "Using Qt" +msgstr "Использование Qt" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2097 +msgid "" +"For ports that are part of Qt itself, see crossref:uses[uses-qt-dist,`qt-" +"dist`]." +msgstr "" +"Для портов, которые являются частью самого Qt, см. crossref:uses[uses-qt-" +"dist,`qt-dist`]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2100 +#, no-wrap +msgid "Ports That Require Qt" +msgstr "Порты, требующие Qt" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2105 +msgid "" +"The Ports Collection provides support for Qt 5 and Qt 6 with `USES+=qt:5` " +"and `USES+=qt:6` respectively. Set `USE_QT` to the list of required Qt " +"components (libraries, tools, plugins)." +msgstr "" +"Коллекция портов поддерживает Qt 5 и Qt 6 с помощью `USES+=qt:5` и " +"`USES+=qt:6` соответственно. Установите `USE_QT` в список необходимых " +"компонентов Qt (libraries, tools, plugins - библиотеки, инструменты, " +"плагины)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2107 +msgid "" +"The Qt framework exports a number of variables which can be used by ports, " +"some of them listed below:" +msgstr "" +"Фреймворк Qt экспортирует ряд переменных, которые могут использоваться " +"портами, некоторые из них перечислены ниже:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2109 +#, no-wrap +msgid "Variables Provided to Ports That Use Qt" +msgstr "Переменные, предоставляемые портам, использующим Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2113 +#, no-wrap +msgid "`QMAKE`" +msgstr "`QMAKE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2115 +#, no-wrap +msgid "Full path to `qmake` binary." +msgstr "Полный путь к исполняемому файлу `qmake`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2116 +#, no-wrap +msgid "`LRELEASE`" +msgstr "`LRELEASE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2118 +#, no-wrap +msgid "Full path to `lrelease` utility." +msgstr "Полный путь к утилите `lrelease`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2119 +#, no-wrap +msgid "`MOC`" +msgstr "`MOC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2121 +#, no-wrap +msgid "Full path to `moc`." +msgstr "Полный путь к `moc`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2122 +#, no-wrap +msgid "`RCC`" +msgstr "`RCC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2124 +#, no-wrap +msgid "Full path to `rcc`." +msgstr "Полный путь к `rcc`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2125 +#, no-wrap +msgid "`UIC`" +msgstr "`UIC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2127 +#, no-wrap +msgid "Full path to `uic`." +msgstr "Полный путь к `uic`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2128 +#, no-wrap +msgid "`QT_INCDIR`" +msgstr "`QT_INCDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2130 +#, no-wrap +msgid "Qt include directory." +msgstr "Каталог включаемых файлов Qt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2131 +#, no-wrap +msgid "`QT_LIBDIR`" +msgstr "`QT_LIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2133 +#, no-wrap +msgid "Qt libraries path." +msgstr "Путь к библиотекам Qt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2134 +#, no-wrap +msgid "`QT_PLUGINDIR`" +msgstr "`QT_PLUGINDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2135 +#, no-wrap +msgid "Qt plugins path." +msgstr "Путь к плагинам Qt." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2138 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3857 +#, no-wrap +msgid "Component Selection" +msgstr "Выбор компонентов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2145 +msgid "" +"Individual Qt tool and library dependencies must be specified in `USE_QT`. " +"Every component can be suffixed with `_build` or `_run`, the suffix " +"indicating whether the dependency on the component is at buildtime or " +"runtime. If unsuffixed, the component will be depended on at both build- " +"and runtime. Usually, library components are specified unsuffixed, tool " +"components are mostly specified with the `_build` suffix and plugin " +"components are specified with the `_run` suffix. The most commonly used " +"components are listed below (all available components are listed in " +"`_USE_QT_ALL`, which is generated from `_USE_QT_COMMON` and " +"`_USE_QT[56]_ONLY` in [.filename]#/usr/ports/Mk/Uses/qt.mk#):" +msgstr "" +"Отдельные зависимости инструментов и библиотек Qt должны быть указаны в " +"`USE_QT`. Каждый компонент может иметь суффикс `_build` или `_run`, " +"указывающий, требуется ли компонент во время сборки или выполнения. Если " +"суффикс отсутствует, компонент будет требоваться как во время сборки, так и " +"во время выполнения. Обычно компоненты библиотек указываются без суффикса, " +"компоненты инструментов чаще всего указываются с суффиксом `_build`, а " +"компоненты плагинов — с суффиксом `_run`. Наиболее часто используемые " +"компоненты перечислены ниже (все доступные компоненты перечислены в " +"`_USE_QT_ALL`, которая формируется из `_USE_QT_COMMON` и `_USE_QT[56]_ONLY` " +"в [.filename]#/usr/ports/Mk/Uses/qt.mk#):" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2147 +#, no-wrap +msgid "Available Qt Library Components" +msgstr "Доступные компоненты библиотеки Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2151 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2395 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2412 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2545 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3125 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3847 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3867 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3892 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3996 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4166 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4218 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4310 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4401 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4463 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4724 +#, no-wrap +msgid "Name" +msgstr "Имя" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2154 +#, no-wrap +msgid "`3d`" +msgstr "`3d`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2156 +#, no-wrap +msgid "Qt3D module" +msgstr "Модуль Qt3D" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2157 +#, no-wrap +msgid "`5compat`" +msgstr "`5compat`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2159 +#, no-wrap +msgid "Qt 5 compatibility module for Qt 6" +msgstr "Модуль совместимости Qt 5 для Qt 6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2160 +#, no-wrap +msgid "`assistant`" +msgstr "`assistant`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2162 +#, no-wrap +msgid "Qt 5 documentation browser" +msgstr "Браузер документации Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2163 +#, no-wrap +msgid "`base`" +msgstr "`base`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2165 +#, no-wrap +msgid "Qt 6 base module" +msgstr "Модуль Qt 6 base" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2166 +#, no-wrap +msgid "`canvas3d`" +msgstr "`canvas3d`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2168 +#, no-wrap +msgid "Qt canvas3d module" +msgstr "Модуль Qt canvas3d" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2169 +#, no-wrap +msgid "`charts`" +msgstr "`charts`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2171 +#, no-wrap +msgid "Qt 5 charts module" +msgstr "Модуль Qt 5 charts" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2172 +#, no-wrap +msgid "`concurrent`" +msgstr "`concurrent`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2174 +#, no-wrap +msgid "Qt multi-threading module" +msgstr "Модуль многопоточности Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2175 +#, no-wrap +msgid "`connectivity`" +msgstr "`connectivity`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2177 +#, no-wrap +msgid "Qt connectivity (Bluetooth/NFC) module" +msgstr "Модуль Qt для подключения (Bluetooth/NFC)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2178 +#, no-wrap +msgid "`core`" +msgstr "`core`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2180 +#, no-wrap +msgid "Qt core non-graphical module" +msgstr "Ядро Qt, неграфический модуль" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2181 +#, no-wrap +msgid "`datavis3d`" +msgstr "`datavis3d`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2183 +#, no-wrap +msgid "Qt 5 3D data visualization module" +msgstr "Модуль визуализации 3D данных Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2184 +#, no-wrap +msgid "`dbus`" +msgstr "`dbus`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2186 +#, no-wrap +msgid "Qt D-Bus inter-process communication module" +msgstr "Модуль межпроцессного взаимодействия Qt D-Bus" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2187 +#, no-wrap +msgid "`declarative`" +msgstr "`declarative`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2189 +#, no-wrap +msgid "Qt declarative framework for dynamic user interfaces" +msgstr "Декларативный фреймворк Qt для динамических пользовательских интерфейсов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2190 +#, no-wrap +msgid "`designer`" +msgstr "`designer`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2192 +#, no-wrap +msgid "Qt 5 graphical user interface designer" +msgstr "Интерфейсный конструктор Qt 5 для графического пользовательского интерфейса" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2193 +#, no-wrap +msgid "`diag`" +msgstr "`diag`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2195 +#, no-wrap +msgid "Tool for reporting diagnostic information about Qt and its environment" +msgstr "Инструмент для сбора диагностической информации о Qt и его окружении" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2196 +#, no-wrap +msgid "`doc`" +msgstr "`doc`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2198 +#, no-wrap +msgid "Qt 5 documentation" +msgstr "Документация Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2199 +#, no-wrap +msgid "`examples`" +msgstr "`examples`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2201 +#, no-wrap +msgid "Qt 5 examples sourcecode" +msgstr "Исходный код примеров Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2202 +#, no-wrap +msgid "`gamepad`" +msgstr "`gamepad`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2204 +#, no-wrap +msgid "Qt 5 Gamepad Module" +msgstr "Модуль Qt 5 Gamepad" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2205 +#, no-wrap +msgid "`graphicaleffects`" +msgstr "`graphicaleffects`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2207 +#, no-wrap +msgid "Qt Quick graphical effects" +msgstr "Графические эффекты Qt Quick" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2208 +#, no-wrap +msgid "`gui`" +msgstr "`gui`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2210 +#, no-wrap +msgid "Qt graphical user interface module" +msgstr "Модуль графического интерфейса Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2211 +#, no-wrap +msgid "`help`" +msgstr "`help`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2213 +#, no-wrap +msgid "Qt online help integration module" +msgstr "Модуль интеграции справки Qt в режиме онлайн" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2214 +#, no-wrap +msgid "`l10n`" +msgstr "`l10n`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2216 +#, no-wrap +msgid "Qt localized messages" +msgstr "Локализованные сообщения Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2217 +#, no-wrap +msgid "`languageserver`" +msgstr "`languageserver`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2219 +#, no-wrap +msgid "Qt 6 Language Server Protocol implementation" +msgstr "Реализация протокола Language Server Protocol в Qt 6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2220 +#, no-wrap +msgid "`linguist`" +msgstr "`linguist`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2222 +#, no-wrap +msgid "Qt 5 translation tool" +msgstr "Инструмент перевода Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2223 +#, no-wrap +msgid "`location`" +msgstr "`location`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2225 +#, no-wrap +msgid "Qt location module" +msgstr "Модуль Qt Location" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2226 +#, no-wrap +msgid "`lottie`" +msgstr "`lottie`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2228 +#, no-wrap +msgid "Qt 6 QML API for rendering graphics and animations" +msgstr "Qt 6 QML API для отрисовки графики и анимаций" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2229 +#, no-wrap +msgid "`multimedia`" +msgstr "`multimedia`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2231 +#, no-wrap +msgid "Qt audio, video, radio and camera support module" +msgstr "Модуль поддержки аудио, видео, радио и камеры Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2232 +#, no-wrap +msgid "`network`" +msgstr "`network`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2234 +#, no-wrap +msgid "Qt network module" +msgstr "Сетевой модуль Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2235 +#, no-wrap +msgid "`networkauth`" +msgstr "`networkauth`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2237 +#, no-wrap +msgid "Qt network auth module" +msgstr "Модуль сетевой аутентификации Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2238 +#, no-wrap +msgid "`opengl`" +msgstr "`opengl`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2240 +#, no-wrap +msgid "Qt 5-compatible OpenGL support module" +msgstr "Модуль поддержки OpenGL, совместимый с Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2241 +#, no-wrap +msgid "`paths`" +msgstr "`paths`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2243 +#, no-wrap +msgid "Command line client to QStandardPaths" +msgstr "Клиент командной строки для QStandardPaths" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2244 +#, no-wrap +msgid "`phonon4`" +msgstr "`phonon4`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2246 +#, no-wrap +msgid "KDE multimedia framework" +msgstr "Мультимедийный фреймворк KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2247 +#, no-wrap +msgid "`pixeltool`" +msgstr "`pixeltool`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2249 +#, no-wrap +msgid "Qt 5 screen magnifier" +msgstr "Увеличитель экрана Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2250 +#, no-wrap +msgid "`plugininfo`" +msgstr "`plugininfo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2252 +#, no-wrap +msgid "Qt 5 plugin metadata dumper" +msgstr "Дампер метаданных плагинов Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2253 +#, no-wrap +msgid "`positioning`" +msgstr "`positioning`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2255 +#, no-wrap +msgid "Qt 6 positioning API from sources such as satellite, wifi or text files." +msgstr "Qt 6 API позиционирования из источников, таких как спутники, Wi-Fi или текстовые файлы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2256 +#, no-wrap +msgid "`printsupport`" +msgstr "`printsupport`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2258 +#, no-wrap +msgid "Qt print support module" +msgstr "Модуль поддержки печати Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2259 +#, no-wrap +msgid "`qdbus`" +msgstr "`qdbus`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2261 +#, no-wrap +msgid "Qt command-line interface to D-Bus" +msgstr "Интерфейс командной строки Qt для D-Bus" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2262 +#, no-wrap +msgid "`qdbusviewer`" +msgstr "`qdbusviewer`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2264 +#, no-wrap +msgid "Qt 5 graphical interface to D-Bus" +msgstr "Графический интерфейс Qt 5 для D-Bus" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2265 +#, no-wrap +msgid "`qdoc`" +msgstr "`qdoc`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2267 +#, no-wrap +msgid "Qt documentation generator" +msgstr "Генератор документации Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2268 +#, no-wrap +msgid "`qdoc-data`" +msgstr "`qdoc-data`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2270 +#, no-wrap +msgid "QDoc configuration files" +msgstr "Файлы конфигурации QDoc" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2271 +#, no-wrap +msgid "`qev`" +msgstr "`qev`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2273 +#, no-wrap +msgid "Qt QWidget events introspection tool" +msgstr "Инструмент для интроспекции событий Qt QWidget" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2274 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2404 +#, no-wrap +msgid "`qmake`" +msgstr "`qmake`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2276 +#, no-wrap +msgid "Qt Makefile generator" +msgstr "Генератор Makefile Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2277 +#, no-wrap +msgid "`quickcontrols`" +msgstr "`quickcontrols`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2279 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2282 +#, no-wrap +msgid "Set of controls for building complete interfaces in Qt Quick" +msgstr "Набор элементов управления для создания полных интерфейсов в Qt Quick" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2280 +#, no-wrap +msgid "`quickcontrols2`" +msgstr "`quickcontrols2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2283 +#, no-wrap +msgid "`remoteobjects`" +msgstr "`remoteobjects`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2285 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2294 +#, no-wrap +msgid "Qt 5 SXCML module" +msgstr "Модуль Qt 5 SXCML" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2286 +#, no-wrap +msgid "`script`" +msgstr "`script`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2288 +#, no-wrap +msgid "Qt 4-compatible scripting module" +msgstr "Совместимый с Qt 4 модуль для написания сценариев" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2289 +#, no-wrap +msgid "`scripttools`" +msgstr "`scripttools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2291 +#, no-wrap +msgid "Qt Script additional components" +msgstr "Дополнительные компоненты Qt Script" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2292 +#, no-wrap +msgid "`scxml`" +msgstr "`scxml`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2295 +#, no-wrap +msgid "`sensors`" +msgstr "`sensors`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2297 +#, no-wrap +msgid "Qt sensors module" +msgstr "Модуль Qt sensors" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2298 +#, no-wrap +msgid "`serialbus`" +msgstr "`serialbus`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2300 +#, no-wrap +msgid "Qt functions to access industrial bus systems" +msgstr "Функции Qt для доступа к промышленным шинным системам" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2301 +#, no-wrap +msgid "`serialport`" +msgstr "`serialport`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2303 +#, no-wrap +msgid "Qt functions to access serial ports" +msgstr "Функции Qt для доступа к последовательным портам" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2304 +#, no-wrap +msgid "`shadertools`" +msgstr "`shadertools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2306 +#, no-wrap +msgid "Qt 6 tools for the cross-platform Qt shader pipeline" +msgstr "Инструменты Qt 6 для кроссплатформенного конвейера шейдеров Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2307 +#, no-wrap +msgid "`speech`" +msgstr "`speech`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2309 +#, no-wrap +msgid "Accessibility features for Qt5" +msgstr "Доступность в Qt5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2310 +#, no-wrap +msgid "`sql`" +msgstr "`sql`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2312 +#, no-wrap +msgid "Qt SQL database integration module" +msgstr "Модуль интеграции с базой данных Qt SQL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2313 +#, no-wrap +msgid "`sql-ibase`" +msgstr "`sql-ibase`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2315 +#, no-wrap +msgid "Qt InterBase/Firebird database plugin" +msgstr "Плагин Qt баз данных InterBase/Firebird" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2316 +#, no-wrap +msgid "`sql-mysql`" +msgstr "`sql-mysql`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2318 +#, no-wrap +msgid "Qt MySQL database plugin" +msgstr "Плагин Qt базы данных MySQL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2319 +#, no-wrap +msgid "`sql-odbc`" +msgstr "`sql-odbc`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2321 +#, no-wrap +msgid "Qt Open Database Connectivity plugin" +msgstr "Плагин Qt ODBC" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2322 +#, no-wrap +msgid "`sql-pgsql`" +msgstr "`sql-pgsql`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2324 +#, no-wrap +msgid "Qt PostgreSQL database plugin" +msgstr "Плагин Qt базы данных PostgreSQL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2325 +#, no-wrap +msgid "`sql-sqlite2`" +msgstr "`sql-sqlite2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2327 +#, no-wrap +msgid "Qt SQLite 2 database plugin" +msgstr "Плагин Qt базы данных SQLite 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2328 +#, no-wrap +msgid "`sql-sqlite3`" +msgstr "`sql-sqlite3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2330 +#, no-wrap +msgid "Qt SQLite 3 database plugin" +msgstr "Плагин Qt базы данных SQLite 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2331 +#, no-wrap +msgid "`sql-tds`" +msgstr "`sql-tds`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2333 +#, no-wrap +msgid "Qt TDS Database Connectivity database plugin" +msgstr "Плагин Qt для подключение к базам данных по протоколу TDS" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2334 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3926 +#, no-wrap +msgid "`svg`" +msgstr "`svg`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2336 +#, no-wrap +msgid "Qt SVG support module" +msgstr "Модуль поддержки SVG в Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2337 +#, no-wrap +msgid "`testlib`" +msgstr "`testlib`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2339 +#, no-wrap +msgid "Qt unit testing module" +msgstr "Модуль тестирования Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2340 +#, no-wrap +msgid "`tools`" +msgstr "`tools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2342 +#, no-wrap +msgid "Qt 6 assorted tools" +msgstr "Различные инструменты Qt 6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2343 +#, no-wrap +msgid "`translations`" +msgstr "`translations`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2345 +#, no-wrap +msgid "Qt 6 translation module" +msgstr "Модуль перевода Qt 6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2346 +#, no-wrap +msgid "`uiplugin`" +msgstr "`uiplugin`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2348 +#, no-wrap +msgid "Custom Qt widget plugin interface for Qt Designer" +msgstr "Интерфейс плагина пользовательского виджета Qt для Qt Designer" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2349 +#, no-wrap +msgid "`uitools`" +msgstr "`uitools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2351 +#, no-wrap +msgid "Qt Designer UI forms support module" +msgstr "Модуль поддержки форм пользовательского интерфейса Qt Designer" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2352 +#, no-wrap +msgid "`virtualkeyboard`" +msgstr "`virtualkeyboard`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2354 +#, no-wrap +msgid "Qt 5 Virtual Keyboard Module" +msgstr "Модуль виртуальной клавиатуры Qt 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2355 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3079 +#, no-wrap +msgid "`wayland`" +msgstr "`wayland`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2357 +#, no-wrap +msgid "Qt 5 wrapper for Wayland" +msgstr "Оболочка Qt 5 для Wayland" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2358 +#, no-wrap +msgid "`webchannel`" +msgstr "`webchannel`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2360 +#, no-wrap +msgid "Qt 5 library for integration of C++/QML with HTML/js clients" +msgstr "Библиотека Qt 5 для интеграции C++/QML с клиентами на HTML/js" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2361 +#, no-wrap +msgid "`webengine`" +msgstr "`webengine`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2363 +#, no-wrap +msgid "Qt 5 library to render web content" +msgstr "Библиотека Qt 5 для отображения веб-содержимого" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2364 +#, no-wrap +msgid "`webkit`" +msgstr "`webkit`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2366 +#, no-wrap +msgid "QtWebKit with a more modern WebKit code base" +msgstr "QtWebKit с более современной кодовой базой WebKit" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2367 +#, no-wrap +msgid "`websockets`" +msgstr "`websockets`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2369 +#, no-wrap +msgid "Qt implementation of WebSocket protocol" +msgstr "Реализация протокола WebSocket на Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2370 +#, no-wrap +msgid "`websockets-qml`" +msgstr "`websockets-qml`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2372 +#, no-wrap +msgid "Qt implementation of WebSocket protocol (QML bindings)" +msgstr "Реализация протокола WebSocket на Qt (привязки QML)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2373 +#, no-wrap +msgid "`webview`" +msgstr "`webview`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2375 +#, no-wrap +msgid "Qt component for displaying web content" +msgstr "Компонент Qt для отображения веб-содержимого" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2376 +#, no-wrap +msgid "`widgets`" +msgstr "`widgets`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2378 +#, no-wrap +msgid "Qt C++ widgets module" +msgstr "Модуль виджетов Qt C++" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2379 +#, no-wrap +msgid "`x11extras`" +msgstr "`x11extras`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2381 +#, no-wrap +msgid "Qt platform-specific features for X11-based systems" +msgstr "Платформо-специфичные возможности Qt для систем на основе X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2382 +#, no-wrap +msgid "`xml`" +msgstr "`xml`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2384 +#, no-wrap +msgid "Qt SAX and DOM implementations" +msgstr "Реализации SAX и DOM в Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2385 +#, no-wrap +msgid "`xmlpatterns`" +msgstr "`xmlpatterns`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2386 +#, no-wrap +msgid "Qt support for XPath, XQuery, XSLT and XML Schema" +msgstr "Поддержка Qt для XPath, XQuery, XSLT и XML Schema" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2389 +msgid "" +"To determine the libraries an application depends on, run `ldd` on the main " +"executable after a successful compilation." +msgstr "" +"Чтобы определить библиотеки, от которых зависит приложение, выполните `ldd` " +"для основного исполняемого файла после успешной компиляции." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2391 +#, no-wrap +msgid "Available Qt Tool Components" +msgstr "Доступные компоненты инструментов Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2398 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3128 +#, no-wrap +msgid "`buildtools`" +msgstr "`buildtools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2400 +#, no-wrap +msgid "build tools (`moc`, `rcc`), needed for almost every Qt application." +msgstr "инструменты сборки (`moc`, `rcc`), необходимые практически для любого приложения Qt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2401 +#, no-wrap +msgid "`linguisttools`" +msgstr "`linguisttools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2403 +#, no-wrap +msgid "localization tools: `lrelease`, `lupdate`" +msgstr "инструменты локализации: `lrelease`, `lupdate`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2405 +#, no-wrap +msgid "Makefile generator/build utility" +msgstr "Генератор Makefile/утилита сборки" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2408 +#, no-wrap +msgid "Available Qt Plugin Components" +msgstr "Доступные компоненты плагинов Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2415 +#, no-wrap +msgid "`imageformats`" +msgstr "`imageformats`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2416 +#, no-wrap +msgid "plugins for TGA, TIFF, and MNG image formats" +msgstr "плагины для графических форматов TGA, TIFF и MNG" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2419 +#, no-wrap +msgid "Selecting Qt 5 Components" +msgstr "Выбор компонентов Qt 5" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2425 +msgid "" +"In this example, the ported application uses the Qt 5 graphical user " +"interface library, the Qt 5 core library, all of the Qt 5 code generation " +"tools and Qt 5's Makefile generator. Since the `gui` library implies a " +"dependency on the core library, `core` does not need to be specified. The " +"Qt 5 code generation tools `moc`, `uic` and `rcc`, as well as the Makefile " +"generator `qmake` are only needed at buildtime, thus they are specified with " +"the `_build` suffix:" +msgstr "" +"В этом примере портированное приложение использует библиотеку графического " +"интерфейса Qt 5, основную библиотеку Qt 5, все инструменты генерации кода Qt " +"5 и генератор Makefile Qt 5. Поскольку библиотека `gui` подразумевает " +"зависимость от основной библиотеки, `core` не нужно указывать. Инструменты " +"генерации кода Qt 5 `moc`, `uic` и `rcc`, а также генератор Makefile `qmake` " +"требуются только во время сборки, поэтому они указаны с суффиксом `_build`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2430 +#, no-wrap +msgid "" +"USES=\tqt:5\n" +"USE_QT=\tgui buildtools_build qmake_build\n" +msgstr "" +"USES=\tqt:5\n" +"USE_QT=\tgui buildtools_build qmake_build\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2435 +#, no-wrap +msgid "Using `qmake`" +msgstr "Использование `qmake`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2443 +msgid "" +"If the application provides a qmake project file ([.filename]#*.pro#), " +"define `USES= qmake` along with `USE_QT`. `USES= qmake` already implies a " +"build dependency on qmake, therefore the qmake component can be omitted from " +"`USE_QT`. Similar to crossref:special[using-cmake,CMake], qmake supports " +"out-of-source builds, which can be enabled by specifying the `outsource` " +"argument (see crossref:special[using-qmake-example,`USES= qmake` example]). " +"Also see crossref:special[using-qmake-arguments,Possible Arguments for `USES " +"qmake`]." +msgstr "" +"Если приложение предоставляет файл проекта qmake ([.filename]#*.pro#), " +"определите `USES= qmake` вместе с `USE_QT`. `USES= qmake` уже подразумевает " +"зависимость сборки от qmake, поэтому компонент qmake может быть опущен в " +"`USE_QT`. Подобно crossref:special[using-cmake,CMake], qmake поддерживает " +"сборку вне исходного дерева, которую можно включить, указав аргумент " +"`outsource` (см. crossref:special[using-qmake-example,пример `USES= " +"qmake`]). Также см. crossref:special[using-qmake-arguments,Возможные " +"аргументы для `USES qmake`]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2445 +#, no-wrap +msgid "Possible Arguments for `USES= qmake`" +msgstr "Возможные аргументы для `USES= qmake`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2452 +#, no-wrap +msgid "`no_configure`" +msgstr "`no_configure`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2454 +#, no-wrap +msgid "Do not add the configure target. This is implied by `HAS_CONFIGURE=yes` and `GNU_CONFIGURE=yes`. It is required when the build only needs the environment setup from `USES= qmake`, but otherwise runs `qmake` on its own." +msgstr "Не добавлять цель configure. Это подразумевается при `HAS_CONFIGURE=yes` и `GNU_CONFIGURE=yes`. Это требуется, когда сборке нужна только настройка окружения из `USES= qmake`, но в остальном она запускает `qmake` самостоятельно." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2455 +#, no-wrap +msgid "`no_env`" +msgstr "`no_env`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2457 +#, no-wrap +msgid "Suppress modification of the configure and make environments. It is only required when `qmake` is used to configure the software and the build fails to understand the environment setup by `USES= qmake`." +msgstr "Подавить модификацию окружения configure и make. Это требуется только когда `qmake` используется для настройки программного обеспечения и сборка не понимает окружение, установленное `USES= qmake`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2458 +#, no-wrap +msgid "`norecursive`" +msgstr "`norecursive`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2460 +#, no-wrap +msgid "Do not pass the `-recursive` argument to `qmake`." +msgstr "Не передавать аргумент `-recursive` в `qmake`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2461 +#, no-wrap +msgid "`outsource`" +msgstr "`outsource`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2462 +#, no-wrap +msgid "Perform an out-of-source build." +msgstr "Выполнить сборку вне исходного кода." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2465 +#, no-wrap +msgid "Variables for Ports That Use `qmake`" +msgstr "Переменные для портов, использующих `qmake`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2472 +#, no-wrap +msgid "`QMAKE_ARGS`" +msgstr "`QMAKE_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2474 +#, no-wrap +msgid "Port specific qmake flags to be passed to the `qmake` binary." +msgstr "Специфичные для порта флаги qmake, передаваемые в бинарный файл `qmake`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2475 +#, no-wrap +msgid "`QMAKE_ENV`" +msgstr "`QMAKE_ENV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2477 +#, no-wrap +msgid "Environment variables to be set for the `qmake` binary. The default is `${CONFIGURE_ENV}`." +msgstr "Переменные окружения, которые должны быть установлены для бинарного файла `qmake`. По умолчанию используется `${CONFIGURE_ENV}`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2478 +#, no-wrap +msgid "`QMAKE_SOURCE_PATH`" +msgstr "`QMAKE_SOURCE_PATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2479 +#, no-wrap +msgid "Path to qmake project files ([.filename]#.pro#). The default is `${WRKSRC}` if an out-of-source build is requested, empty otherwise." +msgstr "Путь к файлам проекта qmake ([.filename]#.pro#). По умолчанию используется `${WRKSRC}`, если запрошена сборка вне исходного кода, в противном случае оставляется пустым." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2482 +msgid "When using `USES= qmake`, these settings are deployed:" +msgstr "При использовании `USES= qmake` применяются следующие настройки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2489 +#, no-wrap +msgid "" +"CONFIGURE_ARGS+=\t--with-qt-includes=${QT_INCDIR} \\\n" +"\t\t\t--with-qt-libraries=${QT_LIBDIR} \\\n" +"\t\t\t--with-extra-libs=${LOCALBASE}/lib \\\n" +"\t\t\t--with-extra-includes=${LOCALBASE}/include\n" +msgstr "" +"CONFIGURE_ARGS+=\t--with-qt-includes=${QT_INCDIR} \\\n" +"\t\t\t--with-qt-libraries=${QT_LIBDIR} \\\n" +"\t\t\t--with-extra-libs=${LOCALBASE}/lib \\\n" +"\t\t\t--with-extra-includes=${LOCALBASE}/include\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2493 +#, no-wrap +msgid "" +"CONFIGURE_ENV+=\tQTDIR=\"${QT_PREFIX}\" QMAKE=\"${QMAKE}\" \\\n" +"\t\tMOC=\"${MOC}\" RCC=\"${RCC}\" UIC=\"${UIC}\" \\\n" +"\t\tQMAKESPEC=\"${QMAKESPEC}\"\n" +msgstr "" +"CONFIGURE_ENV+=\tQTDIR=\"${QT_PREFIX}\" QMAKE=\"${QMAKE}\" \\\n" +"\t\tMOC=\"${MOC}\" RCC=\"${RCC}\" UIC=\"${UIC}\" \\\n" +"\t\tQMAKESPEC=\"${QMAKESPEC}\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2497 +#, no-wrap +msgid "" +"PLIST_SUB+=\tQT_INCDIR=${QT_INCDIR_REL} \\\n" +"\t\tQT_LIBDIR=${QT_LIBDIR_REL} \\\n" +"\t\tQT_PLUGINDIR=${QT_PLUGINDIR_REL}\n" +msgstr "" +"PLIST_SUB+=\tQT_INCDIR=${QT_INCDIR_REL} \\\n" +"\t\tQT_LIBDIR=${QT_LIBDIR_REL} \\\n" +"\t\tQT_PLUGINDIR=${QT_PLUGINDIR_REL}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2501 +msgid "" +"Some configure scripts do not support the arguments above. To suppress " +"modification of `CONFIGURE_ENV` and `CONFIGURE_ARGS`, set `USES= " +"qmake:no_env`." +msgstr "" +"Некоторые скрипты configure не поддерживают указанные выше аргументы. Чтобы " +"отключить изменение `CONFIGURE_ENV` и `CONFIGURE_ARGS`, установите `USES= " +"qmake:no_env`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2503 +#, no-wrap +msgid "`USES= qmake` Example" +msgstr "Пример `USES= qmake`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2507 +msgid "This snippet demonstrates the use of qmake for a Qt 5 port:" +msgstr "Этот фрагмент демонстрирует использование qmake для порта Qt 5:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2512 +#, no-wrap +msgid "" +"USES=\tqmake:outsource qt:5\n" +"USE_QT=\tbuildtools_build\n" +msgstr "" +"USES=\tqmake:outsource qt:5\n" +"USE_QT=\tbuildtools_build\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2517 +msgid "" +"Qt applications are often written to be cross-platform and often X11/Unix is " +"not the platform they are developed on, which in turn leads to certain loose " +"ends, like:" +msgstr "" +"Приложения Qt часто разрабатываются как кроссплатформенные, и зачастую X11/" +"Unix — не та платформа, на которой они создаются. Это, в свою очередь, " +"приводит к определённым недоработкам, таким как:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2519 +msgid "" +"_Missing additional include paths._ Many applications come with system tray " +"icon support, but neglect to look for includes and/or libraries in the X11 " +"directories. To add directories to `qmake`'s include and library search " +"paths via the command line, use:" +msgstr "" +"_Отсутствуют дополнительные пути для заголовочных файлов._ Многие приложения " +"поддерживают значки в системном трее, но не учитывают пути для заголовочных " +"файлов и/или библиотек в каталогах X11. Чтобы добавить каталоги в пути " +"поиска заголовочных файлов и библиотек для `qmake` через командную строку, " +"используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2524 +#, no-wrap +msgid "" +"QMAKE_ARGS+=\tINCLUDEPATH+=${LOCALBASE}/include \\\n" +"\t\tLIBS+=-L${LOCALBASE}/lib\n" +msgstr "" +"QMAKE_ARGS+=\tINCLUDEPATH+=${LOCALBASE}/include \\\n" +"\t\tLIBS+=-L${LOCALBASE}/lib\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2527 +msgid "" +"_Bogus installation paths._ Sometimes data such as icons or .desktop files " +"are by default installed into directories which are not scanned by XDG-" +"compatible applications. package:editors/texmaker[] is an example for this - " +"look at [.filename]#patch-texmaker.pro# in the [.filename]#files# directory " +"of that port for a template on how to remedy this directly in the `qmake` " +"project file." +msgstr "" +"_Некорректные пути установки._ Иногда данные, такие как иконки или " +"файлы .desktop, по умолчанию устанавливаются в каталоги, которые не " +"сканируются приложениями, совместимыми с XDG. Например, package:editors/" +"texmaker[] — посмотрите на файл [.filename]#patch-texmaker.pro# в директории " +"[.filename]#files# этого порта, чтобы увидеть шаблон исправления этой " +"проблемы напрямую в проектом файле `qmake`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2529 +#, no-wrap +msgid "Using KDE" +msgstr "Использование KDE" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2532 +#, no-wrap +msgid "KDE Variable Definitions" +msgstr "Определения переменных KDE" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2539 +msgid "" +"If the application depends on KDE, set `USES+=kde:5` and `USE_KDE` to the " +"list of required components. `_build` and `_run` suffixes can be used to " +"force components dependency type (for example, `baseapps_run`). If no " +"suffix is set, a default dependency type will be used. To force both types, " +"add the component twice with both suffixes (for example, `ecm_build " +"ecm_run`). Available components are listed below (up-to-date components are " +"also listed in [.filename]#/usr/ports/Mk/Uses/kde.mk#):" +msgstr "" +"Если приложение зависит от KDE, установите `USES+=kde:5` и `USE_KDE` в " +"список необходимых компонентов. Суффиксы `_build` и `_run` можно " +"использовать для принудительного указания типа зависимости компонентов " +"(например, `baseapps_run`). Если суффикс не задан, будет использован тип " +"зависимости по умолчанию. Чтобы принудительно задать оба типа, добавьте " +"компонент дважды с обоими суффиксами (например, `ecm_build ecm_run`). " +"Доступные компоненты перечислены ниже (актуальный список компонентов также " +"приведён в [.filename]#/usr/ports/Mk/Uses/kde.mk#):" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2541 +#, no-wrap +msgid "Available KDE Components" +msgstr "Доступные компоненты KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2548 +#, no-wrap +msgid "`activities`" +msgstr "`activities`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2550 +#, no-wrap +msgid "KF5 runtime and library to organize work in separate activities" +msgstr "Среда выполнения и библиотека KF5 для организации работы в отдельных автивностях" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2551 +#, no-wrap +msgid "`activities-stats`" +msgstr "`activities-stats`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2553 +#, no-wrap +msgid "KF5 statistics for activities" +msgstr "KF5 статистика для активностей" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2554 +#, no-wrap +msgid "`activitymanagerd`" +msgstr "`activitymanagerd`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2556 +#, no-wrap +msgid "System service to manage user's activities, track the usage patterns" +msgstr "Системный сервис для управления активностью пользователей, отслеживания шаблонов использования" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2557 +#, no-wrap +msgid "`akonadi`" +msgstr "`akonadi`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2559 +#, no-wrap +msgid "Storage server for KDE-Pim" +msgstr "Хранилище данных для KDE-Pim" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2560 +#, no-wrap +msgid "`akonadicalendar`" +msgstr "`akonadicalendar`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2562 +#, no-wrap +msgid "Akonadi Calendar Integration" +msgstr "Интеграция Akonadi с Календарем" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2563 +#, no-wrap +msgid "`akonadiconsole`" +msgstr "`akonadiconsole`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2565 +#, no-wrap +msgid "Akonadi management and debugging console" +msgstr "Консоль управления и отладки Akonadi" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2566 +#, no-wrap +msgid "`akonadicontacts`" +msgstr "`akonadicontacts`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2568 +#, no-wrap +msgid "Libraries and daemons to implement Contact Management in Akonadi" +msgstr "Библиотеки и демоны для реализации управления контактами в Akonadi" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2569 +#, no-wrap +msgid "`akonadiimportwizard`" +msgstr "`akonadiimportwizard`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2571 +#, no-wrap +msgid "Import data from other mail clients to KMail" +msgstr "Импорт данных из других почтовых клиентов в KMail" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2572 +#, no-wrap +msgid "`akonadimime`" +msgstr "`akonadimime`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2574 +#, no-wrap +msgid "Libraries and daemons to implement basic email handling" +msgstr "Библиотеки и демоны для реализации базовой обработки электронной почты" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2575 +#, no-wrap +msgid "`akonadinotes`" +msgstr "`akonadinotes`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2577 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2940 +#, no-wrap +msgid "KDE library for accessing mail storages in MBox format" +msgstr "Библиотека KDE для доступа к хранилищам почты в формате MBox" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2578 +#, no-wrap +msgid "`akonadisearch`" +msgstr "`akonadisearch`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2580 +#, no-wrap +msgid "Libraries and daemons to implement searching in Akonadi" +msgstr "Библиотеки и демоны для реализации поиска в Akonadi" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2581 +#, no-wrap +msgid "`akregator`" +msgstr "`akregator`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2583 +#, no-wrap +msgid "A Feed Reader by KDE" +msgstr "Читатель лент от KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2584 +#, no-wrap +msgid "`alarmcalendar`" +msgstr "`alarmcalendar`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2586 +#, no-wrap +msgid "KDE API for KAlarm alarms" +msgstr "KDE API для будильников KAlarm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2587 +#, no-wrap +msgid "`apidox`" +msgstr "`apidox`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2589 +#, no-wrap +msgid "KF5 API Documentation Tools" +msgstr "Документация API KF5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2590 +#, no-wrap +msgid "`archive`" +msgstr "`archive`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2592 +#, no-wrap +msgid "KF5 library that provides classes for handling archive formats" +msgstr "Библиотека KF5, предоставляющая классы для работы с форматами архивов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2593 +#, no-wrap +msgid "`attica`" +msgstr "`attica`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2595 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2598 +#, no-wrap +msgid "Open Collaboration Services API library KDE5 version" +msgstr "Библиотека API Open Collaboration Services, версия для KDE5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2596 +#, no-wrap +msgid "`attica5`" +msgstr "`attica5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2599 +#, no-wrap +msgid "`auth`" +msgstr "`auth`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2601 +#, no-wrap +msgid "KF5 abstraction to system policy and authentication features" +msgstr "Абстракция KF5 для системной политики и функций аутентификации" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2602 +#, no-wrap +msgid "`baloo`" +msgstr "`baloo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2604 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2610 +#, no-wrap +msgid "KF5 Framework for searching and managing user metadata" +msgstr "KF5 Фреймворк для поиска и управления пользовательскими метаданными" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2605 +#, no-wrap +msgid "`baloo-widgets`" +msgstr "`baloo-widgets`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2607 +#, no-wrap +msgid "BalooWidgets library" +msgstr "Библиотека BalooWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2608 +#, no-wrap +msgid "`baloo5`" +msgstr "`baloo5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2611 +#, no-wrap +msgid "`blog`" +msgstr "`blog`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2613 +#, no-wrap +msgid "KDE API for weblogging access" +msgstr "KDE API для доступа к веб-логам" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2614 +#, no-wrap +msgid "`bookmarks`" +msgstr "`bookmarks`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2616 +#, no-wrap +msgid "KF5 library for bookmarks and the XBEL format" +msgstr "Библиотека KF5 для закладок и формата XBEL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2617 +#, no-wrap +msgid "`breeze`" +msgstr "`breeze`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2619 +#, no-wrap +msgid "Plasma5 artwork, styles and assets for the Breeze visual style" +msgstr "Plasma5 artwork, стили и ресурсы для визуального стиля Breeze" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2620 +#, no-wrap +msgid "`breeze-gtk`" +msgstr "`breeze-gtk`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2622 +#, no-wrap +msgid "Plasma5 Breeze visual style for Gtk" +msgstr "Plasma5 Breeze визуальный стиль для Gtk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2623 +#, no-wrap +msgid "`breeze-icons`" +msgstr "`breeze-icons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2625 +#, no-wrap +msgid "Breeze icon theme for KDE" +msgstr "Тема значков Breeze для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2626 +#, no-wrap +msgid "`calendarcore`" +msgstr "`calendarcore`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2628 +#, no-wrap +msgid "KDE calendar access library" +msgstr "Библиотека доступа к календарю KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2629 +#, no-wrap +msgid "`calendarsupport`" +msgstr "`calendarsupport`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2631 +#, no-wrap +msgid "Calendar support libraries for KDEPim" +msgstr "Библиотеки поддержки календарей для KDEPim" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2632 +#, no-wrap +msgid "`calendarutils`" +msgstr "`calendarutils`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2634 +#, no-wrap +msgid "KDE utility and user interface functions for accessing calendar" +msgstr "Утилита KDE и пользовательские функции интерфейса для доступа к календарю" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2635 +#, no-wrap +msgid "`codecs`" +msgstr "`codecs`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2637 +#, no-wrap +msgid "KF5 library for string manipulation" +msgstr "Библиотека KF5 для работы со строками" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2638 +#, no-wrap +msgid "`completion`" +msgstr "`completion`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2640 +#, no-wrap +msgid "KF5 text completion helpers and widgets" +msgstr "KF5 вспомогательные средства и виджеты автодополнения текста" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2641 +#, no-wrap +msgid "`config`" +msgstr "`config`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2643 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2646 +#, no-wrap +msgid "KF5 widgets for configuration dialogs" +msgstr "Виджеты KF5 для диалогов настройки" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2644 +#, no-wrap +msgid "`configwidgets`" +msgstr "`configwidgets`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2647 +#, no-wrap +msgid "`contacts`" +msgstr "`contacts`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2649 +#, no-wrap +msgid "KDE api to manage contact information" +msgstr "KDE API для управления контактной информацией" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2650 +#, no-wrap +msgid "`coreaddons`" +msgstr "`coreaddons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2652 +#, no-wrap +msgid "KF5 addons to QtCore" +msgstr "KF5 аддоны для QtCore" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2653 +#, no-wrap +msgid "`crash`" +msgstr "`crash`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2655 +#, no-wrap +msgid "KF5 library to handle crash analysis and bug report from apps" +msgstr "Библиотека KF5 для обработки анализа сбоев и отчётов об ошибках в приложениях" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2656 +#, no-wrap +msgid "`dbusaddons`" +msgstr "`dbusaddons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2658 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3066 +#, no-wrap +msgid "KF5 addons to QtDBus" +msgstr "KF5 дополнения к QtDBus" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2659 +#, no-wrap +msgid "`decoration`" +msgstr "`decoration`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2661 +#, no-wrap +msgid "Plasma5 library to create window decorations" +msgstr "Библиотека Plasma5 для создания оформления окон" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2662 +#, no-wrap +msgid "`designerplugin`" +msgstr "`designerplugin`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2664 +#, no-wrap +msgid "KF5 integration of Frameworks widgets in Qt Designer/Creator" +msgstr "Интеграция KF5 виджетов Frameworks в Qt Designer/Creator" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2665 +#, no-wrap +msgid "`discover`" +msgstr "`discover`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2667 +#, no-wrap +msgid "Plasma5 package management tools" +msgstr "Инструменты управления пакетами Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2668 +#, no-wrap +msgid "`dnssd`" +msgstr "`dnssd`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2670 +#, no-wrap +msgid "KF5 abstraction to system DNSSD features" +msgstr "Абстракция KF5 для системных функций DNSSD" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2671 +#, no-wrap +msgid "`doctools`" +msgstr "`doctools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2673 +#, no-wrap +msgid "KF5 documentation generation from docbook" +msgstr "Генерация документации KF5 из docbook" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2674 +#, no-wrap +msgid "`drkonqi`" +msgstr "`drkonqi`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2676 +#, no-wrap +msgid "Plasma5 crash handler" +msgstr "Обработчик сбоев Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2677 +#, no-wrap +msgid "`ecm`" +msgstr "`ecm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2679 +#, no-wrap +msgid "Extra modules and scripts for CMake" +msgstr "Дополнительные модули и скрипты для CMake" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2680 +#, no-wrap +msgid "`emoticons`" +msgstr "`emoticons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2682 +#, no-wrap +msgid "KF5 library to convert emoticons" +msgstr "Библиотека KF5 для преобразования эмотиконов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2683 +#, no-wrap +msgid "`eventviews`" +msgstr "`eventviews`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2685 +#, no-wrap +msgid "Event view libriares for KDEPim" +msgstr "Библиотеки просмотра событий для KDEPim" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2686 +#, no-wrap +msgid "`filemetadata`" +msgstr "`filemetadata`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2688 +#, no-wrap +msgid "KF5 library for extracting file metadata" +msgstr "Библиотека KF5 для извлечения метаданных файлов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2689 +#, no-wrap +msgid "`frameworkintegration`" +msgstr "`frameworkintegration`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2691 +#, no-wrap +msgid "KF5 workspace and cross-framework integration plugins" +msgstr "Плагины рабочего пространства KF5 и интеграции фреймворков" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2692 +#, no-wrap +msgid "`gapi`" +msgstr "`gapi`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2694 +#, no-wrap +msgid "KDE based library to access google services" +msgstr "Библиотека на основе KDE для доступа к сервисам Google" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2695 +#, no-wrap +msgid "`globalaccel`" +msgstr "`globalaccel`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2697 +#, no-wrap +msgid "KF5 library to add support for global workspace shortcuts" +msgstr "Библиотека KF5 для добавления поддержки глобальных сочетаний клавиш рабочего пространства" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2698 +#, no-wrap +msgid "`grantlee-editor`" +msgstr "`grantlee-editor`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2700 +#, no-wrap +msgid "Editor for Grantlee themes" +msgstr "Редактор тем Grantlee" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2701 +#, no-wrap +msgid "`grantleetheme`" +msgstr "`grantleetheme`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2703 +#, no-wrap +msgid "KDE PIM grantleetheme" +msgstr "KDE PIM grantleetheme" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2704 +#, no-wrap +msgid "`gravatar`" +msgstr "`gravatar`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2706 +#, no-wrap +msgid "Library for gravatar support" +msgstr "Библиотека для поддержки gravatar" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2707 +#, no-wrap +msgid "`guiaddons`" +msgstr "`guiaddons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2709 +#, no-wrap +msgid "KF5 addons to QtGui" +msgstr "KF5 аддоны для QtGui" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2710 +#, no-wrap +msgid "`holidays`" +msgstr "`holidays`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2712 +#, no-wrap +msgid "KDE library for calendar holidays" +msgstr "Библиотека KDE для календарных праздников" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2713 +#, no-wrap +msgid "`hotkeys`" +msgstr "`hotkeys`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2715 +#, no-wrap +msgid "Plasma5 library for hotkeys" +msgstr "Библиотека Plasma5 для горячих клавиш" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2716 +#, no-wrap +msgid "`i18n`" +msgstr "`i18n`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2718 +#, no-wrap +msgid "KF5 advanced internationalization framework" +msgstr "KF5 — расширенная инфраструктура интернационализации" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2719 +#, no-wrap +msgid "`iconthemes`" +msgstr "`iconthemes`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2721 +#, no-wrap +msgid "KF5 library for handling icons in applications" +msgstr "Библиотека KF5 для работы с иконками в приложениях" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2722 +#, no-wrap +msgid "`identitymanagement`" +msgstr "`identitymanagement`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2724 +#, no-wrap +msgid "KDE pim identities" +msgstr "KDE pim идентификации" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2725 +#, no-wrap +msgid "`idletime`" +msgstr "`idletime`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2727 +#, no-wrap +msgid "KF5 library for monitoring user activity" +msgstr "Библиотека KF5 для мониторинга активности пользователей" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2728 +#, no-wrap +msgid "`imap`" +msgstr "`imap`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2730 +#, no-wrap +msgid "KDE API for IMAP support" +msgstr "KDE API для поддержки IMAP" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2731 +#, no-wrap +msgid "`incidenceeditor`" +msgstr "`incidenceeditor`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2733 +#, no-wrap +msgid "Incidence editor libriares for KDEPim" +msgstr "Инцидентные редакторские библиотеки для KDEPim" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2734 +#, no-wrap +msgid "`infocenter`" +msgstr "`infocenter`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2736 +#, no-wrap +msgid "Plasma5 utility providing system information" +msgstr "Утилита Plasma5, предоставляющая системную информацию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2737 +#, no-wrap +msgid "`init`" +msgstr "`init`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2739 +#, no-wrap +msgid "KF5 process launcher to speed up launching KDE applications" +msgstr "Запускатель процессов KF5 для ускорения запуска приложений KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2740 +#, no-wrap +msgid "`itemmodels`" +msgstr "`itemmodels`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2742 +#, no-wrap +msgid "KF5 models for Qt Model/View system" +msgstr "Модели KF5 для системы Qt Model/View" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2743 +#, no-wrap +msgid "`itemviews`" +msgstr "`itemviews`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2745 +#, no-wrap +msgid "KF5 widget addons for Qt Model/View" +msgstr "KF5 виджеты-дополнения для Qt Model/View" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2746 +#, no-wrap +msgid "`jobwidgets`" +msgstr "`jobwidgets`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2748 +#, no-wrap +msgid "KF5 widgets for tracking KJob instance" +msgstr "Виджеты KF5 для отслеживания экземпляра KJob" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2749 +#, no-wrap +msgid "`js`" +msgstr "`js`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2751 +#, no-wrap +msgid "KF5 library providing an ECMAScript interpreter" +msgstr "Библиотека KF5, предоставляющая интерпретатор ECMAScript" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2752 +#, no-wrap +msgid "`jsembed`" +msgstr "`jsembed`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2754 +#, no-wrap +msgid "KF5 library for binding JavaScript objects to QObjects" +msgstr "Библиотека KF5 для привязки объектов JavaScript к QObjects" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2755 +#, no-wrap +msgid "`kaddressbook`" +msgstr "`kaddressbook`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2757 +#, no-wrap +msgid "KDE contact manager" +msgstr "Менеджер контактов KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2758 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2761 +#, no-wrap +msgid "`kalarm`" +msgstr "`kalarm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2760 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2763 +#, no-wrap +msgid "Personal alarm scheduler" +msgstr "Планировщик персональных сигналов тревоги" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2764 +#, no-wrap +msgid "`kate`" +msgstr "`kate`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2766 +#, no-wrap +msgid "Basic editor framework for the KDE system" +msgstr "Базовая структура редактора для системы KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2767 +#, no-wrap +msgid "`kcmutils`" +msgstr "`kcmutils`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2769 +#, no-wrap +msgid "KF5 utilities for working with KCModules" +msgstr "KF5 утилиты для работы с KCModules" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2770 +#, no-wrap +msgid "`kde-cli-tools`" +msgstr "`kde-cli-tools`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2772 +#, no-wrap +msgid "Plasma5 non-interactive system tools" +msgstr "Неинтерактивные системные инструменты Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2773 +#, no-wrap +msgid "`kde-gtk-config`" +msgstr "`kde-gtk-config`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2775 +#, no-wrap +msgid "Plasma5 GTK2 and GTK3 configurator" +msgstr "Plasma5 конфигуратор GTK2 и GTK3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2776 +#, no-wrap +msgid "`kdeclarative`" +msgstr "`kdeclarative`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2778 +#, no-wrap +msgid "KF5 library providing integration of QML and KDE Frameworks" +msgstr "Библиотека KF5, обеспечивающая интеграцию QML и KDE Frameworks" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2779 +#, no-wrap +msgid "`kded`" +msgstr "`kded`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2781 +#, no-wrap +msgid "KF5 extensible daemon for providing system level services" +msgstr "KF5 расширяемый демон для предоставления системных сервисов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2782 +#, no-wrap +msgid "`kdelibs4support`" +msgstr "`kdelibs4support`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2784 +#, no-wrap +msgid "KF5 porting aid from KDELibs4" +msgstr "Помощник в портировании KF5 из KDELibs4" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2785 +#, no-wrap +msgid "`kdepim-addons`" +msgstr "`kdepim-addons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2787 +#, no-wrap +msgid "KDE PIM addons" +msgstr "Дополнения KDE PIM" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2788 +#, no-wrap +msgid "`kdepim-apps-libs`" +msgstr "`kdepim-apps-libs`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2790 +#, no-wrap +msgid "KDE PIM mail related libraries" +msgstr "Библиотеки KDE PIM, связанные с почтой" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2791 +#, no-wrap +msgid "`kdepim-runtime5`" +msgstr "`kdepim-runtime5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2793 +#, no-wrap +msgid "KDE PIM tools and services" +msgstr "Инструменты и службы KDE PIM" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2794 +#, no-wrap +msgid "`kdeplasma-addons`" +msgstr "`kdeplasma-addons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2796 +#, no-wrap +msgid "Plasma5 addons to improve the Plasma experience" +msgstr "Дополнения Plasma5 для улучшения работы с Plasma" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2797 +#, no-wrap +msgid "`kdesu`" +msgstr "`kdesu`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2799 +#, no-wrap +msgid "KF5 integration with su for elevated privileges" +msgstr "Интеграция KF5 с su для повышенных привилегий" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2800 +#, no-wrap +msgid "`kdewebkit`" +msgstr "`kdewebkit`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2802 +#, no-wrap +msgid "KF5 library providing integration of QtWebKit" +msgstr "Библиотека KF5, обеспечивающая интеграцию QtWebKit" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2803 +#, no-wrap +msgid "`kgamma5`" +msgstr "`kgamma5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2805 +#, no-wrap +msgid "Plasma5 monitor's gamma settings" +msgstr "Настройки гаммы монитора Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2806 +#, no-wrap +msgid "`khtml`" +msgstr "`khtml`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2808 +#, no-wrap +msgid "KF5 KTHML rendering engine" +msgstr "Механизм рендеринга KF5 KTHML" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2809 +#, no-wrap +msgid "`kimageformats`" +msgstr "`kimageformats`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2811 +#, no-wrap +msgid "KF5 library providing support for additional image formats" +msgstr "Библиотека KF5, обеспечивающая поддержку дополнительных форматов изображений" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2812 +#, no-wrap +msgid "`kio`" +msgstr "`kio`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2814 +#, no-wrap +msgid "KF5 resource and network access abstraction" +msgstr "Абстракция ресурсов и сетевого доступа KF5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2815 +#, no-wrap +msgid "`kirigami2`" +msgstr "`kirigami2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2817 +#, no-wrap +msgid "QtQuick based components set" +msgstr "Набор компонентов на основе QtQuick" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2818 +#, no-wrap +msgid "`kitinerary`" +msgstr "`kitinerary`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2820 +#, no-wrap +msgid "Data Model and Extraction System for Travel Reservation information" +msgstr "Модель данных и система извлечения информации о бронировании путешествий" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2821 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2824 +#, no-wrap +msgid "`kmail`" +msgstr "`kmail`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2823 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2826 +#, no-wrap +msgid "KDE mail client" +msgstr "Клиент электронной почты KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2827 +#, no-wrap +msgid "`kmail-account-wizard`" +msgstr "`kmail-account-wizard`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2829 +#, no-wrap +msgid "KDE mail account wizard" +msgstr "Мастер настройки почтового аккаунта KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2830 +#, no-wrap +msgid "`kmenuedit`" +msgstr "`kmenuedit`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2832 +#, no-wrap +msgid "Plasma5 menu editor" +msgstr "Редактор меню Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2833 +#, no-wrap +msgid "`knotes`" +msgstr "`knotes`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2835 +#, no-wrap +msgid "Popup notes" +msgstr "Всплывающие примечания" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2836 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2839 +#, no-wrap +msgid "`kontact`" +msgstr "`kontact`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2838 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2841 +#, no-wrap +msgid "KDE Personal Information Manager" +msgstr "KDE Персональный Органайзер" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2842 +#, no-wrap +msgid "`kontactinterface`" +msgstr "`kontactinterface`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2844 +#, no-wrap +msgid "KDE glue for embedding KParts into Kontact" +msgstr "KDE glue для встраивания KParts в Kontact" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2845 +#, no-wrap +msgid "`korganizer`" +msgstr "`korganizer`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2847 +#, no-wrap +msgid "Calendar and scheduling Program" +msgstr "Программа для календаря и планирования" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2848 +#, no-wrap +msgid "`kpimdav`" +msgstr "`kpimdav`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2850 +#, no-wrap +msgid "A DAV protocol implementation with KJobs" +msgstr "Реализация протокола DAV с KJobs" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2851 +#, no-wrap +msgid "`kpkpass`" +msgstr "`kpkpass`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2853 +#, no-wrap +msgid "Library to deal with Apple Wallet pass files" +msgstr "Библиотека для работы с файлами паролей Apple Wallet" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2854 +#, no-wrap +msgid "`kross`" +msgstr "`kross`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2856 +#, no-wrap +msgid "KF5 multi-language application scripting" +msgstr "KF5 мультиязыковые прикладные скрипты" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2857 +#, no-wrap +msgid "`kscreen`" +msgstr "`kscreen`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2859 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2919 +#, no-wrap +msgid "Plasma5 screen management library" +msgstr "Библиотека управления экраном Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2860 +#, no-wrap +msgid "`kscreenlocker`" +msgstr "`kscreenlocker`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2862 +#, no-wrap +msgid "Plasma5 secure lock screen architecture" +msgstr "Архитектура безопасной блокировки экрана Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2863 +#, no-wrap +msgid "`ksmtp`" +msgstr "`ksmtp`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2865 +#, no-wrap +msgid "Job-based library to send email through an SMTP server" +msgstr "Библиотека на основе задач для отправки электронной почты через SMTP-сервер" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2866 +#, no-wrap +msgid "`ksshaskpass`" +msgstr "`ksshaskpass`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2868 +#, no-wrap +msgid "Plasma5 ssh-add frontend" +msgstr "Plasma5 интерфейс для ssh-add" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2869 +#, no-wrap +msgid "`ksysguard`" +msgstr "`ksysguard`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2871 +#, no-wrap +msgid "Plasma5 utility to track and control the running processes" +msgstr "Утилита Plasma5 для отслеживания и управления запущенными процессами" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2872 +#, no-wrap +msgid "`kwallet-pam`" +msgstr "`kwallet-pam`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2874 +#, no-wrap +msgid "Plasma5 KWallet PAM Integration" +msgstr "Интеграция Plasma5 KWallet с PAM" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2875 +#, no-wrap +msgid "`kwayland-integration`" +msgstr "`kwayland-integration`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2877 +#, no-wrap +msgid "Integration plugins for a Wayland-based desktop" +msgstr "Интеграционные плагины для рабочего стола на основе Wayland" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2878 +#, no-wrap +msgid "`kwin`" +msgstr "`kwin`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2880 +#, no-wrap +msgid "Plasma5 window manager" +msgstr "Менеджер окон Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2881 +#, no-wrap +msgid "`kwrited`" +msgstr "`kwrited`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2883 +#, no-wrap +msgid "Plasma5 daemon listening for wall and write messages" +msgstr "Демон Plasma5, ожидающий сообщения wall и write" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2884 +#, no-wrap +msgid "`ldap`" +msgstr "`ldap`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2886 +#, no-wrap +msgid "LDAP access API for KDE" +msgstr "API доступа к LDAP для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2887 +#, no-wrap +msgid "`libkcddb`" +msgstr "`libkcddb`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2889 +#, no-wrap +msgid "KDE CDDB library" +msgstr "Библиотека KDE CDDB" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2890 +#, no-wrap +msgid "`libkcompactdisc`" +msgstr "`libkcompactdisc`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2892 +#, no-wrap +msgid "KDE library for interfacing with audio CDs" +msgstr "Библиотека KDE для взаимодействия с аудио-CD" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2893 +#, no-wrap +msgid "`libkdcraw`" +msgstr "`libkdcraw`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2895 +#, no-wrap +msgid "LibRaw interface for KDE" +msgstr "Интерфейс LibRaw для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2896 +#, no-wrap +msgid "`libkdegames`" +msgstr "`libkdegames`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2898 +#, no-wrap +msgid "Libraries used by KDE games" +msgstr "Библиотеки, используемые играми KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2899 +#, no-wrap +msgid "`libkdepim`" +msgstr "`libkdepim`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2901 +#, no-wrap +msgid "KDE PIM Libraries" +msgstr "Библиотеки KDE PIM" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2902 +#, no-wrap +msgid "`libkeduvocdocument`" +msgstr "`libkeduvocdocument`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2904 +#, no-wrap +msgid "Library for reading and writing vocabulary files" +msgstr "Библиотека для чтения и записи файлов словарей" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2905 +#, no-wrap +msgid "`libkexiv2`" +msgstr "`libkexiv2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2907 +#, no-wrap +msgid "Exiv2 library interface for KDE" +msgstr "Интерфейс библиотеки Exiv2 для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2908 +#, no-wrap +msgid "`libkipi`" +msgstr "`libkipi`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2910 +#, no-wrap +msgid "KDE Image Plugin Interface" +msgstr "Интерфейс плагинов изображений KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2911 +#, no-wrap +msgid "`libkleo`" +msgstr "`libkleo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2913 +#, no-wrap +msgid "Certificate manager for KDE" +msgstr "Менеджер сертификатов для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2914 +#, no-wrap +msgid "`libksane`" +msgstr "`libksane`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2916 +#, no-wrap +msgid "SANE library interface for KDE" +msgstr "Интерфейс библиотеки SANE для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2917 +#, no-wrap +msgid "`libkscreen`" +msgstr "`libkscreen`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2920 +#, no-wrap +msgid "`libksieve`" +msgstr "`libksieve`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2922 +#, no-wrap +msgid "Sieve libriares for KDEPim" +msgstr "Библиотеки Sieve для KDEPim" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2923 +#, no-wrap +msgid "`libksysguard`" +msgstr "`libksysguard`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2925 +#, no-wrap +msgid "Plasma5 library to track and control running processes" +msgstr "Библиотека Plasma5 для отслеживания и управления запущенными процессами" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2926 +#, no-wrap +msgid "`mailcommon`" +msgstr "`mailcommon`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2928 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2988 +#, no-wrap +msgid "Common libriares for KDEPim" +msgstr "Общие библиотеки для KDEPim" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2929 +#, no-wrap +msgid "`mailimporter`" +msgstr "`mailimporter`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2931 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2943 +#, no-wrap +msgid "Import mbox files to KMail" +msgstr "Импорт файлов mbox в KMail" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2932 +#, no-wrap +msgid "`mailtransport`" +msgstr "`mailtransport`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2934 +#, no-wrap +msgid "KDE library to managing mail transport" +msgstr "Библиотека KDE для управления транспортом почты" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2935 +#, no-wrap +msgid "`marble`" +msgstr "`marble`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2937 +#, no-wrap +msgid "Virtual globe and world atlas for KDE" +msgstr "Виртуальный глобус и мировой атлас для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2938 +#, no-wrap +msgid "`mbox`" +msgstr "`mbox`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2941 +#, no-wrap +msgid "`mbox-importer`" +msgstr "`mbox-importer`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2944 +#, no-wrap +msgid "`mediaplayer`" +msgstr "`mediaplayer`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2946 +#, no-wrap +msgid "KF5 plugin interface for media player features" +msgstr "Интерфейс плагина KF5 для функций медиаплеера" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2947 +#, no-wrap +msgid "`messagelib`" +msgstr "`messagelib`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2949 +#, no-wrap +msgid "Library for handling messages" +msgstr "Библиотека для обработки сообщений" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2950 +#, no-wrap +msgid "`milou`" +msgstr "`milou`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2952 +#, no-wrap +msgid "Plasma5 Plasmoid for search" +msgstr "Plasma5 Plasmoid для поиска" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2953 +#, no-wrap +msgid "`mime`" +msgstr "`mime`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2955 +#, no-wrap +msgid "Library for handling MIME data" +msgstr "Библиотека для обработки данных MIME" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2956 +#, no-wrap +msgid "`newstuff`" +msgstr "`newstuff`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2958 +#, no-wrap +msgid "KF5 library for downloading application assets from the network" +msgstr "Библиотека KF5 для загрузки ресурсов приложений из сети" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2959 +#, no-wrap +msgid "`notifications`" +msgstr "`notifications`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2961 +#, no-wrap +msgid "KF5 abstraction for system notifications" +msgstr "Абстракция KF5 для системных уведомлений" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2962 +#, no-wrap +msgid "`notifyconfig`" +msgstr "`notifyconfig`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2964 +#, no-wrap +msgid "KF5 configuration system for KNotify" +msgstr "Система конфигурации KF5 для KNotify" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2965 +#, no-wrap +msgid "`okular`" +msgstr "`okular`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2967 +#, no-wrap +msgid "KDE universal document viewer" +msgstr "Универсальная программа для просмотра документов KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2968 +#, no-wrap +msgid "`oxygen`" +msgstr "`oxygen`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2970 +#, no-wrap +msgid "Plasma5 Oxygen style" +msgstr "Стиль Plasma5 Oxygen" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2971 +#, no-wrap +msgid "`oxygen-icons5`" +msgstr "`oxygen-icons5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2973 +#, no-wrap +msgid "The Oxygen icon theme for KDE" +msgstr "Тема иконок Oxygen для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2974 +#, no-wrap +msgid "`package`" +msgstr "`package`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2976 +#, no-wrap +msgid "KF5 library to load and install packages" +msgstr "Библиотека KF5 для загрузки и установки пакетов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2977 +#, no-wrap +msgid "`parts`" +msgstr "`parts`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2979 +#, no-wrap +msgid "KF5 document centric plugin system" +msgstr "KF5 система плагинов для работы с документами" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2980 +#, no-wrap +msgid "`people`" +msgstr "`people`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2982 +#, no-wrap +msgid "KF5 library providing access to contacts" +msgstr "Библиотека KF5, предоставляющая доступ к контактам" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2983 +#, no-wrap +msgid "`pim-data-exporter`" +msgstr "`pim-data-exporter`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2985 +#, no-wrap +msgid "Import and export KDE PIM settings" +msgstr "Импорт и экспорт настроек KDE PIM" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2986 +#, no-wrap +msgid "`pimcommon`" +msgstr "`pimcommon`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2989 +#, no-wrap +msgid "`pimtextedit`" +msgstr "`pimtextedit`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2991 +#, no-wrap +msgid "KDE library for PIM-specific text editing utilities" +msgstr "Библиотека KDE для утилит редактирования текста, специфичных для PIM" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2992 +#, no-wrap +msgid "`plasma-browser-integration`" +msgstr "`plasma-browser-integration`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2994 +#, no-wrap +msgid "Plasma5 components to integrate browsers into the desktop" +msgstr "Компоненты Plasma5 для интеграции браузеров в рабочий стол" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2995 +#, no-wrap +msgid "`plasma-desktop`" +msgstr "`plasma-desktop`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2997 +#, no-wrap +msgid "Plasma5 plasma desktop" +msgstr "Plasma5 рабочий стол Plasma" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2998 +#, no-wrap +msgid "`plasma-framework`" +msgstr "`plasma-framework`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3000 +#, no-wrap +msgid "KF5 plugin based UI runtime used to write user interfaces" +msgstr "KF5 - среда выполнения пользовательского интерфейса на основе плагинов, используемая для создания пользовательских интерфейсов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3001 +#, no-wrap +msgid "`plasma-integration`" +msgstr "`plasma-integration`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3003 +#, no-wrap +msgid "Qt Platform Theme integration plugins for the Plasma workspaces" +msgstr "Плагины интеграции Qt Platform Theme для рабочего окружения Plasma" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3004 +#, no-wrap +msgid "`plasma-pa`" +msgstr "`plasma-pa`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3006 +#, no-wrap +msgid "Plasma5 Plasma pulse audio mixer" +msgstr "Plasma5 Микшер звука Plasma Pulse" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3007 +#, no-wrap +msgid "`plasma-sdk`" +msgstr "`plasma-sdk`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3009 +#, no-wrap +msgid "Plasma5 applications useful for Plasma development" +msgstr "Приложения Plasma5, полезные для разработки Plasma" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3010 +#, no-wrap +msgid "`plasma-workspace`" +msgstr "`plasma-workspace`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3012 +#, no-wrap +msgid "Plasma5 Plasma workspace" +msgstr "Plasma5 Рабочее пространство Plasma" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3013 +#, no-wrap +msgid "`plasma-workspace-wallpapers`" +msgstr "`plasma-workspace-wallpapers`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3015 +#, no-wrap +msgid "Plasma5 wallpapers" +msgstr "Обои Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3016 +#, no-wrap +msgid "`plotting`" +msgstr "`plotting`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3018 +#, no-wrap +msgid "KF5 lightweight plotting framework" +msgstr "KF5 облегченный фреймворк для построения графиков" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3019 +#, no-wrap +msgid "`polkit-kde-agent-1`" +msgstr "`polkit-kde-agent-1`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3021 +#, no-wrap +msgid "Plasma5 daemon providing a polkit authentication UI" +msgstr "Демон Plasma5, предоставляющий интерфейс аутентификации polkit" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3022 +#, no-wrap +msgid "`powerdevil`" +msgstr "`powerdevil`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3024 +#, no-wrap +msgid "Plasma5 tool to manage the power consumption settings" +msgstr "Инструмент Plasma5 для управления настройками энергопотребления" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3025 +#, no-wrap +msgid "`prison`" +msgstr "`prison`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3027 +#, no-wrap +msgid "API to produce barcodes" +msgstr "Интерфейс API для создания штрихкодов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3028 +#, no-wrap +msgid "`pty`" +msgstr "`pty`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3030 +#, no-wrap +msgid "KF5 pty abstraction" +msgstr "Абстракция pty KF5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3031 +#, no-wrap +msgid "`purpose`" +msgstr "`purpose`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3033 +#, no-wrap +msgid "Offers available actions for a specific purpose" +msgstr "Предлагает доступные действия для конкретной цели" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3034 +#, no-wrap +msgid "`qqc2-desktop-style`" +msgstr "`qqc2-desktop-style`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3036 +#, no-wrap +msgid "Qt QuickControl2 style for KDE" +msgstr "Стиль Qt QuickControl2 для KDE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3037 +#, no-wrap +msgid "`runner`" +msgstr "`runner`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3039 +#, no-wrap +msgid "KF5 parallelized query system" +msgstr "KF5 параллелизованная система запросов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3040 +#, no-wrap +msgid "`service`" +msgstr "`service`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3042 +#, no-wrap +msgid "KF5 advanced plugin and service introspection" +msgstr "KF5 расширенные плагины и интроспекция сервисов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3043 +#, no-wrap +msgid "`solid`" +msgstr "`solid`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3045 +#, no-wrap +msgid "KF5 hardware integration and detection" +msgstr "Интеграция и обнаружение оборудования KF5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3046 +#, no-wrap +msgid "`sonnet`" +msgstr "`sonnet`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3048 +#, no-wrap +msgid "KF5 plugin-based spell checking library" +msgstr "KF5 библиотека проверки орфографии на основе плагинов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3049 +#, no-wrap +msgid "`syndication`" +msgstr "`syndication`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3051 +#, no-wrap +msgid "KDE RSS feed handling library" +msgstr "Библиотека KDE для обработки RSS-лент" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3052 +#, no-wrap +msgid "`syntaxhighlighting`" +msgstr "`syntaxhighlighting`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3054 +#, no-wrap +msgid "KF5 syntax highlighting engine for structured text and code" +msgstr "Движок подсветки синтаксиса KF5 для структурированного текста и кода" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3055 +#, no-wrap +msgid "`systemsettings`" +msgstr "`systemsettings`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3057 +#, no-wrap +msgid "Plasma5 system settings" +msgstr "Настройки системы Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3058 +#, no-wrap +msgid "`texteditor`" +msgstr "`texteditor`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3060 +#, no-wrap +msgid "KF5 advanced embeddable text editor" +msgstr "KF5 продвинутый встраиваемый текстовый редактор" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3061 +#, no-wrap +msgid "`textwidgets`" +msgstr "`textwidgets`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3063 +#, no-wrap +msgid "KF5 advanced text editing widgets" +msgstr "KF5 расширенные виджеты для редактирования текста" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3064 +#, no-wrap +msgid "`threadweaver`" +msgstr "`threadweaver`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3067 +#, no-wrap +msgid "`tnef`" +msgstr "`tnef`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3069 +#, no-wrap +msgid "KDE API for the handling of TNEF data" +msgstr "KDE API для обработки данных TNEF" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3070 +#, no-wrap +msgid "`unitconversion`" +msgstr "`unitconversion`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3072 +#, no-wrap +msgid "KF5 library for unit conversion" +msgstr "Библиотека KF5 для преобразования единиц измерения" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3073 +#, no-wrap +msgid "`user-manager`" +msgstr "`user-manager`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3075 +#, no-wrap +msgid "Plasma5 user manager" +msgstr "Пользовательский менеджер Plasma5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3076 +#, no-wrap +msgid "`wallet`" +msgstr "`wallet`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3078 +#, no-wrap +msgid "KF5 secure and unified container for user passwords" +msgstr "KF5 безопасный и унифицированный контейнер для паролей пользователей" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3081 +#, no-wrap +msgid "KF5 Client and Server library wrapper for the Wayland libraries" +msgstr "Обёртка клиентской и серверной библиотек KF5 для библиотек Wayland" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3082 +#, no-wrap +msgid "`widgetsaddons`" +msgstr "`widgetsaddons`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3084 +#, no-wrap +msgid "KF5 addons to QtWidgets" +msgstr "KF5 аддоны для QtWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3085 +#, no-wrap +msgid "`windowsystem`" +msgstr "`windowsystem`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3087 +#, no-wrap +msgid "KF5 library for access to the windowing system" +msgstr "Библиотека KF5 для доступа к оконной системе" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3088 +#, no-wrap +msgid "`xmlgui`" +msgstr "`xmlgui`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3090 +#, no-wrap +msgid "KF5 user configurable main windows" +msgstr "KF5 настраиваемые пользователем главные окна" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3091 +#, no-wrap +msgid "`xmlrpcclient`" +msgstr "`xmlrpcclient`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3092 +#, no-wrap +msgid "KF5 interaction with XMLRPC services" +msgstr "Взаимодействие KF5 с XMLRPC-сервисами" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3095 +#, no-wrap +msgid "`USE_KDE` Example" +msgstr "Пример `USE_KDE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3105 +msgid "" +"This is a simple example for a KDE port. `USES= cmake` instructs the port " +"to utilize CMake, a configuration tool widely used by KDE projects (see " +"crossref:special[using-cmake, Using `cmake`] for detailed usage). `USE_KDE` " +"brings dependency on KDE libraries. Required KDE components and other " +"dependencies can be determined through the configure log. `USE_KDE` does " +"not imply `USE_QT`. If a port requires some Qt components, specify them in " +"`USE_QT`." +msgstr "" +"Это простой пример порта для KDE. `USES= cmake` указывает порту " +"использовать CMake, инструмент конфигурации, широко применяемый в проектах " +"KDE (см. crossref:special[using-cmake, Использование `cmake`] для подробного " +"описания). `USE_KDE` добавляет зависимость от библиотек KDE. Необходимые " +"компоненты KDE и другие зависимости можно определить через лог " +"конфигурации. `USE_KDE` не подразумевает `USE_QT`. Если порту требуются " +"некоторые компоненты Qt, укажите их в `USE_QT`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3111 +#, no-wrap +msgid "" +"USES=\t\tcmake kde:5 qt:5\n" +"USE_KDE=\tecm\n" +"USE_QT=\t\tcore buildtools_build qmake_build\n" +msgstr "" +"USES=\t\tcmake kde:5 qt:5\n" +"USE_KDE=\tecm\n" +"USE_QT=\t\tcore buildtools_build qmake_build\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3116 +#, no-wrap +msgid "Using LXQt" +msgstr "Использование LXQt" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3119 +msgid "" +"Applications depending on LXQt should set `USES+= lxqt` and set `USE_LXQT` " +"to the list of required components from the table below" +msgstr "" +"Приложения, зависящие от LXQt, должны устанавливать `USES+= lxqt` и задавать " +"`USE_LXQT` списком необходимых компонентов из таблицы ниже" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3121 +#, no-wrap +msgid "Available LXQt Components" +msgstr "Доступные компоненты LXQt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3130 +#, no-wrap +msgid "Helpers for additional CMake modules" +msgstr "Помощники для дополнительных модулей CMake" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3131 +#, no-wrap +msgid "`libfmqt`" +msgstr "`libfmqt`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3133 +#, no-wrap +msgid "Libfm Qt bindings" +msgstr "Привязки Libfm к Qt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3134 +#, no-wrap +msgid "`lxqt`" +msgstr "`lxqt`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3136 +#, no-wrap +msgid "LXQt core library" +msgstr "Ядро библиотеки LXQt" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3137 +#, no-wrap +msgid "`qtxdg`" +msgstr "`qtxdg`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3138 +#, no-wrap +msgid "Qt implementation of freedesktop.org XDG specifications" +msgstr "Реализация Qt спецификаций freedesktop.org XDG" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3141 +#, no-wrap +msgid "`USE_LXQT` Example" +msgstr "Пример `USE_LXQT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3146 +msgid "" +"This is a simple example, `USE_LXQT` adds a dependency on LXQt libraries. " +"Required LXQt components and other dependencies can be determined from the " +"configure log." +msgstr "" +"Это простой пример, `USE_LXQT` добавляет зависимость от библиотек LXQt. " +"Необходимые компоненты LXQt и другие зависимости можно определить из лога " +"конфигурации." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3152 +#, no-wrap +msgid "" +"USES=\tcmake lxqt qt:5 tar:xz\n" +"USE_QT=\t\tcore dbus widgets buildtools_build qmake_build\n" +"USE_LXQT=\tbuildtools libfmqt\n" +msgstr "" +"USES=\tcmake lxqt qt:5 tar:xz\n" +"USE_QT=\t\tcore dbus widgets buildtools_build qmake_build\n" +"USE_LXQT=\tbuildtools libfmqt\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3157 +#, no-wrap +msgid "Using Java" +msgstr "Использование Java" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3160 +#, no-wrap +msgid "Variable Definitions" +msgstr "Определения переменных" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3163 +msgid "" +"If the port needs a Java(TM) Development Kit (JDK(TM)) to either build, run " +"or even extract the distfile, then define `USE_JAVA`." +msgstr "" +"Если порту требуется Java(TM) Development Kit (JDK(TM)) для сборки, запуска " +"или даже извлечения distfile, определите `USE_JAVA`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3167 +msgid "" +"There are several JDKs in the ports collection, from various vendors, and in " +"several versions. If the port must use a particular version, specify it " +"using the `JAVA_VERSION` variable. The most current version is package:java/" +"openjdk18[], with package:java/openjdk17[], package:java/openjdk16[], " +"package:java/openjdk15[], package:java/openjdk14[], package:java/" +"openjdk13[], package:java/openjdk12[], package:java/openjdk11[], " +"package:java/openjdk8[], and package:java/openjdk7[] also available." +msgstr "" +"В коллекции портов доступно несколько JDK от различных поставщиков и в " +"нескольких версиях. Если порт должен использовать определённую версию, " +"укажите её с помощью переменной `JAVA_VERSION`. Самая актуальная версия — " +"package:java/openjdk18[], также доступны package:java/openjdk17[], " +"package:java/openjdk16[], package:java/openjdk15[], package:java/" +"openjdk14[], package:java/openjdk13[], package:java/openjdk12[], " +"package:java/openjdk11[], package:java/openjdk8[] и package:java/openjdk7[]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3169 +#, no-wrap +msgid "Variables Which May be Set by Ports That Use Java" +msgstr "Переменные, которые могут быть установлены портами, использующими Java" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3176 +#, no-wrap +msgid "`USE_JAVA`" +msgstr "`USE_JAVA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3178 +#, no-wrap +msgid "Define for the remaining variables to have any effect." +msgstr "Определите для остальных переменных, чтобы они имели какой-либо эффект." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3179 +#, no-wrap +msgid "`JAVA_VERSION`" +msgstr "`JAVA_VERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3182 +#, no-wrap +msgid "" +"List of space-separated suitable Java versions for the port.\n" +"An optional `\\+` allows specifying a range of versions (allowed values: `8[+] 11[\\+] 17[+] 18[\\+] 19[+] 20[\\+] 21[+]`)." +msgstr "" +"Список подходящих версий Java для порта, разделённых пробелами.\n" +"Необязательный символ `\\+` позволяет указать диапазон версий (допустимые значения: `8[+] 11[\\+] 17[+] 18[\\+] 19[+] 20[\\+] 21[+]`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3183 +#, no-wrap +msgid "`JAVA_OS`" +msgstr "`JAVA_OS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3185 +#, no-wrap +msgid "List of space-separated suitable JDK port operating systems for the port (allowed values: `native linux`)." +msgstr "Список разделенных пробелами подходящих операционных систем портов JDK для порта (допустимые значения: `native linux`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3186 +#, no-wrap +msgid "`JAVA_VENDOR`" +msgstr "`JAVA_VENDOR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3188 +#, no-wrap +msgid "List of space-separated suitable JDK port vendors for the port (allowed values: `openjdk oracle`)." +msgstr "Список подходящих поставщиков портов JDK для порта через пробел (допустимые значения: `openjdk oracle`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3189 +#, no-wrap +msgid "`JAVA_BUILD`" +msgstr "`JAVA_BUILD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3191 +#, no-wrap +msgid "When set, add the selected JDK port to the build dependencies." +msgstr "Когда установлено, добавляет выбранный порт JDK в зависимости сборки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3192 +#, no-wrap +msgid "`JAVA_RUN`" +msgstr "`JAVA_RUN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3194 +#, no-wrap +msgid "When set, add the selected JDK port to the run dependencies." +msgstr "Когда установлено, добавляет выбранный порт JDK в зависимости времени выполнения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3195 +#, no-wrap +msgid "`JAVA_EXTRACT`" +msgstr "`JAVA_EXTRACT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3196 +#, no-wrap +msgid "When set, add the selected JDK port to the extract dependencies." +msgstr "Когда установлено, добавляет выбранный порт JDK в зависимости для извлечения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3199 +msgid "" +"Below is the list of all settings a port will receive after setting " +"`USE_JAVA`:" +msgstr "" +"Ниже приведен список всех настроек, которые порт получит после установки " +"`USE_JAVA`:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3201 +#, no-wrap +msgid "Variables Provided to Ports That Use Java" +msgstr "Переменные, предоставляемые портам, использующим Java" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3207 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3286 +#, no-wrap +msgid "Value" +msgstr "Значение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3208 +#, no-wrap +msgid "`JAVA_PORT`" +msgstr "`JAVA_PORT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3210 +#, no-wrap +msgid "The name of the JDK port (for example, `java/openjdk6`)." +msgstr "Имя порта JDK (например, `java/openjdk6`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3211 +#, no-wrap +msgid "`JAVA_PORT_VERSION`" +msgstr "`JAVA_PORT_VERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3213 +#, no-wrap +msgid "The full version of the JDK port (for example, `1.6.0`). Only the first two digits of this version number are needed, use `${JAVA_PORT_VERSION:C/^([0-9])\\.([0-9])(.*)$/\\1.\\2/}`." +msgstr "Полная версия порта JDK (например, `1.6.0`). Требуются только первые две цифры номера версии, используйте `${JAVA_PORT_VERSION:C/^([0-9])\\.([0-9])(.*)$/\\1.\\2/}`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3214 +#, no-wrap +msgid "`JAVA_PORT_OS`" +msgstr "`JAVA_PORT_OS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3216 +#, no-wrap +msgid "The operating system used by the JDK port (for example, `'native'`)." +msgstr "Операционная система, используемая портом JDK (например, `'native'`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3217 +#, no-wrap +msgid "`JAVA_PORT_VENDOR`" +msgstr "`JAVA_PORT_VENDOR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3219 +#, no-wrap +msgid "The vendor of the JDK port (for example, `'openjdk'`)." +msgstr "Поставщик порта JDK (например, `'openjdk'`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3220 +#, no-wrap +msgid "`JAVA_PORT_OS_DESCRIPTION`" +msgstr "`JAVA_PORT_OS_DESCRIPTION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3222 +#, no-wrap +msgid "Description of the operating system used by the JDK port (for example, `'Native'`)." +msgstr "Описание операционной системы, используемой портом JDK (например, `'Native'`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3223 +#, no-wrap +msgid "`JAVA_PORT_VENDOR_DESCRIPTION`" +msgstr "`JAVA_PORT_VENDOR_DESCRIPTION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3225 +#, no-wrap +msgid "Description of the vendor of the JDK port (for example, `'OpenJDK BSD Porting Team'`)." +msgstr "Описание поставщика порта JDK (например, `'OpenJDK BSD Porting Team'`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3226 +#, no-wrap +msgid "`JAVA_HOME`" +msgstr "`JAVA_HOME`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3228 +#, no-wrap +msgid "Path to the installation directory of the JDK (for example, [.filename]#'/usr/local/openjdk6'#)." +msgstr "Путь к каталогу установки JDK (например, [.filename]#'/usr/local/openjdk6'#)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3229 +#, no-wrap +msgid "`JAVAC`" +msgstr "`JAVAC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3231 +#, no-wrap +msgid "Path to the Java compiler to use (for example, [.filename]#'/usr/local/openjdk6/bin/javac'#)." +msgstr "Путь к используемому компилятору Java (например, [.filename]#'/usr/local/openjdk6/bin/javac'#)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3232 +#, no-wrap +msgid "`JAR`" +msgstr "`JAR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3234 +#, no-wrap +msgid "Path to the `jar` tool to use (for example, [.filename]#'/usr/local/openjdk6/bin/jar'# or [.filename]#'/usr/local/bin/fastjar'#)." +msgstr "Путь к инструменту `jar`, который следует использовать (например, [.filename]#'/usr/local/openjdk6/bin/jar'# или [.filename]#'/usr/local/bin/fastjar'#)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3235 +#, no-wrap +msgid "`APPLETVIEWER`" +msgstr "`APPLETVIEWER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3237 +#, no-wrap +msgid "Path to the `appletviewer` utility (for example, [.filename]#'/usr/local/openjdk6/bin/appletviewer'#)." +msgstr "Путь к утилите `appletviewer` (например, [.filename]#'/usr/local/openjdk6/bin/appletviewer'#)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3238 +#, no-wrap +msgid "`JAVA`" +msgstr "`JAVA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3240 +#, no-wrap +msgid "Path to the `java` executable. Use this for executing Java programs (for example, [.filename]#'/usr/local/openjdk6/bin/java'#)." +msgstr "Путь к исполняемому файлу `java`. Используется для запуска программ на Java (например, [.filename]#'/usr/local/openjdk6/bin/java'#)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3241 +#, no-wrap +msgid "`JAVADOC`" +msgstr "`JAVADOC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3243 +#, no-wrap +msgid "Path to the `javadoc` utility program." +msgstr "Путь к программе `javadoc`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3244 +#, no-wrap +msgid "`JAVAH`" +msgstr "`JAVAH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3246 +#, no-wrap +msgid "Path to the `javah` program." +msgstr "Путь к программе `javah`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3247 +#, no-wrap +msgid "`JAVAP`" +msgstr "`JAVAP`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3249 +#, no-wrap +msgid "Path to the `javap` program." +msgstr "Путь к программе `javap`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3250 +#, no-wrap +msgid "`JAVA_KEYTOOL`" +msgstr "`JAVA_KEYTOOL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3252 +#, no-wrap +msgid "Path to the `keytool` utility program." +msgstr "Путь к утилите `keytool`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3253 +#, no-wrap +msgid "`JAVA_N2A`" +msgstr "`JAVA_N2A`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3255 +#, no-wrap +msgid "Path to the `native2ascii` tool." +msgstr "Путь к инструменту `native2ascii`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3256 +#, no-wrap +msgid "`JAVA_POLICYTOOL`" +msgstr "`JAVA_POLICYTOOL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3258 +#, no-wrap +msgid "Path to the `policytool` program." +msgstr "Путь к программе `policytool`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3259 +#, no-wrap +msgid "`JAVA_SERIALVER`" +msgstr "`JAVA_SERIALVER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3261 +#, no-wrap +msgid "Path to the `serialver` utility program." +msgstr "Путь к утилите `serialver`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3262 +#, no-wrap +msgid "`RMIC`" +msgstr "`RMIC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3264 +#, no-wrap +msgid "Path to the RMI stub/skeleton generator, `rmic`." +msgstr "Путь к генератору RMI-заглушек/скелетов, `rmic`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3265 +#, no-wrap +msgid "`RMIREGISTRY`" +msgstr "`RMIREGISTRY`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3267 +#, no-wrap +msgid "Path to the RMI registry program, `rmiregistry`." +msgstr "Путь к программе реестра RMI, `rmiregistry`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3268 +#, no-wrap +msgid "`RMID`" +msgstr "`RMID`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3270 +#, no-wrap +msgid "Path to the RMI daemon program `rmid`." +msgstr "Путь к программе демона RMI `rmid`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3271 +#, no-wrap +msgid "`JAVA_CLASSES`" +msgstr "`JAVA_CLASSES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3272 +#, no-wrap +msgid "Path to the archive that contains the JDK class files, [.filename]#${JAVA_HOME}/jre/lib/rt.jar#." +msgstr "Путь к архиву, содержащему файлы классов JDK, [.filename]#${JAVA_HOME}/jre/lib/rt.jar#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3276 +msgid "" +"Use the `java-debug` make target to get information for debugging the port. " +"It will display the value of many of the previously listed variables." +msgstr "" +"Используйте цель `java-debug` в make для получения информации для отладки " +"порта. Она отобразит значения многих из перечисленных ранее переменных." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3278 +msgid "" +"Additionally, these constants are defined so all Java ports may be installed " +"in a consistent way:" +msgstr "" +"Кроме того, определены следующие константы, чтобы все порты Java могли быть " +"установлены единообразно:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3280 +#, no-wrap +msgid "Constants Defined for Ports That Use Java" +msgstr "Константы, определенные для портов, использующих Java" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3284 +#, no-wrap +msgid "Constant" +msgstr "Константа" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3287 +#, no-wrap +msgid "`JAVASHAREDIR`" +msgstr "`JAVASHAREDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3289 +#, no-wrap +msgid "The base directory for everything related to Java. Default: [.filename]#${PREFIX}/share/java#." +msgstr "Базовый каталог для всего, связанного с Java. По умолчанию: [.filename]#${PREFIX}/share/java#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3290 +#, no-wrap +msgid "`JAVAJARDIR`" +msgstr "`JAVAJARDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3292 +#, no-wrap +msgid "The directory where JAR files is installed. Default: [.filename]#${JAVASHAREDIR}/classes#." +msgstr "Каталог, в котором установлены JAR-файлы. По умолчанию: [.filename]#${JAVASHAREDIR}/classes#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3293 +#, no-wrap +msgid "`JAVALIBDIR`" +msgstr "`JAVALIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3294 +#, no-wrap +msgid "The directory where JAR files installed by other ports are located. Default: [.filename]#${LOCALBASE}/share/java/classes#." +msgstr "Каталог, в котором расположены JAR-файлы, установленные другими портами. По умолчанию: [.filename]#${LOCALBASE}/share/java/classes#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3297 +msgid "" +"The related entries are defined in both `PLIST_SUB` (documented in " +"crossref:plist[plist-sub,Changing pkg-plist Based on Make Variables]) and " +"`SUB_LIST`." +msgstr "" +"Связанные записи определены как в `PLIST_SUB` (документировано в " +"crossref:plist[plist-sub,Изменение pkg-plist на основе переменных Make]), " +"так и в `SUB_LIST`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3299 +#, no-wrap +msgid "Building with Ant" +msgstr "Сборка с Ant" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3305 +msgid "" +"When the port is to be built using Apache Ant, it has to define `USE_ANT`. " +"Ant is thus considered to be the sub-make command. When no `do-build` " +"target is defined by the port, a default one will be set that runs Ant " +"according to `MAKE_ENV`, `MAKE_ARGS` and `ALL_TARGET`. This is similar to " +"the `USES= gmake` mechanism, which is documented in " +"crossref:special[building, Building Mechanisms]." +msgstr "" +"Когда порт должен собираться с использованием Apache Ant, он должен " +"определять `USE_ANT`. Таким образом, Ant считается командой sub-make. Если " +"цель `do-build` не определена в порте, будет установлена цель по умолчанию, " +"которая запускает Ant в соответствии с `MAKE_ENV`, `MAKE_ARGS` и " +"`ALL_TARGET`. Это аналогично механизму `USES= gmake`, который документирован " +"в crossref:special[building, Building Mechanisms]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3307 +#, no-wrap +msgid "Best Practices" +msgstr "Лучшие практики" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3312 +msgid "" +"When porting a Java library, the port has to install the JAR file(s) in " +"[.filename]#${JAVAJARDIR}#, and everything else under [.filename]#$" +"{JAVASHAREDIR}/${PORTNAME}# (except for the documentation, see below). To " +"reduce the packing file size, reference the JAR file(s) directly in the " +"[.filename]#Makefile#. Use this statement (where [.filename]#myport.jar# is " +"the name of the JAR file installed as part of the port):" +msgstr "" +"При переносе библиотеки Java порт должен устанавливать JAR-файл(ы) в " +"[.filename]#${JAVAJARDIR}#, а все остальное — в [.filename]#${JAVASHAREDIR}/$" +"{PORTNAME}# (за исключением документации, см. ниже). Чтобы уменьшить размер " +"упаковочного файла, ссылайтесь на JAR-файл(ы) напрямую в " +"[.filename]#Makefile#. Используйте следующую инструкцию (где " +"[.filename]#myport.jar# — имя JAR-файла, устанавливаемого как часть порта):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3316 +#, no-wrap +msgid "PLIST_FILES+=\t${JAVAJARDIR}/myport.jar\n" +msgstr "PLIST_FILES+=\t${JAVAJARDIR}/myport.jar\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3321 +msgid "" +"When porting a Java application, the port usually installs everything under " +"a single directory (including its JAR dependencies). The use of " +"[.filename]#${JAVASHAREDIR}/${PORTNAME}# is strongly encouraged in this " +"regard. It is up the porter to decide whether the port installs the " +"additional JAR dependencies under this directory or uses the already " +"installed ones (from [.filename]#${JAVAJARDIR}#)." +msgstr "" +"При переносе Java-приложения порт обычно устанавливает все компоненты в " +"единый каталог (включая зависимости в виде JAR-файлов). В этом отношении " +"настоятельно рекомендуется использовать [.filename]#${JAVASHAREDIR}/$" +"{PORTNAME}#. Портеру предстоит решить, устанавливать ли дополнительные JAR-" +"зависимости в этот каталог или использовать уже установленные (из " +"[.filename]#${JAVAJARDIR}#)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3328 +msgid "" +"When porting a Java(TM) application that requires an application server such " +"as package:www/tomcat7[] to run the service, it is quite common for a vendor " +"to distribute a [.filename]#.war#. A [.filename]#.war# is a Web application " +"ARchive and is extracted when called by the application. Avoid adding a " +"[.filename]#.war# to [.filename]#pkg-plist#. It is not considered best " +"practice. An application server will expand war archive, but not clean it " +"up properly if the port is removed. A more desirable way of working with " +"this file is to extract the archive, then install the files, and lastly add " +"these files to [.filename]#pkg-plist#." +msgstr "" +"При переносе Java(TM)-приложения, которое требует сервера приложений, такого " +"как package:www/tomcat7[], для запуска службы, вендор часто распространяет " +"файл [.filename]#.war#. [.filename]#.war# — это веб-архив приложения (Web " +"application ARchive), который извлекается при вызове приложением. Избегайте " +"добавления [.filename]#.war# в [.filename]#pkg-plist#. Это не считается " +"лучшей практикой. Сервер приложений развернет архив war, но не очистит его " +"должным образом при удалении порта. Более предпочтительный способ работы с " +"этим файлом — извлечь архив, затем установить файлы и, наконец, добавить эти " +"файлы в [.filename]#pkg-plist#." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3333 +#, no-wrap +msgid "" +"TOMCATDIR=\t${LOCALBASE}/apache-tomcat-7.0\n" +"WEBAPPDIR=\tmyapplication\n" +msgstr "" +"TOMCATDIR=\t${LOCALBASE}/apache-tomcat-7.0\n" +"WEBAPPDIR=\tmyapplication\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3337 +#, no-wrap +msgid "" +"post-extract:\n" +"\t@${MKDIR} ${WRKDIR}/${PORTDIRNAME}\n" +"\t@${TAR} xf ${WRKDIR}/myapplication.war -C ${WRKDIR}/${PORTDIRNAME}\n" +msgstr "" +"post-extract:\n" +"\t@${MKDIR} ${WRKDIR}/${PORTDIRNAME}\n" +"\t@${TAR} xf ${WRKDIR}/myapplication.war -C ${WRKDIR}/${PORTDIRNAME}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3342 +#, no-wrap +msgid "" +"do-install:\n" +"\tcd ${WRKDIR} && \\\n" +"\t${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME}\n" +"\tcd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \\* ${WEBAPPDIR}/${PORTDIRNAME}\n" +msgstr "" +"do-install:\n" +"\tcd ${WRKDIR} && \\\n" +"\t${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME}\n" +"\tcd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \\* ${WEBAPPDIR}/${PORTDIRNAME}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3349 +msgid "" +"Regardless of the type of port (library or application), the additional " +"documentation is installed in the crossref:makefiles[install-" +"documentation,same location] as for any other port. The Javadoc tool is " +"known to produce a different set of files depending on the version of the " +"JDK that is used. For ports that do not enforce the use of a particular " +"JDK, it is therefore a complex task to specify the packing list " +"([.filename]#pkg-plist#). This is one reason why porters are strongly " +"encouraged to use `PORTDOCS`. Moreover, even if the set of files that will " +"be generated by `javadoc` can be predicted, the size of the resulting " +"[.filename]#pkg-plist# advocates for the use of `PORTDOCS`." +msgstr "" +"Независимо от типа порта (библиотека или приложение), дополнительная " +"документация устанавливается crossref:makefiles[install-documentation,в том " +"же месте], что и для любого другого порта. Известно, что инструмент Javadoc " +"создает разный набор файлов в зависимости от версии используемого JDK. Для " +"портов, которые не требуют использования конкретной версии JDK, указание " +"списка упаковки ([.filename]#pkg-plist#) становится сложной задачей. Это " +"одна из причин, по которой разработчикам портов настоятельно рекомендуется " +"использовать `PORTDOCS`. Более того, даже если набор файлов, генерируемых " +"`javadoc`, можно предсказать, размер результирующего [.filename]#pkg-plist# " +"говорит в пользу использования `PORTDOCS`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3353 +msgid "" +"The default value for `DATADIR` is [.filename]#${PREFIX}/share/${PORTNAME}" +"#. It is a good idea to override `DATADIR` to [.filename]#${JAVASHAREDIR}/$" +"{PORTNAME}# for Java ports. Indeed, `DATADIR` is automatically added to " +"`PLIST_SUB` (documented in crossref:plist[plist-sub,Changing pkg-plist Based " +"on Make Variables]) so use `%%DATADIR%%` directly in [.filename]#pkg-plist#." +msgstr "" +"Значение по умолчанию для `DATADIR` — [.filename]#${PREFIX}/share/${PORTNAME}" +"#. Рекомендуется переопределить `DATADIR` на [.filename]#${JAVASHAREDIR}/$" +"{PORTNAME}# для портов Java. Действительно, `DATADIR` автоматически " +"добавляется в `PLIST_SUB` (документировано в crossref:plist[plist-" +"sub,Изменение pkg-plist на основе переменных Make]), поэтому используйте `%" +"%DATADIR%%` напрямую в [.filename]#pkg-plist#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3356 +msgid "" +"As for the choice of building Java ports from source or directly installing " +"them from a binary distribution, there is no defined policy at the time of " +"writing. However, people from the https://www.freebsd.org/java/[FreeBSD " +"Java Project] encourage porters to have their ports built from source " +"whenever it is a trivial task." +msgstr "" +"Что касается выбора между сборкой портов Java из исходного кода или их " +"непосредственной установкой из бинарного дистрибутива, на момент написания " +"документации определённой политики не существует. Однако участники https://" +"www.freebsd.org/java/[FreeBSD Java Project] рекомендуют сопровождающим " +"портов по возможности собирать их из исходного кода, если это не " +"представляет сложностей." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3360 +msgid "" +"All the features that have been presented in this section are implemented in " +"[.filename]#bsd.java.mk#. If the port needs more sophisticated Java " +"support, please first have a look at the https://cgit.FreeBSD.org/ports/tree/" +"Mk/bsd.java.mk[bsd.java.mk Git log] as it usually takes some time to " +"document the latest features. Then, if the needed support that is lacking " +"would be beneficial to many other Java ports, feel free to discuss it on the " +"freebsd-java." +msgstr "" +"Все функции, представленные в этом разделе, реализованы в " +"[.filename]#bsd.java.mk#. Если порту требуется более сложная поддержка Java, " +"сначала ознакомьтесь с https://cgit.FreeBSD.org/ports/tree/Mk/" +"bsd.java.mk[историей изменений bsd.java.mk], так как документирование новых " +"функций обычно занимает некоторое время. Затем, если отсутствующая поддержка " +"будет полезна для многих других Java-портов, не стесняйтесь обсудить это на " +"списке рассылки freebsd-java." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3363 +msgid "" +"Although there is a `java` category for PRs, it refers to the JDK porting " +"effort from the FreeBSD Java project. Therefore, submit the Java port in " +"the `ports` category as for any other port, unless the issue is related to " +"either a JDK implementation or [.filename]#bsd.java.mk#." +msgstr "" +"Хотя существует категория `java` для PR, она относится к усилиям по " +"портированию JDK в рамках проекта FreeBSD Java. Поэтому отправляйте порт " +"Java в категорию `ports`, как и любой другой порт, если только проблема не " +"связана либо с реализацией JDK, либо с [.filename]#bsd.java.mk#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3365 +msgid "" +"Similarly, there is a defined policy regarding the `CATEGORIES` of a Java " +"port, which is detailed in crossref:makefiles[makefile-" +"categories,Categorization]." +msgstr "" +"Аналогично существует определённая политика в отношении `CATEGORIES` для " +"портов Java, которая подробно описана в crossref:makefiles[makefile-" +"categories,Категоризация]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3367 +#, no-wrap +msgid "Web Applications, Apache and PHP" +msgstr "Веб-приложения, Apache и PHP" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3370 +#, no-wrap +msgid "Apache" +msgstr "Apache" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3373 +#, no-wrap +msgid "Variables for Ports That Use Apache" +msgstr "Переменные для портов, использующих Apache" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3377 +#, no-wrap +msgid "`USE_APACHE`" +msgstr "`USE_APACHE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3379 +#, no-wrap +msgid "The port requires Apache. Possible values: `yes` (gets any version), `22`, `24`, `22-24`, `22+`, etc. The default APACHE version is `22`. More details are available in [.filename]#ports/Mk/bsd.apache.mk# and at https://wiki.freebsd.org/Apache/[wiki.freebsd.org/Apache/]." +msgstr "Порт требует Apache. Возможные значения: `yes` (любая версия), `22`, `24`, `22-24`, `22+` и т.д. Версия APACHE по умолчанию — `22`. Подробнее см. в [.filename]#ports/Mk/bsd.apache.mk# и на https://wiki.freebsd.org/Apache/[wiki.freebsd.org/Apache/]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3380 +#, no-wrap +msgid "`APXS`" +msgstr "`APXS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3382 +#, no-wrap +msgid "Full path to the `apxs` binary. Can be overridden in the port." +msgstr "Полный путь к бинарному файлу `apxs`. Может быть переопределён в порте." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3383 +#, no-wrap +msgid "`HTTPD`" +msgstr "`HTTPD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3385 +#, no-wrap +msgid "Full path to the `httpd` binary. Can be overridden in the port." +msgstr "Полный путь к бинарному файлу `httpd`. Может быть переопределён в порте." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3386 +#, no-wrap +msgid "`APACHE_VERSION`" +msgstr "`APACHE_VERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3388 +#, no-wrap +msgid "The version of present Apache installation (read-only variable). This variable is only available after inclusion of [.filename]#bsd.port.pre.mk#. Possible values: `22`, `24`." +msgstr "Версия установленной Apache (переменная только для чтения). Эта переменная доступна только после включения [.filename]#bsd.port.pre.mk#. Возможные значения: `22`, `24`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3389 +#, no-wrap +msgid "`APACHEMODDIR`" +msgstr "`APACHEMODDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3391 +#, no-wrap +msgid "Directory for Apache modules. This variable is automatically expanded in [.filename]#pkg-plist#." +msgstr "Каталог для модулей Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3392 +#, no-wrap +msgid "`APACHEINCLUDEDIR`" +msgstr "`APACHEINCLUDEDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3394 +#, no-wrap +msgid "Directory for Apache headers. This variable is automatically expanded in [.filename]#pkg-plist#." +msgstr "Каталог для заголовков Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3395 +#, no-wrap +msgid "`APACHEETCDIR`" +msgstr "`APACHEETCDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3396 +#, no-wrap +msgid "Directory for Apache configuration files. This variable is automatically expanded in [.filename]#pkg-plist#." +msgstr "Каталог для файлов конфигурации Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3399 +#, no-wrap +msgid "Useful Variables for Porting Apache Modules" +msgstr "Полезные переменные для переноса модулей Apache" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3403 +#, no-wrap +msgid "`MODULENAME`" +msgstr "`MODULENAME`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3405 +#, no-wrap +msgid "Name of the module. Default value is `PORTNAME`. Example: `mod_hello`" +msgstr "Имя модуля. Значение по умолчанию — `PORTNAME`. Пример: `mod_hello`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3406 +#, no-wrap +msgid "`SHORTMODNAME`" +msgstr "`SHORTMODNAME`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3408 +#, no-wrap +msgid "Short name of the module. Automatically derived from `MODULENAME`, but can be overridden. Example: `hello`" +msgstr "Короткое имя модуля. Автоматически определяется из `MODULENAME`, но может быть переопределено. Пример: `hello`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3409 +#, no-wrap +msgid "`AP_FAST_BUILD`" +msgstr "`AP_FAST_BUILD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3411 +#, no-wrap +msgid "Use `apxs` to compile and install the module." +msgstr "Используйте `apxs` для компиляции и установки модуля." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3412 +#, no-wrap +msgid "`AP_GENPLIST`" +msgstr "`AP_GENPLIST`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3414 +#, no-wrap +msgid "Also automatically creates a [.filename]#pkg-plist#." +msgstr "Также автоматически создаёт файл [.filename]#pkg-plist#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3415 +#, no-wrap +msgid "`AP_INC`" +msgstr "`AP_INC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3417 +#, no-wrap +msgid "Adds a directory to a header search path during compilation." +msgstr "Добавляет каталог в путь поиска заголовков во время компиляции." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3418 +#, no-wrap +msgid "`AP_LIB`" +msgstr "`AP_LIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3420 +#, no-wrap +msgid "Adds a directory to a library search path during compilation." +msgstr "Добавляет каталог в путь поиска библиотек во время компиляции." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3421 +#, no-wrap +msgid "`AP_EXTRAS`" +msgstr "`AP_EXTRAS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3422 +#, no-wrap +msgid "Additional flags to pass to `apxs`." +msgstr "Дополнительные флаги для передачи в `apxs`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3425 +#, no-wrap +msgid "Web Applications" +msgstr "Веб-приложения" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3429 +msgid "" +"Web applications must be installed into [.filename]#PREFIX/www/appname#. " +"This path is available both in [.filename]#Makefile# and in [.filename]#pkg-" +"plist# as `WWWDIR`, and the path relative to `PREFIX` is available in " +"[.filename]#Makefile# as `WWWDIR_REL`." +msgstr "" +"Веб-приложения должны быть установлены в [.filename]#PREFIX/www/appname#. " +"Этот путь доступен как в [.filename]#Makefile#, так и в [.filename]#pkg-" +"plist# как `WWWDIR`, а путь относительно `PREFIX` доступен в " +"[.filename]#Makefile# как `WWWDIR_REL`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3434 +msgid "" +"The user and group of web server process are available as `WWWOWN` and " +"`WWWGRP`, in case the ownership of some files needs to be changed. The " +"default values of both are `www`. Use `WWWOWN?= myuser` and `WWWGRP?= " +"mygroup` if the port needs different values. This allows the user to " +"override them easily." +msgstr "" +"Пользователь и группа процесса веб-сервера доступны как `WWWOWN` и `WWWGRP`, " +"если необходимо изменить владельца некоторых файлов. Значения по умолчанию " +"для обоих — `www`. Используйте `WWWOWN?= myuser` и `WWWGRP?= mygroup`, если " +"порту требуются другие значения. Это позволяет пользователю легко их " +"переопределить." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3439 +msgid "" +"Use `WWWOWN` and `WWWGRP` sparingly. Remember that every file the web " +"server can write to is a security risk waiting to happen." +msgstr "" +"Используйте `WWWOWN` и `WWWGRP` с осторожностью. Помните, что каждый файл, " +"доступный для записи веб-серверу, представляет собой потенциальную угрозу " +"безопасности." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3443 +msgid "" +"Do not depend on Apache unless the web app explicitly needs Apache. Respect " +"that users may wish to run a web application on a web server other than " +"Apache." +msgstr "" +"Не зависьте от Apache, если веб-приложение явно не требует Apache. " +"Учитывайте, что пользователи могут захотеть запускать веб-приложение на " +"другом веб-сервере, кроме Apache." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3445 +#, no-wrap +msgid "PHP" +msgstr "PHP" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3449 +msgid "" +"PHP web applications declare their dependency on it with `USES=php`. See " +"crossref:uses[uses-php,`php`] for more information." +msgstr "" +"Веб-приложения PHP объявляют свою зависимость от него с помощью `USES=php`. " +"Подробнее см. в crossref:uses[uses-php,`php`]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3451 +#, no-wrap +msgid "PEAR Modules" +msgstr "Модули PEAR" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3454 +msgid "Porting PEAR modules is a very simple process." +msgstr "Портирование модулей PEAR — это очень простой процесс." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3457 +msgid "" +"Add `USES=pear` to the port's [.filename]#Makefile#. The framework will " +"install the relevant files in the right places and automatically generate " +"the plist at install time." +msgstr "" +"Добавьте `USES=pear` в [.filename]#Makefile# порта. Фреймворк установит " +"соответствующие файлы в нужные места и автоматически сгенерирует plist во " +"время установки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3459 +#, no-wrap +msgid "Example Makefile for PEAR Class" +msgstr "Пример Makefile для PEAR Class" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3467 +#, no-wrap +msgid "" +"PORTNAME= Date\n" +"DISTVERSION=\t1.4.3\n" +"CATEGORIES=\tdevel www pear\n" +msgstr "" +"PORTNAME= Date\n" +"DISTVERSION=\t1.4.3\n" +"CATEGORIES=\tdevel www pear\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3471 +#, no-wrap +msgid "" +"MAINTAINER=\tsomeone@example.org\n" +"COMMENT=\tPEAR Date and Time Zone Classes\n" +"WWW=\t\thttps://pear.php.net/package/Date/\n" +msgstr "" +"MAINTAINER=\tsomeone@example.org\n" +"COMMENT=\tPEAR Date and Time Zone Classes\n" +"WWW=\t\thttps://pear.php.net/package/Date/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3473 +#, no-wrap +msgid "USES=\tpear\n" +msgstr "USES=\tpear\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3482 +msgid "" +"PEAR modules will automatically be flavorized using crossref:flavors[flavors-" +"auto-php,PHP flavors]." +msgstr "" +"Модули PEAR будут автоматически преобразованы в порт с флейвором с " +"использованием crossref:flavors[flavors-auto-php,флейворов PHP]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3487 +msgid "" +"If a non default `PEAR_CHANNEL` is used, the build and run-time dependencies " +"will automatically be added." +msgstr "" +"Если используется нестандартный `PEAR_CHANNEL`, зависимости для сборки и " +"выполнения будут добавлены автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3493 +msgid "" +"PEAR modules do not need to defined `PKGNAMESUFFIX` it is automatically " +"filled in using `PEAR_PKGNAMEPREFIX`. If a port needs to add to " +"`PKGNAMEPREFIX`, it must also use `PEAR_PKGNAMEPREFIX` to differentiate " +"between different flavors." +msgstr "" +"Модули PEAR не требуют определения `PKGNAMESUFFIX`, так как он автоматически " +"заполняется с использованием `PEAR_PKGNAMEPREFIX`. Если порту необходимо " +"добавить к `PKGNAMEPREFIX`, он также должен использовать " +"`PEAR_PKGNAMEPREFIX`, чтобы отличать различные флейворы." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3496 +#, no-wrap +msgid "Horde Modules" +msgstr "Модули Horde" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3499 +msgid "In the same way, porting Horde modules is a simple process." +msgstr "Также и перенос модулей Horde является простым процессом." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3502 +msgid "" +"Add `USES=horde` to the port's [.filename]#Makefile#. The framework will " +"install the relevant files in the right places and automatically generate " +"the plist at install time." +msgstr "" +"Добавьте `USES=horde` в [.filename]#Makefile# порта. Фреймворк установит " +"соответствующие файлы в нужные места и автоматически сгенерирует plist во " +"время установки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3505 +msgid "" +"The `USE_HORDE_BUILD` and `USE_HORDE_RUN` variables can be used to add " +"buildtime and runtime dependencies on other Horde modules. See " +"[.filename]#Mk/Uses/horde.mk# for a complete list of available modules." +msgstr "" +"Переменные `USE_HORDE_BUILD` и `USE_HORDE_RUN` могут использоваться для " +"добавления зависимостей времени сборки и выполнения от других модулей Horde. " +"Полный список доступных модулей можно найти в [.filename]#Mk/Uses/horde.mk#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3507 +#, no-wrap +msgid "Example Makefile for Horde Module" +msgstr "Пример Makefile для модуля Horde" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3515 +#, no-wrap +msgid "" +"PORTNAME=\tHorde_Core\n" +"DISTVERSION=\t2.14.0\n" +"CATEGORIES=\tdevel www pear\n" +msgstr "" +"PORTNAME=\tHorde_Core\n" +"DISTVERSION=\t2.14.0\n" +"CATEGORIES=\tdevel www pear\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3519 +#, no-wrap +msgid "" +"MAINTAINER=\thorde@FreeBSD.org\n" +"COMMENT=\tHorde Core Framework libraries\n" +"WWW=\t\thttps://pear.horde.org/\n" +msgstr "" +"MAINTAINER=\thorde@FreeBSD.org\n" +"COMMENT=\tHorde Core Framework libraries\n" +"WWW=\t\thttps://pear.horde.org/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3523 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tKOLAB SOCKETS\n" +"KOLAB_DESC=\tEnable Kolab server support\n" +"SOCKETS_DESC=\tDepend on sockets PHP extension\n" +msgstr "" +"OPTIONS_DEFINE=\tKOLAB SOCKETS\n" +"KOLAB_DESC=\tEnable Kolab server support\n" +"SOCKETS_DESC=\tDepend on sockets PHP extension\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3526 +#, no-wrap +msgid "" +"USES=\thorde\n" +"USE_PHP=\tsession\n" +msgstr "" +"USES=\thorde\n" +"USE_PHP=\tsession\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3530 +#, no-wrap +msgid "" +"USE_HORDE_BUILD=\tHorde_Role\n" +"USE_HORDE_RUN=\tHorde_Role Horde_History Horde_Pack \\\n" +"\t\tHorde_Text_Filter Horde_View\n" +msgstr "" +"USE_HORDE_BUILD=\tHorde_Role\n" +"USE_HORDE_RUN=\tHorde_Role Horde_History Horde_Pack \\\n" +"\t\tHorde_Text_Filter Horde_View\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3533 +#, no-wrap +msgid "" +"KOLAB_USE=\tHORDE_RUN=Horde_Kolab_Server,Horde_Kolab_Session\n" +"SOCKETS_USE=\tPHP=sockets\n" +msgstr "" +"KOLAB_USE=\tHORDE_RUN=Horde_Kolab_Server,Horde_Kolab_Session\n" +"SOCKETS_USE=\tPHP=sockets\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3542 +msgid "" +"As Horde modules are also PEAR modules they will also automatically be " +"flavorized using crossref:flavors[flavors-auto-php,PHP flavors]." +msgstr "" +"Поскольку модули Horde также являются модулями PEAR, они будут автоматически " +"преобразованы с использованием crossref:flavors[flavors-auto-php,флейворов " +"PHP]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3545 +#, no-wrap +msgid "Using Python" +msgstr "Использование Python" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3550 +msgid "" +"The Ports Collection supports parallel installation of multiple Python " +"versions. Ports must use a correct `python` interpreter, according to the " +"user-settable `PYTHON_VERSION`. Most prominently, this means replacing the " +"path to `python` executable in scripts with the value of `PYTHON_CMD`." +msgstr "" +"Коллекция портов поддерживает параллельную установку нескольких версий " +"Python. Порты должны использовать правильный интерпретатор `python` в " +"соответствии с настраиваемым пользователем параметром `PYTHON_VERSION`. " +"Важнее всего заменить путь к исполняемому файлу `python` в скриптах на " +"значение `PYTHON_CMD`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3552 +msgid "" +"Ports that install files under `PYTHON_SITELIBDIR` must use the `pyXY-` " +"package name prefix, so their package name embeds the version of Python they " +"are installed into." +msgstr "" +"Порты, которые устанавливают файлы в `PYTHON_SITELIBDIR`, должны " +"использовать префикс имени пакета `pyXY-`, чтобы их имя пакета включало " +"версию Python, для которой они предназначены." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3556 +#, no-wrap +msgid "PKGNAMEPREFIX=\t${PYTHON_PKGNAMEPREFIX}\n" +msgstr "PKGNAMEPREFIX=\t${PYTHON_PKGNAMEPREFIX}\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3560 +#, no-wrap +msgid "Most Useful Variables for Ports That Use Python" +msgstr "Наиболее полезные переменные для портов, использующих Python" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3564 +#, no-wrap +msgid "`USES=python`" +msgstr "`USES=python`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3566 +#, no-wrap +msgid "The port needs Python. The minimal required version can be specified with values such as `3.10+`. Version ranges can also be specified by separating two version numbers with a dash: `USES=python:3.8-3.9`. Note that `USES=python` does _not_ cover Python 2.7, it needs to be requested explicitly with `USES=python:2.7+`." +msgstr "Порту требуется Python. Минимально необходимая версия может быть указана с такими значениями, как `3.10+`. Диапазоны версий также можно указать, разделив две версии дефисом: `USES=python:3.8-3.9`. Обратите внимание, что `USES=python` _не_ включает Python 2.7, его нужно запрашивать явно с помощью `USES=python:2.7+`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3567 +#, no-wrap +msgid "`USE_PYTHON=distutils`" +msgstr "`USE_PYTHON=distutils`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3569 +#, no-wrap +msgid "Use Python distutils for configuring, compiling, and installing. This is required when the port comes with [.filename]#setup.py#. This overrides the `do-build` and `do-install` targets and may also override `do-configure` if `GNU_CONFIGURE` is not defined. Additionally, it implies `USE_PYTHON=flavors`." +msgstr "Используйте Python distutils для настройки, компиляции и установки. Это требуется, когда порт поставляется с [.filename]#setup.py#. Это переопределяет цели `do-build` и `do-install`, а также может переопределить `do-configure`, если `GNU_CONFIGURE` не определён. Кроме того, подразумевается `USE_PYTHON=flavors`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3570 +#, no-wrap +msgid "`USE_PYTHON=autoplist`" +msgstr "`USE_PYTHON=autoplist`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3572 +#, no-wrap +msgid "Create the packaging list automatically. This also requires `USE_PYTHON=distutils` to be set." +msgstr "Создать список пакетов автоматически. Это также требует установки `USE_PYTHON=distutils`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3573 +#, no-wrap +msgid "`USE_PYTHON=concurrent`" +msgstr "`USE_PYTHON=concurrent`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3575 +#, no-wrap +msgid "The port will use an unique prefix, typically `PYTHON_PKGNAMEPREFIX` for certain directories, such as `EXAMPLESDIR` and `DOCSDIR` and also will append a suffix, the python version from `PYTHON_VER`, to binaries and scripts to be installed. This allows ports to be installed for different Python versions at the same time, which otherwise would install conflicting files." +msgstr "Порт будет использовать уникальный префикс, обычно `PYTHON_PKGNAMEPREFIX`, для определённых каталогов, таких как `EXAMPLESDIR` и `DOCSDIR`, а также добавлять суффикс — версию Python из `PYTHON_VER` — к устанавливаемым бинарным файлам и скриптам. Это позволяет устанавливать порты для разных версий Python одновременно, что в противном случае приводило бы к конфликту файлов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3576 +#, no-wrap +msgid "`USE_PYTHON=flavors`" +msgstr "`USE_PYTHON=flavors`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3578 +#, no-wrap +msgid "The port does not use distutils but still supports multiple Python versions. `FLAVORS` will be set to the supported Python versions. See crossref:flavors[flavors-auto-python,`USES`=python and Flavors] for more information." +msgstr "Порт не использует distutils, но по-прежнему поддерживает несколько версий Python. `FLAVORS` будет установлен в поддерживаемые версии Python. Дополнительную информацию см. в crossref:flavors[flavors-auto-python,`USES`=python и флейворы]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3579 +#, no-wrap +msgid "`USE_PYTHON=optsuffix`" +msgstr "`USE_PYTHON=optsuffix`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3581 +#, no-wrap +msgid "If the current Python version is not the default version, the port will gain `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. Only useful with flavors." +msgstr "Если текущая версия Python не является версией по умолчанию, порт получит `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. Полезно только для флейворов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3582 +#, no-wrap +msgid "`PYTHON_PKGNAMEPREFIX`" +msgstr "`PYTHON_PKGNAMEPREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3584 +#, no-wrap +msgid "Used as a `PKGNAMEPREFIX` to distinguish packages for different Python versions. Example: `py27-`" +msgstr "Используется как `PKGNAMEPREFIX` для различения пакетов разных версий Python. Пример: `py27-`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3585 +#, no-wrap +msgid "`PYTHON_SITELIBDIR`" +msgstr "`PYTHON_SITELIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3587 +#, no-wrap +msgid "Location of the site-packages tree, that contains installation path of Python (usually `LOCALBASE`). `PYTHON_SITELIBDIR` can be very useful when installing Python modules." +msgstr "Расположение дерева site-packages, которое содержит путь установки Python (обычно `LOCALBASE`). `PYTHON_SITELIBDIR` может быть очень полезно при установке модулей Python." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3588 +#, no-wrap +msgid "`PYTHONPREFIX_SITELIBDIR`" +msgstr "`PYTHONPREFIX_SITELIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3590 +#, no-wrap +msgid "The PREFIX-clean variant of PYTHON_SITELIBDIR. Always use `%%PYTHON_SITELIBDIR%%` in [.filename]#pkg-plist# when possible. The default value of `%%PYTHON_SITELIBDIR%%` is `lib/python%%PYTHON_VERSION%%/site-packages`" +msgstr "Вариант PREFIX-clean для PYTHON_SITELIBDIR. Всегда используйте `%%PYTHON_SITELIBDIR%%` в [.filename]#pkg-plist#, когда это возможно. Значение по умолчанию для `%%PYTHON_SITELIBDIR%%` — `lib/python%%PYTHON_VERSION%%/site-packages`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3591 +#, no-wrap +msgid "`PYTHON_CMD`" +msgstr "`PYTHON_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3592 +#, no-wrap +msgid "Python interpreter command line, including version number." +msgstr "Интерпретатор командной строки Python, включая номер версии." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3595 +#, no-wrap +msgid "Python Module Dependency Helpers" +msgstr "Помощники зависимостей модуля Python" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3599 +#, no-wrap +msgid "`PYNUMERIC`" +msgstr "`PYNUMERIC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3601 +#, no-wrap +msgid "Dependency line for numeric extension." +msgstr "Строка зависимости для числового расширения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3602 +#, no-wrap +msgid "`PYNUMPY`" +msgstr "`PYNUMPY`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3604 +#, no-wrap +msgid "Dependency line for the new numeric extension, numpy. (PYNUMERIC is deprecated by upstream vendor)." +msgstr "Строка зависимости для нового числового расширения, numpy. (PYNUMERIC устарел у вендора)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3605 +#, no-wrap +msgid "`PYXML`" +msgstr "`PYXML`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3607 +#, no-wrap +msgid "Dependency line for XML extension (not needed for Python 2.0 and higher as it is also in base distribution)." +msgstr "Строка зависимости для расширения XML (не требуется для Python 2.0 и выше, так как оно также входит в базовую поставку)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3608 +#, no-wrap +msgid "`PY_ENUM34`" +msgstr "`PY_ENUM34`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3610 +#, no-wrap +msgid "Conditional dependency on package:devel/py-enum34[] depending on the Python version." +msgstr "Условная зависимость от пакета package:devel/py-enum34[] в зависимости от версии Python." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3611 +#, no-wrap +msgid "`PY_ENUM_COMPAT`" +msgstr "`PY_ENUM_COMPAT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3613 +#, no-wrap +msgid "Conditional dependency on package:devel/py-enum-compat[] depending on the Python version." +msgstr "Условная зависимость от пакета package:devel/py-enum-compat[] в зависимости от версии Python." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3614 +#, no-wrap +msgid "`PY_PATHLIB`" +msgstr "`PY_PATHLIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3616 +#, no-wrap +msgid "Conditional dependency on package:devel/py-pathlib[] depending on the Python version." +msgstr "Условная зависимость от пакета package:devel/py-pathlib[] в зависимости от версии Python." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3617 +#, no-wrap +msgid "`PY_IPADDRESS`" +msgstr "`PY_IPADDRESS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3619 +#, no-wrap +msgid "Conditional dependency on package:net/py-ipaddress[] depending on the Python version." +msgstr "Условная зависимость от пакета package:net/py-ipaddress[] в зависимости от версии Python." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3620 +#, no-wrap +msgid "`PY_FUTURES`" +msgstr "`PY_FUTURES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3621 +#, no-wrap +msgid "Conditional dependency on package:devel/py-futures[] depending on the Python version." +msgstr "Условная зависимость от пакета package:devel/py-futures[] в зависимости от версии Python." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3624 +msgid "" +"A complete list of available variables can be found in [.filename]#/usr/" +"ports/Mk/Uses/python.mk#." +msgstr "" +"Полный список доступных переменных можно найти в [.filename]#/usr/ports/Mk/" +"Uses/python.mk#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3629 +msgid "" +"All dependencies to Python ports using crossref:flavors[flavors-auto-" +"python,Python flavors] (either with `USE_PYTHON=distutils` or " +"`USE_PYTHON=flavors`) must have the Python flavor appended to their origin " +"using `@${PY_FLAVOR}`. See crossref:special[python-Makefile,Makefile for a " +"Simple Python Module]." +msgstr "" +"Все зависимости для портов Python, использующих crossref:flavors[flavors-" +"auto-python,флейворы Python] (с `USE_PYTHON=distutils` или " +"`USE_PYTHON=flavors`), должны иметь флейвор Python, добавленную к их origin " +"с помощью `@${PY_FLAVOR}`. См. crossref:special[python-Makefile,Makefile для " +"простого модуля Python]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3632 +#, no-wrap +msgid "Makefile for a Simple Python Module" +msgstr "Makefile для Простого Модуля Python" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3640 +#, no-wrap +msgid "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\tdevel\n" +msgstr "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\tdevel\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3644 +#, no-wrap +msgid "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tPython sample module\n" +"WWW=\t\thttps://example.com/project/sample/\n" +msgstr "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tPython sample module\n" +"WWW=\t\thttps://example.com/project/sample/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3646 +#, no-wrap +msgid "RUN_DEPENDS=\t${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}\n" +msgstr "RUN_DEPENDS=\t${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3649 +#, no-wrap +msgid "" +"USES=\t\tpython\n" +"USE_PYTHON=\tautoplist distutils\n" +msgstr "" +"USES=\t\tpython\n" +"USE_PYTHON=\tautoplist distutils\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3659 +msgid "" +"Some Python applications claim to have `DESTDIR` support (which would be " +"required for staging) but it is broken (Mailman up to 2.1.16, for " +"instance). This can be worked around by recompiling the scripts. This can " +"be done, for example, in the `post-build` target. Assuming the Python " +"scripts are supposed to reside in `PYTHONPREFIX_SITELIBDIR` after " +"installation, this solution can be applied:" +msgstr "" +"Некоторые приложения на Python заявляют о поддержке `DESTDIR` (что " +"необходимо для промежуточной сборки), но она не работает (например, Mailman " +"до версии 2.1.16). Это можно обойти, перекомпилировав скрипты. Это можно " +"сделать, например, в цели `post-build`. Предполагая, что Python-скрипты " +"должны находиться в `PYTHONPREFIX_SITELIBDIR` после установки, можно " +"применить следующее решение:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3665 +#, no-wrap +msgid "" +"(cd ${STAGEDIR}${PREFIX} \\\n" +" && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \\\n" +" -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})\n" +msgstr "" +"(cd ${STAGEDIR}${PREFIX} \\\n" +" && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \\\n" +" -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3668 +msgid "" +"This recompiles the sources with a path relative to the stage directory, and " +"prepends the value of `PREFIX` to the file name recorded in the byte-" +"compiled output file by `-d`. `-f` is required to force recompilation, and " +"the `:S;${PREFIX}/;;` strips prefixes from the value of " +"`PYTHONPREFIX_SITELIBDIR` to make it relative to `PREFIX`." +msgstr "" +"Это перекомпилирует исходники с путём, относительным к stage-директории, и " +"добавляет значение `PREFIX` к имени файла, записанному в байт-" +"компилированном выходном файле с помощью `-d`. `-f` требуется для " +"принудительной перекомпиляции, а `:S;${PREFIX}/;;` удаляет префиксы из " +"значения `PYTHONPREFIX_SITELIBDIR`, чтобы сделать его относительным к " +"`PREFIX`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3670 +#, no-wrap +msgid "Using Tcl/Tk" +msgstr "Использование Tcl/Tk" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3675 +msgid "" +"The Ports Collection supports parallel installation of multiple Tcl/Tk " +"versions. Ports should try to support at least the default Tcl/Tk version " +"and higher with `USES=tcl`. It is possible to specify the desired version " +"of `tcl` by appending `:_xx_`, for example, `USES=tcl:85`." +msgstr "" +"Коллекция Ports поддерживает параллельную установку нескольких версий Tcl/" +"Tk. Порты должны стараться поддерживать как минимум версию Tcl/Tk по " +"умолчанию и выше с помощью `USES=tcl`. Можно указать желаемую версию `tcl`, " +"добавив `:_xx_`, например, `USES=tcl:85`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3677 +#, no-wrap +msgid "The Most Useful Read-Only Variables for Ports That Use Tcl/Tk" +msgstr "Самые полезные переменные только для чтения для портов, использующих Tcl/Tk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3681 +#, no-wrap +msgid "`TCL_VER`" +msgstr "`TCL_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3683 +#, no-wrap +msgid "chosen major.minor version of Tcl" +msgstr "выбранная версия Tcl major.minor" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3684 +#, no-wrap +msgid "`TCLSH`" +msgstr "`TCLSH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3686 +#, no-wrap +msgid "full path of the Tcl interpreter" +msgstr "полный путь к интерпретатору Tcl" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3687 +#, no-wrap +msgid "`TCL_LIBDIR`" +msgstr "`TCL_LIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3689 +#, no-wrap +msgid "path of the Tcl libraries" +msgstr "путь к библиотекам Tcl" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3690 +#, no-wrap +msgid "`TCL_INCLUDEDIR`" +msgstr "`TCL_INCLUDEDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3692 +#, no-wrap +msgid "path of the Tcl C header files" +msgstr "путь к заголовочным файлам Tcl C" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3693 +#, no-wrap +msgid "`TCL_PKG_LIB_PREFIX`" +msgstr "`TCL_PKG_LIB_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3695 +#, no-wrap +msgid "Library prefix, as per TIP595" +msgstr "Префикс библиотеки, согласно TIP595" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3696 +#, no-wrap +msgid "`TCL_PKG_STUB_POSTFIX`" +msgstr "`TCL_PKG_STUB_POSTFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3698 +#, no-wrap +msgid "Stub library postfix" +msgstr "Заглушка библиотеки postfix" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3699 +#, no-wrap +msgid "`TK_VER`" +msgstr "`TK_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3701 +#, no-wrap +msgid "chosen major.minor version of Tk" +msgstr "выбранная версия Tk major.minor" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3702 +#, no-wrap +msgid "`WISH`" +msgstr "`WISH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3704 +#, no-wrap +msgid "full path of the Tk interpreter" +msgstr "полный путь к интерпретатору Tk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3705 +#, no-wrap +msgid "`TK_LIBDIR`" +msgstr "`TK_LIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3707 +#, no-wrap +msgid "path of the Tk libraries" +msgstr "путь к библиотекам Tk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3708 +#, no-wrap +msgid "`TK_INCLUDEDIR`" +msgstr "`TK_INCLUDEDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3709 +#, no-wrap +msgid "path of the Tk C header files" +msgstr "путь к заголовочным файлам Tk C" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3713 +msgid "" +"See the crossref:uses[uses-tcl,`USES=tcl`] and crossref:uses[uses-" +"tk,`USES=tk`] of crossref:uses[uses,Using `USES` Macros] for a full " +"description of those variables. A complete list of those variables is " +"available in [.filename]#/usr/ports/Mk/Uses/tcl.mk#." +msgstr "" +"См. crossref:uses[uses-tcl,`USES=tcl`] и crossref:uses[uses-tk,`USES=tk`] в " +"crossref:uses[uses,Использование макросов `USES`] для полного описания этих " +"переменных. Полный список этих переменных доступен в [.filename]#/usr/ports/" +"Mk/Uses/tcl.mk#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3715 +#, no-wrap +msgid "Using SDL" +msgstr "Использование SDL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3718 +msgid "" +"`USE_SDL` is used to autoconfigure the dependencies for ports which use an " +"SDL based library like package:devel/sdl12[] and package:graphics/" +"sdl_image[]." +msgstr "" +"`USE_SDL` используется для автоматической настройки зависимостей для портов, " +"которые используют библиотеку на основе SDL, такие как package:devel/sdl12[] " +"и package:graphics/sdl_image[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3720 +msgid "These SDL libraries for version 1.2 are recognized:" +msgstr "Эти библиотеки SDL для версии 1.2 распознаются:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3722 +msgid "sdl: package:devel/sdl12[]" +msgstr "sdl: package:devel/sdl12[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3723 +msgid "console: package:devel/sdl_console[]" +msgstr "console: package:devel/sdl_console[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3724 +msgid "gfx: package:graphics/sdl_gfx[]" +msgstr "gfx: package:graphics/sdl_gfx[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3725 +msgid "image: package:graphics/sdl_image[]" +msgstr "image: package:graphics/sdl_image[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3726 +msgid "mixer: package:audio/sdl_mixer[]" +msgstr "mixer: package:audio/sdl_mixer[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3727 +msgid "mm: package:devel/sdlmm[]" +msgstr "mm: package:devel/sdlmm[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3728 +msgid "net: package:net/sdl_net[]" +msgstr "net: package:net/sdl_net[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3729 +msgid "pango: package:x11-toolkits/sdl_pango[]" +msgstr "pango: package:x11-toolkits/sdl_pango[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3730 +msgid "sound: package:audio/sdl_sound[]" +msgstr "sound: package:audio/sdl_sound[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3731 +msgid "ttf: package:graphics/sdl_ttf[]" +msgstr "ttf: package:graphics/sdl_ttf[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3733 +msgid "These SDL libraries for version 2.0 are recognized:" +msgstr "Эти библиотеки SDL для версии 2.0 распознаются:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3735 +msgid "sdl: package:devel/sdl20[]" +msgstr "sdl: package:devel/sdl20[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3736 +msgid "gfx: package:graphics/sdl2_gfx[]" +msgstr "gfx: package:graphics/sdl2_gfx[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3737 +msgid "image: package:graphics/sdl2_image[]" +msgstr "image: package:graphics/sdl2_image[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3738 +msgid "mixer: package:audio/sdl2_mixer[]" +msgstr "mixer: package:audio/sdl2_mixer[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3739 +msgid "net: package:net/sdl2_net[]" +msgstr "net: package:net/sdl2_net[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3740 +msgid "ttf: package:graphics/sdl2_ttf[]" +msgstr "ttf: package:graphics/sdl2_ttf[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3742 +msgid "" +"Therefore, if a port has a dependency on package:net/sdl_net[] and " +"package:audio/sdl_mixer[], the syntax will be:" +msgstr "" +"Следовательно, если порт зависит от package:net/sdl_net[] и package:audio/" +"sdl_mixer[], синтаксис будет следующим:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3746 +#, no-wrap +msgid "USE_SDL=\tnet mixer\n" +msgstr "USE_SDL=\tnet mixer\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3749 +msgid "" +"The dependency package:devel/sdl12[], which is required by package:net/" +"sdl_net[] and package:audio/sdl_mixer[], is automatically added as well." +msgstr "" +"Пакет зависимости package:devel/sdl12[], который требуется для package:net/" +"sdl_net[] и package:audio/sdl_mixer[], также автоматически добавляется." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3751 +msgid "Using `USE_SDL` with entries for SDL 1.2, it will automatically:" +msgstr "Использование `USE_SDL` с указанием SDL 1.2 автоматически:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3753 +msgid "Add a dependency on sdl12-config to `BUILD_DEPENDS`" +msgstr "Добавить зависимость от sdl12-config в `BUILD_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3754 +msgid "Add the variable `SDL_CONFIG` to `CONFIGURE_ENV`" +msgstr "Добавьте переменную `SDL_CONFIG` в `CONFIGURE_ENV`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3755 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3761 +msgid "Add the dependencies of the selected libraries to `LIB_DEPENDS`" +msgstr "Добавьте зависимости выбранных библиотек в `LIB_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3757 +msgid "Using `USE_SDL` with entries for SDL 2.0, it will automatically:" +msgstr "Используя `USE_SDL` с записями для SDL 2.0, это автоматически:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3759 +msgid "Add a dependency on sdl2-config to `BUILD_DEPENDS`" +msgstr "Добавить зависимость от sdl2-config в `BUILD_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3760 +msgid "Add the variable `SDL2_CONFIG` to `CONFIGURE_ENV`" +msgstr "Добавьте переменную `SDL2_CONFIG` в `CONFIGURE_ENV`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3764 +#, no-wrap +msgid "Using wxWidgets" +msgstr "Использование wxWidgets" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3767 +msgid "" +"This section describes the status of the wxWidgets libraries in the ports " +"tree and its integration with the ports system." +msgstr "" +"Этот раздел описывает состояние библиотек wxWidgets в дереве портов и их " +"интеграцию с системой портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3773 +msgid "" +"There are many versions of the wxWidgets libraries which conflict between " +"them (install files under the same name). In the ports tree this problem " +"has been solved by installing each version under a different name using " +"version number suffixes." +msgstr "" +"Существует множество версий библиотек wxWidgets, которые конфликтуют между " +"собой (устанавливают файлы с одинаковыми именами). В дереве портов эта " +"проблема решена путем установки каждой версии под разными именами с " +"использованием суффиксов номеров версий." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3779 +msgid "" +"The obvious disadvantage of this is that each application has to be modified " +"to find the expected version. Fortunately, most of the applications call " +"the `wx-config` script to determine the necessary compiler and linker " +"flags. The script is named differently for every available version. " +"Majority of applications respect an environment variable, or accept a " +"configure argument, to specify which `wx-config` script to call. Otherwise " +"they have to be patched." +msgstr "" +"Очевидный недостаток этого подхода заключается в том, что каждое приложение " +"необходимо модифицировать для поиска нужной версии. К счастью, большинство " +"приложений вызывают скрипт `wx-config` для определения необходимых флагов " +"компилятора и компоновщика. Имя этого скрипта отличается для каждой " +"доступной версии. Большинство приложений учитывают переменную окружения или " +"принимают аргумент configure, чтобы указать, какой скрипт `wx-config` " +"вызывать. В противном случае их необходимо патчить." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3781 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4082 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4301 +#, no-wrap +msgid "Version Selection" +msgstr "Выбор версии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3784 +msgid "" +"To make the port use a specific version of wxWidgets there are two variables " +"available for defining (if only one is defined the other will be set to a " +"default value):" +msgstr "" +"Чтобы порт использовал определённую версию wxWidgets, доступны две " +"переменные для определения (если задана только одна, другая будет " +"установлена в значение по умолчанию):" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3786 +#, no-wrap +msgid "Variables to Select wxWidgets Versions" +msgstr "Переменные для выбора версий wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3793 +#, no-wrap +msgid "Default value" +msgstr "Значение по умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3794 +#, no-wrap +msgid "`USE_WX`" +msgstr "`USE_WX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3795 +#, no-wrap +msgid "List of versions the port can use" +msgstr "Список версий, которые порт может использовать" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3797 +#, no-wrap +msgid "All available versions" +msgstr "Все доступные версии" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3798 +#, no-wrap +msgid "`USE_WX_NOT`" +msgstr "`USE_WX_NOT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3799 +#, no-wrap +msgid "List of versions the port cannot use" +msgstr "Список версий, которые порт не может использовать" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3800 +#, no-wrap +msgid "None" +msgstr "Ничего" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3803 +msgid "" +"The available wxWidgets versions and the corresponding ports in the tree are:" +msgstr "Доступные версии wxWidgets и соответствующие порты в дереве:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3805 +#, no-wrap +msgid "Available wxWidgets Versions" +msgstr "Доступные версии wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3809 +#, no-wrap +msgid "Version" +msgstr "Версия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3811 +#, no-wrap +msgid "Port" +msgstr "Порт" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3812 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3830 +#, no-wrap +msgid "`2.8`" +msgstr "`2.8`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3814 +#, no-wrap +msgid "package:x11-toolkits/wxgtk28[]" +msgstr "package:x11-toolkits/wxgtk28[]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3815 +#, no-wrap +msgid "`3.0`" +msgstr "`3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3816 +#, no-wrap +msgid "package:x11-toolkits/wxgtk30[]" +msgstr "package:x11-toolkits/wxgtk30[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3819 +msgid "" +"The variables in crossref:special[wx-ver-sel-table,Variables to Select " +"wxWidgets Versions] can be set to one or more of these combinations " +"separated by spaces:" +msgstr "" +"Переменные в crossref:special[wx-ver-sel-table,Переменные для выбора версий " +"wxWidgets] могут быть установлены в одну или несколько комбинаций, " +"разделенных пробелами:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3821 +#, no-wrap +msgid "wxWidgets Version Specifications" +msgstr "Спецификации версий wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3827 +#, no-wrap +msgid "Example" +msgstr "Пример" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3828 +#, no-wrap +msgid "Single version" +msgstr "Единственная версия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3831 +#, no-wrap +msgid "Ascending range" +msgstr "Возрастающий диапазон" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3833 +#, no-wrap +msgid "`2.8+`" +msgstr "`2.8+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3834 +#, no-wrap +msgid "Descending range" +msgstr "Нисходящий диапазон" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3836 +#, no-wrap +msgid "`3.0-`" +msgstr "`3.0-`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3837 +#, no-wrap +msgid "Full range (must be ascending)" +msgstr "Полный диапазон (должен быть возрастающим)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3838 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3881 +#, no-wrap +msgid "`2.8-3.0`" +msgstr "`2.8-3.0`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3842 +msgid "" +"There are also some variables to select the preferred versions from the " +"available ones. They can be set to a list of versions, the first ones will " +"have higher priority." +msgstr "" +"Существуют также переменные для выбора предпочтительных версий из доступных. " +"Их можно установить в виде списка версий, где первые будут иметь более " +"высокий приоритет." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3843 +#, no-wrap +msgid "Variables to Select Preferred wxWidgets Versions" +msgstr "Переменные для выбора предпочтительных версий wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3849 +#, no-wrap +msgid "Designed for" +msgstr "Предназначен для" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3850 +#, no-wrap +msgid "`WANT_WX_VER`" +msgstr "`WANT_WX_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3852 +#, no-wrap +msgid "the port" +msgstr "порт" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3853 +#, no-wrap +msgid "`WITH_WX_VER`" +msgstr "`WITH_WX_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3854 +#, no-wrap +msgid "the user" +msgstr "пользователь" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3861 +msgid "" +"There are other applications that, while not being wxWidgets libraries, are " +"related to them. These applications can be specified in `WX_COMPS`. These " +"components are available:" +msgstr "" +"Существуют другие приложения, которые, не являясь библиотеками wxWidgets, " +"связаны с ними. Эти приложения можно указать в `WX_COMPS`. Доступны " +"следующие компоненты:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3863 +#, no-wrap +msgid "Available wxWidgets Components" +msgstr "Доступные компоненты wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3870 +#, no-wrap +msgid "Version restriction" +msgstr "Ограничение версии" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3871 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3914 +#, no-wrap +msgid "`wx`" +msgstr "`wx`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3872 +#, no-wrap +msgid "main library" +msgstr "основная библиотека" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3874 +#, no-wrap +msgid "none" +msgstr "none" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3875 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3917 +#, no-wrap +msgid "`contrib`" +msgstr "`contrib`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3876 +#, no-wrap +msgid "contributed libraries" +msgstr "сторонние библиотеки" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3878 +#, no-wrap +msgid "`none`" +msgstr "`none`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3879 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3920 +#, no-wrap +msgid "`python`" +msgstr "`python`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3880 +#, no-wrap +msgid "wxPython (Python bindings)" +msgstr "wxPython (интерфейс Python)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3886 +msgid "" +"The dependency type can be selected for each component by adding a suffix " +"separated by a semicolon. If not present then a default type will be used " +"(see crossref:special[wx-def-dep-types,Default wxWidgets Dependency " +"Types]). These types are available:" +msgstr "" +"Тип зависимости может быть выбран для каждого компонента путем добавления " +"суффикса, разделенного точкой с запятой. Если он отсутствует, будет " +"использоваться тип по умолчанию (см. crossref:special[wx-def-dep-types,Типы " +"зависимостей wxWidgets по умолчанию]). Доступны следующие типы:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3888 +#, no-wrap +msgid "Available wxWidgets Dependency Types" +msgstr "Доступные типы зависимостей wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3895 +#, no-wrap +msgid "`build`" +msgstr "`build`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3897 +#, no-wrap +msgid "Component is required for building, equivalent to `BUILD_DEPENDS`" +msgstr "Компонент необходим для сборки, эквивалентен `BUILD_DEPENDS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3898 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3922 +#, no-wrap +msgid "`run`" +msgstr "`run`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3900 +#, no-wrap +msgid "Component is required for running, equivalent to `RUN_DEPENDS`" +msgstr "Компонент необходим для запуска, эквивалентно `RUN_DEPENDS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3901 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3916 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3919 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3925 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3927 +#, no-wrap +msgid "`lib`" +msgstr "`lib`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3902 +#, no-wrap +msgid "Component is required for building and running, equivalent to `LIB_DEPENDS`" +msgstr "Компонент необходим для сборки и запуска, эквивалентен `LIB_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3905 +msgid "The default values for the components are detailed in this table:" +msgstr "Значения по умолчанию для компонентов подробно описаны в этой таблице:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3907 +#, no-wrap +msgid "Default wxWidgets Dependency Types" +msgstr "Типы зависимостей wxWidgets по умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3913 +#, no-wrap +msgid "Dependency type" +msgstr "Тип зависимости" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3923 +#, no-wrap +msgid "`mozilla`" +msgstr "`mozilla`" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3930 +#, no-wrap +msgid "Selecting wxWidgets Components" +msgstr "Выбор компонентов wxWidgets" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3934 +msgid "" +"This fragment corresponds to a port which uses wxWidgets version `2.4` and " +"its contributed libraries." +msgstr "" +"Этот фрагмент соответствует порту, который использует wxWidgets версии `2.4` " +"и дополнительные библиотеки." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3939 +#, no-wrap +msgid "" +"USE_WX=\t\t2.8\n" +"WX_COMPS=\twx contrib\n" +msgstr "" +"USE_WX=\t\t2.8\n" +"WX_COMPS=\twx contrib\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3944 +#, no-wrap +msgid "Detecting Installed Versions" +msgstr "Обнаружение установленных версий" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3949 +msgid "" +"To detect an installed version, define `WANT_WX`. If it is not set to a " +"specific version then the components will have a version suffix. `HAVE_WX` " +"will be filled after detection." +msgstr "" +"Для определения установленной версии определите `WANT_WX`. Если значение не " +"задано для конкретной версии, компоненты будут иметь суффикс версии. " +"`HAVE_WX` будет заполнен после обнаружения." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3951 +#, no-wrap +msgid "Detecting Installed wxWidgets Versions and Components" +msgstr "Обнаружение установленных версий и компонентов wxWidgets" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3955 +msgid "" +"This fragment can be used in a port that uses wxWidgets if it is installed, " +"or an option is selected." +msgstr "" +"Этот фрагмент может использоваться в порте, который использует wxWidgets, " +"если они установлены или выбран соответствующий параметр." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3959 +#, no-wrap +msgid "WANT_WX=\tyes\n" +msgstr "WANT_WX=\tyes\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3961 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3977 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4030 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4620 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3966 +#, no-wrap +msgid "" +".if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.8)\n" +"USE_WX=\t\t\t2.8\n" +"CONFIGURE_ARGS+=\t--enable-wx\n" +".endif\n" +msgstr "" +".if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.8)\n" +"USE_WX=\t\t\t2.8\n" +"CONFIGURE_ARGS+=\t--enable-wx\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3969 +msgid "" +"This fragment can be used in a port that enables wxPython support if it is " +"installed or if an option is selected, in addition to wxWidgets, both " +"version `2.8`." +msgstr "" +"Этот фрагмент может использоваться в порте, который включает поддержку " +"wxPython, если она установлена или выбрана соответствующая опция, в " +"дополнение к wxWidgets, обе версии `2.8`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3975 +#, no-wrap +msgid "" +"USE_WX=\t\t2.8\n" +"WX_COMPS=\twx\n" +"WANT_WX=\t2.8\n" +msgstr "" +"USE_WX=\t\t2.8\n" +"WX_COMPS=\twx\n" +"WANT_WX=\t2.8\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3982 +#, no-wrap +msgid "" +".if defined(WITH_WXPYTHON) || !empty(PORT_OPTIONS:MWXPYTHON) || !empty(HAVE_WX:Mpython)\n" +"WX_COMPS+=\t\tpython\n" +"CONFIGURE_ARGS+=\t--enable-wxpython\n" +".endif\n" +msgstr "" +".if defined(WITH_WXPYTHON) || !empty(PORT_OPTIONS:MWXPYTHON) || !empty(HAVE_WX:Mpython)\n" +"WX_COMPS+=\t\tpython\n" +"CONFIGURE_ARGS+=\t--enable-wxpython\n" +".endif\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3987 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4157 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4392 +#, no-wrap +msgid "Defined Variables" +msgstr "Переменные, определенные в фреймворке" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3990 +msgid "" +"These variables are available in the port (after defining one from " +"crossref:special[wx-ver-sel-table,Variables to Select wxWidgets Versions])." +msgstr "" +"Эти переменные доступны в порте (после определения одной из " +"crossref:special[wx-ver-sel-table,переменных для выбора версий wxWidgets])." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3992 +#, no-wrap +msgid "Variables Defined for Ports That Use wxWidgets" +msgstr "Переменные, определенные для портов, использующих wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3999 +#, no-wrap +msgid "`WX_CONFIG`" +msgstr "`WX_CONFIG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4001 +#, no-wrap +msgid "The path to the wxWidgets`wx-config` script (with different name)" +msgstr "Путь к скрипту `wx-config` wxWidgets (с другим именем)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4002 +#, no-wrap +msgid "`WXRC_CMD`" +msgstr "`WXRC_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4004 +#, no-wrap +msgid "The path to the wxWidgets`wxrc` program (with different name)" +msgstr "Путь к программе `wxrc` wxWidgets (с другим именем)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4005 +#, no-wrap +msgid "`WX_VERSION`" +msgstr "`WX_VERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4006 +#, no-wrap +msgid "The wxWidgets version that is going to be used (for example, `2.6`)" +msgstr "Версия wxWidgets, которая будет использоваться (например, `2.6`)" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4009 +#, no-wrap +msgid "Processing in [.filename]#bsd.port.pre.mk#" +msgstr "Обработка в [.filename]#bsd.port.pre.mk#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4012 +msgid "" +"Define `WX_PREMK` to be able to use the variables right after including " +"[.filename]#bsd.port.pre.mk#." +msgstr "" +"Определите `WX_PREMK`, чтобы иметь возможность использовать переменные сразу " +"после включения [.filename]#bsd.port.pre.mk#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4016 +msgid "" +"When defining `WX_PREMK`, then the version, dependencies, components and " +"defined variables will not change if modifying the wxWidgets port variables " +"_after_ including [.filename]#bsd.port.pre.mk#." +msgstr "" +"При определении `WX_PREMK` версия, зависимости, компоненты и определенные " +"переменные не изменятся при модификации переменных порта wxWidgets _после_ " +"включения [.filename]#bsd.port.pre.mk#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4019 +#, no-wrap +msgid "Using wxWidgets Variables in Commands" +msgstr "Использование переменных wxWidgets в командах" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4023 +msgid "" +"This fragment illustrates the use of `WX_PREMK` by running the `wx-config` " +"script to obtain the full version string, assign it to a variable and pass " +"it to the program." +msgstr "" +"Этот фрагмент иллюстрирует использование `WX_PREMK` путем запуска скрипта " +"`wx-config` для получения полной строки версии, присвоения её переменной и " +"передачи в программу." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4028 +#, no-wrap +msgid "" +"USE_WX=\t\t2.8\n" +"WX_PREMK=\tyes\n" +msgstr "" +"USE_WX=\t\t2.8\n" +"WX_PREMK=\tyes\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4033 +#, no-wrap +msgid "" +".if exists(${WX_CONFIG})\n" +"VER_STR!=\t${WX_CONFIG} --release\n" +msgstr "" +".if exists(${WX_CONFIG})\n" +"VER_STR!=\t${WX_CONFIG} --release\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4036 +#, no-wrap +msgid "" +"PLIST_SUB+=\tVERSION=\"${VER_STR}\"\n" +".endif\n" +msgstr "" +"PLIST_SUB+=\tVERSION=\"${VER_STR}\"\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4043 +msgid "" +"The wxWidgets variables can be safely used in commands when they are inside " +"targets without the need of `WX_PREMK`." +msgstr "" +"Переменные wxWidgets можно безопасно использовать в командах внутри целей " +"без необходимости в `WX_PREMK`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4046 +#, no-wrap +msgid "Additional `configure` Arguments" +msgstr "Дополнительные параметры `configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4049 +msgid "" +"Some GNU `configure` scripts cannot find wxWidgets with just the `WX_CONFIG` " +"environment variable set, requiring additional arguments. `WX_CONF_ARGS` can " +"be used for provide them." +msgstr "" +"Некоторые скрипты GNU `configure` не могут найти wxWidgets, если задана " +"только переменная окружения `WX_CONFIG`, и требуют дополнительные параметры. " +"`WX_CONF_ARGS` можно использовать для их указания." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4051 +#, no-wrap +msgid "Legal Values for `WX_CONF_ARGS`" +msgstr "Допустимые значения для `WX_CONF_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4055 +#, no-wrap +msgid "Possible value" +msgstr "Возможное значение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4057 +#, no-wrap +msgid "Resulting argument" +msgstr "Получаемый параметр" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4058 +#, no-wrap +msgid "`absolute`" +msgstr "`absolute`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4060 +#, no-wrap +msgid "`--with-wx-config=${WX_CONFIG}`" +msgstr "`--with-wx-config=${WX_CONFIG}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4061 +#, no-wrap +msgid "`relative`" +msgstr "`relative`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4062 +#, no-wrap +msgid "`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}`" +msgstr "`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4065 +#, no-wrap +msgid "Using Lua" +msgstr "Использование Lua" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4068 +msgid "" +"This section describes the status of the Lua libraries in the ports tree and " +"its integration with the ports system." +msgstr "" +"Этот раздел описывает состояние библиотек Lua в дереве портов и их " +"интеграцию с системой портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4074 +msgid "" +"There are many versions of the Lua libraries and corresponding interpreters, " +"which conflict between them (install files under the same name). In the " +"ports tree this problem has been solved by installing each version under a " +"different name using version number suffixes." +msgstr "" +"Существует множество версий библиотек Lua и соответствующих интерпретаторов, " +"которые конфликтуют между собой (устанавливают файлы с одинаковыми именами). " +"В дереве портов эта проблема решена установкой каждой версии под разными " +"именами с использованием суффиксов номеров версий." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4077 +msgid "" +"The obvious disadvantage of this is that each application has to be modified " +"to find the expected version. But it can be solved by adding some " +"additional flags to the compiler and linker." +msgstr "" +"Очевидный недостаток этого заключается в том, что каждое приложение " +"необходимо модифицировать для поиска ожидаемой версии. Однако это можно " +"решить, добавив дополнительные флаги компилятору и компоновщику." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4080 +msgid "" +"Applications that use Lua should normally build for just one version. " +"However, loadable modules for Lua are built in a separate flavor for each " +"Lua version that they support, and dependencies on such modules should " +"specify the flavor using the `@${LUA_FLAVOR}` suffix on the port origin." +msgstr "" +"Приложения, использующие Lua, обычно должны собираться только для одной " +"версии. Однако загружаемые модули для Lua собираются в отдельных флейворах " +"для каждой поддерживаемой версии Lua, и зависимости от таких модулей должны " +"указывать флейвор с использованием суффикса `@${LUA_FLAVOR}` в расположении " +"(origin) порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4085 +msgid "A port using Lua should have a line of this form:" +msgstr "Порт, использующий Lua, должен содержать строку следующего вида:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4089 +#, no-wrap +msgid "USES=\tlua\n" +msgstr "USES=\tlua\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4094 +msgid "" +"If a specific version of Lua, or range of versions, is needed, it can be " +"specified as a parameter in the form `XY` (which may be used multiple " +"times), `XY+`, `-XY`, or `XY-ZA`. The default version of Lua as set via " +"`DEFAULT_VERSIONS` will be used if it falls in the requested range, " +"otherwise the closest requested version to the default will be used. For " +"example:" +msgstr "" +"Если требуется определённая версия Lua или диапазон версий, его можно " +"указать в виде параметра `XY` (который можно использовать несколько раз), " +"`XY+`, `-XY` или `XY-ZA`. Версия Lua, установленная через " +"`DEFAULT_VERSIONS`, будет использована, если она попадает в запрошенный " +"диапазон, в противном случае будет использована ближайшая к умолчанию " +"запрошенная версия. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4098 +#, no-wrap +msgid "USES=\tlua:52-53\n" +msgstr "USES=\tlua:52-53\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4101 +msgid "" +"Note that no attempt is made to adjust the version selection based on the " +"presence of any already-installed Lua version." +msgstr "" +"Обратите внимание, что не предпринимается попытка изменить выбор версии на " +"основе наличия любой уже установленной версии Lua." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4106 +msgid "" +"The `XY+` form of version specification should not be used without careful " +"consideration; the Lua API changes to some extent in every version, and " +"configuration tools like CMake or Autoconf will often fail to work on future " +"versions of Lua until updated to do so." +msgstr "" +"Форма указания версии `XY+` не должна использоваться без тщательного " +"обдумывания; Lua API в некоторой степени меняется с каждой версией, и " +"инструменты конфигурации, такие как CMake или Autoconf, скорее всего не " +"будут работать с будущими версиями Lua, пока не будут обновлены для этого." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4109 +#, no-wrap +msgid "Configuration and Compiler flags" +msgstr "Конфигурация и флаги компилятора" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4114 +msgid "" +"Software that uses Lua may have been written to auto-detect the Lua version " +"in use. In general ports should override this assumption, and force the use " +"of the specific Lua version selected as described above. Depending on the " +"software being ported, this might require any or all of:" +msgstr "" +"Программное обеспечение, использующее Lua, может быть написано с " +"автоматическим определением версии Lua в использовании. В общем случае порты " +"должны переопределять это предположение и принудительно использовать " +"конкретную выбранную версию Lua, как описано выше. В зависимости от " +"портируемого программного обеспечения, это может потребовать любого или всех " +"из следующих действий:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4116 +msgid "" +"Using `LUA_VER` as part of a parameter to the software's configuration " +"script via `CONFIGURE_ARGS` or `CONFIGURE_ENV` (or equivalent for other " +"build systems);" +msgstr "" +"Использование `LUA_VER` в качестве части параметра для скрипта конфигурации " +"программного обеспечения через `CONFIGURE_ARGS` или `CONFIGURE_ENV` (или " +"эквивалентные для других систем сборки);" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4117 +msgid "" +"Adding `-I${LUA_INCDIR}`, `-L${LUA_LIBDIR}`, and `-llua-${LUA_VER}` to " +"`CFLAGS`, `LDFLAGS`, `LIBS` respectively as appropriate;" +msgstr "" +"Добавление `-I${LUA_INCDIR}`, `-L${LUA_LIBDIR}` и `-llua-${LUA_VER}` в " +"`CFLAGS`, `LDFLAGS` и `LIBS` соответственно, где это необходимо;" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4118 +msgid "" +"Patch the software's configuration or build files to select the correct " +"version." +msgstr "" +"Исправьте конфигурационные или файлы сборки программного обеспечения, чтобы " +"выбрать правильную версию." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4121 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4365 +#, no-wrap +msgid "Version Flavors" +msgstr "Флейворы версии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4125 +msgid "" +"A port which installs a Lua module (rather than an application that simply " +"makes use of Lua) should build a separate flavor for each supported Lua " +"version. This is done by adding the `module` parameter:" +msgstr "" +"Порт, который устанавливает модуль Lua (а не приложение, просто использующее " +"Lua), должен собирать отдельный флейвор для каждой поддерживаемой версии " +"Lua. Это делается путем добавления параметра `module`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4129 +#, no-wrap +msgid "USES=\tlua:module\n" +msgstr "USES=\tlua:module\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4132 +msgid "" +"A version number or range of versions can be specified as well; use a comma " +"to separate parameters." +msgstr "" +"Так же может быть указае номер версии или диапазон версий. Используйте " +"запятую для разделения параметров." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4134 +msgid "" +"Since each flavor must have a different package name, the variable " +"`LUA_PKGNAMEPREFIX` is provided which will be set to an appropriate value; " +"the intended usage is:" +msgstr "" +"Поскольку каждый флейвор должен иметь уникальное имя пакета, предоставляется " +"переменная `LUA_PKGNAMEPREFIX`, которая будет установлена в соответствующее " +"значение; предполагаемое использование:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4138 +#, no-wrap +msgid "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" +msgstr "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4142 +msgid "" +"Module ports should normally install files only to `LUA_MODLIBDIR`, " +"`LUA_MODSHAREDIR`, `LUA_DOCSDIR`, and `LUA_EXAMPLESDIR`, all of which are " +"set up to refer to version-specific subdirectories. Installing any other " +"files must be done with care to avoid conflicts between versions." +msgstr "" +"Модульные порты обычно должны устанавливать файлы только в `LUA_MODLIBDIR`, " +"`LUA_MODSHAREDIR`, `LUA_DOCSDIR` и `LUA_EXAMPLESDIR`, все из которых " +"настроены на ссылки в версионно-зависимые подкаталоги. Установка любых " +"других файлов должна выполняться с осторожностью, чтобы избежать конфликтов " +"между версиями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4144 +msgid "" +"A port (other than a Lua module) which wishes to build a separate package " +"for each Lua version should use the `flavors` parameter:" +msgstr "" +"Порт (кроме модуля Lua), который хочет собрать отдельный пакет для каждой " +"версии Lua, должен использовать параметр `flavors`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4148 +#, no-wrap +msgid "USES=\tlua:flavors\n" +msgstr "USES=\tlua:flavors\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4152 +msgid "" +"This operates the same way as the `module` parameter described above, but " +"without the assumption that the package should be documented as a Lua module " +"(so `LUA_DOCSDIR` and `LUA_EXAMPLESDIR` are not defined by default). " +"However, the port may choose to define `LUA_DOCSUBDIR` as a suitable " +"subdirectory name (usually the port's `PORTNAME` as long as this does not " +"conflict with the `PORTNAME` of any module), in which case the framework " +"will define both `LUA_DOCSDIR` and `LUA_EXAMPLESDIR`." +msgstr "" +"Это работает так же, как параметр `module`, описанный выше, но без " +"предположения, что пакет должен быть задокументирован как модуль Lua " +"(поэтому `LUA_DOCSDIR` и `LUA_EXAMPLESDIR` по умолчанию не определены). " +"Однако порт может определить `LUA_DOCSUBDIR` как подходящее имя подкаталога " +"(обычно `PORTNAME` порта, если это не конфликтует с `PORTNAME` любого " +"модуля), и в этом случае фреймворк определит как `LUA_DOCSDIR`, так и " +"`LUA_EXAMPLESDIR`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4155 +msgid "" +"As with module ports, a flavored port should avoid installing files that " +"would conflict between versions. Typically this is done by adding " +"`LUA_VER_STR` as a suffix to program names (e.g. using crossref:uses[uses-" +"uniquefiles,`uniquefiles`]), and otherwise using either `LUA_VER` or " +"`LUA_VER_STR` as part of any other files or subdirectories used outside of " +"`LUA_MODLIBDIR` and `LUA_MODSHAREDIR`." +msgstr "" +"Как и в случае с модульными портами, порт с флейворами должен избегать " +"установки файлов, которые могут конфликтовать между версиями. Обычно это " +"достигается добавлением `LUA_VER_STR` в качестве суффикса к именам программ " +"(например, с использованием crossref:uses[uses-uniquefiles,`uniquefiles`]), " +"а также использованием `LUA_VER` или `LUA_VER_STR` в составе других файлов " +"или поддиректорий, используемых вне `LUA_MODLIBDIR` и `LUA_MODSHAREDIR`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4160 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4395 +msgid "These variables are available in the port." +msgstr "В порте доступны эти переменные." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4162 +#, no-wrap +msgid "Variables Defined for Ports That Use Lua" +msgstr "Переменные, определенные для портов, использующих Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4169 +#, no-wrap +msgid "`LUA_VER`" +msgstr "`LUA_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4171 +#, no-wrap +msgid "The Lua version that is going to be used (for example, `5.4`)" +msgstr "Версия Lua, которая будет использоваться (например, `5.4`)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4172 +#, no-wrap +msgid "`LUA_VER_STR`" +msgstr "`LUA_VER_STR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4174 +#, no-wrap +msgid "The Lua version without the dots (for example, `54`)" +msgstr "Версия Lua без точек (например, `54`)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4175 +#, no-wrap +msgid "`LUA_FLAVOR`" +msgstr "`LUA_FLAVOR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4177 +#, no-wrap +msgid "The flavor name corresponding to the selected Lua version, to be used for specifying dependencies" +msgstr "Имя флейвора, соответствующее выбранной версии Lua, используемое для указания зависимостей" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4178 +#, no-wrap +msgid "`LUA_BASE`" +msgstr "`LUA_BASE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4180 +#, no-wrap +msgid "The prefix that should be used to locate Lua (and components) that are already installed" +msgstr "Префикс, который должен использоваться для поиска Lua (и компонентов), уже установленных" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4181 +#, no-wrap +msgid "`LUA_PREFIX`" +msgstr "`LUA_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4183 +#, no-wrap +msgid "The prefix where Lua (and components) are to be installed by this port" +msgstr "Префикс, куда этим портом будут установлены Lua (и компоненты)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4184 +#, no-wrap +msgid "`LUA_INCDIR`" +msgstr "`LUA_INCDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4186 +#, no-wrap +msgid "The directory where Lua header files are installed" +msgstr "Каталог, в котором установлены заголовочные файлы Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4187 +#, no-wrap +msgid "`LUA_LIBDIR`" +msgstr "`LUA_LIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4189 +#, no-wrap +msgid "The directory where Lua libraries are installed" +msgstr "Каталог, в котором установлены библиотеки Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4190 +#, no-wrap +msgid "`LUA_REFMODLIBDIR`" +msgstr "`LUA_REFMODLIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4192 +#, no-wrap +msgid "The directory where Lua module libraries ([.filename]#.so#) that are already installed are to be found" +msgstr "Каталог, в котором находятся уже установленные библиотеки модулей Lua ([.filename]#.so#)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4193 +#, no-wrap +msgid "`LUA_REFMODSHAREDIR`" +msgstr "`LUA_REFMODSHAREDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4195 +#, no-wrap +msgid "The directory where Lua modules ([.filename]#.lua#) that are already installed are to be found" +msgstr "Каталог, в котором находятся установленные модули Lua ([.filename]#.lua#)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4196 +#, no-wrap +msgid "`LUA_MODLIBDIR`" +msgstr "`LUA_MODLIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4198 +#, no-wrap +msgid "The directory where Lua module libraries ([.filename]#.so#) are to be installed by this port" +msgstr "Каталог, в котором библиотеки модулей Lua ([.filename]#.so#) должны быть установлены данным портом" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4199 +#, no-wrap +msgid "`LUA_MODSHAREDIR`" +msgstr "`LUA_MODSHAREDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4201 +#, no-wrap +msgid "The directory where Lua modules ([.filename]#.lua#) are to be installed by this port" +msgstr "Каталог, в котором должны быть установлены модули Lua ([.filename]#.lua#) данным портом" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4202 +#, no-wrap +msgid "`LUA_PKGNAMEPREFIX`" +msgstr "`LUA_PKGNAMEPREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4204 +#, no-wrap +msgid "The package name prefix used by Lua modules" +msgstr "Префикс имени пакета, используемый модулями Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4205 +#, no-wrap +msgid "`LUA_CMD`" +msgstr "`LUA_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4207 +#, no-wrap +msgid "The name of the Lua interpreter (e.g. `lua54`)" +msgstr "Название интерпретатора Lua (например, `lua54`)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4208 +#, no-wrap +msgid "`LUAC_CMD`" +msgstr "`LUAC_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4209 +#, no-wrap +msgid "The name of the Lua compiler (e.g. `luac54`)" +msgstr "Название компилятора Lua (например, `luac54`)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4212 +msgid "" +"These additional variables are available for ports that specified the " +"`module` parameter:" +msgstr "" +"Эти дополнительные переменные доступны для портов, которые указали параметр " +"`module`:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4214 +#, no-wrap +msgid "Variables Defined for Lua Module Ports" +msgstr "Переменные, определенные для модулей Lua в портах" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4221 +#, no-wrap +msgid "`LUA_DOCSDIR`" +msgstr "`LUA_DOCSDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4223 +#, no-wrap +msgid "the directory to which the module's documentation should be installed." +msgstr "каталог, в который должна быть установлена документация модуля." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4224 +#, no-wrap +msgid "`LUA_EXAMPLESDIR`" +msgstr "`LUA_EXAMPLESDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4225 +#, no-wrap +msgid "the directory to which the module's example files should be installed." +msgstr "каталог, в который должны быть установлены примеры файлов модуля." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4231 +#, no-wrap +msgid "Makefile for an application using Lua" +msgstr "`Makefile` для приложения, использующего Lua" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4236 +msgid "" +"This example shows how to reference a Lua module required at run time. " +"Notice that the reference must specify a flavor." +msgstr "" +"Этот пример показывает, как сослаться на модуль Lua, требуемый во время " +"выполнения. Обратите внимание, что ссылка должна указывать флейвор." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4242 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4503 +#, no-wrap +msgid "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\twhatever\n" +msgstr "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\twhatever\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4246 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4270 +#, no-wrap +msgid "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tSample\n" +"WWW=\t\thttps://example.com/lua_sample/sample/\n" +msgstr "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tSample\n" +"WWW=\t\thttps://example.com/lua_sample/sample/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4248 +#, no-wrap +msgid "RUN_DEPENDS=\t${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}\n" +msgstr "RUN_DEPENDS=\t${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4250 +#, no-wrap +msgid "USES=\t\tlua\n" +msgstr "USES=\t\tlua\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4257 +#, no-wrap +msgid "Makefile for a simple Lua module" +msgstr "`Makefile` для простого модуля Lua" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4266 +#, no-wrap +msgid "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\twhatever\n" +"PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" +msgstr "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\twhatever\n" +"PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4272 +#, no-wrap +msgid "USES=\t\tlua:module\n" +msgstr "USES=\t\tlua:module\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4274 +#, no-wrap +msgid "DOCSDIR=\t${LUA_DOCSDIR}\n" +msgstr "DOCSDIR=\t${LUA_DOCSDIR}\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4281 +#, no-wrap +msgid "Using Guile" +msgstr "Использование Guile" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4284 +msgid "" +"This section describes the status of Guile in the ports tree and its " +"integration with the ports system." +msgstr "" +"Этот раздел описывает состояние Guile в дереве портов и его интеграцию с " +"системой портов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4293 +msgid "" +"There are multiple versions of the Guile libraries and corresponding " +"interpreters, which conflict between them (install files under the same " +"name). In the ports tree this problem has been solved by installing each " +"version under a different name using version number suffixes. In most " +"cases, applications should detect the correct version from the configuration " +"variables provided and use `pkg-config` to determine the name and associated " +"paths. However, some applications (especially those using their own " +"configuration rules for `cmake` or `meson`) will always try to use the " +"latest available version. In this case, either patch the port or declare a " +"build conflict (see the `conflicts` option below) to ensure that the correct " +"dependency is generated when building outside of poudriere." +msgstr "" +"Существует несколько версий библиотек Guile и соответствующих " +"интерпретаторов, которые конфликтуют между собой (устанавливают файлы с " +"одинаковыми именами). В дереве портов эта проблема решена путем установки " +"каждой версии под разными именами с использованием суффиксов номеров версий. " +"В большинстве случаев приложения должны определять правильную версию из " +"предоставленных конфигурационных переменных и использовать `pkg-config` для " +"определения имени и связанных путей. Однако некоторые приложения (особенно " +"те, которые используют собственные правила конфигурации для `cmake` или " +"`meson`) всегда будут пытаться использовать последнюю доступную версию. В " +"этом случае либо исправьте порт, либо объявите конфликт сборки (см. опцию " +"`conflicts` ниже), чтобы гарантировать создание правильной зависимости при " +"сборке вне poudriere." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4299 +msgid "" +"Applications that use Guile should normally build for just one version, " +"preferably the one specified in `DEFAULT_VERSIONS`, or failing that the " +"latest version that they support. However, Guile or Scheme libraries, or " +"extension modules for Guile are built in a separate flavor for each Guile " +"version that they support, and dependencies on such ports should specify the " +"flavor using the `@${GUILE_FLAVOR}` suffix on the port origin." +msgstr "" +"Приложения, использующие Guile, обычно должны собираться только для одной " +"версии, предпочтительно указанной в `DEFAULT_VERSIONS`, или, если это " +"невозможно, для последней поддерживаемой версии. Однако библиотеки Guile или " +"Scheme, а также модули расширения для Guile собираются в отдельных флейворах " +"для каждой поддерживаемой версии Guile. Зависимости от таких портов должны " +"указывать флейвор с использованием суффикса `@${GUILE_FLAVOR}` в " +"расположении (origin) порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4304 +msgid "" +"A port using Guile should define `USES=guile:__arg,arg...__` with " +"appropriate arguments as follows:" +msgstr "" +"Порт, использующий Guile, должен определять `USES=guile:__arg,arg...__` с " +"соответствующими параметрами следующим образом:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4306 +#, no-wrap +msgid "Arguments Defined for Ports That Use Guile" +msgstr "Параметры, определенные для портов, использующих Guile" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4313 +#, no-wrap +msgid "_X.Y_" +msgstr "_X.Y_" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4317 +#, no-wrap +msgid "" +"Declare compatibility with Guile version `X.Y`.\n" +"Currently available versions are `1.8` (obsolete), `2.2` and `3.0`.\n" +"Multiple versions may be specified." +msgstr "" +"Объявить совместимость с версией Guile `X.Y`.\n" +"Доступные версии: `1.8` (устарела), `2.2` и `3.0`.\n" +"Можно указать несколько версий." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4318 +#, no-wrap +msgid "flavors" +msgstr "flavors" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4322 +#, no-wrap +msgid "" +"Create a flavor for every Guile version specified.\n" +"The version specified by `DEFAULT_VERSIONS` will become the default flavor.\n" +"Flavor names are of the form `guileXY`." +msgstr "" +"Создать флейвор для каждой указанной версии Guile.\n" +"Версия, указанная в `DEFAULT_VERSIONS`, станет флейвором по умолчанию.\n" +"Названия флейворов имеют вид `guileXY`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4323 +#, no-wrap +msgid "build" +msgstr "build" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4326 +#, no-wrap +msgid "" +"Add the Guile interpreter as a build dependency only, rather than a library dependency.\n" +"`build` and `run` may both be specified." +msgstr "" +"Добавить интерпретатор Guile только как зависимость для сборки, а не как зависимость библиотеки.\n" +"`build` и `run` могут быть указаны оба." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4327 +#, no-wrap +msgid "run" +msgstr "run" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4330 +#, no-wrap +msgid "" +"Add the Guile interpreter as a runtime dependency only, rather than a library dependency.\n" +"`build` and `run` may both be specified." +msgstr "" +"Добавить интерпретатор Guile только как зависимость во время выполнения, а не как зависимость от библиотеки.\n" +"`build` и `run` могут быть указаны оба." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4331 +#, no-wrap +msgid "alias" +msgstr "alias" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4333 +#, no-wrap +msgid "Add `BINARY_ALIAS` values for the interpreter and tools." +msgstr "Добавить значения `BINARY_ALIAS` для интерпретатора и инструментов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4334 +#, no-wrap +msgid "conflicts" +msgstr "conflicts" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4336 +#, no-wrap +msgid "" +"Declare `CONFLICTS_BUILD` for Guile versions newer than the one selected.\n" +"Use this when the port cannot be configured to use a specific Guile version." +msgstr "" +"Объявить `CONFLICTS_BUILD` для версий Guile новее выбранной. \n" +"Используйте это, когда порт нельзя настроить на использование определённой версии Guile." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4339 +msgid "" +"Some additional arguments are available for handling unusual cases; see `Mk/" +"Uses/guile.mk` for details." +msgstr "" +"Некоторые дополнительные аргументы доступны для обработки нестандартных " +"случаев; подробности см. в `Mk/Uses/guile.mk`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4342 +msgid "" +"Unless `build` or `run` is specified, then `LIB_DEPENDS` receives both the " +"`libguile` library dependency and also any additional dependencies required " +"by the guile version, e.g. `libgc`. Normally the port should not need any " +"additional dependencies related to its use of Guile." +msgstr "" +"Если не указано `build` или `run`, то `LIB_DEPENDS` получает зависимость от " +"библиотеки `libguile`, а также любые дополнительные зависимости, требуемые " +"версией guile, например, `libgc`. Обычно порту не требуются дополнительные " +"зависимости, связанные с использованием Guile." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4344 +#, no-wrap +msgid "Configuration flags" +msgstr "Флаги конфигурации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4349 +msgid "" +"Software that uses Guile should be using the `pkg-config` mechanism to " +"obtain compiler and linker flags. Some older or esoteric ports may be using " +"`guile-config` or obtaining values directly from `guile` instead, which " +"should also work (the `alias` argument may be useful in some of these cases)." +msgstr "" +"Программное обеспечение, использующее Guile, должно использовать механизм " +"`pkg-config` для получения флагов компилятора и компоновщика. Некоторые " +"старые или экзотические порты могут использовать `guile-config` или получать " +"значения напрямую из `guile`, что также должно работать (в некоторых из этих " +"случаев может быть полезен аргумент `alias`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4351 +msgid "" +"The framework tries to inform the port of the desired Guile version using " +"the following methods:" +msgstr "" +"Фреймворк пытается сообщить порту желаемую версию Guile, используя следующие " +"методы:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4353 +msgid "`GUILE_EFFECTIVE_VERSION` is added to `CONFIGURE_ENV`;" +msgstr "`GUILE_EFFECTIVE_VERSION` добавлен в `CONFIGURE_ENV`;" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4354 +msgid "" +"The full path to the Guile binary is specified in the `GUILE` variable in " +"`CONFIGURE_ENV` and `MAKE_ENV`;" +msgstr "" +"Полный путь к исполняемому файлу Guile указан в переменной `GUILE` в " +"`CONFIGURE_ENV` и `MAKE_ENV`;" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4355 +msgid "" +"If the `alias` option is used, the desired Guile version's binaries are the " +"ones aliased;" +msgstr "" +"Если используется опция `alias`, то желаемые версии бинарных файлов Guile " +"являются теми, которые имеют алиасы;" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4356 +msgid "" +"If the `alias` option is not used, paths to the desired Guile version's " +"tools (`guild`, `guile-config`, etc.) are added to `CONFIGURE_ENV` and " +"`MAKE_ENV` as variables `GUILD`, `GUILE_CONFIG`, etc." +msgstr "" +"Если параметр `alias` не используется, пути к инструментам нужной версии " +"Guile (`guild`, `guile-config` и т.д.) добавляются в `CONFIGURE_ENV` и " +"`MAKE_ENV` в виде переменных `GUILD`, `GUILE_CONFIG` и т.д." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4359 +msgid "" +"For some ports, it may be necessary to specify the version in additional " +"ways, such as via `CONFIGURE_ARGS` or `MESON_ARGS`, depending on the port." +msgstr "" +"Для некоторых портов может потребоваться указать версию дополнительными " +"способами, например, через `CONFIGURE_ARGS` или `MESON_ARGS`, в зависимости " +"от порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4363 +msgid "" +"If none of these methods cause the port to select the specified Guile " +"version when other versions are present, then preferably patch it to do so. " +"If that is not feasible, specify the `conflicts` option to prevent building " +"the port under conditions where it will detect the wrong version." +msgstr "" +"Если ни один из этих методов не приводит к тому, что порт выбирает указанную " +"версию Guile при наличии других версий, то предпочтительно исправить его, " +"чтобы это происходило. Если это невозможно, укажите опцию `conflicts`, чтобы " +"предотвратить сборку порта в условиях, когда он обнаруживает неправильную " +"версию." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4370 +msgid "" +"A port which installs a Guile extension or library, or a Scheme library that " +"precompiles for Guile, should build a separate flavor for each supported " +"Guile version. This is done by adding the `flavors` option." +msgstr "" +"Порт, который устанавливает расширение или библиотеку Guile, или библиотеку " +"Scheme, которая предварительно компилируется для Guile, должен собирать " +"отдельный флейвор для каждой поддерживаемой версии Guile. Это делается путем " +"добавления опции `flavors`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4372 +msgid "" +"Since each flavor must have a different package name, such ports must set " +"`PKGNAMESUFFIX`, typically:" +msgstr "" +"Поскольку каждый флейвор должен иметь уникальное имя пакета, такие порты " +"обычно устанавливают `PKGNAMESUFFIX`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4376 +#, no-wrap +msgid "PKGNAMESUFFIX=\t-${FLAVOR}\n" +msgstr "PKGNAMESUFFIX=\t-${FLAVOR}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4380 +msgid "" +"Such ports must install Scheme files to `GUILE_SITE_DIR` rather than to " +"`GUILE_GLOBAL_SITE_DIR` even when the files are not version-specific. This " +"often requires patching the port." +msgstr "" +"Такие порты должны устанавливать файлы Scheme в `GUILE_SITE_DIR`, а не в " +"`GUILE_GLOBAL_SITE_DIR`, даже если файлы не зависят от версии. Это часто " +"требует исправления порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4383 +msgid "" +"Additionally, if such a port installs a `.pc` file, it must be placed in " +"`GUILE_PKGCONFIG_PATH` rather than in the global `pkgconfig` directory. " +"This allows dependent ports to find a correct configuration for the specific " +"Guile version in use." +msgstr "" +"Кроме того, если такой порт устанавливает файл `.pc`, он должен быть " +"размещён в `GUILE_PKGCONFIG_PATH`, а не в глобальной директории `pkgconfig`. " +"Это позволяет зависимым портам находить правильную конфигурацию для " +"используемой версии Guile." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4386 +msgid "" +"If a Guile extension port installs a `.so` file, then it must usually be " +"placed in the Guile-version-specific `extensions` directory. `USE_LDCONFIG` " +"should usually not be used." +msgstr "" +"Если порт расширения Guile устанавливает файл `.so`, то обычно он должен " +"быть размещён в специфичной для версии Guile директории `extensions`. Обычно " +"не следует использовать `USE_LDCONFIG`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4390 +msgid "" +"Any other files installed by a flavored port must likewise be in version-" +"specific directories or use version-specific filenames. For documentation " +"and examples, `GUILE_DOCS_DIR` and `GUILE_EXAMPLES_DIR` specify suitable " +"locations in which the port should create a subdirectory, see below." +msgstr "" +"Любые другие файлы, устанавливаемые портом с флейвором, также должны " +"находиться в версионных каталогах или использовать версионные имена файлов. " +"Для документации и примеров переменные `GUILE_DOCS_DIR` и " +"`GUILE_EXAMPLES_DIR` указывают подходящие расположения, в которых порт " +"должен создать подкаталог (см. ниже)." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4397 +#, no-wrap +msgid "Variables Defined for Ports That Use Guile" +msgstr "Переменные, определенные для портов, использующих Guile" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4402 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4464 +#, no-wrap +msgid "Sample Value" +msgstr "Пример значения" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4405 +#, no-wrap +msgid "`GUILE_VER`" +msgstr "`GUILE_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4406 +#, no-wrap +msgid "3.0" +msgstr "3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4408 +#, no-wrap +msgid "Guile version in use." +msgstr "Используемая версия Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4409 +#, no-wrap +msgid "`GUILE_SFX`" +msgstr "`GUILE_SFX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4410 +#, no-wrap +msgid "3" +msgstr "3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4413 +#, no-wrap +msgid "" +"Short suffix used on some names.\n" +"Use only with care; may be non-unique or may change in the future." +msgstr "" +"Короткий суффикс, используемый в некоторых именах.\n" +"Используйте с осторожностью; может быть неуникальным или измениться в будущем." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4414 +#, no-wrap +msgid "`GUILE_FLAVOR`" +msgstr "`GUILE_FLAVOR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4415 +#, no-wrap +msgid "guile30" +msgstr "guile30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4417 +#, no-wrap +msgid "Flavor name corresponding to the selected version." +msgstr "Название флейвора, соответствующее выбранной версии." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4418 +#, no-wrap +msgid "`GUILE_PORT`" +msgstr "`GUILE_PORT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4419 +#, no-wrap +msgid "lang/guile3" +msgstr "lang/guile3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4421 +#, no-wrap +msgid "Port origin of the specified Guile version." +msgstr "Расположение порта (origin) для указанной версии Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4422 +#, no-wrap +msgid "`GUILE_PREFIX`" +msgstr "`GUILE_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4423 +#, no-wrap +msgid "${PREFIX}" +msgstr "${PREFIX}" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4425 +#, no-wrap +msgid "Directory prefix to be used for installation." +msgstr "Префикс каталога для использования при установке." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4426 +#, no-wrap +msgid "`GUILE_CMD`" +msgstr "`GUILE_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4427 +#, no-wrap +msgid "guile-3.0" +msgstr "guile-3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4429 +#, no-wrap +msgid "Name of the Guile interpreter, with version suffix." +msgstr "Имя интерпретатора Guile с суффиксом версии." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4430 +#, no-wrap +msgid "`GUILE_CMDPATH`" +msgstr "`GUILE_CMDPATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4431 +#, no-wrap +msgid "${LOCALBASE}/bin/guile-3.0" +msgstr "${LOCALBASE}/bin/guile-3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4433 +#, no-wrap +msgid "Full path to the Guile interpreter." +msgstr "Полный путь к интерпретатору Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4434 +#, no-wrap +msgid "`GUILD_CMD`" +msgstr "`GUILD_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4435 +#, no-wrap +msgid "guild-3.0" +msgstr "guild-3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4437 +#, no-wrap +msgid "Name of the Guild tool, with version suffix." +msgstr "Название инструмента Guild, с суффиксом версии." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4438 +#, no-wrap +msgid "`GUILD_CMDPATH`" +msgstr "`GUILD_CMDPATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4439 +#, no-wrap +msgid "${LOCALBASE}/bin/guild-3.0" +msgstr "`${LOCALBASE}/bin/guild-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4441 +#, no-wrap +msgid "Full path to the Guild tool." +msgstr "Полный путь к инструменту Guild." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4443 +#, no-wrap +msgid "" +"`++GUILE_*_CMD++` +\n" +"`++GUILE_*_CMDPATH++`" +msgstr "" +"`++GUILE_*_CMD++` +\n" +"`++GUILE_*_CMDPATH++`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4446 +#, no-wrap +msgid "Like `GUILE_CMD` and `GUILE_CMDPATH`, but for other tool binaries." +msgstr "Как `GUILE_CMD` и `GUILE_CMDPATH`, но для других исполняемых файлов утилит." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4447 +#, no-wrap +msgid "`GUILE_PKGCONFIG_PATH`" +msgstr "`GUILE_PKGCONFIG_PATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4448 +#, no-wrap +msgid "${LOCALBASE}/libdata/pkgconfig/guile/3.0" +msgstr "${LOCALBASE}/libdata/pkgconfig/guile/3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4450 +#, no-wrap +msgid "Where packages using `flavors` should install `.pc` files." +msgstr "Где пакеты, использующие `flavors`, должны устанавливать файлы `.pc`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4451 +#, no-wrap +msgid "`GUILE_INFO_PATH`" +msgstr "`GUILE_INFO_PATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4452 +#, no-wrap +msgid "share/info/guile3" +msgstr "share/info/guile3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4453 +#, no-wrap +msgid "A suitable value for `INFO_PATH` for ports using the `flavors` option." +msgstr "Подходящее значение для `INFO_PATH` для портов, использующих опцию `flavors`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4457 +msgid "" +"The following are defined as variables and as `PLIST_SUB` entries. The " +"variable form is suffixed with `_DIR` and is a full path (prefixed with " +"`GUILE_PREFIX`)." +msgstr "" +"Следующие элементы определены как переменные и как записи `PLIST_SUB`. Форма " +"переменной имеет суффикс `_DIR` и представляет собой полный путь (с " +"префиксом `GUILE_PREFIX`)." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4459 +#, no-wrap +msgid "Path Substitutions Defined for Ports That Use Guile" +msgstr "Подстановки путей, определенные для портов, использующих Guile" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4467 +#, no-wrap +msgid "GUILE_GLOBAL_SITE" +msgstr "GUILE_GLOBAL_SITE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4468 +#, no-wrap +msgid "share/guile/site" +msgstr "share/guile/site" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4470 +#, no-wrap +msgid "Site directory shared by all guile versions; this should not usually be used." +msgstr "Каталог сайта, общий для всех версий guile; обычно не должен использоваться." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4471 +#, no-wrap +msgid "GUILE_SITE" +msgstr "GUILE_SITE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4472 +#, no-wrap +msgid "share/guile/3.0/site" +msgstr "share/guile/3.0/site" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4474 +#, no-wrap +msgid "Site directory for the selected Guile version." +msgstr "Каталог сайта для выбранной версии Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4475 +#, no-wrap +msgid "GUILE_SITE_CCACHE" +msgstr "GUILE_SITE_CCACHE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4476 +#, no-wrap +msgid "lib/guile/3.0/site-ccache" +msgstr "lib/guile/3.0/site-ccache" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4478 +#, no-wrap +msgid "Directory for compiled bytecode files." +msgstr "Каталог для скомпилированных файлов байт-кода." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4479 +#, no-wrap +msgid "GUILE_DOCS" +msgstr "GUILE_DOCS" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4480 +#, no-wrap +msgid "share/doc/guile30" +msgstr "share/doc/guile30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4482 +#, no-wrap +msgid "Parent directory for version-specific documentation." +msgstr "Родительский каталог для документации, специфичной для версий." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4483 +#, no-wrap +msgid "GUILE_EXAMPLES" +msgstr "GUILE_EXAMPLES" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4484 +#, no-wrap +msgid "share/examples/guile30" +msgstr "share/examples/guile30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4485 +#, no-wrap +msgid "Parent directory for version-specific examples." +msgstr "Родительский каталог для примеров, специфичных для версий." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4491 +#, no-wrap +msgid "Makefile for an application using Guile" +msgstr "`Makefile` для приложения, использующего Guile" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4497 +msgid "" +"This example shows how to reference a Guile library required at build and " +"run time. Notice that the reference must specify a flavor. This example " +"assumes that the application is using `pkg-config` to locate dependencies." +msgstr "" +"Этот пример демонстрирует, как сослаться на библиотеку Guile, необходимую во " +"время сборки и выполнения. Обратите внимание, что ссылка должна указывать " +"флейвор. В этом примере предполагается, что приложение использует `pkg-" +"config` для поиска зависимостей." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4507 +#, no-wrap +msgid "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tSample\n" +"WWW=\t\thttps://example.com/guile_sample/sample/\n" +msgstr "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tSample\n" +"WWW=\t\thttps://example.com/guile_sample/sample/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4510 +#, no-wrap +msgid "" +"BUILD_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" +"RUN_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" +msgstr "" +"BUILD_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" +"RUN_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4512 +#, no-wrap +msgid "USES=\t\tguile:2.2,3.0 pkgconfig\n" +msgstr "USES=\t\tguile:2.2,3.0 pkgconfig\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4519 +#, no-wrap +msgid "Using `iconv`" +msgstr "Использование `iconv`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4522 +msgid "FreeBSD has a native `iconv` in the operating system." +msgstr "" +"В FreeBSD имеется встроенная реализация `iconv` в самой операционной системе." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4524 +msgid "For software that needs `iconv`, define `USES=iconv`." +msgstr "" +"Для программного обеспечения, требующего `iconv`, определите `USES=iconv`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4526 +msgid "When a port defines `USES=iconv`, these variables will be available:" +msgstr "" +"Когда порт определяет `USES=iconv`, становятся доступны следующие переменные:" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4531 +#, no-wrap +msgid "Variable name" +msgstr "Имя переменной" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4532 +#, no-wrap +msgid "Purpose" +msgstr "Назначение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4533 +#, no-wrap +msgid "Port iconv (when using WCHAR_T or //TRANSLIT extensions)" +msgstr "Порт iconv (при использовании расширений WCHAR_T или //TRANSLIT)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4536 +#, no-wrap +msgid "Base iconv" +msgstr "Базовый iconv" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4537 +#, no-wrap +msgid "`ICONV_CMD`" +msgstr "`ICONV_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4538 +#, no-wrap +msgid "Directory where the `iconv` binary resides" +msgstr "Каталог, в котором находится бинарный файл `iconv`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4539 +#, no-wrap +msgid "`${LOCALBASE}/bin/iconv`" +msgstr "`${LOCALBASE}/bin/iconv`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4541 +#, no-wrap +msgid "[.filename]#/usr/bin/iconv#" +msgstr "[.filename]#/usr/bin/iconv#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4542 +#, no-wrap +msgid "`ICONV_LIB`" +msgstr "`ICONV_LIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4543 +#, no-wrap +msgid "`ld` argument to link to [.filename]#libiconv# (if needed)" +msgstr "аргумент `ld` для линковки с [.filename]#libiconv# (если требуется)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4544 +#, no-wrap +msgid "`-liconv`" +msgstr "`-liconv`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4546 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4556 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4560 +#, no-wrap +msgid "(empty)" +msgstr "(пусто)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4547 +#, no-wrap +msgid "`ICONV_PREFIX`" +msgstr "`ICONV_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4548 +#, no-wrap +msgid "Directory where the `iconv` implementation resides (useful for configure scripts)" +msgstr "Каталог, в котором находится реализация `iconv` (полезно для скриптов configure)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4549 +#, no-wrap +msgid "`${LOCALBASE}`" +msgstr "`${LOCALBASE}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4551 +#, no-wrap +msgid "[.filename]#/usr#" +msgstr "[.filename]#/usr#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4552 +#, no-wrap +msgid "`ICONV_CONFIGURE_ARG`" +msgstr "`ICONV_CONFIGURE_ARG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4553 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4558 +#, no-wrap +msgid "Preconstructed configure argument for configure scripts" +msgstr "Предварительно сконструированный аргумент configure для скриптов configure" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4554 +#, no-wrap +msgid "`--with-libiconv-prefix=${LOCALBASE}`" +msgstr "`--with-libiconv-prefix=${LOCALBASE}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4557 +#, no-wrap +msgid "`ICONV_CONFIGURE_BASE`" +msgstr "`ICONV_CONFIGURE_BASE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4559 +#, no-wrap +msgid "`--with-libiconv=${LOCALBASE}`" +msgstr "`--with-libiconv=${LOCALBASE}`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4563 +msgid "" +"These two examples automatically populate the variables with the correct " +"value for systems using package:converters/libiconv[] or the native `iconv` " +"respectively:" +msgstr "" +"Эти два примера автоматически заполняют переменные правильным значением для " +"систем, использующих package:converters/libiconv[] или `iconv`, входящий в " +"состав операционной системы, соответственно:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4565 +#, no-wrap +msgid "Simple `iconv` Usage" +msgstr "Простое использование `iconv`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4572 +#, no-wrap +msgid "" +"USES=\t\ticonv\n" +"LDFLAGS+=\t-L${LOCALBASE}/lib ${ICONV_LIB}\n" +msgstr "" +"USES=\t\ticonv\n" +"LDFLAGS+=\t-L${LOCALBASE}/lib ${ICONV_LIB}\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4577 +#, no-wrap +msgid "`iconv` Usage with `configure`" +msgstr "Использование `iconv` с `configure`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4584 +#, no-wrap +msgid "" +"USES=\t\ticonv\n" +"CONFIGURE_ARGS+=${ICONV_CONFIGURE_ARG}\n" +msgstr "" +"USES=\t\ticonv\n" +"CONFIGURE_ARGS+=${ICONV_CONFIGURE_ARG}\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4590 +msgid "" +"As shown above, `ICONV_LIB` is empty when a native `iconv` is present. This " +"can be used to detect the native `iconv` and respond appropriately." +msgstr "" +"Как показано выше, `ICONV_LIB` пуста, когда присутствует встроенный `iconv`. " +"Это можно использовать для обнаружения встроенного `iconv` и действовать " +"соответственно." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4593 +msgid "" +"Sometimes a program has an `ld` argument or search path hardcoded in a " +"[.filename]#Makefile# or configure script. This approach can be used to " +"solve that problem:" +msgstr "" +"Иногда в программе аргумент `ld` или путь поиска жестко заданы в " +"[.filename]#Makefile# или скрипте configure. Для решения этой проблемы можно " +"использовать следующий подход:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4595 +#, no-wrap +msgid "Fixing Hardcoded `-liconv`" +msgstr "Исправление жестко заданного `-liconv`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4601 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4618 +#, no-wrap +msgid "USES=\t\ticonv\n" +msgstr "USES=\t\ticonv\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4604 +#, no-wrap +msgid "" +"post-patch:\n" +"\t@${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile\n" +msgstr "" +"post-patch:\n" +"\t@${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4610 +msgid "" +"In some cases it is necessary to set alternate values or perform operations " +"depending on whether there is a native `iconv`. " +"[.filename]#bsd.port.pre.mk# must be included before testing the value of " +"`ICONV_LIB`:" +msgstr "" +"В некоторых случаях необходимо установить альтернативные значения или " +"выполнить операции в зависимости от наличия встроенного `iconv`. " +"[.filename]#bsd.port.pre.mk# должен быть включен до проверки значения " +"`ICONV_LIB`:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4612 +#, no-wrap +msgid "Checking for Native `iconv` Availability" +msgstr "Проверка доступности встроенной поддержки `iconv`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4626 +#, no-wrap +msgid "" +"post-patch:\n" +".if empty(ICONV_LIB)\n" +"\t# native iconv detected\n" +"\t@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh\n" +".endif\n" +msgstr "" +"post-patch:\n" +".if empty(ICONV_LIB)\n" +"\t# native iconv detected\n" +"\t@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4628 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4633 +#, no-wrap +msgid "Using Xfce" +msgstr "Использование Xfce" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4636 +msgid "Ports that need Xfce libraries or applications set `USES=xfce`." +msgstr "" +"Порты, которым требуются библиотеки или приложения Xfce, устанавливают " +"`USES=xfce`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4640 +msgid "" +"Specific Xfce library and application dependencies are set with values " +"assigned to `USE_XFCE`. They are defined in [.filename]#/usr/ports/Mk/Uses/" +"xfce.mk#. The possible values are:" +msgstr "" +"Конкретные зависимости библиотек и приложений Xfce задаются с помощью " +"значений, присвоенных `USE_XFCE`. Они определены в [.filename]#/usr/ports/Mk/" +"Uses/xfce.mk#. Возможные значения:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4641 +#, no-wrap +msgid "Values of `USE_XFCE`" +msgstr "Значения `USE_XFCE`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4642 +#, no-wrap +msgid "garcon" +msgstr "garcon" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4644 +msgid "package:sysutils/garcon[]" +msgstr "package:sysutils/garcon[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4645 +#, no-wrap +msgid "libexo" +msgstr "libexo" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4647 +msgid "package:x11/libexo[]" +msgstr "package:x11/libexo[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4648 +#, no-wrap +msgid "libgui" +msgstr "libgui" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4650 +msgid "package:x11-toolkits/libxfce4gui[]" +msgstr "package:x11-toolkits/libxfce4gui[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4651 +#, no-wrap +msgid "libmenu" +msgstr "libmenu" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4653 +msgid "package:x11/libxfce4menu[]" +msgstr "package:x11/libxfce4menu[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4654 +#, no-wrap +msgid "libutil" +msgstr "libutil" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4656 +msgid "package:x11/libxfce4util[]" +msgstr "package:x11/libxfce4util[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4657 +#, no-wrap +msgid "panel" +msgstr "panel" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4659 +msgid "package:x11-wm/xfce4-panel[]" +msgstr "package:x11-wm/xfce4-panel[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4660 +#, no-wrap +msgid "thunar" +msgstr "thunar" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4662 +msgid "package:x11-fm/thunar[]" +msgstr "package:x11-fm/thunar[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4663 +#, no-wrap +msgid "xfconf" +msgstr "xfconf" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4665 +msgid "package:x11/xfce4-conf[]" +msgstr "package:x11/xfce4-conf[]" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4667 +#, no-wrap +msgid "`USES=xfce` Example" +msgstr "Пример `USES=xfce`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4674 +#, no-wrap +msgid "" +"USES=\t\txfce\n" +"USE_XFCE=\tlibmenu\n" +msgstr "" +"USES=\t\txfce\n" +"USE_XFCE=\tlibmenu\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4679 +#, no-wrap +msgid "Using Xfce's Own GTK2 Widgets" +msgstr "Использование собственных виджетов GTK2 в Xfce" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4683 +msgid "" +"In this example, the ported application uses the GTK2-specific widgets " +"package:x11/libxfce4menu[] and package:x11/xfce4-conf[]." +msgstr "" +"В этом примере портированное приложение использует пакет виджетов, " +"специфичных для GTK2: package:x11/libxfce4menu[] и package:x11/xfce4-conf[]." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4688 +#, no-wrap +msgid "" +"USES=\t\txfce:gtk2\n" +"USE_XFCE=\tlibmenu xfconf\n" +msgstr "" +"USES=\t\txfce:gtk2\n" +"USE_XFCE=\tlibmenu xfconf\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4697 +msgid "" +"Xfce components included this way will automatically include any " +"dependencies they need. It is no longer necessary to specify the entire " +"list. If the port only needs package:x11-wm/xfce4-panel[], use:" +msgstr "" +"Компоненты Xfce, включённые таким образом, автоматически загрузят все " +"необходимые зависимости. Указывать полный список больше не требуется. Если " +"порту нужен только package:x11-wm/xfce4-panel[], используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4702 +#, no-wrap +msgid "" +"USES=\t\txfce\n" +"USE_XFCE=\tpanel\n" +msgstr "" +"USES=\t\txfce\n" +"USE_XFCE=\tpanel\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4705 +msgid "" +"There is no need to list the components package:x11-wm/xfce4-panel[] needs " +"itself like this:" +msgstr "" +"Нет необходимости перечислять компоненты package:x11-wm/xfce4-panel[], " +"которые ему самому требуются, вот так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4710 +#, no-wrap +msgid "" +"USES=\t\txfce\n" +"USE_XFCE=\tlibexo libmenu libutil panel\n" +msgstr "" +"USES=\t\txfce\n" +"USE_XFCE=\tlibexo libmenu libutil panel\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4714 +msgid "" +"However, Xfce components and non-Xfce dependencies of the port must be " +"included explicitly. Do not count on an Xfce component to provide a sub-" +"dependency other than itself for the main port." +msgstr "" +"Однако компоненты Xfce и зависимости порта, не относящиеся к Xfce, должны " +"быть явно включены. Не рассчитывайте, что компонент Xfce предоставит " +"дополнительную зависимость, кроме себя, для основного порта." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4717 +#, no-wrap +msgid "Using Budgie" +msgstr "Использование Budgie" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4720 +msgid "" +"Applications or libraries depending on the Budgie desktop should set `USES= " +"budgie` and set `USE_BUDGIE` to the list of required components." +msgstr "" +"Приложения или библиотеки, зависящие от рабочего стола Budgie, должны " +"указывать `USES= budgie` и устанавливать `USE_BUDGIE` в список необходимых " +"компонентов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4727 +#, no-wrap +msgid "`libbudgie`" +msgstr "`libbudgie`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4729 +#, no-wrap +msgid "Desktop core (library)" +msgstr "Ядро рабочего стола (библиотека)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4730 +#, no-wrap +msgid "`libmagpie`" +msgstr "`libmagpie`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4732 +#, no-wrap +msgid "Budgie's X11 window manager and compositor library" +msgstr "Оконный менеджер X11 и библиотека композитинга Budgie" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4733 +#, no-wrap +msgid "`raven`" +msgstr "`raven`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4735 +#, no-wrap +msgid "All-in-one center in panel for accessing different applications widgets" +msgstr "Универсальный центр в панели для доступа к различным виджетам приложений" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4736 +#, no-wrap +msgid "`screensaver`" +msgstr "`screensaver`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4738 +#, no-wrap +msgid "Desktop-specific screensaver" +msgstr "Рабочий стол: специальная заставка" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4743 +msgid "" +"All application widgets communicate through the *org.budgie_desktop.Raven* " +"service." +msgstr "" +"Все виджеты приложений взаимодействуют через службу " +"*org.budgie_desktop.Raven*." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4745 +msgid "" +"The default dependency is lib- and run-time, it can be changed with `:build` " +"or `:run`, for example:" +msgstr "" +"Зависимость по умолчанию включает время сборки и выполнения, её можно " +"изменить с помощью `:build` или `:run`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4750 +#, no-wrap +msgid "" +"USES=\t\tbudgie\n" +"USE_BUDGIE=\tscreensaver:build\n" +msgstr "" +"USES=\t\tbudgie\n" +"USE_BUDGIE=\tscreensaver:build\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4754 +#, no-wrap +msgid "`USE_BUDGIE` Example" +msgstr "Пример `USE_BUDGIE`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4761 +#, no-wrap +msgid "" +"USES=\t\tbudgie gettext gnome meson pkgconfig\n" +"USE_BUDGIE=\tlibbudgie\n" +msgstr "" +"USES=\t\tbudgie gettext gnome meson pkgconfig\n" +"USE_BUDGIE=\tlibbudgie\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4765 +#, no-wrap +msgid "Using Databases" +msgstr "Использование баз данных" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4768 +msgid "" +"Use one of the `USES` macros from crossref:special[using-databases-" +"uses,Database `USES` Macros] to add a dependency on a database." +msgstr "" +"Используйте один из макросов `USES` из crossref:special[using-databases-" +"uses,Макросы `USES` для баз данных], чтобы добавить зависимость от базы " +"данных." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4770 +#, no-wrap +msgid "Database `USES` Macros" +msgstr "Макросы `USES` для баз данных" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4774 +#, no-wrap +msgid "Database" +msgstr "База данных" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4776 +#, no-wrap +msgid "USES Macro" +msgstr "Макрос USES" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4777 +#, no-wrap +msgid "Berkeley DB" +msgstr "Berkeley DB" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4779 +#, no-wrap +msgid "crossref:uses[uses-bdb,`bdb`]" +msgstr "crossref:uses[uses-bdb,`bdb`]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4780 +#, no-wrap +msgid "MariaDB, MySQL, Percona" +msgstr "MariaDB, MySQL, Percona" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4782 +#, no-wrap +msgid "crossref:uses[uses-mysql,`mysql`]" +msgstr "crossref:uses[uses-mysql,`mysql`]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4783 +#, no-wrap +msgid "PostgreSQL" +msgstr "PostgreSQL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4785 +#, no-wrap +msgid "crossref:uses[uses-pgsql,`pgsql`]" +msgstr "crossref:uses[uses-pgsql,`pgsql`]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4786 +#, no-wrap +msgid "SQLite" +msgstr "SQLite" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4787 +#, no-wrap +msgid "crossref:uses[uses-sqlite,`sqlite`]" +msgstr "crossref:uses[uses-sqlite,`sqlite`]" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4790 +#, no-wrap +msgid "Using Berkeley DB 6" +msgstr "Использование Berkeley DB 6" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4796 +#, no-wrap +msgid "USES=\tbdb:6\n" +msgstr "USES=\tbdb:6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4799 +msgid "See crossref:uses[uses-bdb,`bdb`] for more information." +msgstr "" +"См. crossref:uses[uses-bdb,`bdb`] для получения дополнительной информации." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4802 +#, no-wrap +msgid "Using MySQL" +msgstr "Использование MySQL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4806 +msgid "When a port needs the MySQL client library add" +msgstr "Когда порту требуется клиентская библиотека MySQL, добавьте" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4810 +#, no-wrap +msgid "USES=\tmysql\n" +msgstr "USES=\tmysql\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4813 +msgid "See crossref:uses[uses-mysql,`mysql`] for more information." +msgstr "" +"См. crossref:uses[uses-mysql,`mysql`] для получения дополнительной " +"информации." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4816 +#, no-wrap +msgid "Using PostgreSQL" +msgstr "Использование PostgreSQL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4820 +msgid "When a port needs the PostgreSQL server version 9.6 or later add" +msgstr "Когда порту требуется сервер PostgreSQL версии 9.6 или новее, добавьте" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4825 +#, no-wrap +msgid "" +"USES=\t\tpgsql:9.6+\n" +"WANT_PGSQL=\tserver\n" +msgstr "" +"USES=\t\tpgsql:9.6+\n" +"WANT_PGSQL=\tserver\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4828 +msgid "See crossref:uses[uses-pgsql,`pgsql`] for more information." +msgstr "" +"См. crossref:uses[uses-pgsql,`pgsql`] для получения дополнительной " +"информации." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4831 +#, no-wrap +msgid "Using SQLite 3" +msgstr "Использование SQLite 3" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4837 +#, no-wrap +msgid "USES=\tsqlite:3\n" +msgstr "USES=\tsqlite:3\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4840 +msgid "See crossref:uses[uses-sqlite,`sqlite`] for more information." +msgstr "" +"См. crossref:uses[uses-sqlite,`sqlite`] для получения дополнительной " +"информации." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4843 +#, no-wrap +msgid "Starting and Stopping Services (`rc` Scripts)" +msgstr "Запуск и остановка служб (скрипты `rc`)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4850 +msgid "" +"[.filename]#rc.d# scripts are used to start services on system startup, and " +"to give administrators a standard way of stopping, starting and restarting " +"the service. Ports integrate into the system [.filename]#rc.d# framework. " +"Details on its usage can be found in extref:{handbook}[the rc.d Handbook " +"chapter, configtuning-rcd]. Detailed explanation of the available commands " +"is provided in man:rc[8] and man:rc.subr[8]. Finally, there is extref:{rc-" +"scripting}[an article] on practical aspects of [.filename]#rc.d# scripting." +msgstr "" +"[.filename]#rc.d# скрипты используются для запуска служб при загрузке " +"системы, а также предоставляют администраторам стандартный способ остановки, " +"запуска и перезапуска служб. Порты интегрируются в систему " +"[.filename]#rc.d#. Подробности использования можно найти в extref:{handbook}" +"[соответствующей главе Handbook, configtuning-rcd]. Детальное объяснение " +"доступных команд приведено в man:rc[8] и man:rc.subr[8]. Наконец, существует " +"extref:{rc-scripting}[статья], посвящённая практическим аспектам написания " +"[.filename]#rc.d# скриптов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4853 +msgid "" +"With a mythical port called _doorman_, which needs to start a _doormand_ " +"daemon. Add the following to the [.filename]#Makefile#:" +msgstr "" +"С мифическим портом под названием _doorman_, которому необходимо запустить " +"демон _doormand_. Добавьте следующее в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4857 +#, no-wrap +msgid "USE_RC_SUBR=\tdoormand\n" +msgstr "USE_RC_SUBR=\tdoormand\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4864 +msgid "" +"Multiple scripts may be listed and will be installed. Scripts must be " +"placed in the [.filename]#files# subdirectory and a `.in` suffix must be " +"added to their filename. Standard `SUB_LIST` expansions will be ran against " +"this file. Use of the `%%PREFIX%%` and `%%LOCALBASE%%` expansions is " +"strongly encouraged as well. More on `SUB_LIST` in crossref:pkg-files[using-" +"sub-files,the relevant section]." +msgstr "" +"Можно указать несколько скриптов, которые будут установлены. Скрипты должны " +"быть размещены в подкаталоге [.filename]#files#, и к их имени должен быть " +"добавлен суффикс `.in`. Для этого файла будут выполнены стандартные " +"подстановки `SUB_LIST`. Также настоятельно рекомендуется использовать " +"подстановки `%%PREFIX%%` и `%%LOCALBASE%%`. Подробнее о `SUB_LIST` см. в " +"crossref:pkg-files[using-sub-files,соответствующем разделе]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4866 +msgid "" +"As of FreeBSD 6.1-RELEASE, local [.filename]#rc.d# scripts (including those " +"installed by ports) are included in the overall man:rcorder[8] of the base " +"system." +msgstr "" +"Начиная с FreeBSD 6.1-RELEASE, локальные скрипты [.filename]#rc.d# (включая " +"те, что установлены через порты) включены в общий man:rcorder[8] базовой " +"системы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4868 +msgid "" +"An example simple [.filename]#rc.d# script to start the doormand daemon:" +msgstr "Пример простого скрипта [.filename]#rc.d# для запуска демона doormand:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4872 +#, no-wrap +msgid "#!/bin/sh\n" +msgstr "#!/bin/sh\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4884 +#, no-wrap +msgid "" +"# PROVIDE: doormand\n" +"# REQUIRE: LOGIN\n" +"# KEYWORD: shutdown\n" +"#\n" +"# Add these lines to /etc/rc.conf.local or /etc/rc.conf\n" +"# to enable this service:\n" +"#\n" +"# doormand_enable (bool):\tSet to NO by default.\n" +"#\t\t\t\tSet it to YES to enable doormand.\n" +"# doormand_config (path):\tSet to %%PREFIX%%/etc/doormand/doormand.cf\n" +"#\t\t\t\tby default.\n" +msgstr "" +"# PROVIDE: doormand\n" +"# REQUIRE: LOGIN\n" +"# KEYWORD: shutdown\n" +"#\n" +"# Add these lines to /etc/rc.conf.local or /etc/rc.conf\n" +"# to enable this service:\n" +"#\n" +"# doormand_enable (bool):\tSet to NO by default.\n" +"#\t\t\t\tSet it to YES to enable doormand.\n" +"# doormand_config (path):\tSet to %%PREFIX%%/etc/doormand/doormand.cf\n" +"#\t\t\t\tby default.\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4886 +#, no-wrap +msgid ". /etc/rc.subr\n" +msgstr ". /etc/rc.subr\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4889 +#, no-wrap +msgid "" +"name=doormand\n" +"rcvar=doormand_enable\n" +msgstr "" +"name=doormand\n" +"rcvar=doormand_enable\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4891 +#, no-wrap +msgid "load_rc_config $name\n" +msgstr "load_rc_config $name\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4894 +#, no-wrap +msgid "" +": ${doormand_enable:=\"NO\"}\n" +": ${doormand_config=\"%%PREFIX%%/etc/doormand/doormand.cf\"}\n" +msgstr "" +": ${doormand_enable:=\"NO\"}\n" +": ${doormand_config=\"%%PREFIX%%/etc/doormand/doormand.cf\"}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4897 +#, no-wrap +msgid "" +"command=%%PREFIX%%/sbin/${name}\n" +"pidfile=/var/run/${name}.pid\n" +msgstr "" +"command=%%PREFIX%%/sbin/${name}\n" +"pidfile=/var/run/${name}.pid\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4899 +#, no-wrap +msgid "command_args=\"-p $pidfile -f $doormand_config\"\n" +msgstr "command_args=\"-p $pidfile -f $doormand_config\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4901 +#, no-wrap +msgid "run_rc_command \"$1\"\n" +msgstr "run_rc_command \"$1\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4904 +msgid "" +"Unless there is a very good reason to start the service earlier, or it runs " +"as a particular user (other than root), all ports scripts must use:" +msgstr "" +"Если нет очень веской причины запускать службу раньше или она работает от " +"имени определенного пользователя (не root), все скрипты портов должны " +"использовать:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4908 +#, no-wrap +msgid "REQUIRE: LOGIN\n" +msgstr "REQUIRE: LOGIN\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4911 +msgid "" +"If the startup script launches a daemon that must be shutdown, the following " +"will trigger a stop of the service on system shutdown:" +msgstr "" +"Если скрипт запуска демона требует его остановки, следующий код активирует " +"остановку службы при выключении системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4915 +#, no-wrap +msgid "KEYWORD: shutdown\n" +msgstr "KEYWORD: shutdown\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4918 +msgid "" +"If the script is not starting a persistent service this is not necessary." +msgstr "Если скрипт не запускает постоянную службу, это не требуется." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4921 +msgid "" +"For optional configuration elements the \"=\" style of default variable " +"assignment is preferable to the \":=\" style here, since the former sets a " +"default value only if the variable is unset, and the latter sets one if the " +"variable is unset _or_ null. A user might very well include something like:" +msgstr "" +"Для необязательных элементов конфигурации предпочтительнее использовать " +"стиль присваивания переменных по умолчанию \"=\" вместо стиля \":=\", так " +"как первый устанавливает значение по умолчанию только если переменная не " +"задана, а второй — если переменная не задана _или_ равна null. Пользователь " +"может включить что-то вроде:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4925 +#, no-wrap +msgid "doormand_flags=\"\"\n" +msgstr "doormand_flags=\"\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4929 +msgid "" +"in their [.filename]#rc.conf.local#, and a variable substitution using " +"\":=\" would inappropriately override the user's intention. The `_enable` " +"variable is not optional, and must use the \":\" for the default." +msgstr "" +"в свой [.filename]#rc.conf.local#, а подстановка переменной с использованием " +"\":=\" некорректно переопределила бы намерение пользователя. Переменная " +"`_enable` не является опциональной и должна использовать \":\" для значения " +"по умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4934 +msgid "" +"Ports _must not_ start and stop their services when installing and " +"deinstalling. Do not abuse the [.filename]#plist# keywords described in " +"crossref:plist[plist-keywords-base-exec, \"the @preexec command,@postexec " +"command,@preunexec command,@postunexec command section\"] by running " +"commands that modify the currently running system, including starting or " +"stopping services." +msgstr "" +"Порты _не должны_ запускать и останавливать свои службы при установке и " +"удалении. Не злоупотребляйте ключевыми словами [.filename]#plist#, " +"описанными в crossref:plist[plist-keywords-base-exec, \"разделе @preexec " +"command,@postexec command,@preunexec command,@postunexec command\"], " +"выполняя команды, которые изменяют работающую систему, включая запуск или " +"остановку служб." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4937 +#, no-wrap +msgid "Pre-Commit Checklist" +msgstr "Pre-Commit Checklist" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4940 +msgid "" +"Before contributing a port with an [.filename]#rc.d# script, and more " +"importantly, before committing one, please consult this checklist to be sure " +"that it is ready." +msgstr "" +"Прежде чем внести порт с [.filename]#rc.d# скриптом, и что более важно, " +"перед его коммитом, пожалуйста, ознакомьтесь с этим контрольным списком, " +"чтобы убедиться, что он готов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4942 +msgid "" +"The package:devel/rclint[] port can check for most of these, but it is not a " +"substitute for proper review." +msgstr "" +"Порт package:devel/rclint[] может проверить большинство из них, но он не " +"заменяет тщательного просмотра и проверки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4945 +msgid "" +"If this is a new file, does it have a [.filename]#.sh# extension? If so, " +"that must be changed to just [.filename]#file.in# since [.filename]#rc.d# " +"files may not end with that extension." +msgstr "" +"Если это новый файл, имеет ли он расширение [.filename]#.sh#? Если да, его " +"необходимо изменить на просто [.filename]#file.in#, поскольку файлы " +"[.filename]#rc.d# не могут оканчиваться таким расширением." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4946 +msgid "" +"Do the name of the file (minus [.filename]#.in#), the `PROVIDE` line, and " +"`$` _name_ all match? The file name matching `PROVIDE` makes debugging " +"easier, especially for man:rcorder[8] issues. Matching the file name and " +"`$`_name_ makes it easier to figure out which variables are relevant in " +"[.filename]#rc.conf[.local]#. It is also a policy for all new scripts, " +"including those in the base system." +msgstr "" +"Совпадают ли имя файла (без [.filename]#.in#), строка `PROVIDE` и `$`_name_? " +"Совпадение имени файла с `PROVIDE` упрощает отладку, особенно при проблемах " +"с man:rcorder[8]. Совпадение имени файла и `$`_name_ облегчает понимание " +"того, какие переменные актуальны в [.filename]#rc.conf[.local]#. Это также " +"является политикой для всех новых скриптов, включая те, что в базовой " +"системе." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4947 +msgid "" +"Is the `REQUIRE` line set to `LOGIN`? This is mandatory for scripts that run " +"as a non-root user. If it runs as root, is there a good reason for it to run " +"prior to `LOGIN`? If not, it must run after so that local scrips can be " +"loosely grouped to a point in man:rcorder[8] after most everything in the " +"base is already running." +msgstr "" +"Установлена ли строка `REQUIRE` в значение `LOGIN`? Это обязательно для " +"скриптов, выполняемых от имени непривилегированного пользователя. Если " +"скрипт выполняется от имени root, есть ли веская причина для его запуска до " +"`LOGIN`? Если нет, он должен запускаться после, чтобы локальные скрипты " +"можно было условно сгруппировать в man:rcorder[8] после запуска большинства " +"компонентов базовой системы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4948 +msgid "" +"Does the script start a persistent service? If so, it must have `KEYWORD: " +"shutdown`." +msgstr "" +"Запускает ли скрипт постоянную службу? Если да, он должен содержать " +"`KEYWORD: shutdown`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4949 +msgid "" +"Make sure there is no `KEYWORD: FreeBSD` present. This has not been " +"necessary nor desirable for years. It is also an indication that the new " +"script was copy/pasted from an old script, so extra caution must be given to " +"the review." +msgstr "" +"Убедитесь, что отсутствует `KEYWORD: FreeBSD`. Это перестало быть " +"необходимым или желательным уже много лет. Это также указывает на то, что " +"новый скрипт был скопирован/вставлен из старого скрипта, поэтому следует " +"проявить дополнительную осторожность при проверке." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4950 +msgid "" +"If the script uses an interpreted language like `perl`, `python`, or `ruby`, " +"make certain that `command_interpreter` is set appropriately, for example, " +"for Perl, by adding `PERL=${PERL}` to `SUB_LIST` and using `%%PERL%%`. " +"Otherwise," +msgstr "" +"Если скрипт использует интерпретируемый язык, например `perl`, `python` или " +"`ruby`, убедитесь, что `command_interpreter` установлен корректно. Например, " +"для Perl добавьте `PERL=${PERL}` в `SUB_LIST` и используйте `%%PERL%%`. В " +"противном случае," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4954 +#, no-wrap +msgid "# service name stop\n" +msgstr "# service name stop\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4957 +msgid "" +"will probably not work properly. See man:service[8] for more information." +msgstr "" +"вероятно, не будет работать корректно. Дополнительную информацию смотрите в " +"man:service[8]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4958 +msgid "" +"Have all occurrences of [.filename]#/usr/local# been replaced with `%%PREFIX%" +"%`?" +msgstr "" +"Проверено, что все вхождения [.filename]#/usr/local# заменены на `%%PREFIX%" +"%`?" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4959 +msgid "Do the default variable assignments come after `load_rc_config`?" +msgstr "" +"Делаются ли присваивания переменным по умолчанию после `load_rc_config`?" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4960 +msgid "" +"Are there default assignments to empty strings? They should be removed, but " +"double-check that the option is documented in the comments at the top of the " +"file." +msgstr "" +"Используются ли пустые строки при присвоении значений по умолчанию? Такие " +"присвоения должны быть удалены, но перепроверьте, что эти параметры " +"задокументированы в комментариях в начале файла." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4961 +msgid "Are things that are set in variables actually used in the script?" +msgstr "" +"Действительно ли в сценариях используются значения, присвоенные переменным?" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4962 +msgid "" +"Are options listed in the default _name_`_flags` things that are actually " +"mandatory? If so, they must be in `command_args`. `-d` is a red flag (pardon " +"the pun) here, since it is usually the option to \"daemonize\" the process, " +"and therefore is actually mandatory." +msgstr "" +"Являются ли опции, перечисленные в стандартном _name_`_flags`, " +"обязательными? Если да, они должны быть в `command_args`. Флаг `-d` здесь, " +"как красный флаг (простите за каламбур), так как обычно это опция для " +"\"демонизации\" процесса и, следовательно, фактически обязательна." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4963 +msgid "" +"`_name__flags` must never be included in `command_args` (and vice versa, " +"although that error is less common)." +msgstr "" +"`_name__flags` никогда не должны включаться в `command_args` (и наоборот, " +"хотя такая ошибка встречается реже)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4964 +msgid "" +"Does the script execute any code unconditionally? This is frowned on. " +"Usually these things must be dealt with through a `start_precmd`." +msgstr "" +"Выполняет ли скрипт любой код безусловно? Это не приветствуется. Обычно " +"такие вещи должны обрабатываться через `start_precmd`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4965 +msgid "" +"All boolean tests must use the `checkyesno` function. No hand-rolled tests " +"for `[Yy][Ee][Ss]`, etc." +msgstr "" +"Все логические проверки должны использовать функцию `checkyesno`. Не " +"допускаются самодельные проверки на `[Yy][Ee][Ss]` и т.п." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4966 +msgid "" +"If there is a loop (for example, waiting for something to start) does it " +"have a counter to terminate the loop? We do not want the boot to be stuck " +"forever if there is an error." +msgstr "" +"Если есть цикл (например, ожидание запуска чего-либо), есть ли в нём счётчик " +"для завершения цикла? Мы не хотим, чтобы загрузка зависала навсегда в случае " +"ошибки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4967 +msgid "" +"Does the script create files or directories that need specific permissions, " +"for example, a [.filename]#pid# that needs to be owned by the user that runs " +"the process? Rather than the traditional man:touch[1]/man:chown[8]/" +"man:chmod[1] routine, consider using man:install[1] with the proper command " +"line arguments to do the whole procedure with one step." +msgstr "" +"Создает ли скрипт файлы или каталоги, требующие определенных разрешений, " +"например, [.filename]#pid#, который должен принадлежать пользователю, " +"запускающему процесс? Вместо традиционной последовательности man:touch[1]/" +"man:chown[8]/man:chmod[1] рассмотрите использование man:install[1] с " +"соответствующими аргументами командной строки, чтобы выполнить всю процедуру " +"за один шаг." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4969 +#, no-wrap +msgid "Adding Users and Groups" +msgstr "Добавление пользователей и групп" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4974 +msgid "" +"Some ports require a particular user account to be present, usually for " +"daemons that run as that user. For these ports, choose a _unique_ UID from " +"50 to 999 and register it in [.filename]#ports/UIDs# (for users) and " +"[.filename]#ports/GIDs# (for groups). The unique identification should be " +"the same for users and groups." +msgstr "" +"Некоторые порты требуют наличия определённой учётной записи пользователя, " +"обычно для демонов, работающих от имени этого пользователя. Для таких портов " +"выберите _уникальный_ UID в диапазоне от 50 до 999 и зарегистрируйте его в " +"[.filename]#ports/UIDs# (для пользователей) и [.filename]#ports/GIDs# (для " +"групп). Уникальный идентификатор должен быть одинаковым для пользователей и " +"групп." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4976 +msgid "" +"Please include a patch against these two files when requiring a new user or " +"group to be created for the port." +msgstr "" +"Пожалуйста, приложите патч для этих двух файлов, если требуется создать " +"нового пользователя или группу для порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4978 +msgid "" +"Then use `USERS` and `GROUPS` in [.filename]#Makefile#, and the user will be " +"automatically created when installing the port." +msgstr "" +"Затем используйте `USERS` и `GROUPS` в [.filename]#Makefile#, и пользователь " +"будет автоматически создан при установке порта." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4983 +#, no-wrap +msgid "" +"USERS=\tpulse\n" +"GROUPS=\tpulse pulse-access pulse-rt\n" +msgstr "" +"USERS=\tpulse\n" +"GROUPS=\tpulse pulse-access pulse-rt\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4986 +msgid "" +"The current list of reserved UIDs and GIDs can be found in [.filename]#ports/" +"UIDs# and [.filename]#ports/GIDs#." +msgstr "" +"Текущий список зарезервированных UID и GID можно найти в [.filename]#ports/" +"UIDs# и [.filename]#ports/GIDs#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4988 +#, no-wrap +msgid "Ports That Rely on Kernel Sources" +msgstr "Порты, зависящие от исходных кодов ядра" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4992 +msgid "" +"Some ports (such as kernel loadable modules) need the kernel source files so " +"that the port can compile. Here is the correct way to determine if the user " +"has them installed:" +msgstr "" +"Некоторые порты (например, загружаемые модули ядра) требуют исходные файлы " +"ядра для компиляции порта. Вот правильный способ проверить, установлены ли " +"они у пользователя:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4996 +#, no-wrap +msgid "USES=\tkmod\n" +msgstr "USES=\tkmod\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4999 +msgid "" +"Apart from this check, the `kmod` feature takes care of most items that " +"these ports need to take into account." +msgstr "" +"Помимо этой проверки, функция `kmod` учитывает большинство аспектов, которые " +"необходимо принимать во внимание данным портам." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5001 +#, no-wrap +msgid "Go Libraries" +msgstr "Библиотеки Go" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5005 +msgid "" +"Ports must not package or install Go libs or source code. Go ports must " +"fetch the required deps at the normal fetch time and should only install the " +"programs and things users need, not the things Go developers would need." +msgstr "" +"Порты не должны упаковывать или устанавливать библиотеки или исходный код " +"Go. Порты Go должны загружать необходимые зависимости в обычное время " +"загрузки и должны устанавливать только программы и то, что нужно " +"пользователям, а не то, что нужно разработчикам на Go." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5007 +msgid "Ports should (in order of preference):" +msgstr "Порты должны (в порядке предпочтения):" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5009 +msgid "Use vendored dependencies included with the package source." +msgstr "Использовать зависимости, включенные в исходный код пакета." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5010 +msgid "" +"Fetch the versions of deps specified by upstream (in the case of go.mod, " +"vendor.json or similar)." +msgstr "" +"Получить версии зависимостей, указанные вышестоящим проектом (в случае " +"go.mod, vendor.json или аналогичных)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5011 +msgid "" +"As a last resort (deps are not included nor versions specified exactly) " +"fetch versions of dependencies available at the time of upstream development/" +"release." +msgstr "" +"В крайнем случае (зависимости не включены и версии не указаны точно) " +"получить версии зависимостей, доступные на момент разработки/выпуска " +"вышестоящего проекта." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5013 +#, no-wrap +msgid "Haskell Libraries" +msgstr "Библиотеки Haskell" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5017 +msgid "" +"Just like in case of Go language, Ports must not package or install Haskell " +"libraries. Haskell ports must link statically to their dependencies and " +"fetch all distribution files on fetch stage." +msgstr "" +"Как и в случае с языком Go, коллекция портов не должна включать или " +"устанавливать библиотеки Haskell. Порты Haskell должны статически " +"линковаться со своими зависимостями и загружать все распространяемые файлы " +"на этапе fetch." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5019 +#, no-wrap +msgid "Shell Completion Files" +msgstr "Файлы завершения командной оболочки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5024 +msgid "" +"Many modern shells (including bash, fish, tcsh and zsh) support parameter " +"and/or option tab-completion. This support usually comes from completion " +"files, which contain the definitions for how tab completion will work for a " +"certain command. Ports sometimes ship with their own completion files, or " +"porters may have created them themselves." +msgstr "" +"Многие современные оболочки (включая bash, fish, tcsh и zsh) поддерживают " +"табуляцию для параметров и/или опций. Эта поддержка обычно обеспечивается " +"файлами завершения, которые содержат определения того, как будет работать " +"завершение по табуляции для определённой команды. Порты иногда поставляются " +"со своими собственными файлами завершения, или разработчики портов могут " +"создавать их самостоятельно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5028 +msgid "" +"When available, completion files should always be installed. It is not " +"necessary to make an option for it. If an option is used, though, always " +"enable it in `OPTIONS_DEFAULT`." +msgstr "" +"Если доступны файлы завершения, их всегда следует устанавливать. Нет " +"необходимости создавать для этого опцию. Однако если опция используется, " +"всегда включайте её в `OPTIONS_DEFAULT`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5030 +#, no-wrap +msgid "Full shell completion file names" +msgstr "Полные имена файлов завершения оболочки" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5034 +#, no-wrap +msgid "`bash`" +msgstr "`bash`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5035 +#, no-wrap +msgid "[.filename]#${PREFIX}/etc/bash_completion.d# or [.filename]#${PREFIX}/share/bash-completion/completions#" +msgstr "[.filename]#${PREFIX}/etc/bash_completion.d# or [.filename]#${PREFIX}/share/bash-completion/completions#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5037 +#, no-wrap +msgid "(any unique file names in one of these folders)" +msgstr "(любые уникальные имена файлов в одной из этих папок)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5038 +#, no-wrap +msgid "`fish`" +msgstr "`fish`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5039 +#, no-wrap +msgid "[.filename]#${PREFIX}/share/fish/completions/${PORTNAME}.fish#" +msgstr "[.filename]#${PREFIX}/share/fish/completions/${PORTNAME}.fish#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5042 +#, no-wrap +msgid "`zsh`" +msgstr "`zsh`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5043 +#, no-wrap +msgid "[.filename]#${PREFIX}/share/zsh/site-functions/_${PORTNAME}#" +msgstr "[.filename]#${PREFIX}/share/zsh/site-functions/_${PORTNAME}#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5046 +msgid "Do not register any dependencies on the shells themselves." +msgstr "Не регистрируйте зависимости от самих оболочек." diff --git a/documentation/content/ru/books/porters-handbook/testing/_index.adoc b/documentation/content/ru/books/porters-handbook/testing/_index.adoc --- a/documentation/content/ru/books/porters-handbook/testing/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/testing/_index.adoc @@ -1,22 +1,24 @@ --- -title: Глава 9. Тестирование вашего порта -prev: books/porters-handbook/pkg-files +description: 'Тестирование порта FreeBSD' next: books/porters-handbook/upgrading -showBookMenu: true -weight: 9 params: - path: "/books/porters-handbook/testing/" + path: /books/porters-handbook/testing/ +prev: books/porters-handbook/pkg-files +showBookMenu: true +tags: ["testing", "port", "Portclippy", "Portfmt", "Portlint", "poudriere", "sets"] +title: 'Глава 10. Тестирование вашего порта' +weight: 10 --- [[testing]] -= Тестирование вашего порта += Тестирование порта :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 9 +:sectnumoffset: 10 :partnums: :source-highlighter: rouge :experimental: @@ -58,7 +60,37 @@ Если `make describe` выдаёт строчку, а не ошибку, то для вас это пройдёт безболезненно. Обратитесь к файлу [.filename]#bsd.port.mk#, чтобы выяснить значение выдаваемых строк. -Заметьте также, что запуск последней версии `portlint` (как указано в следующем разделе) приведёт к автоматическому запуску команды `make describe`. +Также обратите внимание, что запуск актуальной версии `portlint` (как указано в следующем разделе) приведёт к автоматическому выполнению `make describe`. + +[[make-test]] +== Запуск `make test` + +Даже если порт успешно собирается, рекомендуется убедиться, что программа корректно выполняет свои функции. Если исходный проект предоставляет тесты вместе с программным обеспечением, рекомендуется их запустить и проверить, что всё работает, как ожидается. + +Порт может автоматически включить тесты, используя переменную `TEST_TARGET`. Когда эта переменная установлена, она содержит имя цели тестирования порта. Обычно это просто `test`, но другие варианты включают `tests`, `check` или, в специфических случаях, такие значения, как `run_tests.py`. + +В дополнение к переменной `TEST_TARGET` фреймворк предоставляет следующие переменные для управления выполнением тестов: + +* `TEST_WRKSRC` — это каталог для выполнения тестов. +* `TEST_ENV` содержит дополнительные переменные, которые передаются на этап тестирования. +* `TEST_ARGS` содержит любые дополнительные аргументы, переданные на этапе тестирования. + +Примеры использования этих переменных можно найти в package:cad/xyce[], package:www/libjwt[] и других. + +[NOTE] +==== +Убедитесь, что тесты не ломаются при обновлении порта. +==== + + +[[testing-portclippy]] +== Portclippy / Portfmt + +Эти инструменты поставляются из пакета:ports-mgmt/portfmt[]. + +Portclippy — это линтер, проверяющий, расположены ли переменные в файле [.filename]#Makefile# в правильном порядке согласно crossref:order[porting-order,Порядку переменных в Makefile портов]. + +Portfmt — это инструмент для автоматического форматирования [.filename]#Makefile#. [[testing-portlint]] == Portlint @@ -68,13 +100,13 @@ Так как для обнаружения ошибок `portlint` использует эвристические методы, то им могут выдаваться и ошибочные предупреждения. Кроме того, время от времени нечто, отмечаемое как некорректность, из-за ограничений механизма создания портов не может быть сделано никак иначе. Если вы сомневаетесь, то лучше всего спросить в {freebsd-ports}. [[testing-porttools]] -== Port Tools +== Инструменты для работы с портами Программа package:ports-mgmt/porttools[] входит в состав Коллекции Портов. -`port` является сценарием переднего плана, который может упростить вам задачу тестирования. Если вы хотите проверить новый порт или обновить существующий, то вы можете использовать `port test` для проверки вашего порта, включая проверку <>. Эта команда также находит и отображает любые файлы, которые невключенные в [.filename]#pkg-plist#. Смотрите следующий пример: +`port` является сценарием переднего плана, который может упростить вам задачу тестирования. Если вы хотите проверить новый порт или обновить существующий, то вы можете использовать `port test` для проверки вашего порта, включая проверку crossref:testing[testing-portlint,`portlint`]. Эта команда также находит и отображает любые файлы, которые невключенные в [.filename]#pkg-plist#. Смотрите следующий пример: -[source,shell] +[source, shell] .... # port test /usr/ports/net/csup .... @@ -92,43 +124,417 @@ Проверьте, что ваше приложение не устанавливает чего-либо в каталог [.filename]#/usr/local# вместо `PREFIX`. Наличие явно указанных путей можно быстро проверить следующим образом: -[source,shell] +[source, shell] .... -# make clean; make package PREFIX=/var/tmp/`make -V PORTNAME` +% make clean; make package PREFIX=/var/tmp/`make -V PORTNAME` .... Если что-то было установлено за пределами `PREFIX`, то процесс создания пакета сообщит об отсутствии файлов. Это также стоит проверить с использованием поддержки каталога сборки (смотрите crossref:special[staging, Staging]): -[source,shell] +[source, shell] .... -# make stage && make check-orphans && make package +% make stage && make check-plist && make stage-qa && make package .... -Эти проверки не найдут явно указанных путей внутри файлов порта и не проверят корректность использования `LOCALBASE` в качестве ссылки на файлы из других портов. Порт, временно установленный в [.filename]#/var/tmp/`make -V PORTNAME`#, следует проверять на работоспособность, чтобы убедиться в отсутствии проблем с путями. +* `check-plist` проверяет отсутствующие в plist файлы и файлы в plist, которые не установлены портом. +* `stage-qa` проверяет наличие распространённых проблем, таких как неправильный шебанг (интерпретаторная строка в первой строке скрипта), символьные ссылки, указывающие за пределы stage-директории,файлы с setuid битом и библиотеки с отладочной информацией... + +Эти тесты не обнаружат жёстко заданные пути в файлах порта, а также не проверят, что `LOCALBASE` используется корректно для ссылок на файлы из других портов. Временно установленный порт в [.filename]#/var/tmp/`make -V PORTNAME`# должен быть протестирован на корректную работу, чтобы убедиться в отсутствии проблем с путями. -Переменная `PREFIX` не должна задаваться явно в файле [.filename]#Makefile# порта. Пользователи при установке порта могут задать в `PREFIX` свое собственное место, и порт должен учитывать это значение. +`PREFIX` не должен быть явно установлен в [.filename]#Makefile# порта. Пользователи, устанавливающие порт, могут задать `PREFIX` в другом месте, и порт должен учитывать эту настройку. -Обратитесь к программам/файлам из других портов с переменными, перечисленными выше, без указания явных маршрутов. Например, если ваш порт требует, чтобы макрос `PAGER` являлся полным путем утилиты `less`, не используйте строковый путь [.filename]#/usr/local/bin/less#. Вместо этого используйте `${LOCALBASE}`: +Обращайтесь к программам и файлам из других портов с помощью упомянутых выше переменных, а не явных путей. Например, если порт требует, чтобы макрос `PAGER` содержал полный путь к `less`, не используйте явный путь [.filename]#/usr/local/bin/less#. Вместо этого используйте `${LOCALBASE}`: [.programlisting] .... -DPAGER=\"${LOCALBASE}/bin/less\" .... -Путь с использованием `LOCALBASE` имеет больше шансов оставаться работоспособным, если системный администратор переместил всё дерево [.filename]#/usr/local# куда-то в другое место. +Путь с `LOCALBASE` с большей вероятностью продолжит работать, если системный администратор переместил всё дерево [.filename]#/usr/local# в другое место. -[[testing-tinderbox]] -== Tinderbox +[TIP] +==== +Все эти тесты выполняются автоматически при запуске `poudriere testport` или `poudriere bulk -t`. Настоятельно рекомендуется каждому участнику разработки портов устанавливать и тестировать свои порты с помощью этого инструмента. Дополнительную информацию можно найти в crossref:testing[testing-poudriere, poudriere]. +==== + +[[testing-poudriere]] +== poudriere -Если вы алчный контрибутор портов, то вы можете захотеть взглянуть на Tinderbox. Это мощная система построения и тестирования портов. Tinderbox можно установить, используя порт package:ports-mgmt/tinderbox[]. Обязательно прочитайте поставляемую документацию, поскольку конфигурация не является тривиальной. +Для контрибьютора портов poudriere является одним из самых важных и полезных инструментов для тестирования и сборки. Его основные возможности включают: -Для получения подробностей посетите http://tinderbox.marcuscom.com/[вебсайт Tinderbox]. +* Массовая сборка всего дерева портов, определенных подмножеств дерева портов или отдельного порта с его зависимостями +* Автоматическая упаковка результатов сборки +* Генерация файлов журнала сборки для каждого порта +* Предоставление подписанного репозитория man:pkg[8] +* Тестирование сборки портов перед отправкой патча в трекер ошибок FreeBSD или внесением изменений в дерево портов +* Тестирование успешных сборок портов с использованием различных параметров -[[testing-poudriere]] -== Poudriere +Поскольку poudriere выполняет сборку в чистой среде man:jail[8] и использует возможности man:zfs[8], он имеет несколько преимуществ по сравнению с традиционным тестированием на основной системе: + +* Отсутствие загрязнения основной среды: никаких оставшихся файлов, случайных удалений или изменений существующих конфигурационных файлов. +* Проверяет [.filename]#pkg-plist# на наличие отсутствующих или лишних записей +* Коммитеры портов иногда запрашивают журнал poudriere вместе с отправкой патча, чтобы оценить, готов ли патч для интеграции в дерево портов + +Также его настройка и использование довольно просты, он не имеет зависимостей и будет работать в любой поддерживаемой версии FreeBSD. В этом разделе показано, как установить, настроить и запустить poudriere в рамках обычного рабочего процесса разработчика портов. + +Примеры в этом разделе показывают стандартную структуру файлов, принятую в FreeBSD. Внесите соответствующие изменения, если у вас используются другие настройки. Дерево портов, обозначаемое как `${PORTSDIR}`, находится в [.filename]#/usr/ports#. По умолчанию `${LOCALBASE}` и `${PREFIX}` указывают на [.filename]#/usr/local#. + +[[testing-poudriere-installing]] +=== Установка poudriere + +poudriere доступен в дереве портов в пакете package:ports-mgmt/poudriere[]. Его можно установить с помощью man:pkg[8] или из портов: + +[source, shell] +.... +# pkg install poudriere +.... + +или + +[source, shell] +.... +# make -C /usr/ports/ports-mgmt/poudriere install clean +.... + +Также существует версия poudriere в разработке, которая в конечном итоге станет следующим релизом. Она доступна в пакете:ports-mgmt/poudriere-devel[]. Эта версия используется для официальных сборок пакетов FreeBSD, поэтому она хорошо протестирована. В ней часто появляются новые интересные функции. Коммиттер портов захочет использовать версию в разработке, так как именно она используется в продакшене и содержит все новые функции, которые гарантируют, что всё будет работать идеально. Контрибьютору не обязательно нужны эти функции, так как наиболее важные исправления переносятся в выпущенную версию. Основная причина использования версии в разработке для сборки официальных пакетов заключается в её скорости — она позволяет сократить время полной сборки с 18 до 17 часов при использовании высокопроизводительного сервера с 32 CPU и 128 ГБ оперативной памяти. Эти оптимизации не будут столь значимы при сборке портов на настольном компьютере. + +[[testing-poudriere-setup]] +=== Настройка poudriere + +Порт устанавливает файл конфигурации по умолчанию, [.filename]#/usr/local/etc/poudriere.conf#. Каждый параметр описан в этом файле конфигурации. + +Вот минимальный пример конфигурационного файла: + +[.programlisting] +.... +ZPOOL=zroot +BASEFS=/usr/local/poudriere +DISTFILES_CACHE=/usr/ports/distfiles +RESOLV_CONF=/etc/resolv.conf +.... + +`ZPOOL`:: +Имя пула хранения ZFS, который будет использовать poudriere. Должно быть указано в выводе команды `zpool status`. + +`BASEFS`:: +Корневая точка монтирования файловых систем poudriere. Эта запись приведет к тому, что poudriere смонтирует `tank/poudriere` в `/poudriere`. + +`DISTFILES_CACHE`:: +Определяет, где хранятся distfiles. В этом примере poudriere и хост используют общий каталог для хранения distfiles. Это позволяет избежать загрузки tарболов, которые уже присутствуют в системе. Пожалуйста, создайте этот каталог, если он ещё не существует, чтобы poudriere мог его найти. + +`RESOLV_CONF`:: +Используйте файл [.filename]#/etc/resolv.conf# хоста внутри клеток для DNS. Это необходимо, чтобы клетки могли разрешать URL-адреса distfiles при загрузке. Это не требуется при использовании прокси. Обратитесь к файлу конфигурации по умолчанию для настройки прокси. + +[[testing-poudriere-create-jails]] +=== Создание клеток poudriere + +Создайте базовые клетки, которые poudriere будет использовать для сборки: + +[source, shell] +.... +# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64 +.... + +Загрузите `13.1-RELEASE` для `amd64` с FTP-сервера, указанного в `FREEBSD_HOST` в [.filename]#poudriere.conf#, создайте ZFS-файловую систему `tank/poudriere/jails/131Ramd64`, смонтируйте её в [.filename]#/poudriere/jails/131Ramd64# и распакуйте тарболлы `13.1-RELEASE` в эту файловую систему. + +[source, shell] +.... +# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https +.... + +Создайте `tank/poudriere/jails/12i386`, смонтируйте его на [.filename]#/poudriere/jails/12i386#, затем извлеките верхушку ветки Git `FreeBSD-12-STABLE` из `GIT_HOST` в [.filename]#poudriere.conf# или по умолчанию `git.freebsd.org` в [.filename]#/poudriere/jails/12i386/usr/src#, после чего выполните `buildworld` и установите его в [.filename]#/poudriere/jails/12i386#. + +[NOTE] +==== +Хотя возможно собрать более новую версию FreeBSD на старой версии, в большинстве случаев она не запустится. Например, если требуется клетка на `stable/13`, то хост также должен работать на `stable/13`. Запуск `13.1-RELEASE` недостаточен. +==== + +[NOTE] +==== +Для создания клетки poudriere для `14.0-CURRENT`: + +[source, shell] +.... +# poudriere jail -c -j 14amd64 -v main -a amd64 -m git+https +.... + +Для запуска клетки `14.0-CURRENT` poudriere хостовая система должна работать под управлением `14.0-CURRENT`. В общем случае, более новые ядра могут собирать и запускать более старые клетки. Например, ядро `14.0-CURRENT` может собирать и запускать клетку `12.4-STABLE`, если параметр ядра `COMPAT_FREEBSD12` был скомпилирован (включен по умолчанию в конфигурации ядра [.filename]#GENERIC# `14.0-CURRENT`). +==== + +Список клеток, известных poudriere, можно вывести с помощью команды `poudriere jail -l`: + +[source, shell] +.... +# poudriere jail -l +JAILNAME VERSION ARCH METHOD +131Ramd64 13.1-RELEASE amd64 ftp +12i386 12.4-STABLE i386 git+https +.... + +[[testing-poudriere-maintaining-jails]] +=== Обновление клеток poudriere + +Управление обновлениями очень простое. Команда: + +[source, shell] +.... +# poudriere jail -u -j JAILNAME +.... + +обновляет указанную клетку до последней доступной версии. Для релизов FreeBSD обновление до последнего уровня исправлений с помощью man:freebsd-update[8]. Для версий FreeBSD, собранных из исходников, обновление до последней ревизии git в ветке. + +[TIP] +==== +Для клеток, использующих метод `git+*`, полезно добавить `-J _КоличествоПараллельныхСборок_` для ускорения сборки за счёт увеличения количества параллельных задач компиляции. Например, если на машине для сборки 6 CPU, используйте: + +[source, shell] +.... +# poudriere jail -u -J 6 -j JAILNAME +.... + +==== + +[[testing-poudriere-ports-tree]] +=== Настройка деревьев портов для использования с poudriere + +Существует несколько способов использования деревьев портов в poudriere. Наиболее простой способ — позволить poudriere создать для себя дерево портов по умолчанию, используя link:{handbook}mirrors/#git[Git]: + +[source, shell] +.... +# poudriere ports -c -m git+https -B main +.... + +Эти команды создают `tank/poudriere/ports/default`, монтируют его в [.filename]#/poudriere/ports/default# и заполняют с помощью Git. После этого он включается в список известных деревьев портов: + +[source, shell] +.... +# poudriere ports -l +PORTSTREE METHOD TIMESTAMP PATH +default git+https 2020-07-20 04:23:56 /poudriere/ports/default +.... + +[NOTE] +==== +Обратите внимание, что дерево портов "default" является особым. Каждая из команд сборки, объяснённых далее, будет неявно использовать это дерево портов, если явно не указано иное. Чтобы использовать другое дерево, добавьте `-p _treename_` к командам. +==== + +Лучший способ работы с локальными изменениями для разработчика портов — использовать link:{handbook}mirrors/#git[Git]. Как и при создании клеток, можно использовать другой метод для создания дерева портов. Чтобы добавить дополнительное дерево портов для тестирования локальных изменений и разработки портов, предпочтительно использовать клонирование дерева через git (как описано выше). + +[[testing-poudriere-ports-tree-manual]] +=== Использование управляемых вручную деревьев портов с помощью poudriere -Если вы контрибутор портов, подумайте об установке poudriere. Это мощная система для построения и тестирования портов. Poudriere можно установить из package:ports-mgmt/poudriere[]. +В зависимости от рабочего процесса может быть крайне полезно использовать деревья портов, которые поддерживаются вручную. Например, если существует локальная копия дерева портов в [.filename]#/work/ports#, укажите poudriere на это расположение: + +[source, shell] +.... +# poudriere ports -c -m null -M /work/ports -p development +.... + +Это будет указано в таблице известных деревьев: + +[source, shell] +.... +# poudriere ports -l +PORTSTREE METHOD TIMESTAMP PATH +development null 2020-07-20 05:06:33 /work/ports +.... + +[NOTE] +==== +Тире или `null` в колонке `METHOD` означает, что poudriere никогда не будет обновлять или изменять это дерево портов. Полностью на пользователе лежит ответственность за поддержку этого дерева, включая все локальные изменения, которые могут использоваться для тестирования новых портов и отправки исправлений. +==== + +[[testing-poudriere-ports-tree-updating]] +=== Обновление деревьев портов poudriere + +Так же просто, как с клетками, описанными ранее: + +[source, shell] +.... +# poudriere ports -u -p PORTSTREE +.... + +Обновит указанное _PORTSTREE_, дерево, указанное в выводе команды `poudriere -l`, до последней доступной ревизии на официальных серверах. + +[NOTE] +==== +Деревья портов без метода, см. crossref:testing[testing-poudriere-ports-tree-manual, Использование вручную управляемых деревьев портов с помощью poudriere], не могут быть обновлены таким образом и должны обновляться вручную сопровождающим портов. +==== + +[[testing-poudriere-testing-ports]] +=== Тестирование портов + +После настройки клеток и деревьев портов можно проверить результат изменений, внесенных участником в дерево портов. + +Например, локальные изменения в порте package:www/firefox[], расположенном в [.filename]#/work/ports/www/firefox#, можно протестировать в ранее созданной клетке 13.1-RELEASE: + +[source, shell] +.... +# poudriere testport -j 131Ramd64 -p development -o www/firefox +.... + +Это соберет все зависимости Firefox. Если зависимость уже была собрана ранее и остается актуальной, будет установлен готовый пакет. Если для зависимости нет актуального пакета, он будет собран с параметрами по умолчанию в клетке. Затем будет собран сам Firefox. + +Полная сборка каждого порта записывается в [.filename]#/poudriere/data/logs/bulk/131Ri386-development/build-time/logs#. + +Имя каталога `131Ri386-development` формируется из аргументов `-j` и `-p` соответственно. Для удобства также поддерживается символическая ссылка [.filename]#/poudriere/data/logs/bulk/131Ri386-development/latest#. Эта ссылка указывает на последний каталог _времени сборки_. Также в этом каталоге находится файл [.filename]#index.html#, который позволяет наблюдать за процессом сборки через веб-браузер. + +По умолчанию poudriere очищает клетки и оставляет файлы журналов в указанных выше каталогах. Для упрощения анализа клетки можно оставить запущенными после сборки, добавив `-i` к `testport`: + +[source, shell] +.... +# poudriere testport -j 131Ramd64 -p development -i -o www/firefox +.... + +После завершения сборки, независимо от того, была ли она успешной, в клетке предоставляется оболочка. Эта оболочка используется для дальнейшего исследования. Можно указать poudriere оставить клетку запущенной после завершения сборки с помощью `-I`. poudriere покажет команду для выполнения, когда клетка больше не нужна. Затем можно использовать man:jexec[8] для входа в неё: + +[source, shell] +.... +# poudriere testport -j 131Ramd64 -p development -I -o www/firefox +[...] +====>> Installing local Pkg repository to /usr/local/etc/pkg/repos +====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing +====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root +====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development +# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root +# [do some stuff in the jail] +# exit +# poudriere jail -k -j 131Ramd64 -p development +====>> Umounting file systems +.... + +Неотъемлемой частью инфраструктуры сборки портов FreeBSD является возможность настройки портов под личные предпочтения с помощью опций. Их также можно тестировать с помощью poudriere. Добавление опции `-c`: + +[source, shell] +.... +# poudriere testport -j 131Ramd64 -c -o www/firefox +.... + +Представляет диалог настройки порта перед его сборкой. Порты, указанные после `-o` в формате `_категория_/_имя_порта_`, будут использовать указанные опции, все зависимости будут использовать опции по умолчанию. Тестирование зависимых портов с нестандартными опциями может быть выполнено с использованием наборов, см. crossref:testing[testing-poudriere-sets, Использование наборов]. + +[TIP] +==== +При тестировании портов, где файл [.filename]#pkg-plist# изменяется во время сборки в зависимости от выбранных опций, рекомендуется выполнить тестовый запуск со всеми выбранными опциями _и_ один без выбранных опций. +==== + +[[testing-poudriere-sets]] +=== Использование наборов + +Для всех действий, связанных со сборкой, можно указать так называемый _набор_ с помощью `-z _имя_набора_`. Набор относится к полностью независимой сборке. Это позволяет, например, использовать `testport` с нестандартными параметрами для зависимых портов. + +Для использования наборов poudriere ожидает, что будет использована структура каталогов, аналогичная `PORT_DBDIR`, по умолчанию [.filename]#/var/db/ports#, в его конфигурационной директории. Этот каталог затем монтируется с помощью man:nullfs[5] в клетки, где собираются порты и их зависимости. Обычно подходящую начальную точку можно получить, рекурсивно скопировав существующий `PORT_DBDIR` в [.filename]#/usr/local/etc/poudriere.d/jailname-portname-setname-options#. Это подробно описано в man:poudriere[8]. Например, для тестирования package:www/firefox[] в определённом наборе с именем `devset`, добавьте параметр `-z devset` к команде `testport`: + +[source, shell] +.... +# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox +.... + +Это проверит наличие этих каталогов в следующем порядке: + +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options# +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options# +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options# +* [.filename]#/usr/local/etc/poudriere.d/devset-options# +* [.filename]#/usr/local/etc/poudriere.d/development-options# +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-options# +* [.filename]#/usr/local/etc/poudriere.d/options# + +Из этого списка poudriere man:nullfs[5] монтирует _первое существующее_ дерево каталогов в директорию [.filename]#/var/db/ports# сборных клеток. Таким образом, все пользовательские настройки используются для всех портов во время этого запуска `testport`. + +После предоставления структуры каталогов для набора можно изменить параметры для конкретного порта. Например: + +[source, shell] +.... +# poudriere options -c www/firefox -z devset +.... + +Отображается диалог настройки package:www/firefox[], где можно редактировать параметры. Выбранные параметры сохраняются в набор `devset`. + +[NOTE] +==== +poudriere очень гибок в настройке опций. poudriere можно настроить для конкретных клеток, деревьев портов и для нескольких портов одной командой. Подробности см. в man:poudriere[8]. +==== + +[[testing-poudriere-make-conf]] +=== Предоставление пользовательского файла [.filename]#make.conf# + +Подобно использованию наборов, poudriere также использует пользовательский [.filename]#make.conf#, если он предоставлен. Для этого не требуется специального аргумента командной строки. Вместо этого poudriere ищет существующие файлы, соответствующие схеме именования, производной от командной строки. Например: + +[source, shell] +.... +# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox +.... + +заставляет poudriere проверять наличие этих файлов в следующем порядке: + +* [.filename]#/usr/local/etc/poudriere.d/make.conf# +* [.filename]#/usr/local/etc/poudriere.d/devset-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/development-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-make.conf# + +В отличие от наборов, все найденные файлы будут добавлены, _в указанном порядке_, в один [.filename]#make.conf# внутри клеток сборки. Таким образом, можно задать общие переменные make, предназначенные для влияния на все сборки, в файле [.filename]#/usr/local/etc/poudriere.d/make.conf#. Специальные переменные, предназначенные только для определённых клеток или наборов, можно задать в специализированных файлах [.filename]#make.conf#, например, в [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-make.conf#. + +[[testing-poudriere-sets-perl]] +.Использование [.filename]#make.conf# для изменения Perl по умолчанию +[example] +==== + +Для сборки набора с нестандартной версией Perl, например, `5.20`, используя набор с именем `perl5-20`, создайте файл [.filename]#perl5-20-make.conf# со следующей строкой: + +[.programlisting] +.... +DEFAULT_VERSIONS+= perl=5.20 +.... +[NOTE] +**** +Обратите внимание на использование `+=`, чтобы содержимое переменной не было перезаписано, если она уже установлена в стандартном [.filename]#make.conf#. +**** + +==== + +[[testing-poudriere-pruning-distfiles]] +=== Удаление ненужных файлов дистрибутива + +poudriere имеет встроенный механизм для удаления устаревших файлов дистрибутива, которые больше не используются ни одним портом данного дерева. Команда + +[source, shell] +.... +# poudriere distclean -p portstree +.... + +будет сканировать папку файлов дистрибутива, `DISTFILES_CACHE` в [.filename]#poudriere.conf#, сравнивая ее с деревом портов, указанным аргументом `-p _portstree_`, и запрашивать подтверждение на удаление этих файлов дистрибутива. Чтобы пропустить запрос и удалить все неиспользуемые файлы без подтверждения, можно добавить аргумент `-y`: + +[source, shell] +.... +# poudriere distclean -p portstree -y +.... + +[[testing-debugging-ports]] +== Отладка портов + +Иногда что-то идёт не так, и порт не работает во время выполнения. Фреймворк предоставляет некоторые средства для отладки портов. Эти вспомогательные инструменты ограничены, поскольку способ отладки порта во многом зависит от используемой технологии. Следующие переменные помогают в отладке портов: + +* `WITH_DEBUG`. Если установлено, порты собираются с отладочными символами. +* `WITH_DEBUG_PORTS`. Указывает список портов, которые должны собираться с установленным `WITH_DEBUG`. +* `DEBUG_FLAGS`. Используется для указания дополнительных флагов для `CFLAGS`. По умолчанию `-g`. + +Когда `WITH_DEBUG` установлен, глобально или для списка портов, результирующие бинарные файлы не лишаются символов. + +Эти переменные могут быть указаны в [.filename]#make.conf# или в командной строке: + +[source, shell] +.... +# cd category/port && make -DWITH_DEBUG DEBUG_FLAGSS="-g -O0" +.... + +[NOTE] +==== +Если порт собирается с использованием package:ports-mgmt/poudriere[], отладочные переменные должны быть указаны в [.filename]#make.conf# poudriere, а не в [.filename]#/etc/make.conf#. Подробности см. в документации package:ports-mgmt/poudriere[]. +==== -Для получения подробной информации посетите http://fossil.etoilebsd.net/poudriere[вебсайт Poudriere]. +Пожалуйста, обратитесь к отладочной информации в extref:{developers-handbook}tools[Руководстве разработчика, отладка] для получения более подробной информации о доступных инструментах отладки. diff --git a/documentation/content/ru/books/porters-handbook/testing/_index.po b/documentation/content/ru/books/porters-handbook/testing/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/testing/_index.po @@ -0,0 +1,1685 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-17 21:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:1 +#, no-wrap +msgid "Testing a FreeBSD Port" +msgstr "Тестирование порта FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:1 +#, no-wrap +msgid "Chapter 10. Testing the Port" +msgstr "Глава 10. Тестирование вашего порта" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:14 +#, no-wrap +msgid "Testing the Port" +msgstr "Тестирование порта" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:52 +#, no-wrap +msgid "Running `make describe`" +msgstr "Запуск `make describe`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:57 +msgid "" +"Several of the FreeBSD port maintenance tools, such as man:portupgrade[1], " +"rely on a database called [.filename]#/usr/ports/INDEX# which keeps track of " +"such items as port dependencies. [.filename]#INDEX# is created by the top-" +"level [.filename]#ports/Makefile# via `make index`, which descends into each " +"port subdirectory and executes `make describe` there. Thus, if `make " +"describe` fails in any port, no one can generate [.filename]#INDEX#, and " +"many people will quickly become unhappy." +msgstr "" +"Некоторые утилиты FreeBSD для сопровождения портов, например, " +"man:portupgrade[1], опираются на базу данных с именем [.filename]#/usr/ports/" +"INDEX#, в которой отслеживаются такие характеристики портов, как их " +"зависимости. Файл [.filename]#INDEX# создаётся при помощи [.filename]#ports/" +"Makefile# верхнего уровня по команде `make index`, спускающейся в подкаталог " +"каждого порта и выполняющей в нём `make describe`. Таким образом, если " +"выполнение `make describe` с каким-либо портом завершится неудачно, то " +"никому не удастся создать [.filename]#INDEX#, при этом много людей вскоре " +"станут несчастны." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:62 +msgid "" +"It is important to be able to generate this file no matter what options are " +"present in [.filename]#make.conf#, so please avoid doing things such as " +"using `.error` statements when (for instance) a dependency is not " +"satisfied. (See crossref:porting-dads[dads-dot-error,Avoid Use of the " +"`.error` Construct].)" +msgstr "" +"Возможность генерировать этот файл очень важна вне зависимости от того, " +"какие параметры присутствуют в [.filename]#make.conf#, поэтому, пожалуйста, " +"избегайте, таких вещей, как использование декларации `.error`, когда (к " +"примеру) требования к зависимости не было удовлетворено. (Смотрите " +"crossref:porting-dads[dads-dot-error, Избегайте использования конструкции " +"`.error`].)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:66 +msgid "" +"If `make describe` produces a string rather than an error message, " +"everything is probably safe. See [.filename]#bsd.port.mk# for the meaning " +"of the string produced." +msgstr "" +"Если `make describe` выдаёт строчку, а не ошибку, то для вас это пройдёт " +"безболезненно. Обратитесь к файлу [.filename]#bsd.port.mk#, чтобы выяснить " +"значение выдаваемых строк." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:68 +msgid "" +"Also note that running a recent version of `portlint` (as specified in the " +"next section) will cause `make describe` to be run automatically." +msgstr "" +"Также обратите внимание, что запуск актуальной версии `portlint` (как " +"указано в следующем разделе) приведёт к автоматическому выполнению `make " +"describe`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:70 +#, no-wrap +msgid "Running `make test`" +msgstr "Запуск `make test`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:76 +msgid "" +"Even if the port builds fine, it is a good idea to ensure that the software " +"correctly does what it is supposed to do. If the original upstream project " +"provides tests along with the software, it is a good idea to run them and " +"check everything works as expected." +msgstr "" +"Даже если порт успешно собирается, рекомендуется убедиться, что программа " +"корректно выполняет свои функции. Если исходный проект предоставляет тесты " +"вместе с программным обеспечением, рекомендуется их запустить и проверить, " +"что всё работает, как ожидается." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:81 +msgid "" +"A port can enable tests automatically by using the `TEST_TARGET` variable. " +"When set, this variable contains the name of the testing target of the " +"port. This is usually just `test` but other names include `tests`, `check` " +"or for specific cases things like `run_tests.py`." +msgstr "" +"Порт может автоматически включить тесты, используя переменную `TEST_TARGET`. " +"Когда эта переменная установлена, она содержит имя цели тестирования порта. " +"Обычно это просто `test`, но другие варианты включают `tests`, `check` или, " +"в специфических случаях, такие значения, как `run_tests.py`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:84 +msgid "" +"In addition to the `TEST_TARGET` variable the framework provides the " +"following variables to control the tests execution:" +msgstr "" +"В дополнение к переменной `TEST_TARGET` фреймворк предоставляет следующие " +"переменные для управления выполнением тестов:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:86 +msgid "`TEST_WRKSRC` is the directory to do the tests in." +msgstr "`TEST_WRKSRC` — это каталог для выполнения тестов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:87 +msgid "" +"`TEST_ENV` contains additional variables to be passed to the test stage." +msgstr "" +"`TEST_ENV` содержит дополнительные переменные, которые передаются на этап " +"тестирования." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:88 +msgid "`TEST_ARGS` contains any extra arguments passed to the test stage." +msgstr "" +"`TEST_ARGS` содержит любые дополнительные аргументы, переданные на этапе " +"тестирования." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:91 +msgid "" +"Examples of use of these variables can be found in package:cad/xyce[], " +"package:www/libjwt[] and others." +msgstr "" +"Примеры использования этих переменных можно найти в package:cad/xyce[], " +"package:www/libjwt[] и других." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:95 +msgid "Please make sure that tests do not break when updating a port." +msgstr "Убедитесь, что тесты не ломаются при обновлении порта." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:99 +#, no-wrap +msgid "Portclippy / Portfmt" +msgstr "Portclippy / Portfmt" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:102 +msgid "Those tools come from package:ports-mgmt/portfmt[]." +msgstr "Эти инструменты поставляются из пакета:ports-mgmt/portfmt[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:104 +msgid "" +"Portclippy is a linter that checks if variables in the [.filename]#Makefile# " +"are in the correct order according to crossref:order[porting-order,Order of " +"Variables in Port Makefiles]." +msgstr "" +"Portclippy — это линтер, проверяющий, расположены ли переменные в файле " +"[.filename]#Makefile# в правильном порядке согласно crossref:order[porting-" +"order,Порядку переменных в Makefile портов]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:106 +msgid "Portfmt is a tool for automatically formatting [.filename]#Makefile#." +msgstr "" +"Portfmt — это инструмент для автоматического форматирования " +"[.filename]#Makefile#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:108 +#, no-wrap +msgid "Portlint" +msgstr "Portlint" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:113 +msgid "" +"Do check the port with crossref:quick-porting[porting-portlint,`portlint`] " +"before submitting or committing it. `portlint` warns about many common " +"errors, both functional and stylistic. For a new port, `portlint -A` is the " +"most thorough; for an existing port, `portlint -C` is sufficient." +msgstr "" +"Проверьте свою работу командой crossref:quick-porting[porting-" +"portlint,`portlint`] перед тем, как её отослать или перенести в дерево " +"портов. `portlint` предупреждает вас о многих распространённых ошибках, как " +"функциональных, так и стилистических. Для нового (или скопированного внутри " +"хранилища) порта самым подходящим является запуск `portlint -A`; для уже " +"существующего порта достаточно будет запустить `portlint -C`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:117 +msgid "" +"Since `portlint` uses heuristics to try to figure out errors, it can produce " +"false positive warnings. In addition, occasionally something that is " +"flagged as a problem really cannot be done in any other way due to " +"limitations in the ports framework. When in doubt, the best thing to do is " +"ask on {freebsd-ports}." +msgstr "" +"Так как для обнаружения ошибок `portlint` использует эвристические методы, " +"то им могут выдаваться и ошибочные предупреждения. Кроме того, время от " +"времени нечто, отмечаемое как некорректность, из-за ограничений механизма " +"создания портов не может быть сделано никак иначе. Если вы сомневаетесь, то " +"лучше всего спросить в {freebsd-ports}." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:119 +#, no-wrap +msgid "Port Tools" +msgstr "Инструменты для работы с портами" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:122 +msgid "" +"The package:ports-mgmt/porttools[] program is part of the Ports Collection." +msgstr "" +"Программа package:ports-mgmt/porttools[] входит в состав Коллекции Портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:128 +msgid "" +"`port` is the front-end script, which can help simplify the testing job. " +"Whenever a new port or an update to an existing one needs testing, use `port " +"test` to test the port, including the crossref:testing[testing-" +"portlint,`portlint`] checking. This command also detects and lists any " +"files that are not listed in [.filename]#pkg-plist#. For example:" +msgstr "" +"`port` является сценарием переднего плана, который может упростить вам " +"задачу тестирования. Если вы хотите проверить новый порт или обновить " +"существующий, то вы можете использовать `port test` для проверки вашего " +"порта, включая проверку crossref:testing[testing-portlint,`portlint`]. Эта " +"команда также находит и отображает любые файлы, которые невключенные в " +"[.filename]#pkg-plist#. Смотрите следующий пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:132 +#, no-wrap +msgid "# port test /usr/ports/net/csup\n" +msgstr "# port test /usr/ports/net/csup\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:135 +#, no-wrap +msgid "`PREFIX` and `DESTDIR`" +msgstr "`PREFIX` и `DESTDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:140 +msgid "" +"`PREFIX` determines where the port will be installed. It defaults to " +"[.filename]#/usr/local#, but can be set by the user to a custom path like " +"[.filename]#/opt#. The port must respect the value of this variable." +msgstr "" +"Переменная `PREFIX` определяет, куда будет установлен порт. По умолчанию это " +"[.filename]#/usr/local#, но может меняться пользователем на собственный " +"путь, такой как [.filename]#/opt#. В вашем порту значение этой переменной " +"должно учитываться." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:145 +msgid "" +"`DESTDIR`, if set by the user, determines the complete alternative " +"environment, usually a jail or an installed system mounted somewhere other " +"than [.filename]#/#. A port will actually install into [.filename]#DESTDIR/" +"PREFIX#, and register with the package database in [.filename]#DESTDIR/var/" +"db/pkg#. `DESTDIR` is handled automatically by the ports infrastructure " +"with man:chroot[8]. There is no need for modifications or any extra care to " +"write `DESTDIR`-compliant ports." +msgstr "" +"Если пользователь установил переменную `DESTDIR`, то она определяет полное " +"альтернативное окружение, обычно, это jail или установленная система, " +"смонтированная в месте, отличном от [.filename]#/#. На самом деле порт " +"устанавливается в [.filename]#DESTDIR/PREFIX# и регистрируется в базе данных " +"пакетов в [.filename]#DESTDIR/var/db/pkg#. Поскольку управление `DESTDIR` " +"производится автоматически инфраструктурой портов с помощью man:chroot[8], " +"вам не нужны никакие изменения или проявление особой осторожности при " +"написании портов, совместымых с `DESTDIR`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:148 +msgid "" +"The value of `PREFIX` will be set to `LOCALBASE` (defaulting to [.filename]#/" +"usr/local#). If `USE_LINUX_PREFIX` is set, `PREFIX` will be `LINUXBASE` " +"(defaulting to [.filename]#/compat/linux#)." +msgstr "" +"Значение переменной `PREFIX` будет установлено в `LOCALBASE` (по умолчанию " +"[.filename]#/usr/local#). Если задана переменная `USE_LINUX_PREFIX`, то " +"`PREFIX` примет значение `LINUXBASE` (по умолчанию [.filename]#/compat/" +"linux#)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:152 +msgid "" +"Avoiding hard-coded [.filename]#/usr/local# paths in the source makes the " +"port much more flexible and able to cater to the needs of other sites. " +"Often, this can be accomplished by replacing occurrences of [.filename]#/usr/" +"local# in the port's various [.filename]##Makefile##s with `${PREFIX}`. " +"This variable is automatically passed down to every stage of the build and " +"install processes." +msgstr "" +"Избегание явно прописываемых путей [.filename]#/usr/local# в исходном коде " +"сделает порт гораздо более гибким и способным удовлетворить потребности " +"других серверов. Часто этого можно добиться простой заменой строк " +"[.filename]#/usr/local# в различных файлах [.filename]#Makefile# внутри " +"порта на `${PREFIX}`. Эта переменная автоматически передаётся далее на " +"каждом этапе построения и установки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:155 +msgid "" +"Make sure the application is not installing things in [.filename]#/usr/" +"local# instead of `PREFIX`. A quick test for such hard-coded paths is:" +msgstr "" +"Проверьте, что ваше приложение не устанавливает чего-либо в каталог " +"[.filename]#/usr/local# вместо `PREFIX`. Наличие явно указанных путей можно " +"быстро проверить следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:159 +#, no-wrap +msgid "% make clean; make package PREFIX=/var/tmp/`make -V PORTNAME`\n" +msgstr "% make clean; make package PREFIX=/var/tmp/`make -V PORTNAME`\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:162 +msgid "" +"If anything is installed outside of `PREFIX`, the package creation process " +"will complain that it cannot find the files." +msgstr "" +"Если что-то было установлено за пределами `PREFIX`, то процесс создания " +"пакета сообщит об отсутствии файлов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:164 +msgid "" +"In addition, it is worth checking the same with the stage directory support " +"(see crossref:special[staging,Staging]):" +msgstr "" +"Это также стоит проверить с использованием поддержки каталога сборки " +"(смотрите crossref:special[staging, Staging]):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:168 +#, no-wrap +msgid "% make stage && make check-plist && make stage-qa && make package\n" +msgstr "% make stage && make check-plist && make stage-qa && make package\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:171 +msgid "" +"`check-plist` checks for files missing from the plist, and files in the " +"plist that are not installed by the port." +msgstr "" +"`check-plist` проверяет отсутствующие в plist файлы и файлы в plist, которые " +"не установлены портом." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:172 +msgid "" +"`stage-qa` checks for common problems like bad shebang, symlinks pointing " +"outside the stage directory, setuid files, and non-stripped libraries..." +msgstr "" +"`stage-qa` проверяет наличие распространённых проблем, таких как " +"неправильный шебанг (интерпретаторная строка в первой строке скрипта), " +"символьные ссылки, указывающие за пределы stage-директории,файлы с setuid " +"битом и библиотеки с отладочной информацией..." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:175 +msgid "" +"These tests will not find hard-coded paths inside the port's files, nor will " +"it verify that `LOCALBASE` is being used to correctly refer to files from " +"other ports. The temporarily installed port in [.filename]#/var/tmp/`make " +"-V PORTNAME`# must be tested for proper operation to make sure there are no " +"problems with paths." +msgstr "" +"Эти тесты не обнаружат жёстко заданные пути в файлах порта, а также не " +"проверят, что `LOCALBASE` используется корректно для ссылок на файлы из " +"других портов. Временно установленный порт в [.filename]#/var/tmp/`make -V " +"PORTNAME`# должен быть протестирован на корректную работу, чтобы убедиться в " +"отсутствии проблем с путями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:178 +msgid "" +"`PREFIX` must not be set explicitly in a port's [.filename]#Makefile#. " +"Users installing the port may have set `PREFIX` to a custom location, and " +"the port must respect that setting." +msgstr "" +"`PREFIX` не должен быть явно установлен в [.filename]#Makefile# порта. " +"Пользователи, устанавливающие порт, могут задать `PREFIX` в другом месте, и " +"порт должен учитывать эту настройку." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:182 +msgid "" +"Refer to programs and files from other ports with the variables mentioned " +"above, not explicit pathnames. For instance, if the port requires a macro " +"`PAGER` to have the full pathname of `less`, do not use a literal path of " +"[.filename]#/usr/local/bin/less#. Instead, use `${LOCALBASE}`:" +msgstr "" +"Обращайтесь к программам и файлам из других портов с помощью упомянутых выше " +"переменных, а не явных путей. Например, если порт требует, чтобы макрос " +"`PAGER` содержал полный путь к `less`, не используйте явный путь " +"[.filename]#/usr/local/bin/less#. Вместо этого используйте `${LOCALBASE}`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:186 +#, no-wrap +msgid "-DPAGER=\\\"${LOCALBASE}/bin/less\\\"\n" +msgstr "-DPAGER=\\\"${LOCALBASE}/bin/less\\\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:189 +msgid "" +"The path with `LOCALBASE` is more likely to still work if the system " +"administrator has moved the whole [.filename]#/usr/local# tree somewhere " +"else." +msgstr "" +"Путь с `LOCALBASE` с большей вероятностью продолжит работать, если системный " +"администратор переместил всё дерево [.filename]#/usr/local# в другое место." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:195 +msgid "" +"All these tests are done automatically when running `poudriere testport` or " +"`poudriere bulk -t`. It is highly recommended that every ports contributor " +"install and test their ports with it. See crossref:testing[testing-" +"poudriere, poudriere] for more information." +msgstr "" +"Все эти тесты выполняются автоматически при запуске `poudriere testport` или " +"`poudriere bulk -t`. Настоятельно рекомендуется каждому участнику разработки " +"портов устанавливать и тестировать свои порты с помощью этого инструмента. " +"Дополнительную информацию можно найти в crossref:testing[testing-poudriere, " +"poudriere]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:198 +#, no-wrap +msgid "poudriere" +msgstr "poudriere" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:202 +msgid "" +"For a ports contributor, poudriere is one of the most important and helpful " +"testing and build tools. Its main features include:" +msgstr "" +"Для контрибьютора портов poudriere является одним из самых важных и полезных " +"инструментов для тестирования и сборки. Его основные возможности включают:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:204 +msgid "" +"Bulk building of the entire ports tree, specific subsets of the ports tree, " +"or a single port including its dependencies" +msgstr "" +"Массовая сборка всего дерева портов, определенных подмножеств дерева портов " +"или отдельного порта с его зависимостями" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:205 +msgid "Automatic packaging of build results" +msgstr "Автоматическая упаковка результатов сборки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:206 +msgid "Generation of build log files per port" +msgstr "Генерация файлов журнала сборки для каждого порта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:207 +msgid "Providing a signed man:pkg[8] repository" +msgstr "Предоставление подписанного репозитория man:pkg[8]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:208 +msgid "" +"Testing of port builds before submitting a patch to the FreeBSD bug tracker " +"or committing to the ports tree" +msgstr "" +"Тестирование сборки портов перед отправкой патча в трекер ошибок FreeBSD или " +"внесением изменений в дерево портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:209 +msgid "Testing for successful ports builds using different options" +msgstr "" +"Тестирование успешных сборок портов с использованием различных параметров" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:212 +msgid "" +"Because poudriere performs its building in a clean man:jail[8] environment " +"and uses man:zfs[8] features, it has several advantages over traditional " +"testing on the host system:" +msgstr "" +"Поскольку poudriere выполняет сборку в чистой среде man:jail[8] и использует " +"возможности man:zfs[8], он имеет несколько преимуществ по сравнению с " +"традиционным тестированием на основной системе:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:214 +msgid "" +"No pollution of the host environment: No leftover files, no accidental " +"removals, no changes of existing configuration files." +msgstr "" +"Отсутствие загрязнения основной среды: никаких оставшихся файлов, случайных " +"удалений или изменений существующих конфигурационных файлов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:215 +msgid "Verify [.filename]#pkg-plist# for missing or superfluous entries" +msgstr "" +"Проверяет [.filename]#pkg-plist# на наличие отсутствующих или лишних записей" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:216 +msgid "" +"Ports committers sometimes ask for a poudriere log alongside a patch " +"submission to assess whether the patch is ready for integration into the " +"ports tree" +msgstr "" +"Коммитеры портов иногда запрашивают журнал poudriere вместе с отправкой " +"патча, чтобы оценить, готов ли патч для интеграции в дерево портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:219 +msgid "" +"It is also quite straightforward to set up and use, has no dependencies, and " +"will run on any supported FreeBSD release. This section shows how to " +"install, configure, and run poudriere as part of the normal workflow of a " +"ports contributor." +msgstr "" +"Также его настройка и использование довольно просты, он не имеет " +"зависимостей и будет работать в любой поддерживаемой версии FreeBSD. В этом " +"разделе показано, как установить, настроить и запустить poudriere в рамках " +"обычного рабочего процесса разработчика портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:224 +msgid "" +"The examples in this section show a default file layout, as standard in " +"FreeBSD. Substitute any local changes accordingly. The ports tree, " +"represented by `${PORTSDIR}`, is located in [.filename]#/usr/ports#. Both `$" +"{LOCALBASE}` and `${PREFIX}` are [.filename]#/usr/local# by default." +msgstr "" +"Примеры в этом разделе показывают стандартную структуру файлов, принятую в " +"FreeBSD. Внесите соответствующие изменения, если у вас используются другие " +"настройки. Дерево портов, обозначаемое как `${PORTSDIR}`, находится в " +"[.filename]#/usr/ports#. По умолчанию `${LOCALBASE}` и `${PREFIX}` указывают " +"на [.filename]#/usr/local#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:226 +#, no-wrap +msgid "Installing poudriere" +msgstr "Установка poudriere" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:230 +msgid "" +"poudriere is available in the ports tree in package:ports-mgmt/poudriere[]. " +"It can be installed using man:pkg[8] or from ports:" +msgstr "" +"poudriere доступен в дереве портов в пакете package:ports-mgmt/poudriere[]. " +"Его можно установить с помощью man:pkg[8] или из портов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:234 +#, no-wrap +msgid "# pkg install poudriere\n" +msgstr "# pkg install poudriere\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:237 +msgid "or" +msgstr "или" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:241 +#, no-wrap +msgid "# make -C /usr/ports/ports-mgmt/poudriere install clean\n" +msgstr "# make -C /usr/ports/ports-mgmt/poudriere install clean\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:252 +msgid "" +"There is also a work-in-progress version of poudriere which will eventually " +"become the next release. It is available in package:ports-mgmt/poudriere-" +"devel[]. This development version is used for the official FreeBSD package " +"builds, so it is well tested. It often has newer interesting features. A " +"ports committer will want to use the development version because it is what " +"is used in production, and has all the new features that will make sure " +"everything is exactly right. A contributor will not necessarily need those " +"as the most important fixes are backported to released version. The main " +"reason for the use of the development version to build the official package " +"is because it is faster, in a way that will shorten a full build from 18 " +"hours to 17 hours when using a high end 32 CPU server with 128GB of RAM. " +"Those optimizations will not matter a lot when building ports on a desktop " +"machine." +msgstr "" +"Также существует версия poudriere в разработке, которая в конечном итоге " +"станет следующим релизом. Она доступна в пакете:ports-mgmt/poudriere-" +"devel[]. Эта версия используется для официальных сборок пакетов FreeBSD, " +"поэтому она хорошо протестирована. В ней часто появляются новые интересные " +"функции. Коммиттер портов захочет использовать версию в разработке, так как " +"именно она используется в продакшене и содержит все новые функции, которые " +"гарантируют, что всё будет работать идеально. Контрибьютору не обязательно " +"нужны эти функции, так как наиболее важные исправления переносятся в " +"выпущенную версию. Основная причина использования версии в разработке для " +"сборки официальных пакетов заключается в её скорости — она позволяет " +"сократить время полной сборки с 18 до 17 часов при использовании " +"высокопроизводительного сервера с 32 CPU и 128 ГБ оперативной памяти. Эти " +"оптимизации не будут столь значимы при сборке портов на настольном " +"компьютере." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:254 +#, no-wrap +msgid "Setting Up poudriere" +msgstr "Настройка poudriere" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:258 +msgid "" +"The port installs a default configuration file, [.filename]#/usr/local/etc/" +"poudriere.conf#. Each parameter is documented in the configuration file." +msgstr "" +"Порт устанавливает файл конфигурации по умолчанию, [.filename]#/usr/local/" +"etc/poudriere.conf#. Каждый параметр описан в этом файле конфигурации." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:260 +msgid "Here is a minimal example config file:" +msgstr "Вот минимальный пример конфигурационного файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:267 +#, no-wrap +msgid "" +"ZPOOL=zroot\n" +"BASEFS=/usr/local/poudriere\n" +"DISTFILES_CACHE=/usr/ports/distfiles\n" +"RESOLV_CONF=/etc/resolv.conf\n" +msgstr "" +"ZPOOL=zroot\n" +"BASEFS=/usr/local/poudriere\n" +"DISTFILES_CACHE=/usr/ports/distfiles\n" +"RESOLV_CONF=/etc/resolv.conf\n" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:269 +#, no-wrap +msgid "`ZPOOL`" +msgstr "`ZPOOL`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:272 +msgid "" +"The name of the ZFS storage pool which poudriere shall use. Must be listed " +"in the output of `zpool status`." +msgstr "" +"Имя пула хранения ZFS, который будет использовать poudriere. Должно быть " +"указано в выводе команды `zpool status`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:273 +#, no-wrap +msgid "`BASEFS`" +msgstr "`BASEFS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:276 +msgid "" +"The root mount point for poudriere file systems. This entry will cause " +"poudriere to mount `tank/poudriere` to `/poudriere`." +msgstr "" +"Корневая точка монтирования файловых систем poudriere. Эта запись приведет к " +"тому, что poudriere смонтирует `tank/poudriere` в `/poudriere`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:277 +#, no-wrap +msgid "`DISTFILES_CACHE`" +msgstr "`DISTFILES_CACHE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:282 +msgid "" +"Defines where distfiles are stored. In this example, poudriere and the host " +"share the distfiles storage directory. This avoids downloading tarballs " +"which are already present on the system. Please create this directory if it " +"does not already exist so that poudriere can find it." +msgstr "" +"Определяет, где хранятся distfiles. В этом примере poudriere и хост " +"используют общий каталог для хранения distfiles. Это позволяет избежать " +"загрузки tарболов, которые уже присутствуют в системе. Пожалуйста, создайте " +"этот каталог, если он ещё не существует, чтобы poudriere мог его найти." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:283 +#, no-wrap +msgid "`RESOLV_CONF`" +msgstr "`RESOLV_CONF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:288 +msgid "" +"Use the host [.filename]#/etc/resolv.conf# inside jails for DNS. This is " +"needed so jails can resolve the URLs of distfiles when downloading. It is " +"not needed when using a proxy. Refer to the default configuration file for " +"proxy configuration." +msgstr "" +"Используйте файл [.filename]#/etc/resolv.conf# хоста внутри клеток для DNS. " +"Это необходимо, чтобы клетки могли разрешать URL-адреса distfiles при " +"загрузке. Это не требуется при использовании прокси. Обратитесь к файлу " +"конфигурации по умолчанию для настройки прокси." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:290 +#, no-wrap +msgid "Creating poudriere Jails" +msgstr "Создание клеток poudriere" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:293 +msgid "Create the base jails which poudriere will use for building:" +msgstr "" +"Создайте базовые клетки, которые poudriere будет использовать для сборки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:297 +#, no-wrap +msgid "# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64\n" +msgstr "# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:302 +msgid "" +"Fetch a `13.1-RELEASE` for `amd64` from the FTP server given by " +"`FREEBSD_HOST` in [.filename]#poudriere.conf#, create the zfs file system " +"`tank/poudriere/jails/131Ramd64`, mount it on [.filename]#/poudriere/jails/" +"131Ramd64# and extract the `13.1-RELEASE` tarballs into this file system." +msgstr "" +"Загрузите `13.1-RELEASE` для `amd64` с FTP-сервера, указанного в " +"`FREEBSD_HOST` в [.filename]#poudriere.conf#, создайте ZFS-файловую систему " +"`tank/poudriere/jails/131Ramd64`, смонтируйте её в [.filename]#/poudriere/" +"jails/131Ramd64# и распакуйте тарболлы `13.1-RELEASE` в эту файловую систему." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:306 +#, no-wrap +msgid "# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https\n" +msgstr "# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:311 +msgid "" +"Create `tank/poudriere/jails/12i386`, mount it on [.filename]#/poudriere/" +"jails/12i386#, then check out the tip of the Git branch of `FreeBSD-12-" +"STABLE` from `GIT_HOST` in [.filename]#poudriere.conf# or the default " +"`git.freebsd.org` into [.filename]#/poudriere/jails/12i386/usr/src#, then " +"complete a `buildworld` and install it into [.filename]#/poudriere/jails/" +"12i386#." +msgstr "" +"Создайте `tank/poudriere/jails/12i386`, смонтируйте его на [.filename]#/" +"poudriere/jails/12i386#, затем извлеките верхушку ветки Git `FreeBSD-12-" +"STABLE` из `GIT_HOST` в [.filename]#poudriere.conf# или по умолчанию " +"`git.freebsd.org` в [.filename]#/poudriere/jails/12i386/usr/src#, после чего " +"выполните `buildworld` и установите его в [.filename]#/poudriere/jails/" +"12i386#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:317 +msgid "" +"While it is possible to build a newer version of FreeBSD on an older " +"version, most of the time it will not run. For example, if a `stable/13` " +"jail is needed, the host will have to run `stable/13` too. Running `13.1-" +"RELEASE` is not enough." +msgstr "" +"Хотя возможно собрать более новую версию FreeBSD на старой версии, в " +"большинстве случаев она не запустится. Например, если требуется клетка на " +"`stable/13`, то хост также должен работать на `stable/13`. Запуск `13.1-" +"RELEASE` недостаточен." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:322 +msgid "To create a poudriere jail for `14.0-CURRENT`:" +msgstr "Для создания клетки poudriere для `14.0-CURRENT`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:326 +#, no-wrap +msgid "# poudriere jail -c -j 14amd64 -v main -a amd64 -m git+https\n" +msgstr "# poudriere jail -c -j 14amd64 -v main -a amd64 -m git+https\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:331 +msgid "" +"In order to run a `14.0-CURRENT` poudriere jail the host must be running " +"`14.0-CURRENT`. In general, newer kernels can build and run older jails. " +"For instance, a `14.0-CURRENT` kernel can build and run a `12.4-STABLE` if " +"the `COMPAT_FREEBSD12` kernel option was compiled in (on by default in `14.0-" +"CURRENT`[.filename]#GENERIC# kernel config)." +msgstr "" +"Для запуска клетки `14.0-CURRENT` poudriere хостовая система должна работать " +"под управлением `14.0-CURRENT`. В общем случае, более новые ядра могут " +"собирать и запускать более старые клетки. Например, ядро `14.0-CURRENT` " +"может собирать и запускать клетку `12.4-STABLE`, если параметр ядра " +"`COMPAT_FREEBSD12` был скомпилирован (включен по умолчанию в конфигурации " +"ядра [.filename]#GENERIC# `14.0-CURRENT`)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:334 +msgid "" +"A list of jails currently known to poudriere can be shown with `poudriere " +"jail -l`:" +msgstr "" +"Список клеток, известных poudriere, можно вывести с помощью команды " +"`poudriere jail -l`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:341 +#, no-wrap +msgid "" +"# poudriere jail -l\n" +"JAILNAME VERSION ARCH METHOD\n" +"131Ramd64 13.1-RELEASE amd64 ftp\n" +"12i386 12.4-STABLE i386 git+https\n" +msgstr "" +"# poudriere jail -l\n" +"JAILNAME VERSION ARCH METHOD\n" +"131Ramd64 13.1-RELEASE amd64 ftp\n" +"12i386 12.4-STABLE i386 git+https\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:344 +#, no-wrap +msgid "Keeping poudriere Jails Updated" +msgstr "Обновление клеток poudriere" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:348 +msgid "Managing updates is very straightforward. The command:" +msgstr "Управление обновлениями очень простое. Команда:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:352 +#, no-wrap +msgid "# poudriere jail -u -j JAILNAME\n" +msgstr "# poudriere jail -u -j JAILNAME\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:357 +msgid "" +"updates the specified jail to the latest version available. For FreeBSD " +"releases, update to the latest patchlevel with man:freebsd-update[8]. For " +"FreeBSD versions built from source, update to the latest git revision in the " +"branch." +msgstr "" +"обновляет указанную клетку до последней доступной версии. Для релизов " +"FreeBSD обновление до последнего уровня исправлений с помощью man:freebsd-" +"update[8]. Для версий FreeBSD, собранных из исходников, обновление до " +"последней ревизии git в ветке." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:362 +msgid "" +"For jails employing a `git+*` method, it is helpful to add `-J " +"_NumberOfParallelBuildJobs_` to speed up the build by increasing the number " +"of parallel compile jobs used. For example, if the building machine has 6 " +"CPUs, use:" +msgstr "" +"Для клеток, использующих метод `git+*`, полезно добавить `-J " +"_КоличествоПараллельныхСборок_` для ускорения сборки за счёт увеличения " +"количества параллельных задач компиляции. Например, если на машине для " +"сборки 6 CPU, используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:366 +#, no-wrap +msgid "# poudriere jail -u -J 6 -j JAILNAME\n" +msgstr "# poudriere jail -u -J 6 -j JAILNAME\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:371 +#, no-wrap +msgid "Setting Up Ports Trees for Use with poudriere" +msgstr "Настройка деревьев портов для использования с poudriere" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:375 +msgid "" +"There are multiple ways to use ports trees in poudriere. The most " +"straightforward way is to have poudriere create a default ports tree for " +"itself, using link:{handbook}mirrors/#git[Git]:" +msgstr "" +"Существует несколько способов использования деревьев портов в poudriere. " +"Наиболее простой способ — позволить poudriere создать для себя дерево портов " +"по умолчанию, используя link:{handbook}mirrors/#git[Git]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:379 +#, no-wrap +msgid "# poudriere ports -c -m git+https -B main\n" +msgstr "# poudriere ports -c -m git+https -B main\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:383 +msgid "" +"These commands create `tank/poudriere/ports/default`, mount it on " +"[.filename]#/poudriere/ports/default#, and populate it using Git. Afterward " +"it is included in the list of known ports trees:" +msgstr "" +"Эти команды создают `tank/poudriere/ports/default`, монтируют его в " +"[.filename]#/poudriere/ports/default# и заполняют с помощью Git. После этого " +"он включается в список известных деревьев портов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:389 +#, no-wrap +msgid "" +"# poudriere ports -l\n" +"PORTSTREE METHOD TIMESTAMP PATH\n" +"default git+https 2020-07-20 04:23:56 /poudriere/ports/default\n" +msgstr "" +"# poudriere ports -l\n" +"PORTSTREE METHOD TIMESTAMP PATH\n" +"default git+https 2020-07-20 04:23:56 /poudriere/ports/default\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:396 +msgid "" +"Note that the \"default\" ports tree is special. Each of the build commands " +"explained later will implicitly use this ports tree unless specifically " +"specified otherwise. To use another tree, add `-p _treename_` to the " +"commands." +msgstr "" +"Обратите внимание, что дерево портов \"default\" является особым. Каждая из " +"команд сборки, объяснённых далее, будет неявно использовать это дерево " +"портов, если явно не указано иное. Чтобы использовать другое дерево, " +"добавьте `-p _treename_` к командам." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:401 +msgid "" +"The best way to deal with local modifications for a ports contributor is to " +"use link:{handbook}mirrors/#git[Git]. As with the creation of jails, it is " +"possible to use a different method for creating the ports tree. To add an " +"additional ports tree for testing local modifications and ports development, " +"checking out the tree via git (as described above) is preferable." +msgstr "" +"Лучший способ работы с локальными изменениями для разработчика портов — " +"использовать link:{handbook}mirrors/#git[Git]. Как и при создании клеток, " +"можно использовать другой метод для создания дерева портов. Чтобы добавить " +"дополнительное дерево портов для тестирования локальных изменений и " +"разработки портов, предпочтительно использовать клонирование дерева через " +"git (как описано выше)." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:403 +#, no-wrap +msgid "Using Manually Managed Ports Trees with poudriere" +msgstr "Использование управляемых вручную деревьев портов с помощью poudriere" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:407 +msgid "" +"Depending on the workflow, it can be extremely helpful to use ports trees " +"which are maintained manually. For instance, if there is a local copy of " +"the ports tree in [.filename]#/work/ports#, point poudriere to the location:" +msgstr "" +"В зависимости от рабочего процесса может быть крайне полезно использовать " +"деревья портов, которые поддерживаются вручную. Например, если существует " +"локальная копия дерева портов в [.filename]#/work/ports#, укажите poudriere " +"на это расположение:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:411 +#, no-wrap +msgid "# poudriere ports -c -m null -M /work/ports -p development\n" +msgstr "# poudriere ports -c -m null -M /work/ports -p development\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:414 +msgid "This will be listed in the table of known trees:" +msgstr "Это будет указано в таблице известных деревьев:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:420 +#, no-wrap +msgid "" +"# poudriere ports -l\n" +"PORTSTREE METHOD TIMESTAMP PATH\n" +"development null 2020-07-20 05:06:33 /work/ports\n" +msgstr "" +"# poudriere ports -l\n" +"PORTSTREE METHOD TIMESTAMP PATH\n" +"development null 2020-07-20 05:06:33 /work/ports\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:426 +msgid "" +"The dash or `null` in the `METHOD` column means that poudriere will not " +"update or change this ports tree, ever. It is completely up to the user to " +"maintain this tree, including all local modifications that may be used for " +"testing new ports and submitting patches." +msgstr "" +"Тире или `null` в колонке `METHOD` означает, что poudriere никогда не будет " +"обновлять или изменять это дерево портов. Полностью на пользователе лежит " +"ответственность за поддержку этого дерева, включая все локальные изменения, " +"которые могут использоваться для тестирования новых портов и отправки " +"исправлений." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:429 +#, no-wrap +msgid "Keeping poudriere Ports Trees Updated" +msgstr "Обновление деревьев портов poudriere" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:432 +msgid "As straightforward as with jails described earlier:" +msgstr "Так же просто, как с клетками, описанными ранее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:436 +#, no-wrap +msgid "# poudriere ports -u -p PORTSTREE\n" +msgstr "# poudriere ports -u -p PORTSTREE\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:439 +msgid "" +"Will update the given _PORTSTREE_, one tree given by the output of " +"`poudriere -l`, to the latest revision available on the official servers." +msgstr "" +"Обновит указанное _PORTSTREE_, дерево, указанное в выводе команды `poudriere " +"-l`, до последней доступной ревизии на официальных серверах." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:444 +msgid "" +"Ports trees without a method, see crossref:testing[testing-poudriere-ports-" +"tree-manual, Using Manually Managed Ports Trees with poudriere], cannot be " +"updated like this and must be updated manually by the porter." +msgstr "" +"Деревья портов без метода, см. crossref:testing[testing-poudriere-ports-tree-" +"manual, Использование вручную управляемых деревьев портов с помощью " +"poudriere], не могут быть обновлены таким образом и должны обновляться " +"вручную сопровождающим портов." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:447 +#, no-wrap +msgid "Testing Ports" +msgstr "Тестирование портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:450 +msgid "" +"After jails and ports trees have been set up, the result of a contributor's " +"modifications to the ports tree can be tested." +msgstr "" +"После настройки клеток и деревьев портов можно проверить результат " +"изменений, внесенных участником в дерево портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:452 +msgid "" +"For example, local modifications to the package:www/firefox[] port located " +"in [.filename]#/work/ports/www/firefox# can be tested in the previously " +"created 13.1-RELEASE jail:" +msgstr "" +"Например, локальные изменения в порте package:www/firefox[], расположенном в " +"[.filename]#/work/ports/www/firefox#, можно протестировать в ранее созданной " +"клетке 13.1-RELEASE:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:456 +#, no-wrap +msgid "# poudriere testport -j 131Ramd64 -p development -o www/firefox\n" +msgstr "# poudriere testport -j 131Ramd64 -p development -o www/firefox\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:462 +msgid "" +"This will build all dependencies of Firefox. If a dependency has been built " +"previously and is still up-to-date, the pre-built package is installed. If " +"a dependency has no up-to-date package, one will be built with default " +"options in a jail. Then Firefox itself is built." +msgstr "" +"Это соберет все зависимости Firefox. Если зависимость уже была собрана ранее " +"и остается актуальной, будет установлен готовый пакет. Если для зависимости " +"нет актуального пакета, он будет собран с параметрами по умолчанию в клетке. " +"Затем будет собран сам Firefox." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:464 +msgid "" +"The complete build of every port is logged to [.filename]#/poudriere/data/" +"logs/bulk/131Ri386-development/build-time/logs#." +msgstr "" +"Полная сборка каждого порта записывается в [.filename]#/poudriere/data/logs/" +"bulk/131Ri386-development/build-time/logs#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:469 +msgid "" +"The directory name `131Ri386-development` is derived from the arguments to `-" +"j` and `-p`, respectively. For convenience, a symbolic link [.filename]#/" +"poudriere/data/logs/bulk/131Ri386-development/latest# is also maintained. " +"The link points to the latest _build-time_ directory. Also in this " +"directory is an [.filename]#index.html# for observing the build process with " +"a web browser." +msgstr "" +"Имя каталога `131Ri386-development` формируется из аргументов `-j` и `-p` " +"соответственно. Для удобства также поддерживается символическая ссылка " +"[.filename]#/poudriere/data/logs/bulk/131Ri386-development/latest#. Эта " +"ссылка указывает на последний каталог _времени сборки_. Также в этом " +"каталоге находится файл [.filename]#index.html#, который позволяет наблюдать " +"за процессом сборки через веб-браузер." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:472 +msgid "" +"By default, poudriere cleans up the jails and leaves log files in the " +"directories mentioned above. To ease investigation, jails can be kept " +"running after the build by adding `-i` to `testport`:" +msgstr "" +"По умолчанию poudriere очищает клетки и оставляет файлы журналов в указанных " +"выше каталогах. Для упрощения анализа клетки можно оставить запущенными " +"после сборки, добавив `-i` к `testport`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:476 +#, no-wrap +msgid "# poudriere testport -j 131Ramd64 -p development -i -o www/firefox\n" +msgstr "# poudriere testport -j 131Ramd64 -p development -i -o www/firefox\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:483 +msgid "" +"After the build completes, and regardless of whether it was successful, a " +"shell is provided within the jail. The shell is used to investigate " +"further. poudriere can be told to leave the jail running after the build " +"finishes with `-I`. poudriere will show the command to run when the jail is " +"no longer needed. It is then possible to man:jexec[8] into it:" +msgstr "" +"После завершения сборки, независимо от того, была ли она успешной, в клетке " +"предоставляется оболочка. Эта оболочка используется для дальнейшего " +"исследования. Можно указать poudriere оставить клетку запущенной после " +"завершения сборки с помощью `-I`. poudriere покажет команду для выполнения, " +"когда клетка больше не нужна. Затем можно использовать man:jexec[8] для " +"входа в неё:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:497 +#, no-wrap +msgid "" +"# poudriere testport -j 131Ramd64 -p development -I -o www/firefox\n" +"[...]\n" +"====>> Installing local Pkg repository to /usr/local/etc/pkg/repos\n" +"====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing\n" +"====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n" +"====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development\n" +"# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n" +"# [do some stuff in the jail]\n" +"# exit\n" +"# poudriere jail -k -j 131Ramd64 -p development\n" +"====>> Umounting file systems\n" +msgstr "" +"# poudriere testport -j 131Ramd64 -p development -I -o www/firefox\n" +"[...]\n" +"====>> Installing local Pkg repository to /usr/local/etc/pkg/repos\n" +"====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing\n" +"====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n" +"====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development\n" +"# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n" +"# [do some stuff in the jail]\n" +"# exit\n" +"# poudriere jail -k -j 131Ramd64 -p development\n" +"====>> Umounting file systems\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:502 +msgid "" +"An integral part of the FreeBSD ports build infrastructure is the ability to " +"tweak ports to personal preferences with options. These can be tested with " +"poudriere as well. Adding the `-c`:" +msgstr "" +"Неотъемлемой частью инфраструктуры сборки портов FreeBSD является " +"возможность настройки портов под личные предпочтения с помощью опций. Их " +"также можно тестировать с помощью poudriere. Добавление опции `-c`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:506 +#, no-wrap +msgid "# poudriere testport -j 131Ramd64 -c -o www/firefox\n" +msgstr "# poudriere testport -j 131Ramd64 -c -o www/firefox\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:512 +msgid "" +"Presents the port configuration dialog before the port is built. The ports " +"given after `-o` in the format `_category_/_portname_` will use the " +"specified options, all dependencies will use the default options. Testing " +"dependent ports with non-default options can be accomplished using sets, see " +"crossref:testing[testing-poudriere-sets, Using Sets]." +msgstr "" +"Представляет диалог настройки порта перед его сборкой. Порты, указанные " +"после `-o` в формате `_категория_/_имя_порта_`, будут использовать указанные " +"опции, все зависимости будут использовать опции по умолчанию. Тестирование " +"зависимых портов с нестандартными опциями может быть выполнено с " +"использованием наборов, см. crossref:testing[testing-poudriere-sets, " +"Использование наборов]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:517 +msgid "" +"When testing ports where [.filename]#pkg-plist# is altered during build " +"depending on the selected options, it is recommended to perform a test run " +"with all options selected _and_ one with all options deselected." +msgstr "" +"При тестировании портов, где файл [.filename]#pkg-plist# изменяется во время " +"сборки в зависимости от выбранных опций, рекомендуется выполнить тестовый " +"запуск со всеми выбранными опциями _и_ один без выбранных опций." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:520 +#, no-wrap +msgid "Using Sets" +msgstr "Использование наборов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:525 +msgid "" +"For all actions involving builds, a so-called _set_ can be specified using `-" +"z _setname_`. A set refers to a fully independent build. This allows, for " +"instance, usage of `testport` with non-standard options for the dependent " +"ports." +msgstr "" +"Для всех действий, связанных со сборкой, можно указать так называемый " +"_набор_ с помощью `-z _имя_набора_`. Набор относится к полностью независимой " +"сборке. Это позволяет, например, использовать `testport` с нестандартными " +"параметрами для зависимых портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:531 +msgid "" +"To use sets, poudriere expects an existing directory structure similar to " +"`PORT_DBDIR`, defaults to [.filename]#/var/db/ports# in its configuration " +"directory. This directory is then man:nullfs[5]-mounted into the jails " +"where the ports and their dependencies are built. Usually a suitable " +"starting point can be obtained by recursively copying the existing " +"`PORT_DBDIR` to [.filename]#/usr/local/etc/poudriere.d/jailname-portname-" +"setname-options#. This is described in detail in man:poudriere[8]. For " +"instance, testing package:www/firefox[] in a specific set named `devset`, " +"add the `-z devset` parameter to the `testport` command:" +msgstr "" +"Для использования наборов poudriere ожидает, что будет использована " +"структура каталогов, аналогичная `PORT_DBDIR`, по умолчанию [.filename]#/var/" +"db/ports#, в его конфигурационной директории. Этот каталог затем монтируется " +"с помощью man:nullfs[5] в клетки, где собираются порты и их зависимости. " +"Обычно подходящую начальную точку можно получить, рекурсивно скопировав " +"существующий `PORT_DBDIR` в [.filename]#/usr/local/etc/poudriere.d/jailname-" +"portname-setname-options#. Это подробно описано в man:poudriere[8]. " +"Например, для тестирования package:www/firefox[] в определённом наборе с " +"именем `devset`, добавьте параметр `-z devset` к команде `testport`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:535 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:579 +#, no-wrap +msgid "# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox\n" +msgstr "# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:538 +msgid "This will look for the existence of these directories in this order:" +msgstr "Это проверит наличие этих каталогов в следующем порядке:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:540 +msgid "" +"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options#" +msgstr "" +"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:541 +msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:542 +msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:543 +msgid "[.filename]#/usr/local/etc/poudriere.d/devset-options#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/devset-options#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:544 +msgid "[.filename]#/usr/local/etc/poudriere.d/development-options#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/development-options#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:545 +msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-options#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-options#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:546 +msgid "[.filename]#/usr/local/etc/poudriere.d/options#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/options#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:549 +msgid "" +"From this list, poudriere man:nullfs[5]-mounts the _first existing_ " +"directory tree into the [.filename]#/var/db/ports# directory of the build " +"jails. Hence, all custom options are used for all the ports during this run " +"of `testport`." +msgstr "" +"Из этого списка poudriere man:nullfs[5] монтирует _первое существующее_ " +"дерево каталогов в директорию [.filename]#/var/db/ports# сборных клеток. " +"Таким образом, все пользовательские настройки используются для всех портов " +"во время этого запуска `testport`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:552 +msgid "" +"After the directory structure for a set is provided, the options for a " +"particular port can be altered. For example:" +msgstr "" +"После предоставления структуры каталогов для набора можно изменить параметры " +"для конкретного порта. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:556 +#, no-wrap +msgid "# poudriere options -c www/firefox -z devset\n" +msgstr "# poudriere options -c www/firefox -z devset\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:560 +msgid "" +"The configuration dialog for package:www/firefox[] is shown, and options can " +"be edited. The selected options are saved to the `devset` set." +msgstr "" +"Отображается диалог настройки package:www/firefox[], где можно редактировать " +"параметры. Выбранные параметры сохраняются в набор `devset`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:566 +msgid "" +"poudriere is very flexible in the option configuration. poudriere can be " +"set for particular jails, ports trees, and for multiple ports by one " +"command. Refer to man:poudriere[8] for details." +msgstr "" +"poudriere очень гибок в настройке опций. poudriere можно настроить для " +"конкретных клеток, деревьев портов и для нескольких портов одной командой. " +"Подробности см. в man:poudriere[8]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:569 +#, no-wrap +msgid "Providing a Custom [.filename]#make.conf# File" +msgstr "Предоставление пользовательского файла [.filename]#make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:575 +msgid "" +"Similar to using sets, poudriere will also use a custom " +"[.filename]#make.conf# if it is provided. No special command line argument " +"is necessary. Instead, poudriere looks for existing files matching a name " +"scheme derived from the command line. For instance:" +msgstr "" +"Подобно использованию наборов, poudriere также использует пользовательский " +"[.filename]#make.conf#, если он предоставлен. Для этого не требуется " +"специального аргумента командной строки. Вместо этого poudriere ищет " +"существующие файлы, соответствующие схеме именования, производной от " +"командной строки. Например:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:582 +msgid "" +"causes poudriere to check for the existence of these files in this order:" +msgstr "" +"заставляет poudriere проверять наличие этих файлов в следующем порядке:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:584 +msgid "[.filename]#/usr/local/etc/poudriere.d/make.conf#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:585 +msgid "[.filename]#/usr/local/etc/poudriere.d/devset-make.conf#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/devset-make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:586 +msgid "[.filename]#/usr/local/etc/poudriere.d/development-make.conf#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/development-make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:587 +msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-make.conf#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:588 +msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-make.conf#" +msgstr "" +"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:589 +msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-make.conf#" +msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:590 +msgid "" +"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-" +"make.conf#" +msgstr "" +"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-" +"make.conf#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:594 +msgid "" +"Unlike with sets, all of the found files will be appended, _in that order_, " +"into one [.filename]#make.conf# inside the build jails. It is hence " +"possible to have general make variables, intended to affect all builds in " +"[.filename]#/usr/local/etc/poudriere.d/make.conf#. Special variables, " +"intended to affect only certain jails or sets can be set in specialised " +"[.filename]#make.conf# files, such as [.filename]#/usr/local/etc/poudriere.d/" +"131Ramd64-development-devset-make.conf#." +msgstr "" +"В отличие от наборов, все найденные файлы будут добавлены, _в указанном " +"порядке_, в один [.filename]#make.conf# внутри клеток сборки. Таким образом, " +"можно задать общие переменные make, предназначенные для влияния на все " +"сборки, в файле [.filename]#/usr/local/etc/poudriere.d/make.conf#. " +"Специальные переменные, предназначенные только для определённых клеток или " +"наборов, можно задать в специализированных файлах [.filename]#make.conf#, " +"например, в [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-" +"devset-make.conf#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:596 +#, no-wrap +msgid "Using [.filename]#make.conf# to Change Default Perl" +msgstr "Использование [.filename]#make.conf# для изменения Perl по умолчанию" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:601 +msgid "" +"To build a set with a non default Perl version, for example, `5.20`, using a " +"set named `perl5-20`, create a [.filename]#perl5-20-make.conf# with this " +"line:" +msgstr "" +"Для сборки набора с нестандартной версией Perl, например, `5.20`, используя " +"набор с именем `perl5-20`, создайте файл [.filename]#perl5-20-make.conf# со " +"следующей строкой:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:605 +#, no-wrap +msgid "DEFAULT_VERSIONS+= perl=5.20\n" +msgstr "DEFAULT_VERSIONS+= perl=5.20\n" + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:609 +msgid "" +"Note the use of `+=` so that if the variable is already set in the default " +"[.filename]#make.conf# its content will not be overwritten." +msgstr "" +"Обратите внимание на использование `+=`, чтобы содержимое переменной не было " +"перезаписано, если она уже установлена в стандартном [.filename]#make.conf#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:614 +#, no-wrap +msgid "Pruning no Longer Needed Distfiles" +msgstr "Удаление ненужных файлов дистрибутива" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:618 +msgid "" +"poudriere comes with a built-in mechanism to remove outdated distfiles that " +"are no longer used by any port of a given tree. The command" +msgstr "" +"poudriere имеет встроенный механизм для удаления устаревших файлов " +"дистрибутива, которые больше не используются ни одним портом данного дерева. " +"Команда" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:622 +#, no-wrap +msgid "# poudriere distclean -p portstree\n" +msgstr "# poudriere distclean -p portstree\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:627 +msgid "" +"will scan the distfiles folder, `DISTFILES_CACHE` in " +"[.filename]#poudriere.conf#, versus the ports tree given by the `-p " +"_portstree_` argument and prompt for removal of those distfiles. To skip " +"the prompt and remove all unused files unconditionally, the `-y` argument " +"can be added:" +msgstr "" +"будет сканировать папку файлов дистрибутива, `DISTFILES_CACHE` в " +"[.filename]#poudriere.conf#, сравнивая ее с деревом портов, указанным " +"аргументом `-p _portstree_`, и запрашивать подтверждение на удаление этих " +"файлов дистрибутива. Чтобы пропустить запрос и удалить все неиспользуемые " +"файлы без подтверждения, можно добавить аргумент `-y`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:631 +#, no-wrap +msgid "# poudriere distclean -p portstree -y\n" +msgstr "# poudriere distclean -p portstree -y\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:634 +#, no-wrap +msgid "Debugging ports" +msgstr "Отладка портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:641 +msgid "" +"Sometimes things go wrong and the port fails at run time. The framework " +"provides some facilities to help in debugging ports. These helpers are " +"limited since the way of debugging a port heavily depends on the technology " +"used. The following variables help with debugging ports:" +msgstr "" +"Иногда что-то идёт не так, и порт не работает во время выполнения. Фреймворк " +"предоставляет некоторые средства для отладки портов. Эти вспомогательные " +"инструменты ограничены, поскольку способ отладки порта во многом зависит от " +"используемой технологии. Следующие переменные помогают в отладке портов:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:643 +msgid "`WITH_DEBUG`. If set, ports are built with debugging symbols." +msgstr "" +"`WITH_DEBUG`. Если установлено, порты собираются с отладочными символами." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:644 +msgid "" +"`WITH_DEBUG_PORTS`. Specifies a list of ports to be built with `WITH_DEBUG` " +"set." +msgstr "" +"`WITH_DEBUG_PORTS`. Указывает список портов, которые должны собираться с " +"установленным `WITH_DEBUG`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:645 +msgid "" +"`DEBUG_FLAGS`. Used to specify additional flags to `CFLAGS`. Defaults to `-" +"g`." +msgstr "" +"`DEBUG_FLAGS`. Используется для указания дополнительных флагов для `CFLAGS`. " +"По умолчанию `-g`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:648 +msgid "" +"When `WITH_DEBUG` is set, either globally or for a list of ports, the " +"resulting binaries are not stripped." +msgstr "" +"Когда `WITH_DEBUG` установлен, глобально или для списка портов, " +"результирующие бинарные файлы не лишаются символов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:651 +msgid "" +"These variables can be specified in [.filename]#make.conf# or in the command " +"line:" +msgstr "" +"Эти переменные могут быть указаны в [.filename]#make.conf# или в командной " +"строке:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:655 +#, no-wrap +msgid "# cd category/port && make -DWITH_DEBUG DEBUG_FLAGSS=\"-g -O0\"\n" +msgstr "# cd category/port && make -DWITH_DEBUG DEBUG_FLAGSS=\"-g -O0\"\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:663 +msgid "" +"If the port is built using package:ports-mgmt/poudriere[] the debugging " +"variables must be specified in poudriere's [.filename]#make.conf# and not in " +"[.filename]#/etc/make.conf#. Refer to package:ports-mgmt/poudriere[] " +"documentation for details." +msgstr "" +"Если порт собирается с использованием package:ports-mgmt/poudriere[], " +"отладочные переменные должны быть указаны в [.filename]#make.conf# " +"poudriere, а не в [.filename]#/etc/make.conf#. Подробности см. в " +"документации package:ports-mgmt/poudriere[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/testing/_index.adoc:667 +msgid "" +"Please refer to the debugging information in the extref:{developers-handbook}" +"tools[Developer's Handbook, debugging] for more details about the debugging " +"tools available." +msgstr "" +"Пожалуйста, обратитесь к отладочной информации в extref:{developers-handbook}" +"tools[Руководстве разработчика, отладка] для получения более подробной " +"информации о доступных инструментах отладки." + +#~ msgid "" +#~ "Since `portlint` uses heuristics to try to figure out errors, it can " +#~ "produce false positive warnings. In addition, occasionally something " +#~ "that is flagged as a problem really cannot be done in any other way due " +#~ "to limitations in the ports framework. pass:[]" +#~ msgstr "" +#~ "Так как для обнаружения ошибок `portlint` использует эвристические " +#~ "методы, то им могут выдаваться и ошибочные предупреждения. Кроме того, " +#~ "время от времени нечто, отмечаемое как некорректность, из-за ограничений " +#~ "механизма создания портов не может быть сделано никак иначе. pass:[] Если вы сомневаетесь, то лучше всего спросить в " +#~ "{freebsd-ports}. pass:[]" + +#~ msgid "" +#~ "updates the specified jail to the latest version available. pass:[] For FreeBSD releases, update to the latest " +#~ "patchlevel with man:freebsd-update[8]. pass:[] For FreeBSD versions built from source, update to the latest git " +#~ "revision in the branch." +#~ msgstr "" +#~ "обновляет указанную клетку до последней доступной версии. pass:[] Для релизов FreeBSD обновление до последнего " +#~ "уровня исправлений с помощью man:freebsd-update[8]. pass:[] Для версий FreeBSD, собранных из исходников, " +#~ "обновление до последней ревизии git в ветке." diff --git a/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc b/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc --- a/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc @@ -1,11 +1,13 @@ --- -title: Глава 10. Обновление отдельного порта -prev: books/porters-handbook/testing +description: 'Обновление порта FreeBSD' next: books/porters-handbook/security -showBookMenu: true -weight: 10 params: - path: "/books/porters-handbook/upgrading/" + path: /books/porters-handbook/upgrading/ +prev: books/porters-handbook/testing +showBookMenu: true +tags: ["upgrading", "port", "git"] +title: 'Глава 11. Обновление отдельного порта' +weight: 11 --- [[port-upgrading]] @@ -16,7 +18,7 @@ :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 10 +:sectnumoffset: 11 :partnums: :source-highlighter: rouge :experimental: @@ -46,32 +48,37 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] -Если вы заметите, что ваш порт устарел по сравнению с последней авторской версией, первым делом вы должны получить самую последнюю версия порта. Вы можете найти их в каталоге [.filename]#ports/ports-current# на зеркальных FTP-серверах FreeBSD. Однако если вы работаете с достаточно большим количеством портов, наверное, будет проще использовать Subversion или man:portsnap[8] для поддержания всей коллекции портов в актуальном состоянии, как это описано в extref:{handbook}ports/[Руководстве, ports-using]. К тому же это даст возможность отслеживать все зависимости портов. +Когда порт не является самой последней версией, доступной от авторов, обновите локальную рабочую копию [.filename]#/usr/ports#. Возможно, порт уже был обновлён до новой версии. -На следующем шаге необходимо выяснить, нет ожидает ли уже это обновление своей очереди. Для этого у вас есть две возможности. Существует интерфейс к http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[базе данных сообщений о проблемах FreeBSD (PR)] (известной также как `GNATS`) с поисковыми возможностями. Выберите из выпадающего списка `ports` и введите название порта. +При работе с большим количеством портов, вероятно, будет проще использовать Git для поддержания всей коллекции портов в актуальном состоянии, как описано в extref:{handbook}ports[Использование коллекции портов, ports-using]. Это также позволит отслеживать все зависимости портов. -Однако иногда люди забывают поместить название порта в поле Synopsis в точном виде. В таком случае вы можете воспользоваться <> (которая известна также как `portsmon`). В рамках этой системы делается попытка классифицировать PR, касающиеся портов, по имени порта. Для поиска PR, относящихся к определённому порту, используйте механизм http://portsmon.FreeBSD.org/portoverview.py[Просмотра по одному порту]. +Следующий шаг — проверить, есть ли уже ожидающее обновление. Для этого есть два варианта. Доступен поиск в https://bugs.freebsd.org/search/[Сообщения о проблемах (PR) или база данных ошибок FreeBSD]. Выберите `Ports & Packages` в меню множественного выбора `Product` и введите название порта в поле `Summary`. Если таких отложенных PR не существует, то на следующем этапе следует послать сообщение электронной почты человеку, поддерживающему порт, который выдаётся по команде `make maintainer`. Этот человек может уже работать над обновлением, или иметь причину не обновлять порт прямо сейчас (например, из-за проблем со стабильностью функционирования новой версии); вам нет нужды дублировать их работу. Заметьте, что неподдерживаемые порты перечисляются с адресом сопровождающего `ports@FreeBSD.org`, который является всего лишь адресом общего списка рассылки, так что отправка туда сообщений, скорее всего, в данном случае не поможет. Если сопровождающий просит вас выполнить обновление, либо сопровождающий отсутствует, то у вас появляется шанс помочь FreeBSD, приготовив обновление самим! Пожалуйста, делайте это с использованием команды man:diff[1] в основной системе. -Чтобы создать подходящий `diff` для одного патча, скопируйте файл, который нужно пропатчить, в _something.orig_, сохраните ваши изменения в _something_, а затем создайте ваше патч: +Чтобы создать подходящий `diff` для одного патча, скопируйте файл, который нужно пропатчить, в [.filename]#something.orig#, сохраните ваши изменения в [.filename]#something#, а затем создайте ваше патч: -[source,shell] +[source, shell] .... % diff -u something.orig something > something.diff .... -В противном случае, вам следует воспользоваться методом `svn diff` (<>), либо скопировать содержимое порта в отдельный каталог и применить результат рекурсивной команды man:diff[1] между новым и старым каталогами порта (например, если каталог с модифицированным портом называется [.filename]#superedit#, а оригинальный, совпадающий с находящимся в нашем дереве портов, [.filename]#superedit.bak#, то сохраните результат выполнения команды `diff -ruN superedit.bak superedit`). Подойдёт как унифицированный, так и контекстный дифф, однако коммиттеры портов обычно предпочитают унифицированный формат. Отметьте использование опции `-N`-это одобряемый способ заставить diff корректно работать в случае добавления новых файлов или удаления старых. Перед тем, как посылать нам diff-файл, пожалуйста, проверьте его, чтобы убедиться в значимости всех внесённых изменений. (В частности, убедитесь, что вы очистили рабочие каталоги командой `make clean`). +В противном случае используйте метод `git diff` (crossref:upgrading[git-diff, Использование Git для создания патчей]) или скопируйте содержимое порта в совершенно другой каталог и используйте результат рекурсивного вывода man:diff[1] для новых и старых каталогов портов (например, если изменённый каталог порта называется [.filename]#superedit#, а исходный находится в нашем дереве как [.filename]#superedit.bak#, сохраните результат выполнения `diff -ruN superedit.bak superedit`). Подойдёт как унифицированный, так и контекстный diff, но коммитеры портов обычно предпочитают унифицированные diff. Обратите внимание на использование опции `-N` — это общепринятый способ заставить diff корректно обрабатывать случаи добавления новых файлов или удаления старых. Перед отправкой diff, пожалуйста, проверьте вывод, чтобы убедиться, что все изменения имеют смысл. (В частности, не забудьте сначала очистить рабочие каталоги с помощью `make clean`). -Для упрощения повторяющихся операций с файлами заплаток вы можете воспользоваться скриптом [.filename]#/usr/ports/Tools/scripts/patchtool.py#. Перед тем, как его запускать, пожалуйста, прочтите [.filename]#/usr/ports/Tools/scripts/README.patchtool#. +[NOTE] +==== +Если некоторые файлы были добавлены, скопированы, перемещены или удалены, добавьте эту информацию в отчёт о проблеме, чтобы коммитер, принимающий патч, знал, какие команды man:git[1] нужно выполнить. +==== + +Для упрощения стандартных операций с файлами исправлений используйте `make makepatch`, как описано в crossref:slow-porting[slow-patch,Применение партчей]. Существуют и другие инструменты, например [.filename]#/usr/ports/Tools/scripts/patchtool.py#. Перед его использованием прочтите [.filename]#/usr/ports/Tools/scripts/README.patchtool#. Если порт никем не поддерживается, а вы активно его используете, пожалуйста, подумайте над тем, чтобы добровольно стать его сопровождающим. Во FreeBSD имеется более 4000 портов без поддержки, и это как раз та область, где всегда нужны добровольцы. (Детальное описание обязанностей сопровождающего можно найти в разделе extref:{developers-handbook}[Руководства Разработчика, POLICIES-MAINTAINER].) -Лучше всего послать нам diff-файл, включив его в посылку по команде man:send-pr[1] (категория `ports`). Если вы сопровождаете порт, обязательно поместите текст `[maintainer update]` в начале строки описания и задайте в поле "Class" вашего PR строчку `maintainer-update`. В противном случае в поле "Class" вашего PR должно быть указано `change-request`. Будьте добры, в сообщении отметьте все добавленные или удалённые файлы, так как они будут непосредственно указаны man:svn[1] при выполнении операции коммита. Если diff-файл имеет размер, превышающий 20КБ, сожмите его и обработайте утилитой uuencode; в противном случае просто включите его как есть в PR. +Для отправки diff используйте https://bugs.freebsd.org/submit/[форму отправки багов] (продукт `Ports & Packages`, компонент `Individual Port(s)`). Всегда указывайте категорию с именем порта, за которой следует двоеточие и краткое описание проблемы. Примеры: `_категория/имя_порта_: _добавить опцию FOO_`; `_категория/имя_порта_: _Обновление до X.Y_`. Упоминайте в сообщении все добавленные или удалённые файлы, так как они должны быть явно указаны в man:git[1] при выполнении коммита. Не сжимайте и не кодируйте diff. -Прежде чем пользоваться man:send-pr[1] просмотрите раздел о extref:{problem-reports}[Написании сообщений о проблемах, pr-writing] в статье о Сообщениях об ошибках. Он содержит гораздо больше информации о том, как писать полезные сообщения о проблемах. +Прежде чем отправить сообщение об ошибке, ознакомьтесь с разделом extref:{problem-reports}[Написание отчета о проблеме, pr-writing] в статье "Отчеты о проблемах". В нем содержится гораздо больше информации о том, как составлять полезные отчеты о проблемах. [IMPORTANT] ==== @@ -80,82 +87,100 @@ [NOTE] ==== -Повторяем еще раз - для посылки обновлений существующих портов используйте утилиту man:diff[1], а не man:shar[1]! Это поможет понять коммиттерам портов, что именно было изменено. +Пожалуйста, используйте man:diff[1] или `git diff` для создания обновлений существующих портов. Другие форматы включают весь файл и делают невозможным увидеть только изменённые части. Если различия не включены, всё обновление может быть проигнорировано. ==== Теперь, когда вы проделали всё это, прочитайте о том, как поддерживать актуальное состояние, в crossref:keeping-up[keeping-up, Актуализация]. -[[svn-diff]] -== Использование Subversion для создания патчей +[[git-diff]] +== Использование Git для создания патчей -По возможности присылайте исправления в формате man:svn[1] diff. В таком виде их проще использовать по сравнению с разницей между "старым и новым" каталогами. Так проще увидеть изменения и обновить их в случае, если что-нибудь изменилось в Коллекции Портов с тех пор, как вы начали работу, либо если коммиттер просит что-то исправить. +Когда это возможно, пожалуйста, предоставляйте патч или diff с помощью man:git[1]. Их проще обрабатывать, чем различия между директориями «новый и старый». Так легче увидеть, что изменилось, и обновить diff, если что-то было изменено в Коллекции портов с момента начала работы над ней, или если коммитер просит что-то исправить. Кроме того, патч, созданный с помощью man:git-format-patch[1] или man:git-diff[1], можно легко применить с помощью man:git-am[1] или man:git-apply[1], что сэкономит время коммитера. Наконец, git-патч, созданный man:git-format-patch[1], включает информацию об авторе и сообщения коммитов. Они будут записаны в лог репозитория, и это рекомендуемый способ отправки ваших изменений. -[source,shell] +[source, shell] .... -% cd ~/my_wrkdir <.> -% svn co https://svn0.us-west.FreeBSD.org/ports/head/dns/pdnsd <.> -% cd ~/my_wrkdir/pdnsd +% git clone https://git.FreeBSD.org/ports.git ~/my_wrkdir <.> <.> +% cd ~/my_wrkdir .... <.> Это может быть где угодно; место, в котором производится построение портов, не привязано к [.filename]#/usr/ports/#. -<.> https://svn0.us-west.FreeBSD.org/[svn0.us-west.FreeBSD.org] - это общедоступный сервер Subversion. Выберите ближайшее зеркало и проверьте сертификат зеркалирующего сервера на наличие в перечне extref:{handbook}mirrors/[зеркалирующих сайтов Subversion, svn-mirrors]. +<.> https://git.FreeBSD.org/[git.FreeBSD.org] — это публичный Git-сервер FreeBSD. Подробнее см. в extref:{handbook}mirrors[таблице URL-репозиториев FreeBSD Git, git-url-table]. -Находясь в рабочем каталоге, вносите любые изменения, которые обычно делают для порта. При добавлении или удалении файла используйте `svn` для отслеживания этих изменений: +Находясь в каталоге порта, внесите необходимые изменения. Если требуется добавить, переместить или удалить файл, используйте `git` для отслеживания этих изменений: -[source,shell] +[source, shell] .... -% svn add new_file -% svn remove deleted_file +% git add new_file +% git mv old_name new_name +% git rm deleted_file .... -Убедитесь, что вы проверяете порт в соответствии с рекомендуемым порядком проверки, описанным в crossref:quick-porting[porting-testing, Тестирование порта] и crossref:quick-porting[porting-portlint, Проверка вашего порта утилитой `portlint`]. +Убедитесь, что проверили порт, используя контрольный список в crossref:quick-porting[porting-testing,Тестирование порта] и crossref:quick-porting[porting-portlint,Проверка порта с помощью `portlint`]. + +Также обновите ссылку на контрольную сумму в distinfo с помощью `make makesum`. -[source,shell] +Прежде чем создавать патч, загрузите последнюю версию репозитория и перебазируйте изменения поверх неё. Внимательно следите за выводом и следуйте ему. Если какие-либо файлы не удалось перебазировать, это означает, что исходные файлы изменились во время вашего редактирования, и конфликты необходимо разрешить вручную. + +[source, shell] .... -% svn status -% svn update <.> +% git fetch origin main +% git rebase origin/main .... -<.> Эта команда попытается выполнить слияние различий между вашим патчем и текущей версией репозитория; внимательно проверьте полученный вывод. Буква перед названием каждого файла означает тип изменения, сделанного с этим файлом. Для получения полного списка смотрите <>. +Проверьте изменения, подготовленные для исправления: -[[table-svn-up]] -.Префиксы файлов для Subversion Update -[cols="1,1", frame="none"] -|=== -|U -|Файл обновлен без проблем. +[source, shell] +.... +% git status +% git diff --staged +.... -|G -|Файл обновлен без проблем (вы увидите это только при работе с удаленным репозиторием). +Последний шаг — создать унифицированный diff или патч изменений: -|M -|Файл с локальными изменениями, слияние выполнено без конфликтов. +Для создания патча с помощью man:git-format-patch[1]: +[source, shell] +.... +% git checkout -b my_branch +% git commit +% git format-patch main +.... -|C -|Файл с локальными изменениями, слияние выполнено с конфликтами. -|=== +Это создаст файл исправления с именем вида `0001-foo.patch`. Это предпочтительный способ, так как он включает идентификацию автора, а также удобнее, когда вы делаете серию изменений, которые не должны объединяться вместе. -Если в результате выполнения `svn update` отображается `C`, то это означает, что что-то изменилось в репозитории Subversion и man:svn[1] не смогла выполнить слияние локальных изменений с полученными из репозитория. В любом случае никогда не помешает просмотреть изменения, поскольку man:svn[1] ничего не знает о том, каким должен быть порт, поэтому эта команда может (и, вероятно, будет) делать слияние тех изменений, которые не имеют смысла. +Или для создания унифицированного diff с помощью man:git-diff[1]: +[source, shell] +.... +% git diff --staged > ../`make -VPKGNAME`.diff +.... +Это создаст файл с различиями с именем вида `foo-1.2.3.diff`. Здесь `foo` заменяется на первую строку сообщения коммита, то есть на тему сообщения коммита. -Последним шагом является создание унифицированного man:diff[1] для полученных изменений: +После создания патча вы можете переключиться на основную ветку для начала других разработок. +[source, shell] +.... +% git checkout main +.... -[source,shell] +После принятия и слияния патча вы можете удалить локальную ветку разработки, если хотите: +[source, shell] .... -% svn diff > ../`basename ${PWD}`.diff +% git branch -D my_branch .... [NOTE] ==== -Информация о любых удаляемых файлов должна быть явным образом указана в PR, поскольку необходимость в удалении файла для коммиттера может быть неочевидна. +Если файлы были добавлены, перемещены или удалены, укажите использованные команды man:git[1] `add`, `mv` и `rm`. Команда `git mv` должна быть выполнена до применения патча. Команды `git add` или `git rm` должны быть выполнены после применения патча. ==== -Присылайте свои патчи в соответствии с руководством, описанном в <>. +Отправьте исправление, следуя extref:{problem-reports}[рекомендациям по отправке отчетов о проблемах, pr-writing]. [[moved-and-updating-files]] -== Файлы [.filename]#UPDATING# и [.filename]#MOVED# +== UPDATING и MOVED + +[[moved-and-updating-updating]] +=== /usr/ports/UPDATING -Если при обновлении порта требуются специальные шаги, такие как изменение файлов конфигурации или запуск специальной программы, то вам следует это задокументировать в файле [.filename]#/usr/ports/UPDATING#. Формат записи в этом файле приводится ниже: +Если обновление порта требует специальных действий, таких как изменение конфигурационных файлов или запуск определённой программы, это должно быть задокументировано в данном файле. Формат записи в этом файле следующий: [.programlisting] .... @@ -166,17 +191,55 @@ Special instructions .... -Если вы включаете точные инструкции portmaster или portupgrade, пожалуйста, убедитесь в правильном экранировании символов внутри командной оболочки. +[TIP] +==== -Файл [.filename]#/usr/ports/MOVED# содержит записи об удалённых или перемещённых портах. Каждая строка в этом файле состоит из полей: название порта, место, куда он был перемещён, дата и причина перемещения. Если порт был удалён, то поле, указывающее новое место, может оставаться незаполненным. Поля должны разделяться символом `|` (pipe), как это показано ниже: +При включении точных инструкций для portmaster, portupgrade и/или pkg, убедитесь в правильности экранирования в shell. Например, _не_ используйте: + +[source, shell] +.... +# pkg delete -g -f docbook-xml* docbook-sk* docbook[2345]??-* docbook-4* +.... + +Как показано, команда будет работать только с bourne-оболочками. Вместо этого используйте форму, приведённую ниже, которая будет работать как с bourne-оболочкой, так и с c-оболочкой: + +[source, shell] +.... +# pkg delete -g -f docbook-xml\* docbook-sk\* docbook\[2345\]\?\?-\* docbook-4\* +.... + +==== + +[NOTE] +==== +Рекомендуется, чтобы строка AFFECTS содержала glob-выражение, соответствующее всем портам, затронутым записью, чтобы автоматизированные инструменты могли максимально легко её обработать. Если обновление касается всех существующих версий BIND 9, содержимое `AFFECTS` должно быть `users of dns/bind9*`, и оно _не должно_ быть `users of BIND 9` +==== + +[[moved-and-updating-moved]] +=== /usr/ports/MOVED + +Этот файл используется для перечисления перемещённых или удалённых портов. Каждая строка в файле состоит из названия порта, места, куда порт был перемещён, даты и причины. Если порт был удалён, раздел с указанием места перемещения может быть оставлен пустым. Каждый раздел должен быть отделён символом `|` (вертикальная черта), например: [.programlisting] .... old name|new name (blank for deleted)|date of move|reason .... -Дату следует вводить в формате `YYYY-MM-DD`. Новые записи следует добавлять в конец файла в хронологическом порядке. +Дата должна быть введена в формате `ГГГГ-ММ-ДД`. Новые записи добавляются в конец списка, чтобы сохранить его в хронологическом порядке, при этом самая старая запись находится в начале списка. + +Если порт был удален, но затем восстановлен, удалите строку в этом файле, которая указывает, что он был удален. + +Если порт был переименован, а затем переименован обратно в исходное имя, добавьте новую запись с промежуточным именем для старого имени и удалите старую запись, чтобы не создавать цикл. + +[NOTE] +==== +Любые изменения должны быть проверены с помощью `Tools/scripts/MOVEDlint.awk`. -Если порт был перемещён, но в дальнейшем восстановлен на прежнем месте, удалите в этом файле строку, содержащую информацию о перемещении. +Если используется каталог портов, отличный от [.filename]#/usr/ports#, следует указать: -Полученные изменения можно проверить командой `Tools/scripts/MOVEDlint.awk`. +[source, shell] +.... +% cd /home/user/ports +% env PORTSDIR=$PWD Tools/scripts/MOVEDlint.awk +.... +==== diff --git a/documentation/content/ru/books/porters-handbook/upgrading/_index.po b/documentation/content/ru/books/porters-handbook/upgrading/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/upgrading/_index.po @@ -0,0 +1,688 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-14 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:1 +#, no-wrap +msgid "Upgrading a FreeBSD Port" +msgstr "Обновление порта FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:1 +#, no-wrap +msgid "Chapter 11. Upgrading a Port" +msgstr "Глава 11. Обновление отдельного порта" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:14 +#, no-wrap +msgid "Upgrading a Port" +msgstr "Обновление отдельного порта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:53 +msgid "" +"When a port is not the most recent version available from the authors, " +"update the local working copy of [.filename]#/usr/ports#. The port might " +"have already been updated to the new version." +msgstr "" +"Когда порт не является самой последней версией, доступной от авторов, " +"обновите локальную рабочую копию [.filename]#/usr/ports#. Возможно, порт уже " +"был обновлён до новой версии." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:57 +msgid "" +"When working with more than a few ports, it will probably be easier to use " +"Git to keep the whole ports collection up-to-date, as described in extref:" +"{handbook}ports[Using the Ports Collection, ports-using]. This will have " +"the added benefit of tracking all the port's dependencies." +msgstr "" +"При работе с большим количеством портов, вероятно, будет проще использовать " +"Git для поддержания всей коллекции портов в актуальном состоянии, как " +"описано в extref:{handbook}ports[Использование коллекции портов, ports-" +"using]. Это также позволит отслеживать все зависимости портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:62 +msgid "" +"The next step is to see if there is an update already pending. To do this, " +"there are two options. There is a searchable interface to the https://" +"bugs.freebsd.org/search/[FreeBSD Problem Report (PR) or bug database]. " +"Select `Ports & Packages` in the `Product` multiple select menu, and enter " +"the name of the port in the `Summary` field." +msgstr "" +"Следующий шаг — проверить, есть ли уже ожидающее обновление. Для этого есть " +"два варианта. Доступен поиск в https://bugs.freebsd.org/search/[Сообщения о " +"проблемах (PR) или база данных ошибок FreeBSD]. Выберите `Ports & Packages` " +"в меню множественного выбора `Product` и введите название порта в поле " +"`Summary`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:66 +msgid "" +"If there is no pending PR, the next step is to send an email to the port's " +"maintainer, as shown by `make maintainer`. That person may already be " +"working on an upgrade, or have a reason to not upgrade the port right now " +"(because of, for example, stability problems of the new version), and there " +"is no need to duplicate their work. Note that unmaintained ports are listed " +"with a maintainer of `ports@FreeBSD.org`, which is just the general ports " +"mailing list, so sending mail there probably will not help in this case." +msgstr "" +"Если таких отложенных PR не существует, то на следующем этапе следует " +"послать сообщение электронной почты человеку, поддерживающему порт, который " +"выдаётся по команде `make maintainer`. Этот человек может уже работать над " +"обновлением, или иметь причину не обновлять порт прямо сейчас (например, из-" +"за проблем со стабильностью функционирования новой версии); вам нет нужды " +"дублировать их работу. Заметьте, что неподдерживаемые порты перечисляются с " +"адресом сопровождающего `ports@FreeBSD.org`, который является всего лишь " +"адресом общего списка рассылки, так что отправка туда сообщений, скорее " +"всего, в данном случае не поможет." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:68 +msgid "" +"If the maintainer asks you to do the upgrade or there is no maintainer, then " +"help out FreeBSD by preparing the update! Please do this by using the " +"man:diff[1] command in the base system." +msgstr "" +"Если сопровождающий просит вас выполнить обновление, либо сопровождающий " +"отсутствует, то у вас появляется шанс помочь FreeBSD, приготовив обновление " +"самим! Пожалуйста, делайте это с использованием команды man:diff[1] в " +"основной системе." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:70 +msgid "" +"To create a suitable `diff` for a single patch, copy the file that needs " +"patching to [.filename]#something.orig#, save the changes to " +"[.filename]#something# and then create the patch:" +msgstr "" +"Чтобы создать подходящий `diff` для одного патча, скопируйте файл, который " +"нужно пропатчить, в [.filename]#something.orig#, сохраните ваши изменения в " +"[.filename]#something#, а затем создайте ваше патч:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:74 +#, no-wrap +msgid "% diff -u something.orig something > something.diff\n" +msgstr "% diff -u something.orig something > something.diff\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:81 +msgid "" +"Otherwise, either use the `git diff` method (crossref:upgrading[git-diff, " +"Using Git to Make Patches]) or copy the contents of the port to an entire " +"different directory and use the result of the recursive man:diff[1] output " +"of the new and old ports directories (for example, if the modified port " +"directory is called [.filename]#superedit# and the original is in our tree " +"as [.filename]#superedit.bak#, then save the result of `diff -ruN " +"superedit.bak superedit`). Either unified or context diff is fine, but port " +"committers generally prefer unified diffs. Note the use of the `-N` option-" +"this is the accepted way to force diff to properly deal with the case of new " +"files being added or old files being deleted. Before sending us the diff, " +"please examine the output to make sure all the changes make sense. (In " +"particular, make sure to first clean out the work directories with `make " +"clean`)." +msgstr "" +"В противном случае используйте метод `git diff` (crossref:upgrading[git-" +"diff, Использование Git для создания патчей]) или скопируйте содержимое " +"порта в совершенно другой каталог и используйте результат рекурсивного " +"вывода man:diff[1] для новых и старых каталогов портов (например, если " +"изменённый каталог порта называется [.filename]#superedit#, а исходный " +"находится в нашем дереве как [.filename]#superedit.bak#, сохраните результат " +"выполнения `diff -ruN superedit.bak superedit`). Подойдёт как " +"унифицированный, так и контекстный diff, но коммитеры портов обычно " +"предпочитают унифицированные diff. Обратите внимание на использование опции " +"`-N` — это общепринятый способ заставить diff корректно обрабатывать случаи " +"добавления новых файлов или удаления старых. Перед отправкой diff, " +"пожалуйста, проверьте вывод, чтобы убедиться, что все изменения имеют смысл. " +"(В частности, не забудьте сначала очистить рабочие каталоги с помощью `make " +"clean`)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:85 +msgid "" +"If some files have been added, copied, moved, or removed, add this " +"information to the problem report so that the committer picking up the patch " +"will know what man:git[1] commands to run." +msgstr "" +"Если некоторые файлы были добавлены, скопированы, перемещены или удалены, " +"добавьте эту информацию в отчёт о проблеме, чтобы коммитер, принимающий " +"патч, знал, какие команды man:git[1] нужно выполнить." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:90 +msgid "" +"To simplify common operations with patch files, use `make makepatch` as " +"described in crossref:slow-porting[slow-patch,Patching]. Other tools " +"exists, like [.filename]#/usr/ports/Tools/scripts/patchtool.py#. Before " +"using it, please read [.filename]#/usr/ports/Tools/scripts/README.patchtool#." +msgstr "" +"Для упрощения стандартных операций с файлами исправлений используйте `make " +"makepatch`, как описано в crossref:slow-porting[slow-patch,Применение " +"партчей]. Существуют и другие инструменты, например [.filename]#/usr/ports/" +"Tools/scripts/patchtool.py#. Перед его использованием прочтите [.filename]#/" +"usr/ports/Tools/scripts/README.patchtool#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:94 +msgid "" +"If the port is unmaintained, and you are actively using it, please consider " +"volunteering to become its maintainer. FreeBSD has over 4000 ports without " +"maintainers, and this is an area where more volunteers are always needed. " +"(For a detailed description of the responsibilities of maintainers, refer to " +"the section in the extref:{developers-handbook}[Developer's Handbook, " +"POLICIES-MAINTAINER].)" +msgstr "" +"Если порт никем не поддерживается, а вы активно его используете, пожалуйста, " +"подумайте над тем, чтобы добровольно стать его сопровождающим. Во FreeBSD " +"имеется более 4000 портов без поддержки, и это как раз та область, где " +"всегда нужны добровольцы. (Детальное описание обязанностей сопровождающего " +"можно найти в разделе extref:{developers-handbook}[Руководства Разработчика, " +"POLICIES-MAINTAINER].)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:100 +msgid "" +"To submit the diff, use the https://bugs.freebsd.org/submit/[bug submit " +"form] (product `Ports & Packages`, component `Individual Port(s)`). Always " +"include the category with the port name, followed by colon, and brief " +"description of the issue. Examples: `_category/portname_: _add FOO " +"option_`; `_category/portname_: _Update to X.Y_`. Please mention any added " +"or deleted files in the message, as they have to be explicitly specified to " +"man:git[1] when doing a commit. Do not compress or encode the diff." +msgstr "" +"Для отправки diff используйте https://bugs.freebsd.org/submit/[форму " +"отправки багов] (продукт `Ports & Packages`, компонент `Individual " +"Port(s)`). Всегда указывайте категорию с именем порта, за которой следует " +"двоеточие и краткое описание проблемы. Примеры: `_категория/имя_порта_: " +"_добавить опцию FOO_`; `_категория/имя_порта_: _Обновление до X.Y_`. " +"Упоминайте в сообщении все добавленные или удалённые файлы, так как они " +"должны быть явно указаны в man:git[1] при выполнении коммита. Не сжимайте и " +"не кодируйте diff." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:103 +msgid "" +"Before submitting the bug, review the extref:{problem-reports}[Writing the " +"problem report, pr-writing] section in the Problem Reports article. It " +"contains far more information about how to write useful problem reports." +msgstr "" +"Прежде чем отправить сообщение об ошибке, ознакомьтесь с разделом extref:" +"{problem-reports}[Написание отчета о проблеме, pr-writing] в статье \"Отчеты " +"о проблемах\". В нем содержится гораздо больше информации о том, как " +"составлять полезные отчеты о проблемах." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:109 +msgid "" +"If the upgrade is motivated by security concerns or a serious fault in the " +"currently committed port, please notify the {portmgr} to request immediate " +"rebuilding and redistribution of the port's package. Unsuspecting users of " +"`pkg` will otherwise continue to install the old version via `pkg install` " +"for several weeks." +msgstr "" +"Если обновление вызвано соображениями информационной безопасности или " +"наличием серьёзных ошибок в имеющемся порте, пожалуйста, оповестите " +"{portmgr} о необходимости немедленного перепостроения и повторного " +"распространения пакета данного порта. В противном случае ничего не " +"подозревающие пользователи `pkg` будут продолжать устанавливать старую " +"версию по команде `pkg install` в течение ещё нескольких недель." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:116 +msgid "" +"Please use man:diff[1] or `git diff` to create updates to existing ports. " +"Other formats include the whole file and make it impossible to see just what " +"has changed. When diffs are not included, the entire update might be " +"ignored." +msgstr "" +"Пожалуйста, используйте man:diff[1] или `git diff` для создания обновлений " +"существующих портов. Другие форматы включают весь файл и делают невозможным " +"увидеть только изменённые части. Если различия не включены, всё обновление " +"может быть проигнорировано." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:119 +msgid "" +"Now that all of that is done, read about how to keep up-to-date in " +"crossref:keeping-up[keeping-up,Keeping Up]." +msgstr "" +"Теперь, когда вы проделали всё это, прочитайте о том, как поддерживать " +"актуальное состояние, в crossref:keeping-up[keeping-up, Актуализация]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:121 +#, no-wrap +msgid "Using Git to Make Patches" +msgstr "Использование Git для создания патчей" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:130 +msgid "" +"When possible, please submit a man:git[1] patch or diff. They are easier to " +"handle than diffs between \"new and old\" directories. It is easier to see " +"what has changed, and to update the diff if something was modified in the " +"Ports Collection since the work on it began, or if the committer asks for " +"something to be fixed. Also, a patch generated with man:git-format-patch[1] " +"or man:git-diff[1] can be easily applied with man:git-am[1] or man:git-" +"apply[1] and will save some time for the committer. Finally, the git patch " +"generated by man:git-format-patch[1] includes your author information and " +"commit messages. These will be recorded in the log of the repository and " +"this is the recommended way to submit your changes." +msgstr "" +"Когда это возможно, пожалуйста, предоставляйте патч или diff с помощью " +"man:git[1]. Их проще обрабатывать, чем различия между директориями «новый и " +"старый». Так легче увидеть, что изменилось, и обновить diff, если что-то " +"было изменено в Коллекции портов с момента начала работы над ней, или если " +"коммитер просит что-то исправить. Кроме того, патч, созданный с помощью " +"man:git-format-patch[1] или man:git-diff[1], можно легко применить с помощью " +"man:git-am[1] или man:git-apply[1], что сэкономит время коммитера. Наконец, " +"git-патч, созданный man:git-format-patch[1], включает информацию об авторе и " +"сообщения коммитов. Они будут записаны в лог репозитория, и это " +"рекомендуемый способ отправки ваших изменений." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:135 +#, no-wrap +msgid "" +"% git clone https://git.FreeBSD.org/ports.git ~/my_wrkdir <.> <.>\n" +"% cd ~/my_wrkdir\n" +msgstr "" +"% git clone https://git.FreeBSD.org/ports.git ~/my_wrkdir <.> <.>\n" +"% cd ~/my_wrkdir\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:138 +msgid "" +"This can be anywhere, of course. Building ports is not limited to within " +"[.filename]#/usr/ports/#." +msgstr "" +"Это может быть где угодно; место, в котором производится построение портов, " +"не привязано к [.filename]#/usr/ports/#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:140 +msgid "" +"https://git.FreeBSD.org/[git.FreeBSD.org] is the FreeBSD public Git server. " +"See extref:{handbook}mirrors[FreeBSD Git Repository URL Table, git-url-" +"table] for more information." +msgstr "" +"https://git.FreeBSD.org/[git.FreeBSD.org] — это публичный Git-сервер " +"FreeBSD. Подробнее см. в extref:{handbook}mirrors[таблице URL-репозиториев " +"FreeBSD Git, git-url-table]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:143 +msgid "" +"While in the port directory, make any changes that are needed. If adding, " +"moving, or removing a file, use `git` to track these changes:" +msgstr "" +"Находясь в каталоге порта, внесите необходимые изменения. Если требуется " +"добавить, переместить или удалить файл, используйте `git` для отслеживания " +"этих изменений:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:149 +#, no-wrap +msgid "" +"% git add new_file\n" +"% git mv old_name new_name\n" +"% git rm deleted_file\n" +msgstr "" +"% git add new_file\n" +"% git mv old_name new_name\n" +"% git rm deleted_file\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:152 +msgid "" +"Make sure to check the port using the checklist in crossref:quick-" +"porting[porting-testing,Testing the Port] and crossref:quick-porting[porting-" +"portlint,Checking the Port with `portlint`]." +msgstr "" +"Убедитесь, что проверили порт, используя контрольный список в crossref:quick-" +"porting[porting-testing,Тестирование порта] и crossref:quick-porting[porting-" +"portlint,Проверка порта с помощью `portlint`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:154 +msgid "Also, update the checksum reference in distinfo with `make makesum`." +msgstr "" +"Также обновите ссылку на контрольную сумму в distinfo с помощью `make " +"makesum`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:158 +msgid "" +"Before making the patch, fetch the latest repository and rebase the changes " +"on top of it. Watch and follow the output carefully. If any of the files " +"failed to rebase, it means that the upstream files changed while you were " +"editing the same file, and the conflicts need to be resolved manually." +msgstr "" +"Прежде чем создавать патч, загрузите последнюю версию репозитория и " +"перебазируйте изменения поверх неё. Внимательно следите за выводом и " +"следуйте ему. Если какие-либо файлы не удалось перебазировать, это означает, " +"что исходные файлы изменились во время вашего редактирования, и конфликты " +"необходимо разрешить вручную." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:163 +#, no-wrap +msgid "" +"% git fetch origin main\n" +"% git rebase origin/main\n" +msgstr "" +"% git fetch origin main\n" +"% git rebase origin/main\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:166 +msgid "Check the changes staged for the patch:" +msgstr "Проверьте изменения, подготовленные для исправления:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:171 +#, no-wrap +msgid "" +"% git status\n" +"% git diff --staged\n" +msgstr "" +"% git status\n" +"% git diff --staged\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:174 +msgid "The last step is to make an unified diff or patch of the changes:" +msgstr "Последний шаг — создать унифицированный diff или патч изменений:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:176 +msgid "To generate a patch with man:git-format-patch[1]:" +msgstr "Для создания патча с помощью man:git-format-patch[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:181 +#, no-wrap +msgid "" +"% git checkout -b my_branch\n" +"% git commit\n" +"% git format-patch main\n" +msgstr "" +"% git checkout -b my_branch\n" +"% git commit\n" +"% git format-patch main\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:187 +msgid "" +"This will generate a patch named like `0001-foo.patch`. This is the " +"preferred way as it would include author identity, and it is also easier " +"when you are making a series of changes that are not meant to be squashed " +"together." +msgstr "" +"Это создаст файл исправления с именем вида `0001-foo.patch`. Это " +"предпочтительный способ, так как он включает идентификацию автора, а также " +"удобнее, когда вы делаете серию изменений, которые не должны объединяться " +"вместе." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:189 +msgid "Alternatively, to generate an unified diff with man:git-diff[1]:" +msgstr "Или для создания унифицированного diff с помощью man:git-diff[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:192 +#, no-wrap +msgid "% git diff --staged > ../`make -VPKGNAME`.diff\n" +msgstr "% git diff --staged > ../`make -VPKGNAME`.diff\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:195 +msgid "" +"This will generate a diff named like `foo-1.2.3.diff`. Where `foo` is " +"replaced with the first line of the commit message, i.e., the subject of the " +"commit message." +msgstr "" +"Это создаст файл с различиями с именем вида `foo-1.2.3.diff`. Здесь `foo` " +"заменяется на первую строку сообщения коммита, то есть на тему сообщения " +"коммита." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:197 +msgid "" +"After patch has been created, you can switch to the main branch for starting " +"other developments." +msgstr "" +"После создания патча вы можете переключиться на основную ветку для начала " +"других разработок." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:200 +#, no-wrap +msgid "% git checkout main\n" +msgstr "% git checkout main\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:203 +msgid "" +"Once the patch is accepted and merged, you can delete the local development " +"branch if you want:" +msgstr "" +"После принятия и слияния патча вы можете удалить локальную ветку разработки, " +"если хотите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:206 +#, no-wrap +msgid "% git branch -D my_branch\n" +msgstr "% git branch -D my_branch\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:213 +msgid "" +"If files have been added, moved, or removed, include the man:git[1] `add`, " +"`mv`, and `rm` commands that were used. `git mv` must be run before the " +"patch can be applied. `git add` or `git rm` must be run after the patch is " +"applied." +msgstr "" +"Если файлы были добавлены, перемещены или удалены, укажите использованные " +"команды man:git[1] `add`, `mv` и `rm`. Команда `git mv` должна быть " +"выполнена до применения патча. Команды `git add` или `git rm` должны быть " +"выполнены после применения патча." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:216 +msgid "" +"Send the patch following the extref:{problem-reports}[problem report " +"submission guidelines, pr-writing]." +msgstr "" +"Отправьте исправление, следуя extref:{problem-reports}[рекомендациям по " +"отправке отчетов о проблемах, pr-writing]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:218 +#, no-wrap +msgid "UPDATING and MOVED" +msgstr "UPDATING и MOVED" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:221 +#, no-wrap +msgid "/usr/ports/UPDATING" +msgstr "/usr/ports/UPDATING" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:225 +msgid "" +"If upgrading the port requires special steps like changing configuration " +"files or running a specific program, it must be documented in this file. " +"The format of an entry in this file is:" +msgstr "" +"Если обновление порта требует специальных действий, таких как изменение " +"конфигурационных файлов или запуск определённой программы, это должно быть " +"задокументировано в данном файле. Формат записи в этом файле следующий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:231 +#, no-wrap +msgid "" +"YYYYMMDD:\n" +" AFFECTS: users of portcategory/portname\n" +" AUTHOR: Your name \n" +msgstr "" +"YYYYMMDD:\n" +" AFFECTS: users of portcategory/portname\n" +" AUTHOR: Your name \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:233 +#, no-wrap +msgid " Special instructions\n" +msgstr " Special instructions\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:240 +msgid "" +"When including exact portmaster, portupgrade, and/or pkg instructions, " +"please make sure to get the shell escaping right. For example, do _not_ use:" +msgstr "" +"При включении точных инструкций для portmaster, portupgrade и/или pkg, " +"убедитесь в правильности экранирования в shell. Например, _не_ используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:244 +#, no-wrap +msgid "# pkg delete -g -f docbook-xml* docbook-sk* docbook[2345]??-* docbook-4*\n" +msgstr "# pkg delete -g -f docbook-xml* docbook-sk* docbook[2345]??-* docbook-4*\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:248 +msgid "" +"As shown, the command will only work with bourne shells. Instead, use the " +"form shown below, which will work with both bourne shell and c-shell:" +msgstr "" +"Как показано, команда будет работать только с bourne-оболочками. Вместо " +"этого используйте форму, приведённую ниже, которая будет работать как с " +"bourne-оболочкой, так и с c-оболочкой:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:252 +#, no-wrap +msgid "# pkg delete -g -f docbook-xml\\* docbook-sk\\* docbook\\[2345\\]\\?\\?-\\* docbook-4\\*\n" +msgstr "# pkg delete -g -f docbook-xml\\* docbook-sk\\* docbook\\[2345\\]\\?\\?-\\* docbook-4\\*\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:260 +msgid "" +"It is recommended that the AFFECTS line contains a glob matching all the " +"ports affected by the entry so that automated tools can parse it as easily " +"as possible. If an update concerns all the existing BIND 9 versions the " +"`AFFECTS` content must be `users of dns/bind9*`, it must _not_ be `users of " +"BIND 9`" +msgstr "" +"Рекомендуется, чтобы строка AFFECTS содержала glob-выражение, " +"соответствующее всем портам, затронутым записью, чтобы автоматизированные " +"инструменты могли максимально легко её обработать. Если обновление касается " +"всех существующих версий BIND 9, содержимое `AFFECTS` должно быть `users of " +"dns/bind9*`, и оно _не должно_ быть `users of BIND 9`" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:263 +#, no-wrap +msgid "/usr/ports/MOVED" +msgstr "/usr/ports/MOVED" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:269 +msgid "" +"This file is used to list moved or removed ports. Each line in the file is " +"made up of the name of the port, where the port was moved, when, and why. " +"If the port was removed, the section detailing where it was moved can be " +"left blank. Each section must be separated by the `|` (pipe) character, " +"like so:" +msgstr "" +"Этот файл используется для перечисления перемещённых или удалённых портов. " +"Каждая строка в файле состоит из названия порта, места, куда порт был " +"перемещён, даты и причины. Если порт был удалён, раздел с указанием места " +"перемещения может быть оставлен пустым. Каждый раздел должен быть отделён " +"символом `|` (вертикальная черта), например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:273 +#, no-wrap +msgid "old name|new name (blank for deleted)|date of move|reason\n" +msgstr "old name|new name (blank for deleted)|date of move|reason\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:277 +msgid "" +"The date must be entered in the form `YYYY-MM-DD`. New entries are added to " +"the end of the list to keep it in chronological order, with the oldest entry " +"at the top of the list." +msgstr "" +"Дата должна быть введена в формате `ГГГГ-ММ-ДД`. Новые записи добавляются в " +"конец списка, чтобы сохранить его в хронологическом порядке, при этом самая " +"старая запись находится в начале списка." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:279 +msgid "" +"If a port was removed but has since been restored, delete the line in this " +"file that states that it was removed." +msgstr "" +"Если порт был удален, но затем восстановлен, удалите строку в этом файле, " +"которая указывает, что он был удален." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:281 +msgid "" +"If a port was renamed and then renamed back to its original name, add a new " +"one with the intermediate name to the old name, and remove the old entry as " +"to not create a loop." +msgstr "" +"Если порт был переименован, а затем переименован обратно в исходное имя, " +"добавьте новую запись с промежуточным именем для старого имени и удалите " +"старую запись, чтобы не создавать цикл." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:285 +msgid "Any changes must be validated with `Tools/scripts/MOVEDlint.awk`." +msgstr "" +"Любые изменения должны быть проверены с помощью `Tools/scripts/" +"MOVEDlint.awk`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:287 +msgid "If using a ports directory other than [.filename]#/usr/ports#, use:" +msgstr "" +"Если используется каталог портов, отличный от [.filename]#/usr/ports#, " +"следует указать:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/upgrading/_index.adoc:292 +#, no-wrap +msgid "" +"% cd /home/user/ports\n" +"% env PORTSDIR=$PWD Tools/scripts/MOVEDlint.awk\n" +msgstr "" +"% cd /home/user/ports\n" +"% env PORTSDIR=$PWD Tools/scripts/MOVEDlint.awk\n" diff --git a/documentation/content/ru/books/porters-handbook/uses/_index.adoc b/documentation/content/ru/books/porters-handbook/uses/_index.adoc --- a/documentation/content/ru/books/porters-handbook/uses/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/uses/_index.adoc @@ -1,26 +1,27 @@ --- -title: Глава 15. Значения USES -prev: books/porters-handbook/keeping-up +description: 'Макросы USES упрощают объявление требований и настроек для порта FreeBSD' next: books/porters-handbook/versions -showBookMenu: true -weight: 15 params: - path: "/books/porters-handbook/uses/" + path: /books/porters-handbook/uses/ +prev: books/porters-handbook/keeping-up +showBookMenu: true +tags: ["uses", "macros", "introduction", "guide"] +title: 'Глава 17. Использование макроса USES' +weight: 17 --- [[uses]] -= Значения `USES` += Использование макроса `USES` :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 15 +:sectnumoffset: 17 :partnums: :source-highlighter: rouge :experimental: -:c-plus-plus: c++ :images-path: books/porters-handbook/ ifdef::env-beastie[] @@ -48,17 +49,14 @@ endif::[] [[uses-intro]] -== An Introduction to `USES` +== Введение в `USES` -`USES` macros make it easy to declare requirements and settings for a port. -They can add dependencies, change building behavior, add metadata to packages, and so on, all by selecting simple, preset values. +Макросы `USES` упрощают объявление требований и настроек для порта. Они могут добавлять зависимости, изменять поведение при сборке, добавлять метаданные в пакеты и так далее, просто выбирая предустановленные значения. -Each section in this chapter describes a possible value for `USES`, along with its possible arguments. -Arguments are appended to the value after a colon (`:`). -Multiple arguments are separated by commas (`,`). +Каждый раздел в этой главе описывает возможное значение для `USES`, а также его возможные аргументы. Аргументы добавляются к значению после двоеточия (`:`). Несколько аргументов разделяются запятыми (`,`). [[uses-intro-ex1]] -.Using Multiple Values +.Использование нескольких значений [example] ==== [.programlisting] @@ -68,7 +66,7 @@ ==== [[uses-intro-ex2]] -.Adding an Argument +.Добавление аргумента [example] ==== [.programlisting] @@ -78,7 +76,7 @@ ==== [[uses-intro-ex3]] -.Adding Multiple Arguments +.Добавление нескольких аргументов [example] ==== [.programlisting] @@ -88,7 +86,7 @@ ==== [[uses-intro-ex4]] -.Mixing it All Together +.Смешивая Все Вместе [example] ==== [.programlisting] @@ -100,418 +98,721 @@ [[uses-7z]] == `7z` -Possible arguments: (none), `p7zip`, `partial` +Возможные аргументы: (нет), `p7zip`, `partial` -Extract using man:7z[1] instead of man:bsdtar[1] and sets `EXTRACT_SUFX=.7z`. -The `p7zip` option forces a dependency on the `7z` from package:archivers/p7zip[] if the one from the base system is not able to extract the files. -`EXTRACT_SUFX` is not changed if the `partial` option is used, this can be used if the main distribution file does not have a [.filename]#.7z# extension. +Извлечение с использованием man:7z[1] вместо man:bsdtar[1] и устанавливает `EXTRACT_SUFX=.7z`. Опция `p7zip` добавляет зависимость от `7z` из package:archivers/p7zip[], если версия из базовой системы не может извлечь файлы. `EXTRACT_SUFX` не изменяется, если используется опция `partial`, это может быть полезно, если основной дистрибутивный файл не имеет расширения [.filename]#.7z#. [[uses-ada]] == `ada` -Possible arguments: (none), `5`, `6` +Возможные аргументы: (нет), `6`, `12`, `(запуск)` + +Зависит от компилятора с поддержкой Ada и устанавливает `CC` соответствующим образом. По умолчанию используется `gcc6-aux` из портов. + +[[uses-angr]] +== `angr` + +Возможные аргументы: `binaries`, `nose` + +Обеспечить поддержку портов, требующих https://github.com/angr/angr[платформу бинарного анализа angr]. + +Если присутствует аргумент `binaries`, для тестирования порта требуются специальные бинарные файлы `angr`. + +Если присутствует аргумент `nose`, порт использует `nosetests` для цели тестирования. Этот аргумент подразумевает `USES=python:test`. + +Фреймворк предоставляет следующие переменные, которые могут быть установлены портом: + +`ANGR_VERSION`:: +Версия программ проекта `angr`. + +`ANGR_BINARIES_TAGNAME`:: +Имя тега для бинарных файлов `angr`. + +`ANGR_NOSETESTS`:: +Путь к программе `nosetests`. + +[[uses-ansible]] +== `ansible` + +Возможные аргументы: `env`, `module`, `plugin` + +Обеспечивает поддержку портов, зависящих от пакета package:sysutils/ansible[]. + +Если присутствует аргумент `env`, порт не зависит от package:sysutils/ansible[], но требует установки некоторых переменных Ansible. + +Если присутствует аргумент `module`, то порт является модулем Ansible. + +Если присутствует аргумент `plugin`, то порт является плагином Ansible. + +Фреймворк предоставляет следующие переменные порту: + +`ANSIBLE_CMD`:: +Путь к программе ansible. + +`ANSIBLE_DOC_CMD`:: +Путь к программе ansible-doc. + +`ANSIBLE_RUN_DEPENDS`:: +RUN_DEPENDS с портом Ansible. + +`ANSIBLE_DATADIR`:: +Путь к корню структуры каталогов, где хранятся все модули и плагины Ansible. + +`ANSIBLE_ETCDIR`:: +Путь к каталогу etc Ansible. + +`ANSIBLE_PLUGINS_PREFIX`:: +Путь к директории "plugins" в `${ANSIBLE_DATADIR}`. +`ANSIBLE_MODULESDIR`:: +Путь к каталогу для локальных модулей Ansible. + +`ANSIBLE_PLUGINSDIR`:: +Путь к каталогу для локальных плагинов Ansible. + +`ANSIBLE_PLUGIN_TYPE`:: +Тип плагина Ansible (например, "connection", "inventory" или "vars"). + +[[uses-apache]] +== `apache` + +Возможные аргументы: (нет), `2.4`, `build`, `run`, `server` + +Обеспечивает поддержку портов, зависящих от веб-сервера Apache. + +Аргумент `version` можно использовать для указания конкретной версии Apache httpd. Можно задать определённую версию (`USES=apache:2.4`), минимальную версию (`USES=apache:2.4+`) или максимальную версию (`USES=apache:-2.4`). + +Если указан аргумент `build`, к порту добавляется зависимость для сборки. + +Если указан аргумент `run`, к порту добавляется зависимость времени выполнения. + +Если указан аргумент `server`, это означает, что порт является серверным. + +Фреймворк предоставляет следующие переменные, которые могут быть установлены портом: + +`AP_FAST_BUILD`:: +Автоматическая сборка модуля + +`AP_GENPLIST`:: +Автоматическое создание `PLIST` плюс добавление модуля в отключенном состоянии в [.filename]#httpd.conf# (только если нет файла `pkg-plist`) + +`MODULENAME`:: +Имя модуля Apache. По умолчанию: `${PORTNAME}` + +`SHORTMODNAME`:: +Краткое название модуля Apache. По умолчанию: `${MODULENAME:S/mod_//}` + +`SRC_FILE`:: +Исходный файл модуля APACHE. По умолчанию: `${MODULENAME}.c` + +Следующие переменные могут быть доступны для порта: + +`APACHE_VERSION`:: +Основная-вспомогательная версия выбранного сервера Apache, например 2.4 + +`APACHEETCDIR`:: +Расположение каталога конфигурации Apache. По умолчанию: [.filename]#${LOCALBASE}/etc/apache24# + +`APACHEINCLUDEDIR`:: +Расположение include-файлов Apache. По умолчанию: [.filename]#${LOCALBASE}/include/apache24# + +`APACHEMODDIR`:: +Расположение модулей Apache. По умолчанию: [.filename]#${LOCALBASE}/libxexec/apache24# + +`APACHE_DEFAULT`::Версия Apache по умолчанию -Depends on an Ada-capable compiler, and sets `CC` accordingly. -Defaults to use gcc 5 from ports. -Use the `:_X_` version option to force building with a different version. [[uses-autoreconf]] == `autoreconf` -Possible arguments: (none), `build` +Возможные аргументы: (нет), `build` + +Выполняет `autoreconf`. Эта команда объединяет функциональность `aclocal`, `autoconf`, `autoheader`, `automake`, `autopoint` и `libtoolize`. Каждая из этих команд применяется к [.filename]#${AUTORECONF_WRKSRC}/configure.ac# или его старому названию [.filename]#${AUTORECONF_WRKSRC}/configure.in#. Если [.filename]#configure.ac# определяет подкаталоги с их собственными [.filename]#configure.ac# с использованием `AC_CONFIG_SUBDIRS`, `autoreconf` также рекурсивно обновит их. Аргумент `:build` только добавляет зависимости времени сборки на эти инструменты, но не запускает `autoreconf`. Порт может установить `AUTORECONF_WRKSRC`, если `WRKSRC` не содержит путь к [.filename]#configure.ac#. + +[[uses-azurepy]] +== `azurepy` + +Возможные аргументы: (отсутствуют) -Runs `autoreconf`. -It encapsulates the `aclocal`, `autoconf`, `autoheader`, `automake`, `autopoint`, and `libtoolize` commands. -Each command applies to [.filename]#${AUTORECONF_WRKSRC}/configure.ac# or its old name, [.filename]#${AUTORECONF_WRKSRC}/configure.in#. -If [.filename]#configure.ac# defines subdirectories with their own [.filename]#configure.ac# using `AC_CONFIG_SUBDIRS`, `autoreconf` will recursively update those as well. -The `:build` argument only adds build time dependencies on those tools but does not run `autoreconf`. -A port can set `AUTORECONF_WRKSRC` if `WRKSRC` does not contain the path to [.filename]#configure.ac#. +Обеспечить поддержку портов `py-azure*`. Удаляет пространства имен `azure` и очищает общие файлы. [[uses-blaslapack]] == `blaslapack` -Possible arguments: (none), `atlas`, `netlib` (default), `gotoblas`, `openblas` +Возможные аргументы: (нет), `atlas`, `netlib` (по умолчанию), `gotoblas`, `openblas` -Adds dependencies on Blas / Lapack libraries. +Добавляет зависимости от библиотек Blas / Lapack. [[uses-bdb]] == `bdb` -Possible arguments: (none), `48`, `5` (default), `6` +Возможные аргументы: (отсутствуют), `5` (по умолчанию), `18` -Add dependency on the Berkeley DB library. -Default to package:databases/db5[]. -It can also depend on package:databases/db48[] when using the `:48` argument or package:databases/db6[] with `:6`. -It is possible to declare a range of acceptable values, `:48+` finds the highest installed version, and falls back to 4.8 if nothing else is installed. -`INVALID_BDB_VER` can be used to specify versions which do not work with this port. -The framework exposes the following variables to the port: +Добавить зависимость от библиотеки Berkeley DB. По умолчанию используется package:databases/db5[]. Также может зависеть от package:databases/db18[] при использовании аргумента `:18`. Можно объявить диапазон допустимых значений: `:5+` находит самую высокую установленную версию и возвращается к 5, если ничего другого не установлено. `INVALID_BDB_VER` можно использовать для указания версий, которые не работают с этим портом. Фреймворк предоставляет порту следующие переменные: `BDB_LIB_NAME`:: -The name of the Berkeley DB library. -For example, when using package:databases/db5[], it contains `db-5.3`. +Имя библиотеки Berkeley DB. Например, при использовании package:databases/db5[] она содержит `db-5.3`. `BDB_LIB_CXX_NAME`:: -The name of the Berkeley DBC++ library. -For example, when using package:databases/db5[], it contains `db_cxx-5.3`. +Название библиотеки Berkeley DBC++. Например, при использовании package:databases/db5[] она содержит `db_cxx-5.3`. `BDB_INCLUDE_DIR`:: -The location of the Berkeley DB include directory. -For example, when using package:databases/db5[], it will contain `${LOCALBASE}/include/db5`. +Расположение каталога с заголовочными файлами Berkeley DB. Например, при использовании пакета package:databases/db5[], он будет содержать `${LOCALBASE}/include/db5`. `BDB_LIB_DIR`:: -The location of the Berkeley DB library directory. -For example, when using package:databases/db5[], it contains `${LOCALBASE}/lib`. +Расположение каталога библиотеки Berkeley DB. Например, при использовании package:databases/db5[], он содержит `${LOCALBASE}/lib`. `BDB_VER`:: -The detected Berkeley DB version. -For example, if using `USES=bdb:48+` and Berkeley DB 5 is installed, it contains `5`. +Обнаруженная версия Berkeley DB. Например, при использовании `USES=bdb:5+` и установленной Berkeley DB 18, будет содержать `18`. [IMPORTANT] ==== -package:databases/db48[] is deprecated and unsupported. -It must not be used by any port. +package:databases/db48[] устарел и не поддерживается. Он не должен использоваться ни одним портом. ==== [[uses-bison]] == `bison` -Possible arguments: (none), `build`, `run`, `both` +Возможные аргументы: (нет), `build`, `run`, `both` -Uses package:devel/bison[] By default, with no arguments or with the `build` argument, it implies `bison` is a build-time dependency, `run` implies a run-time dependency, and `both` implies both run-time and build-time dependencies. +Использует пакет package:devel/bison[] По умолчанию, без аргументов или с аргументом `build`, подразумевается, что `bison` является зависимостью на этапе сборки, `run` — зависимостью на этапе выполнения, а `both` — зависимостью как на этапе сборки, так и на этапе выполнения. + +[[uses-budgie]] +== `budgie` + +Возможные аргументы: (отсутствуют) + +Предоставить поддержку окружения рабочего стола Budgie. Используйте `USE_BUDGIE` для выбора необходимых компонентов порта. Дополнительную информацию см. в разделе crossref:special[using-budgie,Использование Budgie]. [[uses-cabal]] == `cabal` [IMPORTANT] ==== -Ports should not be created for Haskell libraries, see crossref:special[haskell-libs,Haskell Libraries] for more information. +Порты не следует создавать для библиотек Haskell, подробнее см. в crossref:special[haskell-libs,Библиотеки Haskell]. ==== -Possible arguments: (none), `hpack` +Возможные аргументы: (отсутствуют), `hpack`, `nodefault` -Sets default values and targets used to build Haskell software using Cabal. -A build dependency on the Haskell compiler port (GHC) is added. -If `hpack` argument is given, a build dependency on package:devel/hs-hpack[] is added and `hpack` is invoked at configuration step to generate. -cabal file. +Устанавливает значения и цели по умолчанию, используемые для сборки программного обеспечения на Haskell с помощью Cabal. Добавляется зависимость для сборки на порт компилятора Haskell (package:lang/ghc[]). Если в переменной `BUILD_DEPENDS` уже указана другая версия GHC (например, package:lang/ghc810[]), она будет использована вместо версии по умолчанию. Если указан аргумент `hpack`, добавляется зависимость для сборки на package:devel/hs-hpack[], и `hpack` вызывается на этапе конфигурации для генерации файла .cabal. Если указан аргумент `nodefault`, фреймворк не будет пытаться загрузить основной дистрибутивный файл из Hackage. Этот аргумент добавляется неявно, если присутствует `USE_GITHUB` или `USE_GITLAB`. -The framework provides the following variables: +Фреймворк предоставляет следующие переменные: + +`CABAL_REVISION`:: +Пакеты Haskell, размещённые на Hackage, могут иметь ревизии. Установите этот параметр в целочисленное значение, чтобы использовать исправленное описание пакета. `USE_CABAL`:: -If the software uses Haskell dependencies, list them in this variable. -Each item should be present on Hackage and be listed in form `packagename-_0.1.2_`. -Dependencies can have revisions, which are specified after the `_` symbol. -Automatic generation of dependency list is supported, see crossref:special[using-cabal,Building Haskell Applications with `cabal`]. +Если программное обеспечение использует зависимости на Haskell, перечислите их в этой переменной. Каждый элемент должен присутствовать на Hackage и быть указан в формате `имяпакета-_0.1.2_`. Зависимости также могут иметь ревизии, которые указываются после символа `_`. Поддерживается автоматическое формирование списка зависимостей, см. crossref:special[using-cabal,Сборка приложений на Haskell с помощью `cabal`]. `CABAL_FLAGS`:: -List of flags to be passed to `cabal-install` during the configuring and building stage. -The flags are passed verbatim. +Список флагов, передаваемых `cabal-install` на этапах настройки и сборки. Флаги передаются в исходном виде. Эта переменная обычно используется для включения или отключения флагов, объявленных в файле .cabal. Передайте `foo`, чтобы включить флаг `foo`, и `-foo`, чтобы отключить его. -`EXECUTABLES`:: -List of executable files installed by the port. -Default value: `${PORTNAME}`. -Items from this list are automatically added to pkg-plist. +`CABAL_EXECUTABLES`:: +Список исполняемых файлов, устанавливаемых портом. Значение по умолчанию: `${PORTNAME}`. Для получения списка возможных значений этой переменной обратитесь к файлу .cabal портируемого проекта. Каждое значение соответствует разделу `executable` в файле .cabal. Элементы из этого списка автоматически добавляются в pkg-plist. `SKIP_CABAL_PLIST`:: -If defined, do not add items from `${EXECUTABLES}` to pkg-plist. +Если определено, не добавлять элементы из `${CABAL_EXECUTABLES}` в pkg-plist. `opt_USE_CABAL`:: -Adds items to `${USE_CABAL}` depending on `opt` option. +Добавляет элементы в `${USE_CABAL}` в зависимости от опции `opt`. -`opt_EXECUTABLES`:: -Adds items to `${EXECUTABLES}` depending on `opt` option. +`opt_CABAL_EXECUTABLES`:: +Добавляет элементы в `${CABAL_EXECUTABLES}` в зависимости от опции `opt`. `opt_CABAL_FLAGS`:: -If `opt` is enabled, append the value to `${CABAL_FLAGS}`. -Otherwise, append `-value` to disable the flag. +Если `opt` включён, добавить значение к `${CABAL_FLAGS}`. В противном случае добавить `-value`, чтобы отключить флаг. Обратите внимание, что это поведение немного отличается от простого `CABAL_FLAGS`, так как оно не принимает значения, начинающиеся с `-`. + +`CABAL_WRAPPER_SCRIPTS`:: +Подмножество `${CABAL_EXECUTABLES}`, содержащее программы на Haskell, которые будут обёрнуты в shell-скрипт, устанавливающий переменные окружения `*_datadir` перед запуском программы. Это также приводит к тому, что фактический бинарный файл Haskell устанавливается в директорию `libexec/cabal/`. Данная настройка необходима для программ на Haskell, которые устанавливают свои файлы данных в директорию `share/`. `FOO_DATADIR_VARS`:: -For an executable named `FOO` list Haskell packages, whose data files should be accessible by the executable. +Список дополнительных пакетов Haskell, чьи файлы данных должны быть доступны исполняемому файлу с именем `FOO`. Исполняемый файл должен быть частью `${CABAL_WRAPPER_SCRIPTS}`. Указанные пакеты Haskell не должны иметь суффикса версии. + +`CABAL_PROJECT`:: +Некоторые проекты на Haskell могут уже иметь файл `cabal.project`, который также создаётся фреймворком портов. Если это так, используйте эту переменную, чтобы указать, что делать с оригинальным файлом `cabal.project`. Установка этой переменной в значение `remove` приведёт к удалению оригинального файла. Установка этой переменной в значение `append` приведёт к следующему: +. Исходный файл переместится в `cabal.project.${PORTNAME}` на этапе `extract`. +. Исходный файл `cabal.project.${PORTNAME}` и сгенерированный `cabal.project` объединятся в один файл после этапа `patch`. Использование `append` позволяет выполнить патчинг исходного файла перед его объединением. [[uses-cargo]] == `cargo` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Uses Cargo for configuring, building, and testing. -It can be used to port Rust applications that use the Cargo build system. -For more information see crossref:special[using-cargo,Building Rust Applications with `cargo`]. +Использует Cargo для настройки, сборки и тестирования. Может применяться для портирования приложений на Rust, использующих систему сборки Cargo. Дополнительную информацию смотрите в crossref:special[using-cargo,Сборка приложений на Rust с помощью `cargo`]. [[uses-charsetfix]] == `charsetfix` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) + +Предотвращает установку файла [.filename]#charset.alias# портом. Этот файл должен устанавливаться только пакетом package:converters/libiconv[]. Переменная `CHARSETFIX_MAKEFILEIN` может быть установлена в путь относительно `WRKSRC`, если [.filename]#charset.alias# не устанавливается через [.filename]#${WRKSRC}/Makefile.in#. + +[[uses-cl]] +== `cl` + +Возможные аргументы: (отсутствуют) + +Предоставляет поддержку портов Common Lisp. + +Фреймворк предоставляет следующие переменные, которые могут быть установлены портами: + +`ASDF_MODULES`:: +Список модулей `ASDF` для сборки, когда установлен `FASL_TARGET` (по умолчанию `PORTNAME`) + +`FASL_TARGET`:: +Собрать fasl вариант порта (один из `ccl`, `clisp` или `sbcl`) + +`USE_ASDF`:: +Зависит от пакета package:devel/cl-asdf[] + +`USE_ASDF_FASL`:: +Зависит от `devel/cl-asdf-` + +`USE_CCL`:: +Зависит от пакета package:lang/ccl[]; подразумевается при `FASL_TARGET=ccl` -Prevents the port from installing [.filename]#charset.alias#. -This must be installed only by package:converters/libiconv[]. -`CHARSETFIX_MAKEFILEIN` can be set to a path relative to `WRKSRC` if [.filename]#charset.alias# is not installed by [.filename]#${WRKSRC}/Makefile.in#. +`USE_CLISP`:: +Зависит от пакета package:lang/clisp[]; подразумевается при `FASL_TARGET=clisp` + +`USE_SBCL`:: +Зависит от пакета package:lang/sbcl[]; подразумевается, если `FASL_TARGET=SBCL` + + +Фреймворк предоставляет следующие переменные, которые могут быть прочитаны портами: + +`ASDF_PATHNAME`:: +Путь к исходному коду CL + +`ASDF_REGISTRY`:: +Путь к реестру CL, содержащему файлы asd + +`CCL`:: +Путь к компилятору Clozure Common Lisp + +`CLISP`:: +Путь к компилятору GNU Common Lisp + +`CL_LIBDIR_REL`:: +Каталог библиотек CL относительно `LOCALBASE` или `PREFIX` + +`FASL_DIR_REL`:: +Относительный путь к скомпилированным fasl-файлам; зависит от `FASL_TARGET` + +`FASL_PATHNAME`:: +Путь к CL fasl + +`LISP_EXTRA_ARG`:: +Дополнительные аргументы, используемые при сборке fasl + +`SBCL`:: +Путь к компилятору Steel Bank Common Lisp [[uses-cmake]] == `cmake` -Possible arguments: (none), `insource`, `noninja`, `run`, `testing` +Возможные аргументы: (отсутствуют), `insource`, `noninja`, `run`, `testing` -Use CMake for configuring the port and generating a build system. +Используйте CMake для настройки порта и генерации системы сборки. -By default an out-of-source build is performed, leaving the sources in `WRKSRC` free from build artifacts. -With the `insource` argument, an in-source build will be performed instead. -This argument should be an exception, used only when a regular out-of-source build does not work. +По умолчанию выполняется сборка в дереве вне исходного кода, оставляя исходные файлы в `WRKSRC` свободными от артефактов сборки. С аргументом `insource` вместо этого будет выполнена сборка в исходном коде. Этот аргумент должен быть исключением и использоваться только в случае, когда обычная сборка вне исходного кода не работает. -By default Ninja (package:devel/ninja[]) is used for the build. -In some cases this does not work correctly. -With the `noninja` argument, the build will use regular `make` for builds. -This argument should only be used if a Ninja-based build does not work. +По умолчанию для сборки используется Ninja (package:devel/ninja[]). В некоторых случаях это может работать некорректно. С аргументом `noninja` сборка будет использовать обычный `make`. Этот аргумент следует применять только если сборка на основе Ninja не работает. -With the `run` argument, a run dependency is registered in addition to a build dependency. +С аргументом `run` регистрируется зависимость во время выполнения в дополнение к зависимости при сборке. -With the `testing` argument, a test-target is added that uses CTest. -When running tests the port will be re-configured for testing and re-built. +С аргументом `testing`, добавляется цель тестирования, использующая CTest. При запуске тестов порт будет переконфигурирован для тестирования и пересобран. -For more information see crossref:special[using-cmake,Using `cmake`]. +Для получения дополнительной информации см. crossref:special[using-cmake,Использование `cmake`]. [[uses-compiler]] == `compiler` -Possible arguments: (none), `env` (default, implicit), `{c-plus-plus}17-lang`, `{c-plus-plus}14-lang`, `{c-plus-plus}11-lang`, `gcc-{c-plus-plus}11-lib`, `{c-plus-plus}11-lib`, `{c-plus-plus}0x`, `c11`, `nestedfct`, `features` +Возможные аргументы: (нет), `env` (по умолчанию, подразумевается), `{cpp}17-lang`, `{cpp}14-lang`, `{cpp}11-lang`, `gcc-{cpp}11-lib`, `{cpp}11-lib`, `{cpp}0x`, `c11`, `nestedfct`, `features` -Determines which compiler to use based on any given wishes. -Use `{c-plus-plus}17-lang` if the port needs a {c-plus-plus}17-capable compiler, `{c-plus-plus}14-lang` if the port needs a {c-plus-plus}14-capable compiler, `{c-plus-plus}11-lang` if the port needs a {c-plus-plus}11-capable compiler, `gcc-{c-plus-plus}11-lib` if the port needs the `g++` compiler with a {c-plus-plus}11 library, or `{c-plus-plus}11-lib` if the port needs a {c-plus-plus}11-ready standard library. -If the port needs a compiler understanding {c-plus-plus}0X, C11 or nested functions, the corresponding parameters should be used. +Определяет, какой компилятор использовать, исходя из заданных предпочтений. Используйте `{cpp}17-lang`, если порту требуется компилятор с поддержкой {cpp}17, `{cpp}14-lang`, если порту требуется компилятор с поддержкой {cpp}14, `{cpp}11-lang`, если порту требуется компилятор с поддержкой {cpp}11, `gcc-{cpp}11-lib`, если порту требуется компилятор `g++` с библиотекой {cpp}11, или `{cpp}11-lib`, если порту требуется стандартная библиотека с поддержкой {cpp}11. Если порту требуется компилятор, понимающий {cpp}0X, C11 или вложенные функции, следует использовать соответствующие параметры. -Use `features` to request a list of features supported by the default compiler. -After including [.filename]#bsd.port.pre.mk# the port can inspect the results using these variables: +Используйте `features` для запроса списка возможностей, поддерживаемых компилятором по умолчанию. После включения [.filename]#bsd.port.pre.mk# порт может проверить результаты с помощью следующих переменных: -* `COMPILER_TYPE`: the default compiler on the system, either gcc or clang -* `ALT_COMPILER_TYPE`: the alternative compiler on the system, either gcc or clang. Only set if two compilers are present in the base system. -* `COMPILER_VERSION`: the first two digits of the version of the default compiler. -* `ALT_COMPILER_VERSION`: the first two digits of the version of the alternative compiler, if present. -* `CHOSEN_COMPILER_TYPE`: the chosen compiler, either gcc or clang -* `COMPILER_FEATURES`: the features supported by the default compiler. It currently lists the {c-plus-plus} library. +* `COMPILER_TYPE`: компилятор по умолчанию в системе, gcc или clang +* `ALT_COMPILER_TYPE`: альтернативный компилятор в системе, gcc или clang. Устанавливается только при наличии двух компиляторов в базовой системе. +* `COMPILER_VERSION`: первые две цифры версии компилятора по умолчанию. +* `ALT_COMPILER_VERSION`: первые две цифры версии альтернативного компилятора, если он присутствует. +* `CHOSEN_COMPILER_TYPE`: выбранный компилятор, gcc или clang +* `COMPILER_FEATURES`: возможности, поддерживаемые компилятором по умолчанию. В настоящее время указана библиотека {cpp}. [[uses-cpe]] == `cpe` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Include Common Platform Enumeration (CPE) information in package manifest as a CPE 2.3 formatted string. -See the http://scap.nist.gov/specifications/cpe/[CPE specification] for details. -To add CPE information to a port, follow these steps: +Включает информацию о Common Platform Enumeration (CPE) в манифест пакета в виде строки формата CPE 2.3. Подробности см. в https://scap.nist.gov/specifications/cpe/[спецификации CPE]. Чтобы добавить информацию CPE в порт, выполните следующие шаги: [.procedure] -. Search for the official CPE entry for the software product either by using the NVD's http://web.nvd.nist.gov/view/cpe/search[CPE search engine] or in the http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml[official CPE dictionary] (warning, very large XML file). _Do not ever make up CPE data._ -. Add `cpe` to `USES` and compare the result of `make -V CPE_STR` to the CPE dictionary entry. Continue one step at a time until `make -V CPE_STR` is correct. -. If the product name (second field, defaults to `PORTNAME`) is incorrect, define `CPE_PRODUCT`. -. If the vendor name (first field, defaults to `CPE_PRODUCT`) is incorrect, define `CPE_VENDOR`. -. If the version field (third field, defaults to `PORTVERSION`) is incorrect, define `CPE_VERSION`. -. If the update field (fourth field, defaults to empty) is incorrect, define `CPE_UPDATE`. -. If it is still not correct, check [.filename]#Mk/Uses/cpe.mk# for additional details, or contact the {ports-secteam}. -. Derive as much as possible of the CPE name from existing variables such as `PORTNAME` and `PORTVERSION`. Use variable modifiers to extract the relevant portions from these variables rather than hardcoding the name. -. _Always_ run `make -V CPE_STR` and check the output before committing anything that changes `PORTNAME` or `PORTVERSION` or any other variable which is used to derive `CPE_STR`. +. Поищите официальную запись CPE для программного продукта, используя либо https://web.nvd.nist.gov/view/cpe/search[поисковую систему CPE] от NVD, либо https://nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml.gz[официальный словарь CPE] (предупреждение: очень большой XML-файл). _Никогда не создавайте данные CPE самостоятельно._ +. Добавьте `cpe` в `USES` и сравните результат выполнения `make -V CPE_STR` с записью в словаре CPE. Продолжайте шаг за шагом, пока результат `make -V CPE_STR` не станет корректным. +. Если название продукта (второе поле, по умолчанию `PORTNAME`) указано неверно, определите `CPE_PRODUCT`. +. Если название производителя (первое поле, по умолчанию `CPE_PRODUCT`) указано неверно, определите `CPE_VENDOR`. +. Если поле версии (третье поле, по умолчанию `PORTVERSION`) указано неверно, определите `CPE_VERSION`. +. Если поле обновления (четвертое поле, по умолчанию пустое) указано неверно, определите `CPE_UPDATE`. +. Если это всё ещё неверно, проверьте файл [.filename]#Mk/Uses/cpe.mk# для получения дополнительной информации или свяжитесь с {ports-secteam}. +. Извлекайте как можно больше информации для имени CPE из существующих переменных, таких как `PORTNAME` и `PORTVERSION`. Используйте модификаторы переменных для извлечения соответствующих частей из этих переменных, вместо того чтобы жестко прописывать имя. +. _Всегда_ выполняйте `make -V CPE_STR` и проверяйте вывод перед коммитом любых изменений, затрагивающих `PORTNAME`, `PORTVERSION` или любые другие переменные, используемые для формирования `CPE_STR`. [[uses-cran]] == `cran` -Possible arguments: (none), `auto-plist`, `compiles` +Возможные аргументы: (нет), `auto-plist`, `compiles` -Uses the Comprehensive R Archive Network. -Specify `auto-plist` to automatically generate [.filename]#pkg-plist#. -Specify `compiles` if the port has code that need to be compiled. +Использует Comprehensive R Archive Network. Укажите `auto-plist` для автоматического создания [.filename]#pkg-plist#. Укажите `compiles`, если порт содержит код, который необходимо компилировать. [[uses-desktop-file-utils]] == `desktop-file-utils` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Uses update-desktop-database from package:devel/desktop-file-utils[]. -An extra post-install step will be run without interfering with any post-install steps already in the port [.filename]#Makefile#. -A line with <> will be added to the plist. +Использует update-desktop-database из пакета package:devel/desktop-file-utils[]. Дополнительный шаг post-install будет выполнен без вмешательства в уже существующие шаги post-install в [.filename]#Makefile# порта. Строка с crossref:plist[plist-keywords-desktop-file-utils,`@desktop-file-utils`] будет добавлена в plist. Используйте этот макрос только если порт предоставляет файл `.desktop`, содержащий запись `MimeType`. [[uses-desthack]] == `desthack` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Changes the behavior of GNU configure to properly support `DESTDIR` in case the original software does not. +Изменяет поведение GNU configure для корректной поддержки `DESTDIR` в случае, если исходное программное обеспечение этого не делает. [[uses-display]] == `display` -Possible arguments: (none), _ARGS_ +Возможные аргументы: (отсутствуют), _ARGS_ -Set up a virtual display environment. -If the environment variable `DISPLAY` is not set, then Xvfb is added as a build dependency, and `CONFIGURE_ENV` is extended with the port number of the currently running instance of Xvfb. -The _ARGS_ parameter defaults to `install` and controls the phase around which to start and stop the virtual display. +Настраивает виртуальное окружение для отображения. Если переменная окружения `DISPLAY` не установлена, то Xvfb добавляется как зависимость при сборке, а `CONFIGURE_ENV` расширяется с указанием номера порта текущего запущенного экземпляра Xvfb. Параметр _ARGS_ по умолчанию имеет значение `install` и управляет фазой, вокруг которой запускается и останавливается виртуальный дисплей. [[uses-dos2unix]] == `dos2unix` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -The port has files with line endings in DOS format which need to be converted. -Several variables can be set to control which files will be converted. -The default is to convert _all_ files, including binaries. -See crossref:slow-porting[slow-patch-automatic-replacements,Simple Automatic Replacements] for examples. +Порт содержит файлы с символами конца строки в формате DOS, которые необходимо преобразовать. Несколько переменных могут быть установлены для контроля, какие файлы будут преобразованы. По умолчанию преобразуются _все_ файлы, включая бинарные. См. crossref:slow-porting[slow-patch-automatic-replacements,Простые автоматические замены] для примеров. -* `DOS2UNIX_REGEX`: match file names based on a regular expression. -* `DOS2UNIX_FILES`: match literal file names. -* `DOS2UNIX_GLOB`: match file names based on a glob pattern. -* `DOS2UNIX_WRKSRC`: the directory from which to start the conversions. Defaults to `${WRKSRC}`. +* `DOS2UNIX_REGEX`: сопоставлять имена файлов на основе регулярного выражения. +* `DOS2UNIX_FILES`: соответствуют точным именам файлов. +* `DOS2UNIX_GLOB`: сопоставлять имена файлов на основе шаблона файлов оболочки. +* `DOS2UNIX_WRKSRC`: каталог, с которого начинать преобразования. По умолчанию `${WRKSRC}`. [[uses-drupal]] == `drupal` -Possible arguments: `7`, `module`, `theme` +Возможные аргументы: `7`, `module`, `theme` + +Автоматизирует установку порта, который является темой или модулем Drupal. Использовать с версией Drupal, которую ожидает порт. Например, `USES=drupal:7,module` означает, что этот порт создает модуль Drupal 7. Тему Drupal 7 можно указать с помощью `USES=drupal:7,theme`. + +[[uses-ebur128]] +== `ebur128` -Automate installation of a port that is a Drupal theme or module. -Use with the version of Drupal that the port is expecting. -For example, `USES=drupal:7,module` says that this port creates a Drupal 6 module. -A Drupal 7 theme can be specified with `USES=drupal:7,theme`. +Возможные аргументы: (нет), `build`, `lib`, `run`, `test` + +Добавляет зависимость от пакета package:audio/ebur128[]. Позволяет прозрачно зависеть от вариантов `rust` или `legacy`, используя `DEFAULT_VERSIONS` в [.filename]#make.conf#. Например, для использования устаревшей версии укажите `DEFAULT_VERSIONS+=ebur128=legacy` + +Без аргументов поведение аналогично случаю с предоставлением аргумента `lib`. Остальные аргументы указывают соответствующую категорию зависимости. [[uses-eigen]] == `eigen` -Possible arguments: 2, 3, build (default), run +Возможные аргументы: 2, 3, build (по умолчанию), run + +Добавить зависимость от пакета package:math/eigen[]. + +[[uses-elextronfix]] +== `electronfix` + +Возможные аргументы: `31`, `32`, `33` + +Предоставить поддержку для простого портирования Electron-приложений, распространяемых в бинарной форме. Добавляет зависимость на этапах сборки и выполнения от package:devel/electron31[], package:devel/electron32[] или package:devel/electron33[] в зависимости от используемого аргумента. + +Фреймворк предоставляет следующие переменные, которые могут быть установлены портами: + +`ELECTRONFIX_SYMLINK_FILES`:: +Список файлов для создания символьных ссылок из дистрибутива Electron. -Add dependency on package:math/eigen[]. +`ELECTRONFIX_MAIN_EXECUTABLE`:: +Имя файла основного исполняемого файла, который будет заменен оригинальным бинарным файлом Electron. + + +[[uses-elfctl]] +== `elfctl` + +Возможные аргументы: (отсутствуют), `build` (по умолчанию), `stage` + +Установите управляющие заметки функций ELF-бинарных файлов, задав `ELF_FEATURES`. + +Когда не указан аргумент или указан аргумент `build`, операции выполняются над бинарными файлами в `BUILD_WRKSRC`, а файлы, перечисленные в `ELF_FEATURES`, указываются относительно `BUILD_WRKSRC`. Когда указан аргумент `stage`, операции выполняются над бинарными файлами в `STAGEDIR`, а файлы, перечисленные в `ELF_FEATURES`, указываются относительно `STAGEDIR`. + +[[uses-elfct-ex1]] +.Uses=elfctl +[example] +==== +[.programlisting] +.... +ELF_FEATURES= featurelist:path/to/file1 \ + featurelist:path/to/file2 +.... + +==== + +Формат `featurelist` описан в man:elfctl[1]. + +[[uses-elixir]] +== `elixir` + +Возможные аргументы: (отсутствуют) + +Предоставить поддержку для портов, использующих package:lang/elixir[]. Добавляет зависимость во время сборки и выполнения на package:lang/elixir[]. + +Предоставляемые фреймворком переменные: + +`ELIXIR_APP_NAME`:: +Название приложения Elixir, как оно установлено в каталоге lib Elixir +`ELIXIR_LIB_ROOT`:: +Путь к библиотекам Elixir по умолчанию +`ELIXIR_APP_ROOT`:: +Корневая директория для этого приложения Elixir +`ELIXIR_HIDDEN`:: +Приложения, которые необходимо скрыть из пути выполнения кода; обычно `${PORTNAME}` +`ELIXIR_LOCALE`:: +Локаль UTF-8, которая будет использоваться Elixir во время сборки (подойдет любая локаль UTF-8) +`MIX_CMD`:: +Команда `mix` +`MIX_COMPILE`:: +Команда `mix`, используемая для компиляции приложения на Elixir +`MIX_REWRITE`:: +Автоматически заменять зависимости Mix на пути к коду +`MIX_BUILD_DEPS`:: +Список `BUILD_DEPENDS` в формате категория/имя_порта (часто упоминаемый как "deps" в Erlang и Elixir) +`MIX_RUN_DEPS`:: +Список `RUN_DEPENDS` в формате категория/имя порта +`MIX_DOC_DIRS`:: +Дополнительные каталоги документации для установки в `DOCSDIR` +`MIX_DOC_FILES`:: +Дополнительные файлы документации для установки в `DOCSDIR` (обычно README.md) +`MIX_ENV`:: +Окружение для сборки Mix (в том же формате, что и `MAKE_ENV`) +`MIX_ENV_NAME`:: +Имя среды сборки Mix, обычно "prod" +`MIX_BUILD_NAME`:: +Имя выходного файла сборки в _build/, обычно `${MIX_ENV_NAME}` +`MIX_TARGET`:: +Имя цели Mix, обычно "compile" +`MIX_EXTRA_APPS`:: +Список подприложений для сборки, если имеются +`MIX_EXTRA_DIRS`:: +Список дополнительных каталогов для установки в `ELIXIR_APP_ROOT` +`MIX_EXTRA_FILES`:: +Список дополнительных файлов для установки в `ELIXIR_APP_ROOT` + +[[uses-emacs]] +== `emacs` + +Возможные аргументы: (нет) (по умолчанию), `build`, `run`, `noflavors` + +Предоставляет поддержку для портов, требующих Emacs. Аргумент `build` создает зависимость сборки от Emacs. Аргумент `run` создает зависимость выполнения от Emacs. Если оба аргумента `build` и `run` отсутствуют, создаются зависимости сборки и выполнения от Emacs. Аргумент `noflavors` запрещает флейворы и подразумевается, если нет зависимости выполнения от Emacs. + +Стандартный вариант Emacs для портов с `USES=emacs` можно определить в [.filename]#make.conf#. Например, для варианта `nox` используйте `DEFAULT_VERSIONS+= emacs=nox`. Допустимые флейворы: `full`, `canna`, `nox`, `wayland`, `devel_full`, `devel_nox`. + +Переменные, которые могут быть установлены портами: + +`EMACS_FLAVORS_EXCLUDE`:: +НЕ собирать эти флейворы Emacs. Если `EMACS_FLAVORS_EXCLUDE` не определена и: + +* существует зависимость во время выполнения от Emacs +* аргумент noflavors не указан + ++ +то предполагаются все допустимые флейворы Emacs. + +`EMACS_NO_DEPENDS`:: +НЕ добавлять зависимости сборки или выполнения от Emacs. Это предотвратит создание вариантов, и никакие файлы байт-кода не будут сгенерированы как часть пакета. + +Переменные, которые могут быть прочитаны портами: + +`EMACS_CMD`:: +Команда Emacs с полным путём (например, [.filename]#/usr/local/bin/emacs-30.1#) + +`EMACS_FLAVOR`:: +Используется для зависимостей (например, `BUILD_DEPENDS= dash.el${EMACS_PKGNAMESUFFIX}>0:devel/dash@${EMACS_FLAVOR}`) + +`EMACS_LIBDIR`:: +Каталог библиотек Emacs без `${PREFIX}` (например, [.filename]#share/emacs#) + +`EMACS_LIBDIR_WITH_VER`:: +Каталог библиотеки без `${PREFIX}`, включая версию (например, [.filename]#share/emacs/30.1#) + +`EMACS_MAJOR_VER`:: +Основная версия Emacs (например, 30) + +`EMACS_PKGNAMESUFFIX`:: +`PKGNAMESUFFIX` для различия вариантов Emacs + +`EMACS_SITE_LISPDIR`:: +Каталог site-lisp Emacs без `${PREFIX}` (например, [.filename]#share/emacs/site-lisp#) + +`EMACS_VER`:: +Версия Emacs (например, 30.1) + +`EMACS_VERSION_SITE_LISPDIR`:: +Каталог site-lisp Emacs, включая номер версии (например, [.filename]#share/emacs/30.1/site-lisp#) + +[[uses-erlang]] +== `erlang` + +Возможные аргументы: (нет), `enc`, `rebar`, `rebar3` + +Добавляет зависимость на время сборки и выполнения от package:lang/erlang[]. В зависимости от аргумента, добавляет дополнительные зависимости для сборки. `enc` добавляет зависимость от package:devel/erlang-native-compiler[], `rebar` добавляет зависимость от package:devel/rebar[], а `rebar3` добавляет зависимость от package:devel/rebar3[]. + +В дополнение, следующие переменные доступны для порта: + +* `ERL_APP_NAME`: Имя приложения Erlang, как оно установлено в каталоге lib Erlang (без указания версии) +* `ERL_APP_ROOT`: Корневой каталог для этого приложения Erlang +* `REBAR_CMD`: Путь к команде "rebar" +* `REBAR3_CMD`: Путь к команде "rebar3" +* `REBAR_PROFILE`: Профиль Rebar +* `REBAR_TARGETS`: Список целей Rebar (обычно compile, возможно escriptize) +* `ERL_BUILD_NAME`: Имя сборки для rebar3 +* `ERL_BUILD_DEPS`: Список BUILD_DEPENDS в формате категория/имя_порта +* `ERL_RUN_DEPS`: Список RUN_DEPENDS в формате категория/имя_порта +* `ERL_DOCS`: Список файлов и каталогов документации [[uses-fakeroot]] == `fakeroot` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Changes some default behavior of build systems to allow installing as a user. -See https://wiki.debian.org/FakeRoot[] for more information on `fakeroot`. +Изменяет некоторые стандартные поведения систем сборки для разрешения установки от имени пользователя. Дополнительную информацию о `fakeroot` можно найти на https://wiki.debian.org/FakeRoot[]. [[uses-fam]] == `fam` -Possible arguments: (none), `fam`, `gamin` +Возможные аргументы: (нет), `fam`, `gamin` -Uses a File Alteration Monitor as a library dependency, either package:devel/fam[] or package:devel/gamin[]. -End users can set WITH_FAM_SYSTEM to specify their preference. +Использует монитор изменений файлов (FAM — File Alteration Monitor) как зависимость от библиотеки, либо package:devel/fam[], либо package:devel/gamin[]. Конечные пользователи могут задать WITH_FAM_SYSTEM, чтобы указать свои предпочтения. [[uses-firebird]] == `firebird` -Possible arguments: (none), `25` +Возможные аргументы: (отсутствуют), `25` -Add a dependency to the client library of the Firebird database. +Добавить зависимость от клиентской библиотеке базы данных Firebird. [[uses-fonts]] == `fonts` -Possible arguments: (none), `fc`, `fcfontsdir` (default), `fontsdir`, `none` +Возможные аргументы: (отсутствуют), `fc`, `fontsdir` (по умолчанию), `none` -Adds a runtime dependency on tools needed to register fonts. -Depending on the argument, add a `crossref:plist[plist-keywords-fc,@fc] ${FONTSDIR}` line, `crossref:plist[plist-keywords-fcfontsdir,@fcfontsdir] ${FONTSDIR}` line, `crossref:plist[plist-keywords-fontsdir,@fontsdir] ${FONTSDIR}` line, or no line if the argument is `none`, to the plist. -`FONTSDIR` defaults to [.filename]#${PREFIX}/share/fonts/${FONTNAME}# and `FONTNAME` to `${PORTNAME}`. -Add `FONTSDIR` to `PLIST_SUB` and `SUB_LIST` +Добавляет зависимость во время выполнения на инструменты, необходимые для регистрации шрифтов. В зависимости от аргумента добавляет строку `crossref:plist[plist-keywords-fc,@fc] ${FONTSDIR}`, строку `crossref:plist[plist-keywords-fontsdir,@fontsdir] ${FONTSDIR}` или не добавляет строку, если аргумент `none`, в plist. `FONTSDIR` по умолчанию имеет значение [.filename]#${PREFIX}/share/fonts/${FONTNAME}#, а `FONTNAME` — `${PORTNAME}`. Добавляет `FONTSDIR` в `PLIST_SUB` и `SUB_LIST` [[uses-fortran]] == `fortran` -Possible arguments: `gcc` (default) +Возможные аргументы: `gcc` (по умолчанию) + +Использует компилятор GNU Fortran. -Uses the GNU Fortran compiler. +[[uses-fpc]] +== `fpc` + +Возможные аргументы: (нет), `run` + +Обеспечить поддержку портов на основе Free Pascal. Установит компилятор Free Pascal и модули. + +Добавляет зависимость сборки от package:lang/fpc[]. + +Если указан аргумент `run`, также добавляется зависимость запуска. [[uses-fuse]] == `fuse` -Possible arguments: `2` (default), `3` +Возможные аргументы: `2` (по умолчанию), `3` -The port will depend on the FUSE library and handle the dependency on the kernel module depending on the version of FreeBSD. +Порт будет зависеть от библиотеки FUSE и обрабатывать зависимость от модуля ядра в зависимости от версии FreeBSD. [[uses-gem]] == `gem` -Possible arguments: (none), `noautoplist` +Возможные аргументы: (отсутствуют), `noautoplist` + +Обработка сборки с RubyGems. Если используется `noautoplist`, список упаковки не генерируется автоматически. -Handle building with RubyGems. -If `noautoplist` is used, the packing list is not generated automatically. +Это подразумевает `USES=ruby`. [[uses-gettext]] == `gettext` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Deprecated. -Will include both <> and <>. +Устарело. Будет включать как crossref:uses[uses-gettext-runtime,`gettext-runtime`], так и crossref:uses[uses-gettext-tools,`gettext-tools`]. [[uses-gettext-runtime]] == `gettext-runtime` -Possible arguments: (none), `lib` (default), `build`, `run` +Возможные аргументы: (отсутствуют), `lib` (по умолчанию), `build`, `run` -Uses package:devel/gettext-runtime[]. -By default, with no arguments or with the `lib` argument, implies a library dependency on [.filename]#libintl.so#. -`build` and `run` implies, respectively a build-time and a run-time dependency on [.filename]#gettext#. +Использует пакет package:devel/gettext-runtime[]. По умолчанию, без аргументов или с аргументом `lib`, подразумевает зависимость от библиотеки [.filename]#libintl.so#. Аргументы `build` и `run` подразумевают, соответственно, зависимость во время сборки и во время выполнения от [.filename]#gettext#. [[uses-gettext-tools]] == `gettext-tools` -Possible arguments: (none), `build` (default), `run` +Возможные аргументы: (отсутствуют), `build` (по умолчанию), `run` -Uses package:devel/gettext-tools[]. -By default, with no argument, or with the `build` argument, a build time dependency on [.filename]#msgfmt# is registered. -With the `run` argument, a run-time dependency is registered. +Использует пакет package:devel/gettext-tools[]. По умолчанию, без аргумента или с аргументом `build`, регистрируется зависимость во время сборки от [.filename]#msgfmt#. С аргументом `run` регистрируется зависимость во время выполнения. [[uses-ghostscript]] == `ghostscript` -Possible arguments: _X_, `build`, `run`, `nox11` +Возможные аргументы: _X_, `build`, `run`, `nox11` -A specific version _X_ can be used. Possible versions are `7`, `8`, `9`, and `agpl` (default). -`nox11` indicates that the `-nox11` version of the port is required. -`build` and `run` add build- and run-time dependencies on Ghostscript. -The default is both build- and run-time dependencies. +Можно указать конкретную версию _X_. Доступные версии: `7`, `8`, `9` и `agpl` (по умолчанию). `nox11` указывает, что требуется версия порта `-nox11`. `build` и `run` добавляют зависимости на Ghostscript во время сборки и выполнения соответственно. По умолчанию добавляются зависимости как на сборку, так и на выполнение. [[uses-gl]] == `gl` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Provides an easy way to depend on GL components. -The components should be listed in `USE_GL`. -The available components are: +Предоставляет простой способ зависеть от компонентов GL. Компоненты должны быть перечислены в `USE_GL`. Доступные компоненты: `egl`:: -add a library dependency on [.filename]#libEGL.so# from package:graphics/libglvnd[] +добавить зависимость от библиотеки [.filename]#libEGL.so# из пакета package:graphics/libglvnd[] `gbm`:: -Add a library dependency on [.filename]#libgbm.so# from package:graphics/mesa-libs[] +Добавить зависимость от библиотеки [.filename]#libgbm.so# из пакета package:graphics/mesa-libs[] `gl`:: -Add a library dependency on [.filename]#libGL.so# from package:graphics/libglvnd[] +Добавить зависимость от библиотеки [.filename]#libGL.so# из пакета package:graphics/libglvnd[] `glesv2`:: -Add a library dependency on [.filename]#libGLESv2.so# from package:graphics/libglvnd[] +Добавить зависимость от библиотеки [.filename]#libGLESv2.so# из пакета package:graphics/libglvnd[] `glew`:: -Add a library dependency on [.filename]#libGLEW.so# from package:graphics/glew[] +Добавить зависимость от библиотеки [.filename]#libGLEW.so# из пакета package:graphics/glew[] `glu`:: -Add a library dependency on [.filename]#libGLU.so# from package:graphics/libGLU[] +Добавить зависимость от библиотеки [.filename]#libGLU.so# из package:graphics/libGLU[] `glut`:: -Add a library dependency on [.filename]#libglut.so# from package:graphics/freeglut[] +Добавить зависимость от библиотеки [.filename]#libglut.so# из package:graphics/freeglut[] `opengl`:: -Add a library dependency on [.filename]#libOpenGL.so# from package:graphics/libglvnd[] +Добавить зависимость от библиотеки [.filename]#libOpenGL.so# из package:graphics/libglvnd[] [[uses-gmake]] == `gmake` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Uses package:devel/gmake[] as a build-time dependency and sets up the environment to use `gmake` as the default `make` for the build. +Использует пакет package:devel/gmake[] как зависимость во время сборки и настраивает окружение для использования `gmake` в качестве стандартного `make` при сборке. [[uses-gnome]] == `gnome` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Provides an easy way to depend on GNOME components. -The components should be listed in `USE_GNOME`. -The available components are: +Предоставляет простой способ зависеть от компонентов GNOME. Компоненты должны быть перечислены в `USE_GNOME`. Доступные компоненты: * `atk` * `atkmm` @@ -529,6 +830,7 @@ * `glibmm` * `gnomecontrolcenter3` * `gnomedesktop3` +* `gnomedesktop4` * `gnomedocutils` * `gnomemenus3` * `gnomemimedata` @@ -595,8 +897,7 @@ * `vte` * `vte3` -The default dependency is build- and run-time, it can be changed with `:build` or `:run`. -For example: +Зависимость по умолчанию — на время сборки и выполнения, её можно изменить с помощью `:build` или `:run`. Например: [.programlisting] .... @@ -604,105 +905,79 @@ USE_GNOME= gnomemenus3:build intlhack .... -See crossref:special[using-gnome,Using GNOME] for more information. +См. crossref:special[using-gnome,Использование GNOME] для получения дополнительной информации. [[uses-go]] == `go` [IMPORTANT] ==== -Ports should not be created for Go libs, see crossref:special[go-libs,Go Libraries] for more information. +Порты не следует создавать для библиотек Go, дополнительную информацию см. в crossref:special[go-libs,Библиотеки Go]. ==== -Possible arguments: (none), `modules`, `no_targets`, `run` +Возможные аргументы: (нет), `N.NN`, `N.NN-devel`, `modules`, `no_targets`, `run` -Sets default values and targets used to build Go software. -A build dependency on the Go compiler port selected via `GO_PORT` is added. -By default the build is performed in GOPATH mode. -If Go software uses modules, the modules-aware mode can be switched on with `modules` argument. -`no_targets` will setup build environment like `GO_ENV`, `GO_BUILDFLAGS` but skip creating `post-extract` and `do-{build,install,test}` targets. -`run` will also add a run dependency on what is in `GO_PORT`. +Устанавливает значения и цели по умолчанию, используемые для сборки ПО на Go. Добавляется зависимость сборки от порта компилятора Go, сопровождающие порта могут установить требуемую версию. По умолчанию сборка выполняется в режиме GOPATH. Если ПО на Go использует модули, режим с поддержкой модулей можно включить с помощью аргумента `modules`. `no_targets` настроит окружение сборки, как `GO_ENV`, `GO_BUILDFLAGS`, но пропустит создание целей извлечения (extract) и сборки (build). `run` также добавит зависимость выполнения от порта компилятора Go. -The build process is controlled by several variables: +Процесс сборки контролируется несколькими переменными: `GO_MODULE`:: -The name of the application module as specified by the `module` directive in `go.mod`. -In most cases, this is the only required variable for ports that use Go modules. +Имя модуля приложения, указанное директивой `module` в `go.mod`. В большинстве случаев это единственная необходимая переменная для портов, использующих модули Go. `GO_PKGNAME`:: -The name of the Go package when building in GOPATH mode. -This is the directory that will be created in `${GOPATH}/src`. -If not set explicitly and `GH_SUBDIR` or `GL_SUBDIR` is present, `GO_PKGNAME` will be inferred from it. -It is not needed when building in modules-aware mode. +Имя пакета Go при сборке в режиме GOPATH. Это каталог, который будет создан в `${GOPATH}/src`. Если не задано явно и присутствует `GH_SUBDIR` или `GL_SUBDIR`, то `GO_PKGNAME` будет выведено из них. Не требуется при сборке в режиме с поддержкой модулей. `GO_TARGET`:: -The packages to build. -The default value is `${GO_PKGNAME}`. -`GO_TARGET` can also be a tuple in the form `package:path` where path can be either a simple filename or a full path starting with `${PREFIX}`. +Пакеты для сборки. Значение по умолчанию — `${GO_PKGNAME}`. `GO_TARGET` также может быть кортежем в формате `package:path`, где path может быть либо простым именем файла, либо полным путём, начинающимся с `${PREFIX}`. `GO_TESTTARGET`:: -The packages to test. -The default value is `./...` (the current package and all subpackages). +Пакеты для тестирования. Значение по умолчанию — `./...` (текущий пакет и все подпакеты). `CGO_CFLAGS`:: -Additional `CFLAGS` values to be passed to the C compiler by `go`. +Дополнительные значения `CFLAGS`, передаваемые компилятору C с помощью `go`. `CGO_LDFLAGS`:: -Additional `LDFLAGS` values to be passed to the C compiler by `go`. +Дополнительные значения `LDFLAGS`, передаваемые компилятору C через `go`. `GO_BUILDFLAGS`:: -Additional build arguments to be passed to `go build`. +Дополнительные аргументы сборки, передаваемые в `go build`. `GO_TESTFLAGS`:: -Additional build arguments to be passed to `go test`. +Дополнительные аргументы сборки, передаваемые в `go test`. -`GO_PORT`:: -The Go compiler port to use. -By default this is package:lang/go[] but can be set to package:lang/go-devel[] in `make.conf` for testing with future Go versions. -+ -[WARNING] -==== -This variable must not be set by individual ports! -==== - -See crossref:special[using-go,Building Go Applications] for usage examples. +См. crossref:special[using-go,Сборка приложений на Go] для примеров использования. [[uses-gperf]] == `gperf` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Add a buildtime dependency on package:devel/gperf[] if `gperf` is not present in the base system. +Добавить зависимость во время сборки на package:devel/gperf[], если `gperf` отсутствует в базовой системе. [[uses-grantlee]] == `grantlee` -Possible arguments: `5`, `selfbuild` +Возможные аргументы: `5`, `selfbuild` -Handle dependency on Grantlee. -Specify `5` to depend on the Qt5 based version, package:devel/grantlee5[]. -`selfbuild` is used internally by package:devel/grantlee5[] to get their versions numbers. +Обработать зависимость от Grantlee. Указать `5` для зависимости от версии на основе Qt5, package:devel/grantlee5[]. `selfbuild` используется внутри package:devel/grantlee5[] для получения номеров их версий. [[uses-groff]] == `groff` -Possible arguments: `build`, `run`, `both` +Возможные аргументы: `build`, `run`, `both` -Registers a dependency on package:textproc/groff[] if not present in the base system. +Регистрирует зависимость от package:textproc/groff[], если пакет отсутствует в базовой системе. [[uses-gssapi]] == `gssapi` -Possible arguments: (none), `base` (default), `heimdal`, `mit`, `flags`, `bootstrap` +Возможные аргументы: (отсутствуют), `base` (по умолчанию), `heimdal`, `mit`, `flags`, `bootstrap` -Handle dependencies needed by consumers of the GSS-API. -Only libraries that provide the Kerberos mechanism are available. -By default, or set to `base`, the GSS-API library from the base system is used. -Can also be set to `heimdal` to use package:security/heimdal[], or `mit` to use package:security/krb5[]. +Обрабатывает зависимости, необходимые для использования GSS-API. Доступны только библиотеки, предоставляющие механизм Kerberos. По умолчанию (или при значении `base`) используется библиотека GSS-API из базовой системы. Также можно установить значение `heimdal` для использования package:security/heimdal[] или `mit` для использования package:security/krb5[]. -When the local Kerberos installation is not in `LOCALBASE`, set `HEIMDAL_HOME` (for `heimdal`) or `KRB5_HOME` (for `krb5`) to the location of the Kerberos installation. +Если локальная установка Kerberos не находится в `LOCALBASE`, установите `HEIMDAL_HOME` (для `heimdal`) или `KRB5_HOME` (для `krb5`) на каталог установки Kerberos. -These variables are exported for the ports to use: +Эти переменные экспортируются для использования портами: * `GSSAPIBASEDIR` * `GSSAPICPPFLAGS` @@ -712,14 +987,12 @@ * `GSSAPILIBS` * `GSSAPI_CONFIGURE_ARGS` -The `flags` option can be given alongside `base`, `heimdal`, or `mit` to automatically add `GSSAPICPPFLAGS`, `GSSAPILDFLAGS`, and `GSSAPILIBS` to `CFLAGS`, `LDFLAGS`, and `LDADD`, respectively. -For example, use `base,flags`. +Опция `flags` может быть указана вместе с `base`, `heimdal` или `mit` для автоматического добавления `GSSAPICPPFLAGS`, `GSSAPILDFLAGS` и `GSSAPILIBS` в `CFLAGS`, `LDFLAGS` и `LDADD` соответственно. Например, используйте `base,flags`. -The `bootstrap` option is a special prefix only for use by package:security/krb5[] and package:security/heimdal[]. -For example, use `bootstrap,mit`. +Опция `bootstrap` — это специальный префикс, предназначенный только для использования в package:security/krb5[] и package:security/heimdal[]. Например, используйте `bootstrap,mit`. [[uses-gssapi-ex1]] -.Typical Use +.Типичное использование [example] ==== [.programlisting] @@ -738,98 +1011,375 @@ ==== +[[uses-gstreamer]] +== `gstreamer` + +Возможные аргументы: (отсутствуют) + +Предоставляет простой способ зависимости от компонентов GStreamer. Компоненты должны быть перечислены в `USE_GSTREAMER`. Доступные компоненты: + +* `a52dec` +* `aalib` +* `amrnb` +* `amrwbdec` +* `aom` +* `assrender` +* `bad` +* `bs2b` +* `cairo` +* `cdio` +* `cdparanoia` +* `chromaprint` +* `curl` +* `dash` +* `dtls` +* `dts` +* `dv` +* `dvd` +* `dvdread` +* `editing-services` +* `faac` +* `faad` +* `flac` +* `flite` +* `gdkpixbuf` +* `gl` +* `gme` +* `gnonlin` +* `good` +* `gsm` +* `gtk4` +* `gtk` +* `hal` +* `hls` +* `jack` +* `jpeg` +* `kate` +* `kms` +* `ladspa` +* `lame` +* `libav` +* `libcaca` +* `libde265` +* `libmms` +* `libvisual` +* `lv2` +* `mm` +* `modplug` +* `mpeg2dec` +* `mpeg2enc` +* `mpg123` +* `mplex` +* `musepack` +* `neon` +* `ogg` +* `opencv` +* `openexr` +* `openh264` +* `openjpeg` +* `openmpt` +* `opus` +* `pango` +* `png` +* `pulse` +* `qt` +* `resindvd` +* `rsvg` +* `rtmp` +* `shout2` +* `sidplay` +* `smoothstreaming` +* `sndfile` +* `sndio` +* `soundtouch` +* `soup` +* `spandsp` +* `speex` +* `srtp` +* `taglib` +* `theora` +* `ttml` +* `twolame` +* `ugly` +* `v4l2` +* `vorbis` +* `vpx` +* `vulkan` +* `wavpack` +* `webp` +* `webrtcdsp` +* `x264` +* `x265` +* `x` +* `ximagesrc` +* `zbar` + +[[uses-guile]] +== `guile` + +Возможные аргументы: (нет), `_X.Y_`, `flavors`, `build`, `run`, `alias`, `conflicts` + +Добавляет зависимость от Guile. По умолчанию это зависимость от соответствующей библиотеки `libguile*.so`, если не переопределено опциями `build` и/или `run`. Опция `alias` настраивает `BINARY_ALIAS` соответствующим образом (см. crossref:makefiles[binary-alias,Использование `BINARY_ALIAS`]). + +Версия по умолчанию устанавливается с помощью обычного механизма `DEFAULT_VERSIONS`; если версия по умолчанию не входит в список указанных версий, то используется последняя доступная версия из списка. + +Приложения, использующие Guile, обычно собираются только для одной версии Guile. Однако модули расширений или библиотек должны использовать опцию `flavors` для сборки с несколькими флейворами. + +Для получения дополнительной информации см. crossref:special[using-guile,Использование Guile]. + [[uses-horde]] == `horde` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Add buildtime and runtime dependencies on package:devel/pear-channel-horde[]. -Other Horde dependencies can be added with `USE_HORDE_BUILD` and `USE_HORDE_RUN`. -See crossref:special[php-horde,Horde Modules] for more information. +Добавить зависимости времени сборки и выполнения для package:devel/pear-channel-horde[]. Другие зависимости Horde можно добавить с помощью `USE_HORDE_BUILD` и `USE_HORDE_RUN`. Дополнительную информацию см. в разделе crossref:special[php-horde,Модули Horde]. [[uses-iconv]] == `iconv` -Possible arguments: (none), `lib`, `build`, `patch`, `translit`, `wchar_t` +Возможные аргументы: (нет), `lib`, `build`, `patch`, `translit`, `wchar_t` -Uses `iconv` functions, either from the port package:converters/libiconv[] as a build-time and run-time dependency, or from the base system. -By default, with no arguments or with the `lib` argument, implies `iconv` with build-time and run-time dependencies. -`build` implies a build-time dependency, and `patch` implies a patch-time dependency. -If the port uses the `WCHAR_T` or `//TRANSLIT` iconv extensions, add the relevant arguments so that the correct iconv is used. -For more information see crossref:special[using-iconv,Using `iconv`]. +Использует функции `iconv`, либо из порта package:converters/libiconv[] как зависимость на этапе сборки и выполнения, либо из базовой системы. По умолчанию, без аргументов или с аргументом `lib`, подразумевает `iconv` с зависимостями на этапе сборки и выполнения. `build` подразумевает зависимость на этапе сборки, а `patch` — на этапе патчинга. Если порт использует расширения `WCHAR_T` или `//TRANSLIT` для `iconv`, добавьте соответствующие аргументы, чтобы использовалась правильная версия `iconv`. Для получения дополнительной информации см. crossref:special[using-iconv,Использование `iconv`]. [[uses-imake]] == `imake` -Possible arguments: (none), `env`, `notall`, `noman` +Возможные аргументы: (нет), `env`, `notall`, `noman` + +Добавить package:devel/imake[] как зависимость на этапе сборки и выполнить `xmkmf -a` на этапе `configure`. Если указан аргумент `env`, цель `configure` не устанавливается. Если флаг `-a` вызывает проблемы для порта, добавьте аргумент `notall`. Если `xmkmf` не генерирует цель `install.man`, добавьте аргумент `noman`. + +[[uses-java]] +== `java` + +Возможные аргументы: (нет), `ant`, `build`, `extract`, `run` + +По умолчанию используется `USES=java:build,run`, если аргументы не предоставлены и `NO_BUILD` не определен. Если `NO_BUILD` определен, используется `USES=java:run`. Если указан аргумент `ant`, порт использует Apache Ant. Если указан аргумент `build`, порт JDK добавляется в зависимости сборки. Если указан аргумент `extract`, порт JDK добавляется в зависимости извлечения. Если указан аргумент `run`, порт JDK добавляется в зависимости выполнения. + +Фреймворк предоставляет следующие переменные, которые могут быть установлены портом: + +`JAVA_VERSION`:: +Список подходящих версий Java для порта, разделенных пробелами. Необязательный символ `\+` позволяет указать диапазон версий. (допустимые значения `8[+]`, `11[\+]`, `17[+]`, `18[\+]`, `19[+]`, `20[\+]`, `21[+]`, `22[\+]`, `22[+]`) + +`JAVA_OS`:: +Список поддерживаемых операционных систем для порта JDK, разделённых пробелами. (допустимые значения: `native`, `linux`) + +`JAVA_VENDOR`:: +Список подходящих поставщиков портов JDK для порта, разделенных пробелами. (допустимые значения: `openjdk`, `oracle`) + +Фреймворк предоставляет следующие переменные для чтения портом: + +`JAVA_PORT`:: +Имя порта JDK. (например, 'java/openjdk8') + +`JAVA_PORT_VERSION`:: +Версия порта JDK. (например, '8') + +`JAVA_PORT_OS`:: +Используемая операционная система для порта JDK. (например, 'linux') + +`JAVA_PORT_VENDOR`:: +Поставщик порта JDK. (например, 'openjdk') + +`JAVA_PORT_OS_DESCRIPTION`:: +Описание операционной системы, используемой портом JDK. (например, 'Linux') + +`JAVA_PORT_VENDOR_DESCRIPTION`:: +Описание поставщика порта JDK. (например, 'OpenJDK BSD Porting Team') + +`JAVA_HOME`:: +Путь к каталогу установки JDK. (например, [.filename]#/usr/local/openjdk8#) + +`JAVAC`:: +Путь к используемому компилятору Java. (например, [.filename]#/usr/local/openjdk8/bin/javac# или [.filename]#/usr/local/bin/javac#) + +`JAR`:: +Путь к используемому инструменту JAR. (например, [.filename]#/usr/local/openjdk8/bin/jar# или [.filename]#/usr/local/bin/fastjar#) + +`APPLETVIEWER`:: +Путь к утилите appletviewer. (например, [.filename]#/usr/local/linux-jdk1.8.0/bin/appletviewer#) + +`JAVA`:: +Путь к исполняемому файлу `java`. Используется для запуска программ на Java. (например, [.filename]#/usr/local/openjdk8/bin/java#) + +`JAVADOC`:: +Путь к программе `javadoc`. + +`JAVAH`:: +Путь к программе `javah`. + +`JAVAP`:: +Путь к программе `javap`. + +`JAVA_KEYTOOL`:: +Путь к утилите `keytool`. + +`JAVA_N2A`:: +Путь к инструменту `native2ascii`. + +`JAVA_POLICYTOOL`:: +Путь к программе `policytool`. + +`JAVA_SERIALVER`:: +Путь к утилите `serialver`. + +`RMIC`:: +Путь к генератору RMI-заглушек/скелетов, `rmic`. + +`RMIREGISTRY`:: +Путь к программе реестра RMI, `rmiregistry`. + +`RMID`:: +Путь к программе демона RMI. + +`JAVA_CLASSES`:: +Путь к архиву, содержащему файлы классов JDK. В большинстве JDK это [.filename]#${JAVA_HOME}/jre/lib/rt.jar#. + +`JAVASHAREDIR`:: +Базовый каталог для всех общих ресурсов Java. + +`JAVAJARDIR`:: +Каталог, в котором порт должен устанавливать JAR-файлы. + +`JAVALIBDIR`:: +Каталог, в котором находятся JAR-файлы, установленные другими портами. -Add package:devel/imake[] as a build-time dependency and run `xmkmf -a` during the `configure` stage. -If the `env` argument is given, the `configure` target is not set. -If the `-a` flag is a problem for the port, add the `notall` argument. -If `xmkmf` does not generate a `install.man` target, add the `noman` argument. +[[uses-jpeg]] +== `jpeg` + +Возможные аргументы: `lib` (по умолчанию, подразумевается), `build`, `run` + +Помощь в обработке зависимостей от `jpeg`. + +Если указан аргумент `lib` или аргументы не предоставлены, то в порт добавляется зависимость от библиотеки. + +Если указан аргумент `build`, то в порт добавляется зависимость сборки. + +Если указан аргумент `run`, то к порту добавляется зависимость времени выполнения. + +Если указан аргумент `both`, то к порту добавляется зависимость для сборки и зависимость для выполнения. + +Фреймворк предоставляет следующую переменную, которая может быть установлена портами: + +`JPEG_PORT`:: +Указывает реализацию JPEG для использования. Возможные значения: + +* package:graphics/jpeg-turbo[] (по умолчанию) +* package:graphics/mozjpeg[] [[uses-kde]] == `kde` -Possible arguments: `5` +Возможные аргументы: `5` -Add dependency on KDE components. -See crossref:special[using-kde,Using KDE] for more information. +Добавить зависимость от компонентов KDE. Подробнее см. в crossref:special[using-kde,Использование KDE]. [[uses-kmod]] == `kmod` -Possible arguments: (none), `debug` +Возможные аргументы: (отсутствуют), `debug` + +Заполняет шаблон для портов модулей ядра, в настоящее время: + +* Добавьте `kld` в `CATEGORIES`. +* Установите `SSP_UNSAFE`. +* Установите `IGNORE`, если исходные коды ядра не найдены в `SRC_BASE`. +* Определить `KMODDIR` по умолчанию как [.filename]#/boot/modules#, добавить его в `PLIST_SUB` и `MAKE_ENV`, а также создать его при установке. Если `KMODDIR` установлен в [.filename]#/boot/kernel#, он будет перезаписан в [.filename]#/boot/modules#. Это предотвращает повреждение пакетов при обновлении ядра из-за переименования [.filename]#/boot/kernel# в [.filename]#/boot/kernel.old# в процессе. +* Обрабатывать перекрестные ссылки на модули ядра при установке и удалении, используя crossref:plist[plist-keywords-kld,`@kld`]. +* Если указан аргумент `debug`, порт может установить отладочную версию модуля в [.filename]#KERN_DEBUGDIR#/[.filename]#KMODDIR#. По умолчанию `KERN_DEBUGDIR` копируется из `DEBUGDIR` и устанавливается в [.filename]#/usr/lib/debug#. Фреймворк позаботится о создании и удалении необходимых каталогов. + +[[uses-kodi]] +== `kodi` + +Возможные аргументы: (отсутствуют), `noautoplist` + +Обеспечить поддержку дополнений для package:multimedia/kodi[]. Если указан аргумент `noautoplist`, автоматическое создание `plist` не выполняется. + +[[uses-lazarus]] +== `lazarus` + +Возможные аргументы: (отсутствуют), `gtk2` (по умолчанию), `qt5`, `qt6`, `flavors` + +Обеспечить поддержку портов на основе package:editors/lazarus[]. + +Если аргументы не предоставлены или указан `gtk2`, приложение lazarus-app будет собрано с интерфейсом `gtk2`, и порт package:editors/lazarus[] будет собран с интерфейсом `gtk2`. + +Если указан аргумент `qt5`, приложение lazarus-app собирается с интерфейсом `qt5`. + +Если указан аргумент `qt6`, приложение lazarus-app собирается с интерфейсом `qt6`. + +Если указан аргумент `flavors`, приложение `lazarus-app` собирается с поддержкой функций флейворов. + +Если порт не требует автоматической компиляции файлов проекта lazarus, можно определить следующую переменную: + +`NO_LAZBUILD`= `yes` -Fills in the boilerplate for kernel module ports, currently: +Доступны следующие переменные для портов: -* Add `kld` to `CATEGORIES`. -* Set `SSP_UNSAFE`. -* Set `IGNORE` if the kernel sources are not found in `SRC_BASE`. -* Define `KMODDIR` to [.filename]#/boot/modules# by default, add it to `PLIST_SUB` and `MAKE_ENV`, and create it upon installation. If `KMODDIR` is set to [.filename]#/boot/kernel#, it will be rewritten to [.filename]#/boot/modules#. This prevents breaking packages when upgrading the kernel due to [.filename]#/boot/kernel# being renamed to [.filename]#/boot/kernel.old# in the process. -* Handle cross-referencing kernel modules upon installation and deinstallation, using crossref:plist[plist-keywords-kld,`@kld`]. -* If the `debug` argument is given, the port can install a debug version of the module into [.filename]#KERN_DEBUGDIR#/[.filename]#KMODDIR#. By default, `KERN_DEBUGDIR` is copied from `DEBUGDIR` and set to [.filename]#/usr/lib/debug#. The framework will take care of creating and removing any required directories. +`LAZARUS_PROJECT_FILES`:: +Список lpi-файлов. Он не должен быть пустым. По умолчанию: пусто + +`LAZARUS_DIR`:: +Путь к директории установки lazarus. По умолчанию: [.filename]#${LOCALBASE}/share/lazarus-${LAZARUS_VER}# + +`LAZBUILD_ARGS`:: +Дополнительные аргументы lazbuild. В большинстве случаев это может быть `-d`. Подробнее см. man:lazbuild[1]. По умолчанию: пусто + +`LAZARUS_NO_FLAVORS`:: +Не собирать эти флейворы lazarus. Если `LAZARUS_NO_FLAVORS` не определена, то предполагаются все допустимые флейворы lazarus. + +`WANT_LAZARUS_DEVEL`:: +Если установлено значение `yes`, то используйте package:lazarus/devel[] как зависимость сборки. + +[[uses-ldap]] +== `ldap` + +Возможные аргументы: (нет), <версия>, клиент, сервер + +Регистрирует зависимость от пакета package:net/openldap[]. Использует конкретную `<версию>` (без точечной нотации), если она указана. В противном случае пытается найти установленную версию. При необходимости возвращается к версии по умолчанию, указанной в `bsd.default-versions.mk`. `client` указывает на зависимость во время выполнения от клиентской библиотеки. Это также значение по умолчанию. `server` указывает на зависимость во время выполнения от сервера. + +Следующие переменные могут быть доступны для порта: + +`IGNORE_WITH_OPENLDAP`:: +Эта переменная может быть определена, если порты не поддерживают одну или несколько версий OpenLDAP. +`WITH_OPENLDAP_VER`:: +Пользовательская переменная для установки версии OpenLDAP. +`OPENLDAP_VER`:: +Обнаруженная версия OpenLDAP. [[uses-lha]] == `lha` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Set `EXTRACT_SUFX` to `.lzh` +Установите `EXTRACT_SUFX` в `.lzh` [[uses-libarchive]] == `libarchive` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Registers a dependency on package:archivers/libarchive[]. -Any ports depending on libarchive must include `USES=libarchive`. +Регистрирует зависимость от package:archivers/libarchive[]. Любые порты, зависящие от libarchive, должны включать `USES=libarchive`. [[uses-libedit]] == `libedit` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Registers a dependency on package:devel/libedit[]. -Any ports depending on libedit must include `USES=libedit`. +Регистрирует зависимость от package:devel/libedit[]. Все порты, зависящие от libedit, должны включать `USES=libedit`. [[uses-libtool]] == `libtool` -Possible arguments: (none), `keepla`, `build` +Возможные аргументы: (нет), `keepla`, `build` -Patches `libtool` scripts. This must be added to all ports that use `libtool`. -The `keepla` argument can be used to keep [.filename]#.la# files. -Some ports do not ship with their own copy of libtool and need a build time dependency on package:devel/libtool[], use the `:build` argument to add such dependency. +Исправляет скрипты `libtool`. Это должно быть добавлено во все порты, использующие `libtool`. Аргумент `keepla` может быть использован для сохранения файлов [.filename]#.la#. Некоторые порты не поставляются с собственной копией libtool и требуют зависимость во время сборки от package:devel/libtool[], используйте аргумент `:build` для добавления такой зависимости. [[uses-linux]] == `linux` -Possible arguments: `c6`, `c7` +Возможные аргументы: `c6`, `c7` -Ports Linux compatibility framework. -Specify `c6` to depend on CentOS 6 packags. -Specify `c7` to depend on CentOS 7 packages. The available packages are: +Порт фреймворка совместимости с Linux. Укажите `c6` для зависимостей от пакетов CentOS 6. Укажите `c7` для зависимостей от пакетов CentOS 7. Доступные пакеты: * `allegro` * `alsa-plugins-oss` @@ -904,63 +1454,96 @@ * `ucl` * `xorglibs` +[[uses-llvm]] +== `llvm` + +Возможные аргументы: (нет), `_XY_`, min=`_XY_`, max=`_XY_`, build, run, lib + +Добавляет зависимость от LLVM. По умолчанию это зависимость для сборки, если не переопределено опциями `run` или `lib`. Версия по умолчанию задаётся в `LLVM_DEFAULT`. Также можно указать конкретную версию. Минимальную и максимальную версии можно указать с помощью параметров `min` и `max` соответственно. Фреймворк портов экспортирует следующие переменные в порт: + +`LLVM_VERSION`:: +Версия, выбранная из аргументов к llvm.mk +`LLVM_PORT`:: +Выбранный порт llvm +`LLVM_CONFIG`:: +`llvm-config` выбранного порта +`LLVM_LIBLLVM`:: +`libLLVM.so` выбранного порта +`LLVM_PREFIX`:: +Префикс инсталляции выбранного порта + [[uses-localbase]] == `localbase` -Possible arguments: (none), `ldflags` +Возможные аргументы: (отсутствуют), `ldflags` -Ensures that libraries from dependencies in `LOCALBASE` are used instead of the ones from the base system. -Specify `ldflags` to add `-L${LOCALBASE}/lib` to `LDFLAGS` instead of `LIBS`. -Ports that depend on libraries that are also present in the base system should use this. -It is also used internally by a few other `USES`. +Гарантирует использование библиотек из зависимостей в `LOCALBASE` вместо библиотек из базовой системы. Указывает `ldflags` для добавления `-L${LOCALBASE}/lib` в `LDFLAGS` вместо `LIBS`. Порты, зависящие от библиотек, которые также присутствуют в базовой системе, должны использовать эту опцию. Она также используется внутри несколькими другими `USES`. [[uses-lua]] == `lua` -Possible arguments: (none), `_XY_`, `_XY_+`, `-_XY_`, `_XY_-_ZA_`, `module`, `flavors`, `build`, `run`, `env` +Возможные аргументы: (нет), `_XY_`, `_XY_+`, `-_XY_`, `_XY_-_ZA_`, `module`, `flavors`, `build`, `run`, `env` + +Добавляет зависимость от Lua. По умолчанию это зависимость от библиотеки, если не переопределено опциями `build` и/или `run`. Опция `env` предотвращает добавление любой зависимости, при этом все обычные переменные остаются определенными. + +Версия по умолчанию устанавливается с помощью обычного механизма `DEFAULT_VERSIONS`, если только версия или диапазон версий не указаны в качестве аргумента, например, `51` или `51-54`. + +Приложения, использующие Lua, обычно собираются только для одной версии Lua. Однако модули библиотек, предназначенные для загрузки кодом Lua, должны использовать опцию `module` для сборки с несколькими вариантами. + +Для получения дополнительной информации см. crossref:special[using-lua,Использование Lua]. -Adds a dependency on Lua. -By default this is a library dependency, unless overridden by the `build` and/or `run` option. -The `env` option prevents the addition of any dependency, while still defining all the usual variables. +[[uses-luajit]] +== `luajit` -The default version is set by the usual `DEFAULT_VERSIONS` mechanism, unless a version or range of versions is specified as an argument, for example, `51` or `51-53`. +Возможные аргументы: (нет), `_X_` -Applications using Lua are normally built for only a single Lua version. -However, library modules intended to be loaded by Lua code should use the `module` option to build with multiple flavors. +Добавляет зависимость от среды выполнения luajit. Можно указать конкретную версию _X_. Доступные версии: `luajit`, `luajit-devel`, `luajit-openresty` -For more information see crossref:special[using-lua,Using Lua]. +После включения [.filename]#bsd.port.options.mk# или [.filename]#bsd.port.pre.mk# порт может проверять эти переменные: + +`LUAJIT_VER`:: +Выбранная версия luajit +`LUAJIT_INCDIR`:: +Путь к заголовочным файлам luajit +`LUAJIT_LUAVER`:: +Какой версии спецификации luajit выбрана (2.0 для luajit, иначе 2.1) + +Для получения дополнительной информации см. crossref:special[using-lua,Использование Lua]. [[uses-lxqt]] == `lxqt` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) + +Обработка зависимостей для рабочей среды LXQt. Используйте `USE_LXQT` для выбора необходимых компонентов для порта. Дополнительную информацию см. в разделе crossref:special[using-lxqt,Использование LXQt]. + +[[uses-magick]] +== `magick` + +Возможные аргументы: (нет), `_X_`, `build`, `nox11`, `run`, `test` -Handle dependencies for the LXQt Desktop Environment. -Use `USE_LXQT` to select the components needed for the port. -See crossref:special[using-lxqt,Using LXQt] for more information. +Добавить зависимость библиотеки от `ImageMagick`. Можно указать конкретную версию _X_. Доступные версии: `6` и `7` (по умолчанию). `nox11` означает, что требуется версия порта `-nox11`. `build`, `run` и `test` добавляют зависимости на сборку, выполнение и тестирование для ImageMagick. [[uses-makeinfo]] == `makeinfo` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Add a build-time dependency on `makeinfo` if it is not present in the base system. +Добавить зависимость во время сборки на `makeinfo`, если его нет в базовой системе. [[uses-makeself]] == `makeself` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Indicates that the distribution files are makeself archives and sets the appropriate dependencies. +Указывает, что файлы дистрибутива являются архивами makeself и устанавливает соответствующие зависимости. [[uses-mate]] == `mate` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Provides an easy way to depend on MATE components. -The components should be listed in `USE_MATE`. -The available components are: +Предоставляет простой способ зависимостей от компонентов MATE. Компоненты должны быть перечислены в `USE_MATE`. Доступные компоненты: * `autogen` * `caja` @@ -983,8 +1566,7 @@ * `session` * `settingsdaemon` -The default dependency is build- and run-time, it can be changed with `:build` or `:run`. -For example: +Зависимость по умолчанию — на время сборки и выполнения, её можно изменить с помощью `:build` или `:run`. Например: [.programlisting] .... @@ -995,138 +1577,233 @@ [[uses-meson]] == `meson` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Provide support for Meson based projects. -For more information see crossref:special[using-meson,Using `meson`]. +Предоставить поддержку для проектов на основе Meson. Дополнительную информацию смотрите в crossref:special[using-meson,Использование `meson`]. [[uses-metaport]] == `metaport` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Sets the following variables to make it easier to create a metaport: `MASTER_SITES`, `DISTFILES`, `EXTRACT_ONLY`, `NO_BUILD`, `NO_INSTALL`, `NO_MTREE`, `NO_ARCH`. +Устанавливает следующие переменные для упрощения создания метапорта: `MASTER_SITES`, `DISTFILES`, `EXTRACT_ONLY`, `NO_BUILD`, `NO_INSTALL`, `NO_MTREE`, `NO_ARCH`. + +[[uses-minizip]] +== `minizip` + +Возможные аргументы: (отсутствуют), `ng` + +Добавляет зависимость библиотеки от package:archivers/minizip[] или package:archivers/minizip-ng[] соответственно. + +[[uses-mlt]] +== `mlt` + +Возможные аргументы: `7`, `nodepend` + +Обеспечить поддержку портов, зависящих от package:multimedia/mlt7[]. + +Если указан аргумент `nodepend`, зависимости от библиотек не создаются. Этот аргумент имеет смысл только для портов multimedia/mlt7*. [[uses-mysql]] == `mysql` -Possible arguments: (none), `_version_`, `client` (default), `server`, `embedded` +Возможные аргументы: (отсутствуют), `_версия_`, `client` (по умолчанию), `server`, `embedded` -Provide support for MySQL -If no version is given, try to find the current installed version. -Fall back to the default version, MySQL-5.6. -The possible versions are `55`, `55m`, `55p`, `56`, `56p`, `56w`, `57`, `57p`, `80`, `100m`, `101m`, and `102m`. -The `m` and `p` suffixes are for the MariaDB and Percona variants of MySQL. -`server` and `embedded` add a build- and run-time dependency on the MySQL server. -When using `server` or `embedded`, add `client` to also add a dependency on [.filename]#libmysqlclient.so#. -A port can set `IGNORE_WITH_MYSQL` if some versions are not supported. +Предоставить поддержку MySQL. Если версия не указана, попытаться определить установленную версию. В случае неудачи использовать версию по умолчанию, MySQL-5.6. Возможные версии: `55`, `55m`, `55p`, `56`, `56p`, `56w`, `57`, `57p`, `80`, `100m`, `101m` и `102m`. Суффиксы `m` и `p` обозначают флейворс MariaDB и Percona для MySQL. Параметры `server` и `embedded` добавляют зависимости во время сборки и выполнения на сервер MySQL. При использовании `server` или `embedded` добавьте `client`, чтобы также включить зависимость от [.filename]#libmysqlclient.so#. Порт может установить `IGNORE_WITH_MYSQL`, если некоторые версии не поддерживаются. -The framework sets `MYSQL_VER` to the detected MySQL version. +Фреймворк устанавливает `MYSQL_VER` в обнаруженную версию MySQL. [[uses-mono]] == `mono` -Possible arguments: (none), `nuget` +Возможные аргументы: (отсутствуют), `nuget` -Adds a dependency on the Mono (currently only C#) framework by setting the appropriate dependencies. +Добавляет зависимость от фреймворка Mono (в настоящее время только C#), устанавливая соответствующие зависимости. -Specify `nuget` when the port uses nuget packages. -`NUGET_DEPENDS` needs to be set with the names and versions of the nuget packages in the format `_name_=_version_`. -An optional package origin can be added using `_name_=_version_:_origin_`. +Укажите `nuget`, если порт использует пакеты nuget. `NUGET_DEPENDS` должен содержать имена и версии пакетов nuget в формате `_имя_=_версия_`. Можно добавить необязательное расположение пакета (origin), используя `_имя_=_версия_:_ расположение _`. -The helper target, `buildnuget`, will output the content of the `NUGET_DEPENDS` based on the provided [.filename]#packages.config#. +Вспомогательная цель `buildnuget` выведет содержимое `NUGET_DEPENDS` на основе предоставленного файла [.filename]#packages.config#. [[uses-motif]] == `motif` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) + +Использует package:x11-toolkits/open-motif[] как зависимость библиотеки. Конечные пользователи могут установить `WANT_LESSTIF` в [.filename]#make.conf#, чтобы использовать package:x11-toolkits/lesstif[] как зависимость вместо package:x11-toolkits/open-motif[]. Аналогично, установка `WANT_OPEN_MOTIF_DEVEL` в [.filename]#make.conf# добавит зависимость от package:x11-toolkits/open-motif-devel[] + +[[uses-mpi]] +== `mpi` + +Возможные аргументы: `mpich` (по умолчанию), `openmpi` + +Обеспечить поддержку портов, зависящих от `MPI`. + +Если указан аргумент `mpich`, в порт добавляется зависимость от package:net/mpich[]. + +Если указан аргумент `openmpi`, в порт добавляется зависимость от package:net/openmpi[]. + +Фреймворк портов предоставляет следующие переменные, которые могут быть прочитаны портом: + +`MPI_LIBS`:: +Библиотеки, необходимые для связывания программ с использованием `MPI`. + +`MPI_CFLAGS`:: +Флаги компилятора, необходимые для сборки программ с использованием `MPI`. + +`MPICC`:: +Расположение исполняемого файла `mpicc`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpicc#. + +`MPICXX`:: +Расположение исполняемого файла `mpicxx`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpicxx#. + +`MPIF90`:: +Расположение исполняемого файла `mpif90`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpif90#. + +`MPIFC`:: +То же, что и выше. + +`MPI_HOME`:: +Каталог установки `MPI`. По умолчанию используется `${LOCALBASE}` для `MPICH`. + +`MPIEXEC`:: +Расположение исполняемого файла `mpiexec`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpiexec#. + +`MPIRUN`:: +Расположение исполняемого файла `mpirun`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpirun#. -Uses package:x11-toolkits/open-motif[] as a library dependency. -End users can set `WANT_LESSTIF` for the dependency to be on package:x11-toolkits/lesstif[] instead of package:x11-toolkits/open-motif[]. [[uses-ncurses]] == `ncurses` -Possible arguments: (none), `base`, `port` +Возможные аргументы: (нет), `base`, `port` + +Использует ncurses и устанавливает некоторые полезные переменные. + +[[uses-nextcloud]] +== `nextcloud` -Uses ncurses, and causes some useful variables to be set. +Возможные аргументы: (отсутствуют) + +Добавляет поддержку приложений Nextcloud, добавляя зависимость во время выполнения на package:www/nextcloud[]. [[uses-ninja]] == `ninja` -Possible arguments: (none) +Возможные аргументы: (нет), `build`, `make` (по умолчанию), `run` + +Если указаны аргументы `build` или `run`, это соответственно добавляет зависимость во время сборки или выполнения от пакета package:devel/ninja[]. Если указан `make` или аргументы не предоставлены, используется ninja для сборки порта вместо make. `make` подразумевает `build`. Если переменная `NINJA_DEFAULT` установлена в `samurai`, тогда зависимости устанавливаются для пакета package:devel/samurai[] вместо этого. + +[[uses-nodejs]] +== `nodejs` -Uses ninja to build the port. +Возможные аргументы: (нет), `build`, `run`, `current`, `lts`, `10`, `14`, `16`, + `17`. + +Использует nodejs. Добавляет зависимость от пакета package:www/node*[]. Если указана поддерживаемая версия, то также необходимо указать `run` и/или `build`. [[uses-objc]] == `objc` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) + +Добавить зависимости Objective C (компилятор, библиотека времени выполнения), если базовая система их не поддерживает. + +[[uses-ocaml]] +== `ocaml` + +Возможные аргументы: (нет), `build`, `camlp4`, `dune`, `findlib`, `findplist`, `ldconfig`, `run`, `tk`, `tkbuild`, `tkrun`, `wash` + +Обеспечить поддержку OCaml. + +Если аргументы не указаны, по умолчанию используются `build`, `run`. + +Если указан аргумент `build`, то package:lang/ocamlc[] добавляется в `BUILD_DEPENDS`, `EXTRACT` и `PATCH_DEPENDS`. + +Если указан аргумент `camlp4`, то для сборки используется package:devel/ocamlp4[]. + +Если указан аргумент `dune`, то package:devel/ocaml-dune[] используется как система сборки. + +Если указан аргумент `findlib`, то для установки пакетов будет использоваться `ocamlfind`. Директории пакетов будут автоматически удалены. + +Если указан аргумент `findplist`, то содержимое целевых каталогов `findlib` будет добавлено автоматически. + +Если указан аргумент `ldconfig`, то файл [.filename]#ld.conf# OCaml будет обработан автоматически. При использовании `dune` Dune может устанавливать stublibs в директориях пакетов site-lib или в отдельной директории ниже `DUNE_LIBDIR` site-lib. Установите, если ваш порт устанавливает общие библиотеки в ocaml + +Если указан аргумент `run`, добавить ocamlc в `RUN_DEPENDS`. + +Если указан аргумент `tk`, то в порт добавляется зависимость на сборку и выполнение от пакета package:x11-toolkits/ocaml-labltk[]. Подразумевает `tkbuild` и `tkrun`. + +Если указан аргумент `tkbuild`, то пакет package:x11-toolkits/ocaml-labltk[] добавляется в `BUILD_DEPENDS`, `EXTRACT` и `PATCH_DEPENDS`. + +Если указан аргумент `tkrun`, то package:x11-toolkits/ocaml-labltk[] добавляется в `RUN_DEPENDS`. -Add objective C dependencies (compiler, runtime library) if the base system does not support it. +Если указан аргумент `wash`, общие каталоги Ocaml будут очищены при удалении. Полезно при установке в нестандартный `PREFIX`. + +Портом могут быть установлены следующие переменные: + +`OCAML_PKGDIRS`:: +Каталоги в site-lib для обработки, если указан аргумент `findlib`. По умолчанию: `${PORTNAME}` + +`OCAML_LDLIBS`:: +Каталоги в `PREFIX`, которые будут автоматически добавлены/удалены из [.filename]#ld.conf#. По умолчанию: `${OCAML_SITELIBDIR}/${PORTNAME}` + +`OCAML_PACKAGES`:: +Список пакетов для сборки и установки. По умолчанию `${PORTNAME}` + + +[[uses-octave]] +== `octave` + +Возможные аргументы: (нет), env + +Использует package:math/octave[]. `env` загружает только одну переменную окружения `OCTAVE_VERSION`. [[uses-openal]] == `openal` -Possible arguments: `al`, `soft` (default), `si`, `alut` +Возможные аргументы: `al`, `soft` (по умолчанию), `si`, `alut` -Uses OpenAL. -The backend can be specified, with the software implementation as the default. -The user can specify a preferred backend with `WANT_OPENAL`. -Valid values for this knob are `soft` (default) and `si`. +Использует OpenAL. Бэкенд может быть указан, с программной реализацией по умолчанию. Пользователь может указать предпочтительный бэкенд с помощью `WANT_OPENAL`. Допустимые значения для этой настройки: `soft` (по умолчанию) и `si`. [[uses-pathfix]] == `pathfix` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Look for [.filename]#Makefile.in# and [.filename]#configure# in `PATHFIX_WRKSRC` (defaults to `WRKSRC`) and fix common paths to make sure they respect the FreeBSD hierarchy. -For example, it fixes the installation directory of `pkgconfig`'s [.filename]#.pc# files to [.filename]#${PREFIX}/libdata/pkgconfig#. -If the port uses `USES=autoreconf`, [.filename]#Makefile.am# will be added to `PATHFIX_MAKEFILEIN` automatically. +Ищите [.filename]#Makefile.in# и [.filename]#configure# в `PATHFIX_WRKSRC` (по умолчанию `WRKSRC`) и исправляйте стандартные пути, чтобы они соответствовали иерархии FreeBSD. Например, исправляется каталог установки для файлов [.filename]#.pc# `pkgconfig` на [.filename]#${PREFIX}/libdata/pkgconfig#. Если порт использует `USES=autoreconf`, [.filename]#Makefile.am# будет автоматически добавлен в `PATHFIX_MAKEFILEIN`. -If the port <> it will look for [.filename]#CMakeLists.txt# in `PATHFIX_WRKSRC`. -If needed, that default filename can be changed with `PATHFIX_CMAKELISTSTXT`. +Если порт crossref:uses[uses-cmake,`USES=cmake`], он будет искать файл [.filename]#CMakeLists.txt# в `PATHFIX_WRKSRC`. При необходимости это имя файла по умолчанию можно изменить с помощью `PATHFIX_CMAKELISTSTXT`. [[uses-pear]] == `pear` -Possible arguments: `env` +Возможные аргументы: `env` -Adds a dependency on package:devel/pear[]. -It will setup default behavior for software using the PHP Extension and Application Repository. -Using the `env` arguments only sets up the PEAR environment variables. -See crossref:special[php-pear,PEAR Modules] for more information. +Добавляет зависимость от пакета package:devel/pear[]. Настраивает поведение по умолчанию для программного обеспечения, использующего PHP Extension and Application Repository. Использование аргументов `env` только устанавливает переменные окружения PEAR. Дополнительную информацию см. в crossref:special[php-pear,Модули PEAR]. [[uses-perl5]] == `perl5` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Depends on Perl. The configuration is done using `USE_PERL5`. +Зависит от Perl. Настройка выполняется с помощью `USE_PERL5`. -`USE_PERL5` can contain the phases in which to use Perl, can be `extract`, `patch`, `build`, `run`, or `test`. +`USE_PERL5` может содержать фазы, в которых используется Perl: `extract`, `patch`, `build`, `run` или `test`. -`USE_PERL5` can also contain `configure`, `modbuild`, or `modbuildtiny` when [.filename]#Makefile.PL#, [.filename]#Build.PL#, -or Module::Build::Tiny's flavor of [.filename]#Build.PL# is required. +`USE_PERL5` также может содержать `configure`, `modbuild` или `modbuildtiny`, если требуется [.filename]#Makefile.PL#, [.filename]#Build.PL# или вариант [.filename]#Build.PL# для Module::Build::Tiny. -`USE_PERL5` defaults to `build run`. -When using `configure`, `modbuild`, or `modbuildtiny`, `build` and `run` are implied. +`USE_PERL5` по умолчанию имеет значение `build run`. При использовании `configure`, `modbuild` или `modbuildtiny`, `build` и `run` подразумеваются автоматически. -See crossref:special[using-perl,Using Perl] for more information. +См. crossref:special[using-perl,Использование Perl] для получения дополнительной информации. [[uses-pgsql]] == `pgsql` -Possible arguments: (none), `_X.Y_`, `_X.Y_+`, `_X.Y_-`, `_X.Y_-_Z.A_` +Возможные аргументы: (нет), `_X.Y_`, `_X.Y_+`, `_X.Y_-`, `_X.Y_-_Z.A_` -Provide support for PostgreSQL. -Port maintainer can set version required. -Minimum and maximum versions or a range can be specified; for example, `9.0-`, `8.4+`, `8.4-9.2.` +Предоставить поддержку PostgreSQL. Ответственный за порт может указать требуемую версию. Можно указать минимальную и максимальную версии или диапазон; например, `9.0-`, `8.4+`, `8.4-9.2` -By default, the added dependency will be the client, but if the port requires additional components, -this can be done using `WANT_PGSQL=_component[:target]_`; -for example, `WANT_PGSQL=server:configure pltcl plperl`. -The available components are: +По умолчанию добавляемая зависимость будет клиентской, но если порту требуются дополнительные компоненты, это можно указать с помощью `WANT_PGSQL=_компонент[:цель]_`; например, `WANT_PGSQL=server:configure pltcl plperl`. Доступные компоненты: * `client` * `contrib` @@ -1140,83 +1817,67 @@ [[uses-php]] == `php` -Possible arguments: (none), `phpize`, `ext`, `zend`, `build`, `cli`, `cgi`, `mod`, `web`, `embed`, `pecl`, `flavors`, `noflavors` +Возможные аргументы: (нет), `phpize`, `ext`, `zend`, `build`, `cli`, `cgi`, `mod`, `web`, `embed`, `pecl`, `flavors`, `noflavors` -Provide support for PHP. -Add a runtime dependency on the default PHP version, package:lang/php56[]. +Обеспечить поддержку PHP. Добавить зависимость во время выполнения на версию PHP по умолчанию, package:lang/php81[]. `phpize`:: -Use to build a PHP extension. -Enables flavors. +Используется для создания расширения PHP. Поддерживает флейворы. `ext`:: -Use to build, install and register a PHP extension. -Enables flavors. +Используется для сборки, установки и регистрации расширения PHP. Поддерживает флейворы. `zend`:: -Use to build, install and register a Zend extension. -Enables flavors. +Используется для сборки, установки и регистрации Zend-расширения. Поддерживает флейворы. `build`:: -Set PHP also as a build-time dependency. +Установить PHP также как зависимость во время сборки. `cli`:: -Needs the CLI version of PHP. +Требуется версия PHP для командной строки. `cgi`:: -Needs the CGI version of PHP. +Требуется CGI-версия PHP. `mod`:: -Needs the Apache module for PHP. +Требуется модуль Apache для PHP. `web`:: -Needs the Apache module or the CGI version of PHP. +Требуется модуль Apache или CGI-версия PHP. `embed`:: -Needs the embedded library version of PHP. +Требуется встроенная версия библиотеки PHP. `pecl`:: -Provide defaults for fetching PHP extensions from the PECL repository. -Enables flavors. +Установить значения по умолчанию для загрузки расширений PHP из репозитория PECL. Включает флейворы. `flavors`:: -Enable automatic crossref:flavors[flavors-auto-php,PHP flavors] generation. -Flavors will be generated for all PHP versions, except the ones present in <>. +Включить автоматическую генерацию crossref:flavors[flavors-auto-php,флейворов PHP]. Флейворы будут созданы для всех версий PHP, за исключением указанных в crossref:uses[uses-php-ignore,`IGNORE_WITH_PHP`]. `noflavors`:: -Disable automatic PHP flavors generation. -_Must only_ be used with extensions provided by PHP itself. +Отключить автоматическое создание флейворов PHP. _Должно_ использоваться только с расширениями, предоставляемыми самим PHP. -Variables are used to specify which PHP modules are required, as well as which version of PHP are supported. +Переменные используются для указания необходимых модулей PHP, а также версий PHP, которые поддерживаются. `USE_PHP`:: -The list of required PHP extensions at run-time. -Add `:build` to the extension name to add a build-time dependency. -Example: `pcre xml:build gettext` +Список необходимых расширений PHP во время выполнения. Добавьте `:build` к названию расширения, чтобы указать зависимость во время сборки. Пример: `pcre xml:build gettext` [[uses-php-ignore]] `IGNORE_WITH_PHP`:: -The port does not work with PHP of the given version. -For possible values look at the content of `_ALL_PHP_VERSIONS` in [.filename]#Mk/Uses/php.mk#. +Порт не работает с PHP указанной версии. Возможные значения можно посмотреть в содержимом `_ALL_PHP_VERSIONS` в [.filename]#Mk/Uses/php.mk#. -When building a PHP or Zend extension with `:ext` or `:zend`, these variables can be set: +При сборке расширения PHP или Zend с помощью `:ext` или `:zend`, можно задать следующие переменные: `PHP_MODNAME`:: -The name of the PHP or Zend extension. -Default value is `${PORTNAME}`. +Имя расширения PHP или Zend. Значение по умолчанию: `${PORTNAME}`. `PHP_HEADER_DIRS`:: -A list of subdirectories from which to install header files. -The framework will always install the header files that are present in the same directory as the extension. +Список подкаталогов, из которых следует устанавливать заголовочные файлы. Фреймворк всегда будет устанавливать заголовочные файлы, находящиеся в том же каталоге, что и расширение. `PHP_MOD_PRIO`:: -The priority at which to load the extension. -It is a number between `00` and `99`. +Приоритет загрузки расширения. Это число от `00` до `99`. + -For extensions that do not depend on any extension, the priority is automatically set to `20`, for extensions that depend on another extension, the priority is automatically set to `30`. -Some extensions may need to be loaded before every other extension, for example package:www/php56-opcache[]. -Some may need to be loaded after an extension with a priority of `30`. -In that case, add `PHP_MOD_PRIO=_XX_` in the port's Makefile. For example: +Для расширений, которые не зависят от других расширений, приоритет автоматически устанавливается в `20`, а для расширений, зависящих от другого расширения, приоритет автоматически устанавливается в `30`. Некоторые расширения могут требовать загрузки перед всеми остальными, например, package:www/php56-opcache[]. Некоторые могут требовать загрузки после расширения с приоритетом `30`. В таком случае добавьте `PHP_MOD_PRIO=_XX_` в Makefile порта. Например: + [.programlisting] .... @@ -1225,52 +1886,42 @@ PHP_MOD_PRIO= 40 .... -These variables are available to use in `PKGNAMEPREFIX` or `PKGNAMESUFFIX`: +Эти переменные доступны для использования в `PKGNAMEPREFIX` или `PKGNAMESUFFIX`: `PHP_PKGNAMEPREFIX`:: -Contains `php_XY_-` where _XY_ is the current flavor's PHP version. -Use with PHP extensions and modules. +Содержит `php_XY_-`, где _XY_ — версия PHP текущей редакции. Используется с расширениями и модулями PHP. `PHP_PKGNAMESUFFIX`:: -Contains `-php_XY_` where _XY_ is the current flavor's PHP version. -Use with PHP applications. +Содержит `-php_XY_`, где _XY_ — версия PHP текущего варианта. Используется с PHP-приложениями. `PECL_PKGNAMEPREFIX`:: -Contains `php_XY_-pecl-` where _XY_ is the current flavor's PHP version. -Use with PECL modules. +Содержит `php_XY_-pecl-`, где _XY_ — версия PHP текущей редакции. Используется с модулями PECL. [IMPORTANT] ==== -With flavors, all PHP extensions, PECL extensions, PEAR modules _must have_ a different package name, -so they must all use one of these three variables in their `PKGNAMEPREFIX` or `PKGNAMESUFFIX`. +С вариантами сборки все расширения PHP, расширения PECL, модули PEAR _должны иметь_ разные имена пакетов, поэтому они должны использовать одну из трёх переменных в `PKGNAMEPREFIX` или `PKGNAMESUFFIX`. ==== [[uses-pkgconfig]] == `pkgconfig` -Possible arguments: (none), `build` (default), `run`, `both` +Возможные аргументы: (отсутствуют), `build` (по умолчанию), `run`, `both` -Uses package:devel/pkgconf[]. -With no arguments or with the `build` argument, it implies `pkg-config` as a build-time dependency. -`run` implies a run-time dependency and `both` implies both run-time and build-time dependencies. +Использует package:devel/pkgconf[]. Без аргументов или с аргументом `build` подразумевает зависимость от `pkg-config` во время сборки. `run` подразумевает зависимость во время выполнения, а `both` — зависимости как во время выполнения, так и во время сборки. [[uses-pure]] == `pure` -Possible arguments: (none), `ffi` +Возможные аргументы: (нет), `ffi` -Uses package:lang/pure[]. -Largely used for building related pure ports. -With the `ffi` argument, it implies package:devel/pure-ffi[] as a run-time dependency. +Использует package:lang/pure[]. В основном применяется для сборки портов, зависящих от pure. С аргументом `ffi` подразумевает package:devel/pure-ffi[] как зависимость во время выполнения. [[uses-pyqt]] == `pyqt` -Possible arguments: (none), `4`, `5` +Возможные аргументы: (нет), `4`, `5` -Uses PyQt. If the port is part of PyQT itself, set `PYQT_DIST`. -Use `USE_PYQT` to select the components the port needs. -The available components are: +Использует PyQt. Если порт является частью самого PyQT, установите `PYQT_DIST`. Используйте `USE_PYQT` для выбора необходимых порту компонентов. Доступные компоненты: * `core` * `dbus` @@ -1292,7 +1943,7 @@ * `xml` * `xmlpatterns` -These components are only available with PyQT4: +Эти компоненты доступны только с PyQT4: * `assistant` * `declarative` @@ -1301,7 +1952,7 @@ * `script` * `scripttools` -These components are only available with PyQT5: +Эти компоненты доступны только с PyQT5: * `multimediawidgets` * `printsupport` @@ -1310,7 +1961,7 @@ * `webkitwidgets` * `widgets` -The default dependency for each component is build- and run-time, to select only build or run, add `_build` or `_run` to the component name. For example: +Зависимость по умолчанию для каждого компонента — это время сборки и выполнения. Чтобы выбрать только сборку или выполнение, добавьте `_build` или `_run` к имени компонента. Например: [.programlisting] .... @@ -1318,58 +1969,76 @@ USE_PYQT= core doc_build designer_run .... +[[uses-pytest]] +== `pytest` + +Возможные аргументы: (нет), 4 + +Вводит новую зависимость от package:devel/pytest[]. Он определяет цель `do-test`, которая будет правильно запускать тесты. Используйте аргумент, чтобы зависеть от определённой версии package:devel/pytest[]. Для портов, использующих package:devel/pytest[], рекомендуется использовать это вместо конкретной цели `do-test`. Фреймворк предоставляет порту следующие переменные: + +`PYTEST_ARGS`:: +Дополнительные аргументы для pytest (по умолчанию пусто). + +`PYTEST_IGNORED_TESTS`:: +списки шаблонов `pytest -k` для игнорирования тестов (по умолчанию пустые). Для тестов, которые не должны проходить, например, требующих доступа к базе данных. + +`PYTEST_BROKEN_TESTS`:: +списки шаблонов `pytest -k` тестов для игнорирования (по умолчанию пустые). Для сломанных тестов, которые требуют исправления. + +В дополнение следующие переменные могут быть заданы пользователем: + +`PYTEST_ENABLE_IGNORED_TESTS`:: +Включить тесты, которые в противном случае игнорируются `PYTEST_IGNORED_TESTS`. + +`PYTEST_ENABLE_BROKEN_TESTS`:: +Включить тесты, которые в противном случае игнорируются `PYTEST_BROKEN_TESTS`. + +`PYTEST_ENABLE_ALL_TESTS`:: +Включить тесты, которые в противном случае игнорируются `PYTEST_IGNORED_TESTS` и `PYTEST_BROKEN_TESTS`. + + [[uses-python]] == `python` -Possible arguments: (none), `_X.Y_`, `_X.Y+_`, `_-X.Y_`, `_X.Y-Z.A_`, `patch`, `build`, `run`, `test` +Возможные аргументы: (нет), `_X.Y_`, `_X.Y+_`, `_-X.Y_`, `_X.Y-Z.A_`, `patch`, `build`, `run`, `test` -Uses Python. A supported version or version range can be specified. -If Python is only needed at build time, run time or for the tests, it can be set as a build, run or test dependency with `build`, `run`, or `test`. -If Python is also needed during the patch phase, use `patch`. -See crossref:special[using-python, Using Python] for more information. +Использует Python. Можно указать поддерживаемую версию или диапазон версий. Если Python требуется только во время сборки, выполнения или тестирования, его можно установить как зависимость для сборки, выполнения или тестирования с помощью `build`, `run` или `test`. Если Python также требуется на этапе исправлений, используйте `patch`. Дополнительную информацию см. в разделе crossref:special[using-python,Использование Python]. -`PYTHON_NO_DEPENDS=yes` can be used when the variables exported by the framework are needed but a dependency on Python is not. -It can happen when using with <>, and the goal is only to fix the shebangs but not add a dependency on Python. +`USES=python:env` можно использовать, когда необходимы переменные, экспортируемые фреймворком, но зависимость от Python не требуется. Это может быть полезно при использовании с crossref:uses[uses-shebangfix,`USES=shebangfix`], если цель состоит только в исправлении shebang без добавления зависимости от Python. [[uses-qmail]] == `qmail` -Possible arguments: (none), `build`, `run`, `both`, `vars` +Возможные аргументы: (нет), `build`, `run`, `both`, `vars` -Uses package:mail/qmail[]. With the `build` argument, it implies `qmail` as a build-time dependency. -`run` implies a run-time dependency. -Using no argument or the `both` argument implies both run-time and build-time dependencies. -`vars` will only set QMAIL variables for the port to use. +Использует package:mail/qmail[]. С аргументом `build` подразумевается зависимость от `qmail` во время сборки. Аргумент `run` подразумевает зависимость во время выполнения. Использование без аргументов или с аргументом `both` подразумевает зависимости как во время выполнения, так и во время сборки. Аргумент `vars` только устанавливает переменные QMAIL для использования в порте. [[uses-qmake]] == `qmake` -Possible arguments: (none), `norecursive`, `outsource`, `no_env`, `no_configure` +Возможные аргументы: (отсутствуют), `norecursive`, `outsource`, `no_env`, `no_configure` -Uses QMake for configuring. For more information see crossref:special[using-qmake,Using `qmake`]. +Использует QMake для настройки. Для получения дополнительной информации см. crossref:special[using-qmake,Использование `qmake`]. [[uses-qt]] == `qt` -Possible arguments: `5`, `no_env` +Возможные аргументы: `5`, `6`, `no_env` -Add dependency on Qt components. -`no_env` is passed directly to `USES= qmake`. -See crossref:special[using-qt,Using Qt] for more information. +Добавить зависимость от компонентов Qt. `no_env` передаётся напрямую в `USES= qmake`. Подробнее см. в crossref:special[using-qt,Использование Qt]. [[uses-qt-dist]] == `qt-dist` -Possible arguments: (none) or `5` and (none) or one of `3d`, `activeqt`, `androidextras`, `base`, `canvas3d`, `charts`, `connectivity`, `datavis3d`, `declarative`, `doc`, `gamepad`, `graphicaleffects`, `imageformats`, `location`, `macextras`, `multimedia`, `networkauth`, `purchasing`, `quickcontrols2`, `quickcontrols`, `remoteobjects`, `script`, `scxml`, `sensors`, `serialbus`, `serialport`, `speech`, `svg`, `tools`, `translations`, `virtualkeyboard`, `wayland`, `webchannel`, `webengine`, `websockets`, `webview`, `winextras`, `x11extras`, `xmlpatterns` +Possible arguments: (none) or `5` and (none) or `6` and (none) or one of `3d`, `5compat`, `base`, `charts`, `connectivity`, `datavis3d`, `declarative`, `doc` `languageserver`, `gamepad`, `graphicaleffects`, `imageformats`, `locat ion`, `lottie`, `multimedia`, `networkauth`, `positioning`, `quick3d`, `quickcontrols2`, `quickcontrols`, `quicktimeline`, `remoteobjects`, `script`, `scxml `, `sensors`, `serialbus`, `serialport`, `shadertools`, `speech`, `svg`, `tools`, `translations`, `virtualkeyboard`, `wayland`, `webchannel`, `webengine`, `webglplugin`, `websockets`, `webview`, `x11extras`, `xmlpatterns`. -Provides support for building Qt 5 components. -It takes care of setting up the appropriate configuration environment for the port to build. +Предоставляет поддержку сборки компонентов Qt 5 и Qt 6. Обеспечивает настройку соответствующей конфигурации окружения для сборки порта. [[qt5-dist-example]] -.Building Qt 5 Components +.Сборка компонентов Qt 5 [example] ==== -The port is Qt 5's `networkauth` component, which is part of the `networkauth` distribution file. +Порт представляет собой компонент `networkauth` из Qt 5, который входит в файл дистрибутива `networkauth`. [.programlisting] .... @@ -1381,13 +2050,30 @@ ==== -If `PORTNAME` does not match the component name, it can be passed as an argument to `qt-dist`. + +[[qt6-dist-example]] +.Сборка компонентов Qt 6 +[example] +==== +Порт представляет собой компонент `websockets` из Qt 6, который входит в файл дистрибутива `websockets`. + +[.programlisting] +.... +PORTNAME= websockets +PORTVERSION= ${QT6_VERSION} + +USES= qt-dist:6 +.... + +==== + +Если `PORTNAME` не совпадает с именем компонента, его можно передать как аргумент в `qt-dist`. [[qt5-dist-example-explicit]] -.Building Qt 5 Components with Different Names +.Сборка компонентов Qt 5 с разными именами [example] ==== -The port is Qt 5's `gui` component, which is part of the `base` distribution file. +Порт представляет собой компонент `gui` из Qt 5, который входит в файл дистрибутива `base`. [.programlisting] .... @@ -1402,116 +2088,181 @@ [[uses-readline]] == `readline` -Possible arguments: (none), `port` +Возможные аргументы: (нет), `port` + +Использует readline в качестве зависимости библиотеки и устанавливает `CPPFLAGS` и `LDFLAGS` по необходимости. Если используется аргумент `port` или если readline отсутствует в базовой системе, добавляет зависимость от package:devel/readline[] + + +[[uses-ruby]] +== `ruby` + +Возможные аргументы: (нет), `build`, `extconf`, `run`, `setup` + +Предоставить поддержку для портов, связанных с Ruby. `(none)` без аргументов добавляет зависимость во время выполнения на package:lang/ruby[]. `build` добавляет зависимость на package:lang/ruby[] во время сборки. `extconf` указывает, что порт использует extconf.rb для настройки. `run` добавляет зависимость на package:lang/ruby[] во время выполнения. Это также значение по умолчанию. `setup` указывает, что порт использует setup.rb для настройки и сборки. + +Пользователь может определить следующие переменные: + +`RUBY_VER`:: +Альтернативная короткая версия ruby в виде `x.y`. + +`RUBY_DEFAULT_VER`:: +Установите (например) `2.7`, чтобы использовать `ruby27` в качестве версии по умолчанию. + +`RUBY_ARCH`:: +Установите имя архитектуры (например, i386-freebsd7). + +Следующие переменные экспортируются для использования портом: + +`RUBY`:: +Установлена в полный путь к ruby. Если задано, значения следующих переменных автоматически получаются из исполняемого файла ruby: `RUBY_ARCH`, `RUBY_ARCHLIBDIR`, `RUBY_LIBDIR`, `RUBY_SITEARCHLIBDIR`, `RUBY_SITELIBDIR`, `RUBY_VER` и `RUBY_VERSION` + +`RUBY_VER`:: +Установлена в альтернативную короткую версию ruby в формате `x.y`. + +`RUBY_EXTCONF`:: +Установлена в альтернативное имя для extconf.rb (по умолчанию: extconf.rb). + +`RUBY_EXTCONF_SUBDIRS`:: +Установлена в список подкаталогов, если включено несколько модулей. + +`RUBY_SETUP`:: +Установлена в альтернативное имя для setup.rb (по умолчанию: setup.rb). -Uses readline as a library dependency, and sets `CPPFLAGS` and `LDFLAGS` as necessary. -If the `port` argument is used or if readline is not present in the base system, add a dependency on package:devel/readline[] [[uses-samba]] == `samba` -Possible arguments: `build`, `env`, `lib`, `run` +Возможные аргументы: `build`, `env`, `lib`, `run` + +Обработать зависимость от Samba. `env` не добавит никаких зависимостей, а только установит переменные. `build` и `run` добавят зависимости во время сборки и выполнения на [.filename]#smbd#. `lib` добавит зависимость на [.filename]#libsmbclient.so#. Экспортируемые переменные: + +`SAMBA_PORT`:: +Расположение порта Samba по умолчанию. -Handle dependency on Samba. -`env` will not add any dependency and only set up the variables. -`build` and `run` will add build-time and run-time dependency on [.filename]#smbd#. `lib` will add a dependency on [.filename]#libsmbclient.so#. -The variables that are exported are: +`SAMBA_INCLUDEDIR`:: +Расположение заголовочных файлов Samba. -`SAMBAPORT`:: -The origin of the default Samba port. +`SAMBA_LIBS`:: +Каталог, в котором доступны общие библиотеки Samba. -`SAMBAINCLUDES`:: -The location of the Samba header files. +`SAMBA_LDB_PORT`:: +Расположение порта ldb, используемого выбранной версией Samba (например, package:databases/ldb28[]). Он должен использоваться, если порту требуется зависимость от той же версии ldb, что и у выбранной версии Samba. -`SAMBALIBS`:: -The directory where the Samba shared libraries are available. +`SAMBA_TALLOC_PORT`:: +Расположение порта talloc, используемого выбранной версией Samba. Следует использовать, если порту требуется зависеть от той же версии talloc, что и выбранная версия Samba. + +`SAMBA_TDB_PORT`:: +Расположение порта TDB, используемого выбранной версией Samba. Его следует использовать, если порту требуется зависеть от той же версии TDB, что и выбранная версия Samba. + +`SAMBA_TEVENT_PORT`:: +Расположение порта tevent, используемого выбранной версией Samba. Это следует использовать, если порту необходимо зависеть от той же версии tevent, что и выбранная версия Samba. [[uses-scons]] == `scons` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) + +Предоставить поддержку для использования package:devel/scons[]. Дополнительную информацию смотрите в crossref:special[using-scons,Использование `scons`]. + +[[uses-sdl]] +== `sdl` + +Возможные аргументы: `sdl` + +Обеспечить поддержку использования пакетов `SDL`. Переменная `USE_SDL` является обязательной и указывает, какие компоненты добавить в зависимости. + +Поддерживаемые в настоящее время модули `SDL1.2`: + +* sdl +* console +* gfx +* image +* mixer +* mm +* net +* pango +* sound +* ttf -Provide support for the use of package:devel/scons[]. -See crossref:special[using-scons,Using `scons`] for more information. +Текущие поддерживаемые модули `SDL2`: + + * sdl2 + * gfx2 + * image2 + * mixer2 + * net2 + * sound2 + * ttf2 + +Текущие поддерживаемые модули `SDL3`: + + * sdl3 + * image3 + * ttf3 [[uses-shared-mime-info]] == `shared-mime-info` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Uses update-mime-database from package:misc/shared-mime-info[]. -This uses will automatically add a post-install step in such a way that the port itself still can specify there own post-install step if needed. -It also add an crossref:plist[plist-keywords-shared-mime-info,`@shared-mime-info`] entry to the plist. +Использует update-mime-database из пакета package:misc/shared-mime-info[]. Это автоматически добавит шаг post-install таким образом, что сам порт всё ещё может указать собственный шаг post-install при необходимости. Также добавляет запись crossref:plist[plist-keywords-shared-mime-info,`@shared-mime-info`] в plist. [[uses-shebangfix]] == `shebangfix` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -A lot of software uses incorrect locations for script interpreters, most notably [.filename]#/usr/bin/perl# and [.filename]#/bin/bash#. -The shebangfix macro fixes shebang lines in scripts listed in `SHEBANG_REGEX`, `SHEBANG_GLOB`, or `SHEBANG_FILES`. +Множество программ используют некорректные расположения для интерпретаторов скриптов, особенно [.filename]#/usr/bin/perl# и [.filename]#/bin/bash#. Макрос shebangfix исправляет строки shebang в скриптах, перечисленных в `SHEBANG_REGEX`, `SHEBANG_GLOB` или `SHEBANG_FILES`. `SHEBANG_REGEX`:: -Contains _one_ extended regular expressions, and is used with the `-iregex` argument of man:find[1]. -See <>. +Содержит _одно_ расширенное регулярное выражение и используется с аргументом `-iregex` в man:find[1]. См. crossref:uses[uses-shebangfix-ex-regex,`USESshebangfix` с `SHEBANG_REGEX`]. `SHEBANG_GLOB`:: -Contains a list of patterns used with the `-name` argument of man:find[1]. -See <>. +Содержит список шаблонов, используемых с аргументом `-name` в man:find[1]. См. crossref:uses[uses-shebangfix-ex-glob,`USESshebangfix` с `SHEBANG_GLOB`]. `SHEBANG_FILES`:: -Contains a list of files or man:sh[1] globs. -The shebangfix macro is run from `${WRKSRC}`, so `SHEBANG_FILES` can contain paths that are relative to `${WRKSRC}`. -It can also deal with absolute paths if files outside of `${WRKSRC}` require patching. -See <>. +Содержит список файлов или шаблонов man:sh[1]. Макрос shebangfix выполняется из `${WRKSRC}`, поэтому `SHEBANG_FILES` может содержать пути, относительные к `${WRKSRC}`. Также он может работать с абсолютными путями, если требуется исправление файлов вне `${WRKSRC}`. См. crossref:uses[uses-shebangfix-ex-files,`USESshebangfix` с `SHEBANG_FILES`]. -Currently Bash, Java, Ksh, Lua, Perl, PHP, Python, Ruby, Tcl, and Tk are supported by default. +В настоящее время Bash, Java, Ksh, Lua, Perl, PHP, Python, Ruby, Tcl и Tk поддерживаются по умолчанию. -There are three configuration variables: +Существует три переменных конфигурации: `SHEBANG_LANG`:: -The list of supported interpreters. +Список поддерживаемых интерпретаторов. `_interp__CMD`:: -The path to the command interpreter on FreeBSD. -The default value is `${LOCALBASE}/bin/_interp_`. +Путь к интерпретатору команд в FreeBSD. Значение по умолчанию — `${LOCALBASE}/bin/_interp_`. `_interp__OLD_CMD`:: -The list of wrong invocations of interpreters. -These are typically obsolete paths, or paths used on other operating systems that are incorrect on FreeBSD. -They will be replaced by the correct path in `_interp__CMD`. +Список неправильных вызовов интерпретаторов. Обычно это устаревшие пути или пути, используемые в других операционных системах, которые неверны в FreeBSD. Они будут заменены на правильные пути в `_interp__CMD`. + [NOTE] ==== -These will _always_ be part of `_interp__OLD_CMD`: `"/usr/bin/env _interp_" /bin/_interp_ /usr/bin/_interp_ /usr/local/bin/_interp_`. +Эти пути _всегда_ будут частью `_interp__OLD_CMD`: `"/usr/bin/env _interp_" /bin/_interp_ /usr/bin/_interp_ /usr/local/bin/_interp_`. ==== + [TIP] ==== -`_interp__OLD_CMD` contain multiple values. -Any entry with spaces must be quoted. -See <>. +`_interp__OLD_CMD` содержит несколько значений. Любая запись с пробелами должна быть заключена в кавычки. См. crossref:uses[uses-shebangfix-ex-ksh,Указание всех путей при добавлении интерпретатора в `USESshebangfix`]. ==== [IMPORTANT] ==== -The fixing of shebangs is done during the `patch` phase. -If scripts are created with incorrect shebangs during the `build` phase, the build process (for example, the [.filename]#configure# script, or the [.filename]#Makefiles#) must be patched or given the right path (for example, with `CONFIGURE_ENV`, `CONFIGURE_ARGS`, `MAKE_ENV`, or `MAKE_ARGS`) to generate the right shebangs. +Исправление шебанг-строк выполняется на этапе `patch`. Если скрипты создаются с некорректными шебанг-строками на этапе `build`, процесс сборки (например, скрипт [.filename]#configure# или [.filename]#Makefiles#) должен быть исправлен или ему должен быть указан правильный путь (например, с помощью `CONFIGURE_ENV`, `CONFIGURE_ARGS`, `MAKE_ENV` или `MAKE_ARGS`) для генерации корректных шебанг-строк. -Correct paths for supported interpreters are available in `_interp__CMD`. +Правильные пути для поддерживаемых интерпретаторов доступны в `_interp__CMD`. ==== [TIP] ==== -When used with <>, and the aim is only to fix the shebangs but a dependency on Python itself is not wanted, use `PYTHON_NO_DEPENDS=yes`. +При использовании с crossref:uses[uses-python,`USES=python`], если цель состоит только в исправлении shebang, но зависимость от самого Python не требуется, используйте `USES=python:env`. ==== [[uses-shebangfix-ex-lua]] -.Adding Another Interpreter to `USES=shebangfix` +.Добавление другого интерпретатора в `USES=shebangfix` [example] ==== -To add another interpreter, set `SHEBANG_LANG`. -For example: +Чтобы добавить другой интерпретатор, установите `SHEBANG_LANG`. Например: [.programlisting] .... @@ -1521,10 +2272,10 @@ ==== [[uses-shebangfix-ex-ksh]] -.Specifying all the Paths When Adding an Interpreter to `USES=shebangfix` +.Указание всех путей при добавлении интерпретатора в `USES=shebangfix` [example] ==== -If it was not already defined, and there were no default values for `_interp__OLD_CMD` and `_interp__CMD` the Ksh entry could be defined as: +Если они еще не были определены и не было значений по умолчанию для `_interp__OLD_CMD` и `_interp__CMD`, запись Ksh можно определить как: [.programlisting] .... @@ -1536,12 +2287,10 @@ ==== [[uses-shebangfix-ex-strange]] -.Adding a Strange Location for an Interpreter +.Добавление нестандартного расположения интерпретатора [example] ==== -Some software uses strange locations for an interpreter. -For example, an application might expect Python to be located in [.filename]#/opt/bin/python2.7#. -The strange path to be replaced can be declared in the port [.filename]#Makefile#: +Некоторое программное обеспечение использует нестандартные пути для интерпретатора. Например, приложение может ожидать, что Python будет расположен в [.filename]#/opt/bin/python2.7#. Нестандартный путь, который нужно заменить, можно указать в [.filename]#Makefile# порта: [.programlisting] .... @@ -1551,10 +2300,10 @@ ==== [[uses-shebangfix-ex-regex]] -.`USES=shebangfix` with `SHEBANG_REGEX` +.`USES=shebangfix` с `SHEBANG_REGEX` [example] ==== -To fix all the files in `${WRKSRC}/scripts` ending in [.filename]#.pl#, [.filename]#.sh#, or [.filename]#.cgi# do: +Для исправления всех файлов в `${WRKSRC}/scripts`, оканчивающихся на [.filename]#.pl#, [.filename]#.sh# или [.filename]#.cgi#, выполните: [.programlisting] .... @@ -1564,17 +2313,16 @@ [NOTE] ====== -`SHEBANG_REGEX` is used by running `find -E`, which uses modern regular expressions also known as extended regular expressions. -See man:re_format[7] for more information. +`SHEBANG_REGEX` используется при выполнении `find -E`, который применяет современные регулярные выражения, также известные как расширенные регулярные выражения. Подробнее см. в man:re_format[7]. ====== ==== [[uses-shebangfix-ex-glob]] -.`USES=shebangfix` with `SHEBANG_GLOB` +.`USES=shebangfix` с `SHEBANG_GLOB` [example] ==== -To fix all the files in `${WRKSRC}` ending in [.filename]#.pl# or [.filename]#.sh#, do: +Для исправления всех файлов в `${WRKSRC}` с окончанием [.filename]#.pl# или [.filename]#.sh# выполните: [.programlisting] .... @@ -1585,10 +2333,10 @@ ==== [[uses-shebangfix-ex-files]] -.`USES=shebangfix` with `SHEBANG_FILES` +.`USES=shebangfix` с `SHEBANG_FILES` [example] ==== -To fix the files [.filename]#script/foobar.pl# and [.filename]#script/*.sh# in `${WRKSRC}`, do: +Для исправления файлов [.filename]#script/foobar.pl# и [.filename]#script/*.sh# в `${WRKSRC}` выполните: [.programlisting] .... @@ -1601,38 +2349,42 @@ [[uses-sqlite]] == `sqlite` -Possible arguments: (none), `2`, `3` +Возможные аргументы: (нет), `2`, `3` + +Добавить зависимость от SQLite. Используемая по умолчанию версия — 3, но также возможна версия 2 с использованием модификатора `:2`. + +[[uses-sbrk]] +== `sbrk` + +Возможные аргументы: (отсутствуют) -Add a dependency on SQLite. -The default version used is 3, but version 2 is also possible using the `:2` modifier. +Помечает порт как `BROKEN` для `aarch64` и `riscv64`. [[uses-ssl]] == `ssl` -Possible arguments: (none), `build`, `run` +Возможные аргументы: (нет), `build`, `run` -Provide support for OpenSSL. -A build- or run-time only dependency can be specified using `build` or `run`. -These variables are available for the port's use, they are also added to `MAKE_ENV`: +Обеспечить поддержку OpenSSL. Зависимость только для сборки или выполнения может быть указана с использованием `build` или `run`. Эти переменные доступны для использования портом, а также добавлены в `MAKE_ENV`: `OPENSSLBASE`:: -Path to the OpenSSL installation base. +Путь к базовой установке OpenSSL. `OPENSSLDIR`:: -Path to OpenSSL's configuration files. +Путь к файлам конфигурации OpenSSL. `OPENSSLLIB`:: -Path to the OpenSSL libraries. +Путь к библиотекам OpenSSL. `OPENSSLINC`:: -Path to the OpenSSL includes. +Путь к заголовочным файлам OpenSSL. `OPENSSLRPATH`:: -If defined, the path the linker needs to use to find the OpenSSL libraries. +Если определено, путь, который требуется компоновщику для поиска библиотек OpenSSL. [TIP] ==== -If a port does not build with an OpenSSL flavor, set the `BROKEN_SSL` variable, and possibly the `BROKEN_SSL_REASON__flavor_`: +Если порт не собирается с вариантом OpenSSL, установите переменную `BROKEN_SSL`, а также, возможно, `BROKEN_SSL_REASON__flavor_`: [.programlisting] .... @@ -1645,282 +2397,351 @@ [[uses-tar]] == `tar` -Possible arguments: (none), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, `tgz`, `txz`, `xz` +Возможные аргументы: (нет), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, `tgz`, `txz`, `xz`, `zst`, `zstd` -Set `EXTRACT_SUFX` to `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, `.tar.lzma`, `.tbz`, `.tbz2`, `.tgz`, `.txz` or `.tar.xz` respectively. +Установите `EXTRACT_SUFX` в `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, `.tar.lzma`, `.tbz`, `.tbz2`, `.tgz`, `.txz`, `.tar.xz`, `.tar.zst` или `.tar.zstd` соответственно. [[uses-tcl]] == `tcl` -Possible arguments: _version_, `wrapper`, `build`, `run`, `tea` +Возможные аргументы: _version_, `wrapper`, `build`, `run`, `tea` -Add a dependency on Tcl. A specific version can be requested using _version_. -The version can be empty, one or more exact version numbers (currently `84`, `85`, or `86`), or a minimal version number (currently `84+`, `85+` or `86+`). -To only request a non version specific wrapper, use `wrapper`. -A build- or run-time only dependency can be specified using `build` or `run`. -To build the port using the Tcl Extension Architecture, use `tea`. -After including [.filename]#bsd.port.pre.mk# the port can inspect the results using these variables: +Добавьте зависимость от Tcl. Конкретная версия может быть запрошена с помощью _version_. Версия может быть пустой, одной или несколькими точными номерами версий (в настоящее время `84`, `85` или `86`), либо минимальным номером версии (в настоящее время `84+`, `85+` или `86+`). Чтобы запросить только неспецифичную для версии обёртку, используйте `wrapper`. Зависимость только на время сборки или выполнения может быть указана с помощью `build` или `run`. Для сборки порта с использованием Tcl Extension Architecture используйте `tea`. После включения [.filename]#bsd.port.pre.mk# порт может проверить результаты с помощью этих переменных: -* `TCL_VER`: chosen major.minor version of Tcl -* `TCLSH`: full path of the Tcl interpreter -* `TCL_LIBDIR`: path of the Tcl libraries -* `TCL_INCLUDEDIR`: path of the Tcl C header files -* `TK_VER`: chosen major.minor version of Tk -* `WISH`: full path of the Tk interpreter -* `TK_LIBDIR`: path of the Tk libraries -* `TK_INCLUDEDIR`: path of the Tk C header files +* `TCL_VER`: выбранная версия Tcl в формате major.minor +* `TCLSH`: полный путь к интерпретатору Tcl +* `TCL_LIBDIR`: путь к библиотекам Tcl +* `TCL_INCLUDEDIR`: путь к заголовочным файлам Tcl на языке C +* `TCL_PKG_LIB_PREFIX`: Префикс библиотеки, согласно TIP595 +* `TCL_PKG_STUB_POSTFIX`: Постфикс библиотеки заглушки +* `TK_VER`: выбранная версия Tk в формате major.minor +* `WISH`: полный путь к интерпретатору Tk +* `TK_LIBDIR`: путь к библиотекам Tk +* `TK_INCLUDEDIR`: путь к заголовочным файлам Tk на языке C [[uses-terminfo]] == `terminfo` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) + +Добавляет crossref:plist[plist-keywords-terminfo,`@terminfo`] в файл [.filename]#plist#. Используется, когда порт устанавливает файлы [.filename]#*.terminfo# в каталог [.filename]#${PREFIX}/share/misc#. + +[[uses-tex]] +== `tex` + +Возможные аргументы: (отсутствуют) + +Обеспечить поддержку tex. Загружает все стандартные переменные для портов, связанных с TEX, и не добавляет зависимостей от других портов. + +Переменные используются для указания того, какие модули TEX требуются. -Adds crossref:plist[plist-keywords-terminfo,`@terminfo`] to the [.filename]#plist#. -Use when the port installs [.filename]#*.terminfo# files in [.filename]#${PREFIX}/share/misc#. +`USE_TEX`:: +Список необходимых расширений TEX во время выполнения. Добавьте `:build` к названию расширения, чтобы добавить зависимость на время сборки, `:run` — для зависимости во время выполнения, `:test` — для зависимости во время тестирования, `:extract` — для зависимости во время извлечения. Пример: `base texmf:build source:run` + +Текущие возможные аргументы следующие: + +* `base` +* `texmf` +* `source` +* `docs` +* `web2c` +* `kpathsea` +* `ptexenc` +* `basic` +* `tlmgr` +* `texlua` +* `texluajit` +* `synctex` +* `xpdfopen` +* `dvipsk` +* `dvipdfmx` +* `xdvik` +* `gbklatex` +* `formats` +* `tex` +* `latex` +* `pdftex` +* `jadetex` +* `luatex` +* `ptex` +* `xetex` +* `xmltex` +* `texhash` +* `updmap` +* `fmtutil` [[uses-tk]] == `tk` -Same as arguments for `tcl` +Так же, как аргументы для `tcl` + +Небольшая обертка при использовании Tcl и Tk. Возвращаются те же переменные, что и при использовании Tcl. + +[[uses-trigger]] +== `trigger` -Small wrapper when using both Tcl and Tk. -The same variables are returned as when using Tcl. +Возможные аргументы: (отсутствуют) + +Предоставить поддержку для портов, требующих выполнения триггеров с помощью man:pkg[8]. Триггеры выполняются в конце транзакции, если условия выполнены. + +Следующая переменная может быть установлена портами: + +`TRIGGERS`:: +Список триггеров для пакета. По умолчанию используется `${PORTNAME}`. + +Триггеры указываются в формате UCL и обычно размещаются в каталоге [.filename]#files/# порта. [[uses-uidfix]] == `uidfix` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Changes some default behavior (mostly variables) of the build system to allow installing this port as a normal user. -Try this in the port before using <> or patching. +Изменяет некоторые стандартные настройки (в основном переменные) системы сборки, чтобы позволить установку этого порта обычным пользователем. Попробуйте это в порте перед использованием crossref:uses[uses-fakeroot,`USES=fakeroot`] или исправлением. [[uses-uniquefiles]] == `uniquefiles` -Possible arguments: (none), `dirs` +Возможные аргументы: (нет), `dirs` + +Сделать файлы или каталоги 'уникальными', добавляя префикс или суффикс. Если используется аргумент `dirs`, порту требуется префикс (и только префикс) на основе `UNIQUE_PREFIX` для стандартных каталогов `DOCSDIR`, `EXAMPLESDIR`, `DATADIR`, `WWWDIR`, `ETCDIR`. Эти переменные доступны для портов: -Make files or directories 'unique', by adding a prefix or suffix. -If the `dirs` argument is used, the port needs a prefix (and only a prefix) based on `UNIQUE_PREFIX` for standard directories `DOCSDIR`, `EXAMPLESDIR`, `DATADIR`, `WWWDIR`, `ETCDIR`. -These variables are available for ports: +* `UNIQUE_PREFIX`: Префикс, используемый для каталогов и файлов. По умолчанию: `${PKGNAMEPREFIX}`. +* `UNIQUE_PREFIX_FILES`: Список файлов, которые необходимо предварить префиксом. По умолчанию: пусто. +* `UNIQUE_SUFFIX`: Суффикс, используемый для файлов. По умолчанию: `${PKGNAMESUFFIX}`. +* `UNIQUE_SUFFIX_FILES`: Список файлов, к которым необходимо добавить суффикс. По умолчанию: пусто. -* `UNIQUE_PREFIX`: The prefix to be used for directories and files. Default: `${PKGNAMEPREFIX}`. -* `UNIQUE_PREFIX_FILES`: A list of files that need to be prefixed. Default: empty. -* `UNIQUE_SUFFIX`: The suffix to be used for files. Default: `${PKGNAMESUFFIX}`. -* `UNIQUE_SUFFIX_FILES`: A list of files that need to be suffixed. Default: empty. +[[uses-vala]] +== `vala` + +Возможные аргументы: `build`, `lib`, `no_depend` + +Добавляет зависимости сборки или библиотеки на package:lang/vala[]. Аргумент `no_depend` зарезервирован для самого package:lang/vala[]. [[uses-varnish]] == `varnish` -Possible arguments: `4`, `6` +Возможные аргументы: `4` (по умолчанию), `6`, `7` + +Обрабатывает зависимости для Varnish Cache. Добавляет зависимость от пакета `package:www/varnish*[]`. + +[[uses-waf]] +== `waf` + +Возможные аргументы: (отсутствуют) + +Обеспечить поддержку портов, использующих систему сборки `waf`. + +Это подразумевает `USES=python:build`. + +Следующие переменные экспортируются для использования портом: + +`WAF_CMD`:: +Расположение скрипта `waf`. Установите этот параметр, если скрипт `waf` не находится в [.filename]#WRKSRC/waf#. + +`CONFIGURE_TARGET`:: +Цель для `configure`. По умолчанию – `configure`. + +`ALL_TARGET`:: +Цель для `all`. По умолчанию `build`. -Handle dependencies on Varnish Cache. -`4` will add a dependency on package:www/varnish4[]. -`6` will add a dependency on package:www/varnish6[]. +`INSTALL_TARGET`:: +Цель для `install`. По умолчанию `install`. [[uses-webplugin]] == `webplugin` -Possible arguments: (none), `ARGS` +Возможные аргументы: (нет), `ARGS` -Automatically create and remove symbolic links for each application that supports the webplugin framework. -`ARGS` can be one of: +Автоматически создавать и удалять символические ссылки для каждого приложения, поддерживающего фреймворк webplugin. `ARGS` может быть одним из: -* `gecko`: support plug-ins based on Gecko -* `native`: support plug-ins for Gecko, Opera, and WebKit-GTK -* `linux`: support Linux plug-ins -* `all` (default, implicit): support all plug-in types -* (individual entries): support only the browsers listed +* `gecko`: поддержка плагинов на основе Gecko +* `native`: поддержка плагинов для Gecko, Opera и WebKit-GTK +* `linux`: поддержка Linux плагинов +* `all` (по умолчанию, неявно): поддержка всех типов плагинов +* (отдельные записи): поддерживаются только перечисленные браузеры -These variables can be adjusted: +Эти переменные можно настроить: -* `WEBPLUGIN_FILES`: No default, must be set manually. The plug-in files to install. -* `WEBPLUGIN_DIR`: The directory to install the plug-in files to, default [.filename]#PREFIX/lib/browser_plugins/WEBPLUGIN_NAME#. Set this if the port installs plug-in files outside of the default directory to prevent broken symbolic links. -* `WEBPLUGIN_NAME`: The final directory to install the plug-in files into, default `PKGBASE`. +* `WEBPLUGIN_FILES`: Значение по умолчанию отсутствует, должно быть установлено вручную. Файлы плагинов для установки. +* `WEBPLUGIN_DIR`: Каталог для установки файлов плагина, по умолчанию [.filename]#PREFIX/lib/browser_plugins/WEBPLUGIN_NAME#. Установите это значение, если порт устанавливает файлы плагина вне стандартного каталога, чтобы избежать битых символических ссылок. +* `WEBPLUGIN_NAME`: Конечный каталог для установки файлов плагина, по умолчанию `PKGBASE`. [[uses-xfce]] == `xfce` -Possible arguments: (none), `gtk2` +Возможные аргументы: (нет), `gtk2` -Provide support for Xfce related ports. -See crossref:special[using-xfce,Using Xfce] for details. +Предоставить поддержку для портов, связанных с Xfce. Подробности см. в crossref:special[using-xfce,Использование Xfce]. -The `gtk2` argument specifies that the port requires GTK2 support. -It adds additional features provided by some core components, for example, package:x11/libxfce4menu[] and package:x11-wm/xfce4-panel[]. +Аргумент `gtk2` указывает, что порт требует поддержки GTK2. Он добавляет дополнительные возможности, предоставляемые некоторыми основными компонентами, например, package:x11/libxfce4menu[] и package:x11-wm/xfce4-panel[]. [[uses-xorg]] == `xorg` -Possible arguments: (none) +Возможные аргументы: (отсутствуют) -Provides an easy way to depend on X.org components. -The components should be listed in `USE_XORG`. -The available components are: +Предоставляет простой способ зависеть от компонентов X.org. Компоненты должны быть перечислены в `USE_XORG`. Доступные компоненты: [[using-x11-components]] -.Available X.Org Components +.Доступные компоненты X.Org [cols="1,1", frame="none", options="header"] |=== -| Name -| Description +| Имя +| Описание |`dmx` -|DMX extension library +|Библиотека расширений DMX |`fontenc` -|The fontenc Library +|Библиотека fontenc |`fontutil` -|Create an index of X font files in a directory +|Создать индекс файлов шрифтов X в каталоге |`ice` -|Inter Client Exchange library for X11 +|Библиотека Inter Client Exchange для X11 |`libfs` -|The FS library +|Библиотека FS |`pciaccess` -|Generic PCI access library +|Универсальная библиотека доступа к PCI |`pixman` -|Low-level pixel manipulation library +|Библиотека для низкоуровневого управления пикселями |`sm` -|Session Management library for X11 +|Библиотека управления сеансами для X11 |`x11` -|X11 library +|Библиотека X11 |`xau` -|Authentication Protocol library for X11 +|Библиотека протокола аутентификации для X11 |`xaw` -|X Athena Widgets library +|Библиотека X Athena Widgets |`xaw6` -|X Athena Widgets library +|Библиотека X Athena Widgets |`xaw7` -|X Athena Widgets library +|Библиотека X Athena Widgets |`xbitmaps` -|X.Org bitmaps data +|Данные растровых изображений X.Org |`xcb` -|The X protocol C-language Binding (XCB) library +|Библиотека с интерфейсом языка С для X протокола (XCB) |`xcomposite` -|X Composite extension library +|Библиотека расширения X Composite |`xcursor` -|X client-side cursor loading library +|X библиотека загрузки курсоров на стороне клиента |`xdamage` -|X Damage extension library +|Библиотека расширения X Damage |`xdmcp` -|X Display Manager Control Protocol library +|Библиотека протокола управления дисплейным менеджером X (XDMCP) |`xext` -|X11 Extension library +|Библиотека расширений X11 |`xfixes` -|X Fixes extension library +|Библиотека расширений X Fixes |`xfont` -|X font library +|Библиотека шрифтов X |`xfont2` -|X font library +|Библиотека шрифтов X |`xft` -|Client-sided font API for X applications +|Клиентский API шрифтов для приложений X |`xi` -|X Input extension library +|Библиотека расширения X Input |`xinerama` -|X11 Xinerama library +|Библиотека X11 Xinerama |`xkbfile` -|XKB file library +|Библиотека файлов XKB |`xmu` -|X Miscellaneous Utilities libraries +|Библиотека X Miscellaneous Utilities |`xmuu` -|X Miscellaneous Utilities libraries +|Библиотека X Miscellaneous Utilities |`xorg-macros` -|X.Org development aclocal macros +|X.Org макросы разработки aclocal |`xorg-server` -|X.Org X server and related programs +|Сервер X.Org X и относящиеся к нему программы |`xorgproto` -|xorg protocol headers +|Заголовочные файлы протокола xorg |`xpm` -|X Pixmap library +|Библиотека X Pixmap |`xpresent` -|X Present Extension library +|Библиотека расширений X Present |`xrandr` -|X Resize and Rotate extension library +|Библиотека расширений X Resize and Rotate |`xrender` -|X Render extension library +|Библиотека расширения X Render |`xres` -|X Resource usage library +|Библиотека мониторинга ресурсов X Resource usage |`xscrnsaver` -|The XScrnSaver library +|Библиотека XScrnSaver |`xshmfence` -|Shared memory 'SyncFence' synchronization primitive +|Примитив синхронизации "SyncFence" в разделяемой памяти |`xt` -|X Toolkit library +|Библиотека X Toolkit |`xtrans` -|Abstract network code for X +|Абстрактный сетевой код для X |`xtst` -|X Test extension +|Расширение X Test |`xv` -|X Video Extension library +|Библиотека расширения X Video |`xvmc` -|X Video Extension Motion Compensation library +|Библиотека X Video Extension Motion Compensation |`xxf86dga` -|X DGA Extension +|Расширение X DGA |`xxf86vm` -|X Vidmode Extension +|Расширение X Vidmode |=== [[uses-xorg-cat]] == `xorg-cat` -Possible arguments: `app`, `data`, `doc`, `driver`, `font`, `lib`, `proto`, `util`, `xserver` and (none) or one off `autotools` (default), `meson` +Возможные аргументы: `app`, `data`, `doc`, `driver`, `font`, `lib`, `proto`, `util`, `xserver` и (без аргументов) или один из `autotools` (по умолчанию), `meson` -Provide support for building Xorg components. -It takes care of setting up common dependencies and an appropriate configuration environment needed. -This is intended only for Xorg components. +Обеспечивает поддержку сборки компонентов Xorg. Управляет настройкой общих зависимостей и необходимой конфигурационной среды. Предназначено только для компонентов Xorg. -The category has to match upstream categories. +Категория должна соответствовать категориям вышестоящего репозитория. -The second argument is the build system to use. -autotools is the default, but meson is also supported. +Второй аргумент — используемая система сборки. По умолчанию используется `autotools`, но также поддерживается `meson`. [[uses-zip]] == `zip` -Possible arguments: (none), `infozip` +Возможные аргументы: (нет), `infozip` -Indicates that the distribution files use the ZIP compression algorithm. -For files using the InfoZip algorithm the `infozip` argument must be passed to set the appropriate dependencies. +Указывает, что файлы дистрибутива используют алгоритм сжатия ZIP. Для файлов, использующих алгоритм InfoZip, необходимо передать аргумент `infozip`, чтобы установить соответствующие зависимости. diff --git a/documentation/content/ru/books/porters-handbook/uses/_index.po b/documentation/content/ru/books/porters-handbook/uses/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/uses/_index.po @@ -0,0 +1,9971 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1 +#, no-wrap +msgid "USES macros make it easy to declare requirements and settings for a FreeBSD Port" +msgstr "Макросы USES упрощают объявление требований и настроек для порта FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1 +#, no-wrap +msgid "Chapter 17. Using USES Macros" +msgstr "Глава 17. Использование макроса USES" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:14 +#, no-wrap +msgid "Using `USES` Macros" +msgstr "Использование макроса `USES`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:52 +#, no-wrap +msgid "An Introduction to `USES`" +msgstr "Введение в `USES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:56 +msgid "" +"`USES` macros make it easy to declare requirements and settings for a port. " +"They can add dependencies, change building behavior, add metadata to " +"packages, and so on, all by selecting simple, preset values." +msgstr "" +"Макросы `USES` упрощают объявление требований и настроек для порта. Они " +"могут добавлять зависимости, изменять поведение при сборке, добавлять " +"метаданные в пакеты и так далее, просто выбирая предустановленные значения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:60 +msgid "" +"Each section in this chapter describes a possible value for `USES`, along " +"with its possible arguments. Arguments are appended to the value after a " +"colon (`:`). Multiple arguments are separated by commas (`,`)." +msgstr "" +"Каждый раздел в этой главе описывает возможное значение для `USES`, а также " +"его возможные аргументы. Аргументы добавляются к значению после двоеточия " +"(`:`). Несколько аргументов разделяются запятыми (`,`)." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:62 +#, no-wrap +msgid "Using Multiple Values" +msgstr "Использование нескольких значений" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:68 +#, no-wrap +msgid "USES=\tbison perl\n" +msgstr "USES=\tbison perl\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:72 +#, no-wrap +msgid "Adding an Argument" +msgstr "Добавление аргумента" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:78 +#, no-wrap +msgid "USES=\ttar:xz\n" +msgstr "USES=\ttar:xz\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:82 +#, no-wrap +msgid "Adding Multiple Arguments" +msgstr "Добавление нескольких аргументов" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:88 +#, no-wrap +msgid "USES=\tdrupal:7,theme\n" +msgstr "USES=\tdrupal:7,theme\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:92 +#, no-wrap +msgid "Mixing it All Together" +msgstr "Смешивая Все Вместе" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:98 +#, no-wrap +msgid "USES=\tpgsql:9.3+ cpe python:2.7,build\n" +msgstr "USES=\tpgsql:9.3+ cpe python:2.7,build\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:102 +#, no-wrap +msgid "`7z`" +msgstr "`7z`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:105 +msgid "Possible arguments: (none), `p7zip`, `partial`" +msgstr "Возможные аргументы: (нет), `p7zip`, `partial`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:109 +msgid "" +"Extract using man:7z[1] instead of man:bsdtar[1] and sets " +"`EXTRACT_SUFX=.7z`. The `p7zip` option forces a dependency on the `7z` from " +"package:archivers/p7zip[] if the one from the base system is not able to " +"extract the files. `EXTRACT_SUFX` is not changed if the `partial` option is " +"used, this can be used if the main distribution file does not have a " +"[.filename]#.7z# extension." +msgstr "" +"Извлечение с использованием man:7z[1] вместо man:bsdtar[1] и устанавливает " +"`EXTRACT_SUFX=.7z`. Опция `p7zip` добавляет зависимость от `7z` из " +"package:archivers/p7zip[], если версия из базовой системы не может извлечь " +"файлы. `EXTRACT_SUFX` не изменяется, если используется опция `partial`, это " +"может быть полезно, если основной дистрибутивный файл не имеет расширения " +"[.filename]#.7z#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:111 +#, no-wrap +msgid "`ada`" +msgstr "`ada`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:114 +msgid "Possible arguments: (none), `6`, `12`, `(run)`" +msgstr "Возможные аргументы: (нет), `6`, `12`, `(запуск)`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:117 +msgid "" +"Depends on an Ada-capable compiler, and sets `CC` accordingly. Defaults to " +"use `gcc6-aux` from ports." +msgstr "" +"Зависит от компилятора с поддержкой Ada и устанавливает `CC` соответствующим " +"образом. По умолчанию используется `gcc6-aux` из портов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:119 +#, no-wrap +msgid "`angr`" +msgstr "`angr`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:122 +msgid "Possible arguments: `binaries`, `nose`" +msgstr "Возможные аргументы: `binaries`, `nose`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:124 +msgid "" +"Provide support for ports that need the https://github.com/angr/" +"angr[angrinary analysis platform]." +msgstr "" +"Обеспечить поддержку портов, требующих https://github.com/angr/" +"angr[платформу бинарного анализа angr]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:127 +msgid "" +"If the `binaries` argument is present, the port requires the special `angr` " +"binaries for testing." +msgstr "" +"Если присутствует аргумент `binaries`, для тестирования порта требуются " +"специальные бинарные файлы `angr`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:130 +msgid "" +"If the `nose` argument is present, the port uses `nosetests` for the test " +"target. This argument implies `USES=python:test`." +msgstr "" +"Если присутствует аргумент `nose`, порт использует `nosetests` для цели " +"тестирования. Этот аргумент подразумевает `USES=python:test`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:132 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:203 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1331 +msgid "The framework provides the following variables to be set by the port:" +msgstr "" +"Фреймворк предоставляет следующие переменные, которые могут быть установлены " +"портом:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:133 +#, no-wrap +msgid "`ANGR_VERSION`" +msgstr "`ANGR_VERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:135 +msgid "The version of the `angr` project programs." +msgstr "Версия программ проекта `angr`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:136 +#, no-wrap +msgid "`ANGR_BINARIES_TAGNAME`" +msgstr "`ANGR_BINARIES_TAGNAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:138 +msgid "The tagname of the `angr` binaries." +msgstr "Имя тега для бинарных файлов `angr`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:139 +#, no-wrap +msgid "`ANGR_NOSETESTS`" +msgstr "`ANGR_NOSETESTS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:141 +msgid "The path to the `nosetests` program." +msgstr "Путь к программе `nosetests`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:143 +#, no-wrap +msgid "`ansible`" +msgstr "`ansible`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:146 +msgid "Possible arguments: `env`, `module`, `plugin`" +msgstr "Возможные аргументы: `env`, `module`, `plugin`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:148 +msgid "Provide support for ports depending on package:sysutils/ansible[]." +msgstr "" +"Обеспечивает поддержку портов, зависящих от пакета package:sysutils/" +"ansible[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:151 +msgid "" +"If the `env` argument is present, the port does not depend on " +"package:sysutils/ansible[] but needs some Ansible variables set." +msgstr "" +"Если присутствует аргумент `env`, порт не зависит от package:sysutils/" +"ansible[], но требует установки некоторых переменных Ansible." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:153 +msgid "If the `module` argument is present then the port is an Ansible module." +msgstr "Если присутствует аргумент `module`, то порт является модулем Ansible." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:155 +msgid "If the `plugin` argument is present then the port is an Ansible plugin." +msgstr "" +"Если присутствует аргумент `plugin`, то порт является плагином Ansible." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:157 +msgid "The framework exposes the following variables to the port:" +msgstr "Фреймворк предоставляет следующие переменные порту:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:158 +#, no-wrap +msgid "`ANSIBLE_CMD`" +msgstr "`ANSIBLE_CMD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:160 +msgid "Path to the ansible program." +msgstr "Путь к программе ansible." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:161 +#, no-wrap +msgid "`ANSIBLE_DOC_CMD`" +msgstr "`ANSIBLE_DOC_CMD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:163 +msgid "Path to the ansible-doc program." +msgstr "Путь к программе ansible-doc." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:164 +#, no-wrap +msgid "`ANSIBLE_RUN_DEPENDS`" +msgstr "`ANSIBLE_RUN_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:166 +msgid "RUN_DEPENDS with the Ansible port." +msgstr "RUN_DEPENDS с портом Ansible." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:167 +#, no-wrap +msgid "`ANSIBLE_DATADIR`" +msgstr "`ANSIBLE_DATADIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:169 +msgid "" +"Path to the root of the directory structure where all Ansible's modules and " +"plugins are stored." +msgstr "" +"Путь к корню структуры каталогов, где хранятся все модули и плагины Ansible." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:170 +#, no-wrap +msgid "`ANSIBLE_ETCDIR`" +msgstr "`ANSIBLE_ETCDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:172 +msgid "Path to the Ansible etc directory." +msgstr "Путь к каталогу etc Ansible." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:173 +#, no-wrap +msgid "`ANSIBLE_PLUGINS_PREFIX`" +msgstr "`ANSIBLE_PLUGINS_PREFIX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:175 +msgid "Path to the \"plugins\" directory within `${ANSIBLE_DATADIR}`." +msgstr "Путь к директории \"plugins\" в `${ANSIBLE_DATADIR}`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:175 +#, no-wrap +msgid "`ANSIBLE_MODULESDIR`" +msgstr "`ANSIBLE_MODULESDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:177 +msgid "Path to the directory for local Ansible modules." +msgstr "Путь к каталогу для локальных модулей Ansible." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:178 +#, no-wrap +msgid "`ANSIBLE_PLUGINSDIR`" +msgstr "`ANSIBLE_PLUGINSDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:180 +msgid "Path to the directory for local Ansible plugins." +msgstr "Путь к каталогу для локальных плагинов Ansible." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:181 +#, no-wrap +msgid "`ANSIBLE_PLUGIN_TYPE`" +msgstr "`ANSIBLE_PLUGIN_TYPE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:183 +msgid "Ansible plugin type (e.g., \"connection\", \"inventory\", or \"vars\")." +msgstr "" +"Тип плагина Ansible (например, \"connection\", \"inventory\" или \"vars\")." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:185 +#, no-wrap +msgid "`apache`" +msgstr "`apache`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:188 +msgid "Possible arguments: (none), `2.4`, `build`, `run`, `server`" +msgstr "Возможные аргументы: (нет), `2.4`, `build`, `run`, `server`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:190 +msgid "Provide support for ports depending on the Apache web server." +msgstr "Обеспечивает поддержку портов, зависящих от веб-сервера Apache." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:194 +msgid "" +"The version argument can be used to require a specific Apache httpd " +"version. It is possible to set a specific version (`USES=apache:2.4`) a " +"minimum version (`USES=apache:2.4+`) or a maximum version " +"(`USES=apache:-2.4`)." +msgstr "" +"Аргумент `version` можно использовать для указания конкретной версии Apache " +"httpd. Можно задать определённую версию (`USES=apache:2.4`), минимальную " +"версию (`USES=apache:2.4+`) или максимальную версию (`USES=apache:-2.4`)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:196 +msgid "" +"If the `build` argument is provided a build dependency is added to the port." +msgstr "" +"Если указан аргумент `build`, к порту добавляется зависимость для сборки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:198 +msgid "" +"If the `run` argument is provided a run dependency is added to the port." +msgstr "" +"Если указан аргумент `run`, к порту добавляется зависимость времени " +"выполнения." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:201 +msgid "" +"If the `server` argument is provided then it indicates the port is a server " +"port." +msgstr "" +"Если указан аргумент `server`, это означает, что порт является серверным." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:204 +#, no-wrap +msgid "`AP_FAST_BUILD`" +msgstr "`AP_FAST_BUILD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:206 +msgid "Automatic module build" +msgstr "Автоматическая сборка модуля" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:207 +#, no-wrap +msgid "`AP_GENPLIST`" +msgstr "`AP_GENPLIST`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:209 +msgid "" +"Automatic `PLIST` generation plus add the module disabled into " +"[.filename]#httpd.conf# (only if no `pkg-plist` exist)" +msgstr "" +"Автоматическое создание `PLIST` плюс добавление модуля в отключенном " +"состоянии в [.filename]#httpd.conf# (только если нет файла `pkg-plist`)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:210 +#, no-wrap +msgid "`MODULENAME`" +msgstr "`MODULENAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:212 +msgid "Name of the Apache module. Default: `${PORTNAME}`" +msgstr "Имя модуля Apache. По умолчанию: `${PORTNAME}`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:213 +#, no-wrap +msgid "`SHORTMODNAME`" +msgstr "`SHORTMODNAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:215 +msgid "Short name of the Apache module. Default: `${MODULENAME:S/mod_//}`" +msgstr "Краткое название модуля Apache. По умолчанию: `${MODULENAME:S/mod_//}`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:216 +#, no-wrap +msgid "`SRC_FILE`" +msgstr "`SRC_FILE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:218 +msgid "Source file of the APACHE module. Default: `${MODULENAME}.c`" +msgstr "Исходный файл модуля APACHE. По умолчанию: `${MODULENAME}.c`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:220 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1544 +msgid "The following variables can be accessed by the port:" +msgstr "Следующие переменные могут быть доступны для порта:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:221 +#, no-wrap +msgid "`APACHE_VERSION`" +msgstr "`APACHE_VERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:223 +msgid "The major-minor release version of the chosen Apache server, e.g. 2.4" +msgstr "" +"Основная-вспомогательная версия выбранного сервера Apache, например 2.4" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:224 +#, no-wrap +msgid "`APACHEETCDIR`" +msgstr "`APACHEETCDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:226 +msgid "" +"Location of the Apache configuration directory. Default: [.filename]#$" +"{LOCALBASE}/etc/apache24#" +msgstr "" +"Расположение каталога конфигурации Apache. По умолчанию: [.filename]#$" +"{LOCALBASE}/etc/apache24#" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:227 +#, no-wrap +msgid "`APACHEINCLUDEDIR`" +msgstr "`APACHEINCLUDEDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:229 +msgid "" +"Location of the Apache include files Default: [.filename]#${LOCALBASE}/" +"include/apache24#" +msgstr "" +"Расположение include-файлов Apache. По умолчанию: [.filename]#${LOCALBASE}/" +"include/apache24#" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:230 +#, no-wrap +msgid "`APACHEMODDIR`" +msgstr "`APACHEMODDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:232 +msgid "" +"Location of the Apache modules Default: [.filename]#${LOCALBASE}/libxexec/" +"apache24#" +msgstr "" +"Расположение модулей Apache. По умолчанию: [.filename]#${LOCALBASE}/libxexec/" +"apache24#" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:234 +msgid "`APACHE_DEFAULT`::Default Apache version" +msgstr "`APACHE_DEFAULT`::Версия Apache по умолчанию" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:237 +#, no-wrap +msgid "`autoreconf`" +msgstr "`autoreconf`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:240 +msgid "Possible arguments: (none), `build`" +msgstr "Возможные аргументы: (нет), `build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:247 +msgid "" +"Runs `autoreconf`. It encapsulates the `aclocal`, `autoconf`, `autoheader`, " +"`automake`, `autopoint`, and `libtoolize` commands. Each command applies to " +"[.filename]#${AUTORECONF_WRKSRC}/configure.ac# or its old name, [.filename]#$" +"{AUTORECONF_WRKSRC}/configure.in#. If [.filename]#configure.ac# defines " +"subdirectories with their own [.filename]#configure.ac# using " +"`AC_CONFIG_SUBDIRS`, `autoreconf` will recursively update those as well. " +"The `:build` argument only adds build time dependencies on those tools but " +"does not run `autoreconf`. A port can set `AUTORECONF_WRKSRC` if `WRKSRC` " +"does not contain the path to [.filename]#configure.ac#." +msgstr "" +"Выполняет `autoreconf`. Эта команда объединяет функциональность `aclocal`, " +"`autoconf`, `autoheader`, `automake`, `autopoint` и `libtoolize`. Каждая из " +"этих команд применяется к [.filename]#${AUTORECONF_WRKSRC}/configure.ac# или " +"его старому названию [.filename]#${AUTORECONF_WRKSRC}/configure.in#. Если " +"[.filename]#configure.ac# определяет подкаталоги с их собственными " +"[.filename]#configure.ac# с использованием `AC_CONFIG_SUBDIRS`, `autoreconf` " +"также рекурсивно обновит их. Аргумент `:build` только добавляет зависимости " +"времени сборки на эти инструменты, но не запускает `autoreconf`. Порт может " +"установить `AUTORECONF_WRKSRC`, если `WRKSRC` не содержит путь к " +"[.filename]#configure.ac#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:249 +#, no-wrap +msgid "`azurepy`" +msgstr "`azurepy`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:252 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:313 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:399 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:408 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:417 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:519 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:548 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:559 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:575 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:663 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:797 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:867 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:904 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:937 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:944 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1099 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1170 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1292 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1556 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1563 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1571 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1739 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1758 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1765 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1772 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1811 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1819 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1872 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1933 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1961 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2039 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2061 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2505 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2551 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2560 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2723 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2798 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2806 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2861 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2877 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2915 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2970 +msgid "Possible arguments: (none)" +msgstr "Возможные аргументы: (отсутствуют)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:255 +msgid "" +"Provide support for `py-azure*` ports. Removes `azure` namespaces and " +"cleans up common files." +msgstr "" +"Обеспечить поддержку портов `py-azure*`. Удаляет пространства имен `azure` и " +"очищает общие файлы." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:257 +#, no-wrap +msgid "`blaslapack`" +msgstr "`blaslapack`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:260 +msgid "" +"Possible arguments: (none), `atlas`, `netlib` (default), `gotoblas`, " +"`openblas`" +msgstr "" +"Возможные аргументы: (нет), `atlas`, `netlib` (по умолчанию), `gotoblas`, " +"`openblas`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:262 +msgid "Adds dependencies on Blas / Lapack libraries." +msgstr "Добавляет зависимости от библиотек Blas / Lapack." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:264 +#, no-wrap +msgid "`bdb`" +msgstr "`bdb`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:267 +msgid "Possible arguments: (none), `5` (default), `18`" +msgstr "Возможные аргументы: (отсутствуют), `5` (по умолчанию), `18`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:275 +msgid "" +"Add dependency on the Berkeley DB library. Default to package:databases/" +"db5[]. It can also depend on package:databases/db18[] when using the `:18` " +"argument. It is possible to declare a range of acceptable values, `:5+` " +"finds the highest installed version, and falls back to 5 if nothing else is " +"installed. `INVALID_BDB_VER` can be used to specify versions which do not " +"work with this port. The framework exposes the following variables to the " +"port:" +msgstr "" +"Добавить зависимость от библиотеки Berkeley DB. По умолчанию используется " +"package:databases/db5[]. Также может зависеть от package:databases/db18[] " +"при использовании аргумента `:18`. Можно объявить диапазон допустимых " +"значений: `:5+` находит самую высокую установленную версию и возвращается к " +"5, если ничего другого не установлено. `INVALID_BDB_VER` можно использовать " +"для указания версий, которые не работают с этим портом. Фреймворк " +"предоставляет порту следующие переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:276 +#, no-wrap +msgid "`BDB_LIB_NAME`" +msgstr "`BDB_LIB_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:279 +msgid "" +"The name of the Berkeley DB library. For example, when using " +"package:databases/db5[], it contains `db-5.3`." +msgstr "" +"Имя библиотеки Berkeley DB. Например, при использовании package:databases/" +"db5[] она содержит `db-5.3`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:280 +#, no-wrap +msgid "`BDB_LIB_CXX_NAME`" +msgstr "`BDB_LIB_CXX_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:283 +msgid "" +"The name of the Berkeley DBC++ library. For example, when using " +"package:databases/db5[], it contains `db_cxx-5.3`." +msgstr "" +"Название библиотеки Berkeley DBC++. Например, при использовании " +"package:databases/db5[] она содержит `db_cxx-5.3`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:284 +#, no-wrap +msgid "`BDB_INCLUDE_DIR`" +msgstr "`BDB_INCLUDE_DIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:287 +msgid "" +"The location of the Berkeley DB include directory. For example, when using " +"package:databases/db5[], it will contain `${LOCALBASE}/include/db5`." +msgstr "" +"Расположение каталога с заголовочными файлами Berkeley DB. Например, при " +"использовании пакета package:databases/db5[], он будет содержать `$" +"{LOCALBASE}/include/db5`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:288 +#, no-wrap +msgid "`BDB_LIB_DIR`" +msgstr "`BDB_LIB_DIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:291 +msgid "" +"The location of the Berkeley DB library directory. For example, when using " +"package:databases/db5[], it contains `${LOCALBASE}/lib`." +msgstr "" +"Расположение каталога библиотеки Berkeley DB. Например, при использовании " +"package:databases/db5[], он содержит `${LOCALBASE}/lib`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:292 +#, no-wrap +msgid "`BDB_VER`" +msgstr "`BDB_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:295 +msgid "" +"The detected Berkeley DB version. For example, if using `USES=bdb:5+` and " +"Berkeley DB 18 is installed, it contains `18`." +msgstr "" +"Обнаруженная версия Berkeley DB. Например, при использовании `USES=bdb:5+` и " +"установленной Berkeley DB 18, будет содержать `18`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:300 +msgid "" +"package:databases/db48[] is deprecated and unsupported. It must not be used " +"by any port." +msgstr "" +"package:databases/db48[] устарел и не поддерживается. Он не должен " +"использоваться ни одним портом." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:303 +#, no-wrap +msgid "`bison`" +msgstr "`bison`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:306 +msgid "Possible arguments: (none), `build`, `run`, `both`" +msgstr "Возможные аргументы: (нет), `build`, `run`, `both`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:308 +msgid "" +"Uses package:devel/bison[] By default, with no arguments or with the `build` " +"argument, it implies `bison` is a build-time dependency, `run` implies a run-" +"time dependency, and `both` implies both run-time and build-time " +"dependencies." +msgstr "" +"Использует пакет package:devel/bison[] По умолчанию, без аргументов или с " +"аргументом `build`, подразумевается, что `bison` является зависимостью на " +"этапе сборки, `run` — зависимостью на этапе выполнения, а `both` — " +"зависимостью как на этапе сборки, так и на этапе выполнения." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:310 +#, no-wrap +msgid "`budgie`" +msgstr "`budgie`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:317 +msgid "" +"Provide support for the Budgie desktop environment. Use `USE_BUDGIE` to " +"select the components needed for the port. See crossref:special[using-" +"budgie,Using Budgie] for more information." +msgstr "" +"Предоставить поддержку окружения рабочего стола Budgie. Используйте " +"`USE_BUDGIE` для выбора необходимых компонентов порта. Дополнительную " +"информацию см. в разделе crossref:special[using-budgie,Использование Budgie]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:319 +#, no-wrap +msgid "`cabal`" +msgstr "`cabal`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:324 +msgid "" +"Ports should not be created for Haskell libraries, see " +"crossref:special[haskell-libs,Haskell Libraries] for more information." +msgstr "" +"Порты не следует создавать для библиотек Haskell, подробнее см. в " +"crossref:special[haskell-libs,Библиотеки Haskell]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:327 +msgid "Possible arguments: (none), `hpack`, `nodefault`" +msgstr "Возможные аргументы: (отсутствуют), `hpack`, `nodefault`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:335 +msgid "" +"Sets default values and targets used to build Haskell software using Cabal. " +"A build dependency on the Haskell compiler port (package:lang/ghc[]) is " +"added. If there is some other version of GHC already listed in the " +"`BUILD_DEPENDS` variable (for example, package:lang/ghc810[]), it would be " +"used instead. If the `hpack` argument is given, a build dependency on " +"package:devel/hs-hpack[] is added and `hpack` is invoked at configuration " +"step to generate .cabal file. If the `nodefault` argument is given, the " +"framework will not try to pull the main distribution file from the Hackage. " +"This argument is implicitly added if `USE_GITHUB` or `USE_GITLAB` is present." +msgstr "" +"Устанавливает значения и цели по умолчанию, используемые для сборки " +"программного обеспечения на Haskell с помощью Cabal. Добавляется зависимость " +"для сборки на порт компилятора Haskell (package:lang/ghc[]). Если в " +"переменной `BUILD_DEPENDS` уже указана другая версия GHC (например, " +"package:lang/ghc810[]), она будет использована вместо версии по умолчанию. " +"Если указан аргумент `hpack`, добавляется зависимость для сборки на " +"package:devel/hs-hpack[], и `hpack` вызывается на этапе конфигурации для " +"генерации файла .cabal. Если указан аргумент `nodefault`, фреймворк не будет " +"пытаться загрузить основной дистрибутивный файл из Hackage. Этот аргумент " +"добавляется неявно, если присутствует `USE_GITHUB` или `USE_GITLAB`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:337 +msgid "The framework provides the following variables:" +msgstr "Фреймворк предоставляет следующие переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:338 +#, no-wrap +msgid "`CABAL_REVISION`" +msgstr "`CABAL_REVISION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:341 +msgid "" +"Haskell packages hosted on Hackage may have revisions. Set this knob to an " +"integer number to pull in revised package description." +msgstr "" +"Пакеты Haskell, размещённые на Hackage, могут иметь ревизии. Установите этот " +"параметр в целочисленное значение, чтобы использовать исправленное описание " +"пакета." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:342 +#, no-wrap +msgid "`USE_CABAL`" +msgstr "`USE_CABAL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:347 +msgid "" +"If the software uses Haskell dependencies, list them in this variable. Each " +"item should be present on Hackage and be listed in form `packagename-" +"_0.1.2_`. Dependencies can have revisions too, which are specified after " +"the `_` symbol. Automatic generation of the dependency list is supported, " +"see crossref:special[using-cabal,Building Haskell Applications with `cabal`]." +msgstr "" +"Если программное обеспечение использует зависимости на Haskell, перечислите " +"их в этой переменной. Каждый элемент должен присутствовать на Hackage и быть " +"указан в формате `имяпакета-_0.1.2_`. Зависимости также могут иметь ревизии, " +"которые указываются после символа `_`. Поддерживается автоматическое " +"формирование списка зависимостей, см. crossref:special[using-cabal,Сборка " +"приложений на Haskell с помощью `cabal`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:348 +#, no-wrap +msgid "`CABAL_FLAGS`" +msgstr "`CABAL_FLAGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:353 +msgid "" +"List of flags to be passed to `cabal-install` during the configuring and " +"building stage. The flags are passed verbatim. This variable is usually " +"used to enable or disable flags that are declared in the .cabal file. Pass " +"`foo` to enable the `foo` flag and `-foo` to disable it." +msgstr "" +"Список флагов, передаваемых `cabal-install` на этапах настройки и сборки. " +"Флаги передаются в исходном виде. Эта переменная обычно используется для " +"включения или отключения флагов, объявленных в файле .cabal. Передайте " +"`foo`, чтобы включить флаг `foo`, и `-foo`, чтобы отключить его." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:354 +#, no-wrap +msgid "`CABAL_EXECUTABLES`" +msgstr "`CABAL_EXECUTABLES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:360 +msgid "" +"List of executable files installed by the port. Default value: `${PORTNAME}" +"`. Consult the .cabal file of the project being ported to get a list of " +"possible values for this variable. Each value corresponds to an `executable` " +"stanza in the .cabal file. Items from this list are automatically added to " +"pkg-plist." +msgstr "" +"Список исполняемых файлов, устанавливаемых портом. Значение по умолчанию: `$" +"{PORTNAME}`. Для получения списка возможных значений этой переменной " +"обратитесь к файлу .cabal портируемого проекта. Каждое значение " +"соответствует разделу `executable` в файле .cabal. Элементы из этого списка " +"автоматически добавляются в pkg-plist." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:361 +#, no-wrap +msgid "`SKIP_CABAL_PLIST`" +msgstr "`SKIP_CABAL_PLIST`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:363 +msgid "If defined, do not add items from `${CABAL_EXECUTABLES}` to pkg-plist." +msgstr "" +"Если определено, не добавлять элементы из `${CABAL_EXECUTABLES}` в pkg-plist." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:364 +#, no-wrap +msgid "`opt_USE_CABAL`" +msgstr "`opt_USE_CABAL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:366 +msgid "Adds items to `${USE_CABAL}` depending on `opt` option." +msgstr "Добавляет элементы в `${USE_CABAL}` в зависимости от опции `opt`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:367 +#, no-wrap +msgid "`opt_CABAL_EXECUTABLES`" +msgstr "`opt_CABAL_EXECUTABLES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:369 +msgid "Adds items to `${CABAL_EXECUTABLES}` depending on `opt` option." +msgstr "" +"Добавляет элементы в `${CABAL_EXECUTABLES}` в зависимости от опции `opt`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:370 +#, no-wrap +msgid "`opt_CABAL_FLAGS`" +msgstr "`opt_CABAL_FLAGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:374 +msgid "" +"If `opt` is enabled, append the value to `${CABAL_FLAGS}`. Otherwise, " +"append `-value` to disable the flag. Note that this behavior is slightly " +"different from the plain `CABAL_FLAGS` as it does not accept values starting " +"with `-`." +msgstr "" +"Если `opt` включён, добавить значение к `${CABAL_FLAGS}`. В противном случае " +"добавить `-value`, чтобы отключить флаг. Обратите внимание, что это " +"поведение немного отличается от простого `CABAL_FLAGS`, так как оно не " +"принимает значения, начинающиеся с `-`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:375 +#, no-wrap +msgid "`CABAL_WRAPPER_SCRIPTS`" +msgstr "`CABAL_WRAPPER_SCRIPTS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:380 +msgid "" +"A subset of `${CABAL_EXECUTABLES}` containing Haskell programs to be wrapped " +"into a shell script that sets `*_datadir` environment variables before " +"running the program. This also causes the actual Haskell binary to be " +"installed under `libexec/cabal/` directory. This knob is needed for Haskell " +"programs that install their data files under `share/` directory." +msgstr "" +"Подмножество `${CABAL_EXECUTABLES}`, содержащее программы на Haskell, " +"которые будут обёрнуты в shell-скрипт, устанавливающий переменные окружения " +"`*_datadir` перед запуском программы. Это также приводит к тому, что " +"фактический бинарный файл Haskell устанавливается в директорию `libexec/" +"cabal/`. Данная настройка необходима для программ на Haskell, которые " +"устанавливают свои файлы данных в директорию `share/`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:381 +#, no-wrap +msgid "`FOO_DATADIR_VARS`" +msgstr "`FOO_DATADIR_VARS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:385 +msgid "" +"List of extra Haskell packages, whose data files should be accessible by the " +"executable named `FOO`. The executable should be a part of `$" +"{CABAL_WRAPPER_SCRIPTS}`. Haskell packages listed there should not have a " +"version suffix." +msgstr "" +"Список дополнительных пакетов Haskell, чьи файлы данных должны быть доступны " +"исполняемому файлу с именем `FOO`. Исполняемый файл должен быть частью `$" +"{CABAL_WRAPPER_SCRIPTS}`. Указанные пакеты Haskell не должны иметь суффикса " +"версии." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:386 +#, no-wrap +msgid "`CABAL_PROJECT`" +msgstr "`CABAL_PROJECT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:391 +msgid "" +"Some Haskell projects may already have a `cabal.project` file, which is also " +"generated by the ports framework. If that is the case, use this variable to " +"specify what to do with the original `cabal.project`. Setting this variable " +"to `remove` will cause the original file to be removed. Setting this " +"variable to `append` will:" +msgstr "" +"Некоторые проекты на Haskell могут уже иметь файл `cabal.project`, который " +"также создаётся фреймворком портов. Если это так, используйте эту " +"переменную, чтобы указать, что делать с оригинальным файлом `cabal.project`. " +"Установка этой переменной в значение `remove` приведёт к удалению " +"оригинального файла. Установка этой переменной в значение `append` приведёт " +"к следующему:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:392 +msgid "" +"Move the original file to `cabal.project.${PORTNAME}` during the `extract` " +"stage." +msgstr "" +"Исходный файл переместится в `cabal.project.${PORTNAME}` на этапе `extract`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:394 +msgid "" +"Concatenate the original `cabal.project.${PORTNAME}` and the generated " +"`cabal.project` into a single file after the `patch` stage. Using `append` " +"makes it possible to perform patching on the original file before it gets " +"merged." +msgstr "" +"Исходный файл `cabal.project.${PORTNAME}` и сгенерированный `cabal.project` " +"объединятся в один файл после этапа `patch`. Использование `append` " +"позволяет выполнить патчинг исходного файла перед его объединением." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:396 +#, no-wrap +msgid "`cargo`" +msgstr "`cargo`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:403 +msgid "" +"Uses Cargo for configuring, building, and testing. It can be used to port " +"Rust applications that use the Cargo build system. For more information see " +"crossref:special[using-cargo,Building Rust Applications with `cargo`]." +msgstr "" +"Использует Cargo для настройки, сборки и тестирования. Может применяться для " +"портирования приложений на Rust, использующих систему сборки Cargo. " +"Дополнительную информацию смотрите в crossref:special[using-cargo,Сборка " +"приложений на Rust с помощью `cargo`]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:405 +#, no-wrap +msgid "`charsetfix`" +msgstr "`charsetfix`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:412 +msgid "" +"Prevents the port from installing [.filename]#charset.alias#. This must be " +"installed only by package:converters/libiconv[]. `CHARSETFIX_MAKEFILEIN` " +"can be set to a path relative to `WRKSRC` if [.filename]#charset.alias# is " +"not installed by [.filename]#${WRKSRC}/Makefile.in#." +msgstr "" +"Предотвращает установку файла [.filename]#charset.alias# портом. Этот файл " +"должен устанавливаться только пакетом package:converters/libiconv[]. " +"Переменная `CHARSETFIX_MAKEFILEIN` может быть установлена в путь " +"относительно `WRKSRC`, если [.filename]#charset.alias# не устанавливается " +"через [.filename]#${WRKSRC}/Makefile.in#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:414 +#, no-wrap +msgid "`cl`" +msgstr "`cl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:419 +msgid "Provides support for Common Lisp ports." +msgstr "Предоставляет поддержку портов Common Lisp." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:421 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:627 +msgid "" +"The framework provides the following variables that can be set by ports:" +msgstr "" +"Фреймворк предоставляет следующие переменные, которые могут быть установлены " +"портами:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:422 +#, no-wrap +msgid "`ASDF_MODULES`" +msgstr "`ASDF_MODULES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:424 +msgid "" +"List of `ASDF` modules to build when `FASL_TARGET` is set (defaults to " +"`PORTNAME`)" +msgstr "" +"Список модулей `ASDF` для сборки, когда установлен `FASL_TARGET` (по " +"умолчанию `PORTNAME`)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:425 +#, no-wrap +msgid "`FASL_TARGET`" +msgstr "`FASL_TARGET`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:427 +msgid "Build fasl variant of port (one of `ccl`, `clisp`, or `sbcl`)" +msgstr "Собрать fasl вариант порта (один из `ccl`, `clisp` или `sbcl`)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:428 +#, no-wrap +msgid "`USE_ASDF`" +msgstr "`USE_ASDF`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:430 +msgid "Depend on package:devel/cl-asdf[]" +msgstr "Зависит от пакета package:devel/cl-asdf[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:431 +#, no-wrap +msgid "`USE_ASDF_FASL`" +msgstr "`USE_ASDF_FASL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:433 +msgid "Depend on `devel/cl-asdf-`" +msgstr "Зависит от `devel/cl-asdf-`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:434 +#, no-wrap +msgid "`USE_CCL`" +msgstr "`USE_CCL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:436 +msgid "Depend on package:lang/ccl[]; implied when `FASL_TARGET=ccl`" +msgstr "" +"Зависит от пакета package:lang/ccl[]; подразумевается при `FASL_TARGET=ccl`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:437 +#, no-wrap +msgid "`USE_CLISP`" +msgstr "`USE_CLISP`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:439 +msgid "Depend on package:lang/clisp[]; implied when `FASL_TARGET=clisp`" +msgstr "" +"Зависит от пакета package:lang/clisp[]; подразумевается при " +"`FASL_TARGET=clisp`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:440 +#, no-wrap +msgid "`USE_SBCL`" +msgstr "`USE_SBCL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:442 +msgid "Depend on package:lang/sbcl[]; implied when `FASL_TARGET=SBCL`" +msgstr "" +"Зависит от пакета package:lang/sbcl[]; подразумевается, если " +"`FASL_TARGET=SBCL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:445 +msgid "" +"The framework provides the following variables that can be read by ports:" +msgstr "" +"Фреймворк предоставляет следующие переменные, которые могут быть прочитаны " +"портами:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:446 +#, no-wrap +msgid "`ASDF_PATHNAME`" +msgstr "`ASDF_PATHNAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:448 +msgid "Path to CL source" +msgstr "Путь к исходному коду CL" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:449 +#, no-wrap +msgid "`ASDF_REGISTRY`" +msgstr "`ASDF_REGISTRY`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:451 +msgid "Path to CL registry containing asd files" +msgstr "Путь к реестру CL, содержащему файлы asd" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:452 +#, no-wrap +msgid "`CCL`" +msgstr "`CCL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:454 +msgid "Path to the Clozure Common Lisp compiler" +msgstr "Путь к компилятору Clozure Common Lisp" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:455 +#, no-wrap +msgid "`CLISP`" +msgstr "`CLISP`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:457 +msgid "Path to the GNU Common Lisp compiler" +msgstr "Путь к компилятору GNU Common Lisp" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:458 +#, no-wrap +msgid "`CL_LIBDIR_REL`" +msgstr "`CL_LIBDIR_REL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:460 +msgid "CL library directory relative to `LOCALBASE` or `PREFIX`" +msgstr "Каталог библиотек CL относительно `LOCALBASE` или `PREFIX`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:461 +#, no-wrap +msgid "`FASL_DIR_REL`" +msgstr "`FASL_DIR_REL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:463 +msgid "Relative path to compiled fasl files; depends on `FASL_TARGET`" +msgstr "" +"Относительный путь к скомпилированным fasl-файлам; зависит от `FASL_TARGET`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:464 +#, no-wrap +msgid "`FASL_PATHNAME`" +msgstr "`FASL_PATHNAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:466 +msgid "Path to CL fasl" +msgstr "Путь к CL fasl" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:467 +#, no-wrap +msgid "`LISP_EXTRA_ARG`" +msgstr "`LISP_EXTRA_ARG`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:469 +msgid "Extra arguments used when building fasl" +msgstr "Дополнительные аргументы, используемые при сборке fasl" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:470 +#, no-wrap +msgid "`SBCL`" +msgstr "`SBCL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:472 +msgid "Path to the Steel Bank Common Lisp compiler" +msgstr "Путь к компилятору Steel Bank Common Lisp" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:474 +#, no-wrap +msgid "`cmake`" +msgstr "`cmake`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:477 +msgid "Possible arguments: (none), `insource`, `noninja`, `run`, `testing`" +msgstr "" +"Возможные аргументы: (отсутствуют), `insource`, `noninja`, `run`, `testing`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:479 +msgid "Use CMake for configuring the port and generating a build system." +msgstr "Используйте CMake для настройки порта и генерации системы сборки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:483 +msgid "" +"By default an out-of-source build is performed, leaving the sources in " +"`WRKSRC` free from build artifacts. With the `insource` argument, an in-" +"source build will be performed instead. This argument should be an " +"exception, used only when a regular out-of-source build does not work." +msgstr "" +"По умолчанию выполняется сборка в дереве вне исходного кода, оставляя " +"исходные файлы в `WRKSRC` свободными от артефактов сборки. С аргументом " +"`insource` вместо этого будет выполнена сборка в исходном коде. Этот " +"аргумент должен быть исключением и использоваться только в случае, когда " +"обычная сборка вне исходного кода не работает." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:488 +msgid "" +"By default Ninja (package:devel/ninja[]) is used for the build. In some " +"cases this does not work correctly. With the `noninja` argument, the build " +"will use regular `make` for builds. This argument should only be used if a " +"Ninja-based build does not work." +msgstr "" +"По умолчанию для сборки используется Ninja (package:devel/ninja[]). В " +"некоторых случаях это может работать некорректно. С аргументом `noninja` " +"сборка будет использовать обычный `make`. Этот аргумент следует применять " +"только если сборка на основе Ninja не работает." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:490 +msgid "" +"With the `run` argument, a run dependency is registered in addition to a " +"build dependency." +msgstr "" +"С аргументом `run` регистрируется зависимость во время выполнения в " +"дополнение к зависимости при сборке." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:493 +msgid "" +"With the `testing` argument, a test-target is added that uses CTest. When " +"running tests the port will be re-configured for testing and re-built." +msgstr "" +"С аргументом `testing`, добавляется цель тестирования, использующая CTest. " +"При запуске тестов порт будет переконфигурирован для тестирования и " +"пересобран." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:495 +msgid "For more information see crossref:special[using-cmake,Using `cmake`]." +msgstr "" +"Для получения дополнительной информации см. crossref:special[using-" +"cmake,Использование `cmake`]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:497 +#, no-wrap +msgid "`compiler`" +msgstr "`compiler`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:500 +msgid "" +"Possible arguments: (none), `env` (default, implicit), `{cpp}17-lang`, `{cpp}" +"14-lang`, `{cpp}11-lang`, `gcc-{cpp}11-lib`, `{cpp}11-lib`, `{cpp}0x`, " +"`c11`, `nestedfct`, `features`" +msgstr "" +"Возможные аргументы: (нет), `env` (по умолчанию, подразумевается), `{cpp}17-" +"lang`, `{cpp}14-lang`, `{cpp}11-lang`, `gcc-{cpp}11-lib`, `{cpp}11-lib`, " +"`{cpp}0x`, `c11`, `nestedfct`, `features`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:504 +msgid "" +"Determines which compiler to use based on any given wishes. Use `{cpp}17-" +"lang` if the port needs a {cpp}17-capable compiler, `{cpp}14-lang` if the " +"port needs a {cpp}14-capable compiler, `{cpp}11-lang` if the port needs a " +"{cpp}11-capable compiler, `gcc-{cpp}11-lib` if the port needs the `g++` " +"compiler with a {cpp}11 library, or `{cpp}11-lib` if the port needs a {cpp}" +"11-ready standard library. If the port needs a compiler understanding {cpp}" +"0X, C11 or nested functions, the corresponding parameters should be used." +msgstr "" +"Определяет, какой компилятор использовать, исходя из заданных предпочтений. " +"Используйте `{cpp}17-lang`, если порту требуется компилятор с поддержкой " +"{cpp}17, `{cpp}14-lang`, если порту требуется компилятор с поддержкой {cpp}" +"14, `{cpp}11-lang`, если порту требуется компилятор с поддержкой {cpp}11, " +"`gcc-{cpp}11-lib`, если порту требуется компилятор `g++` с библиотекой {cpp}" +"11, или `{cpp}11-lib`, если порту требуется стандартная библиотека с " +"поддержкой {cpp}11. Если порту требуется компилятор, понимающий {cpp}0X, C11 " +"или вложенные функции, следует использовать соответствующие параметры." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:507 +msgid "" +"Use `features` to request a list of features supported by the default " +"compiler. After including [.filename]#bsd.port.pre.mk# the port can inspect " +"the results using these variables:" +msgstr "" +"Используйте `features` для запроса списка возможностей, поддерживаемых " +"компилятором по умолчанию. После включения [.filename]#bsd.port.pre.mk# порт " +"может проверить результаты с помощью следующих переменных:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:509 +msgid "" +"`COMPILER_TYPE`: the default compiler on the system, either gcc or clang" +msgstr "`COMPILER_TYPE`: компилятор по умолчанию в системе, gcc или clang" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:510 +msgid "" +"`ALT_COMPILER_TYPE`: the alternative compiler on the system, either gcc or " +"clang. Only set if two compilers are present in the base system." +msgstr "" +"`ALT_COMPILER_TYPE`: альтернативный компилятор в системе, gcc или clang. " +"Устанавливается только при наличии двух компиляторов в базовой системе." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:511 +msgid "" +"`COMPILER_VERSION`: the first two digits of the version of the default " +"compiler." +msgstr "`COMPILER_VERSION`: первые две цифры версии компилятора по умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:512 +msgid "" +"`ALT_COMPILER_VERSION`: the first two digits of the version of the " +"alternative compiler, if present." +msgstr "" +"`ALT_COMPILER_VERSION`: первые две цифры версии альтернативного компилятора, " +"если он присутствует." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:513 +msgid "`CHOSEN_COMPILER_TYPE`: the chosen compiler, either gcc or clang" +msgstr "`CHOSEN_COMPILER_TYPE`: выбранный компилятор, gcc или clang" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:514 +msgid "" +"`COMPILER_FEATURES`: the features supported by the default compiler. It " +"currently lists the {cpp} library." +msgstr "" +"`COMPILER_FEATURES`: возможности, поддерживаемые компилятором по умолчанию. " +"В настоящее время указана библиотека {cpp}." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:516 +#, no-wrap +msgid "`cpe`" +msgstr "`cpe`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:523 +msgid "" +"Include Common Platform Enumeration (CPE) information in package manifest as " +"a CPE 2.3 formatted string. See the https://scap.nist.gov/specifications/" +"cpe/[CPE specification] for details. To add CPE information to a port, " +"follow these steps:" +msgstr "" +"Включает информацию о Common Platform Enumeration (CPE) в манифест пакета в " +"виде строки формата CPE 2.3. Подробности см. в https://scap.nist.gov/" +"specifications/cpe/[спецификации CPE]. Чтобы добавить информацию CPE в порт, " +"выполните следующие шаги:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:526 +msgid "" +"Search for the official CPE entry for the software product either by using " +"the NVD's https://web.nvd.nist.gov/view/cpe/search[CPE search engine] or in " +"the https://nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-" +"dictionary_v2.3.xml.gz[official CPE dictionary] (warning, very large XML " +"file). _Do not ever make up CPE data._" +msgstr "" +"Поищите официальную запись CPE для программного продукта, используя либо " +"https://web.nvd.nist.gov/view/cpe/search[поисковую систему CPE] от NVD, либо " +"https://nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-" +"dictionary_v2.3.xml.gz[официальный словарь CPE] (предупреждение: очень " +"большой XML-файл). _Никогда не создавайте данные CPE самостоятельно._" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:527 +msgid "" +"Add `cpe` to `USES` and compare the result of `make -V CPE_STR` to the CPE " +"dictionary entry. Continue one step at a time until `make -V CPE_STR` is " +"correct." +msgstr "" +"Добавьте `cpe` в `USES` и сравните результат выполнения `make -V CPE_STR` с " +"записью в словаре CPE. Продолжайте шаг за шагом, пока результат `make -V " +"CPE_STR` не станет корректным." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:528 +msgid "" +"If the product name (second field, defaults to `PORTNAME`) is incorrect, " +"define `CPE_PRODUCT`." +msgstr "" +"Если название продукта (второе поле, по умолчанию `PORTNAME`) указано " +"неверно, определите `CPE_PRODUCT`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:529 +msgid "" +"If the vendor name (first field, defaults to `CPE_PRODUCT`) is incorrect, " +"define `CPE_VENDOR`." +msgstr "" +"Если название производителя (первое поле, по умолчанию `CPE_PRODUCT`) " +"указано неверно, определите `CPE_VENDOR`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:530 +msgid "" +"If the version field (third field, defaults to `PORTVERSION`) is incorrect, " +"define `CPE_VERSION`." +msgstr "" +"Если поле версии (третье поле, по умолчанию `PORTVERSION`) указано неверно, " +"определите `CPE_VERSION`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:531 +msgid "" +"If the update field (fourth field, defaults to empty) is incorrect, define " +"`CPE_UPDATE`." +msgstr "" +"Если поле обновления (четвертое поле, по умолчанию пустое) указано неверно, " +"определите `CPE_UPDATE`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:532 +msgid "" +"If it is still not correct, check [.filename]#Mk/Uses/cpe.mk# for additional " +"details, or contact the {ports-secteam}." +msgstr "" +"Если это всё ещё неверно, проверьте файл [.filename]#Mk/Uses/cpe.mk# для " +"получения дополнительной информации или свяжитесь с {ports-secteam}." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:533 +msgid "" +"Derive as much as possible of the CPE name from existing variables such as " +"`PORTNAME` and `PORTVERSION`. Use variable modifiers to extract the relevant " +"portions from these variables rather than hardcoding the name." +msgstr "" +"Извлекайте как можно больше информации для имени CPE из существующих " +"переменных, таких как `PORTNAME` и `PORTVERSION`. Используйте модификаторы " +"переменных для извлечения соответствующих частей из этих переменных, вместо " +"того чтобы жестко прописывать имя." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:534 +msgid "" +"_Always_ run `make -V CPE_STR` and check the output before committing " +"anything that changes `PORTNAME` or `PORTVERSION` or any other variable " +"which is used to derive `CPE_STR`." +msgstr "" +"_Всегда_ выполняйте `make -V CPE_STR` и проверяйте вывод перед коммитом " +"любых изменений, затрагивающих `PORTNAME`, `PORTVERSION` или любые другие " +"переменные, используемые для формирования `CPE_STR`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:536 +#, no-wrap +msgid "`cran`" +msgstr "`cran`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:539 +msgid "Possible arguments: (none), `auto-plist`, `compiles`" +msgstr "Возможные аргументы: (нет), `auto-plist`, `compiles`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:543 +msgid "" +"Uses the Comprehensive R Archive Network. Specify `auto-plist` to " +"automatically generate [.filename]#pkg-plist#. Specify `compiles` if the " +"port has code that need to be compiled." +msgstr "" +"Использует Comprehensive R Archive Network. Укажите `auto-plist` для " +"автоматического создания [.filename]#pkg-plist#. Укажите `compiles`, если " +"порт содержит код, который необходимо компилировать." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:545 +#, no-wrap +msgid "`desktop-file-utils`" +msgstr "`desktop-file-utils`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:554 +msgid "" +"Uses update-desktop-database from package:devel/desktop-file-utils[]. An " +"extra post-install step will be run without interfering with any post-" +"install steps already in the port [.filename]#Makefile#. A line with " +"crossref:plist[plist-keywords-desktop-file-utils,`@desktop-file-utils`] will " +"be added to the plist. Only use this macro if the port provides a " +"`.desktop` file which contains a `MimeType` entry." +msgstr "" +"Использует update-desktop-database из пакета package:devel/desktop-file-" +"utils[]. Дополнительный шаг post-install будет выполнен без вмешательства в " +"уже существующие шаги post-install в [.filename]#Makefile# порта. Строка с " +"crossref:plist[plist-keywords-desktop-file-utils,`@desktop-file-utils`] " +"будет добавлена в plist. Используйте этот макрос только если порт " +"предоставляет файл `.desktop`, содержащий запись `MimeType`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:556 +#, no-wrap +msgid "`desthack`" +msgstr "`desthack`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:561 +msgid "" +"Changes the behavior of GNU configure to properly support `DESTDIR` in case " +"the original software does not." +msgstr "" +"Изменяет поведение GNU configure для корректной поддержки `DESTDIR` в " +"случае, если исходное программное обеспечение этого не делает." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:563 +#, no-wrap +msgid "`display`" +msgstr "`display`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:566 +msgid "Possible arguments: (none), _ARGS_" +msgstr "Возможные аргументы: (отсутствуют), _ARGS_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:570 +msgid "" +"Set up a virtual display environment. If the environment variable `DISPLAY` " +"is not set, then Xvfb is added as a build dependency, and `CONFIGURE_ENV` is " +"extended with the port number of the currently running instance of Xvfb. " +"The _ARGS_ parameter defaults to `install` and controls the phase around " +"which to start and stop the virtual display." +msgstr "" +"Настраивает виртуальное окружение для отображения. Если переменная окружения " +"`DISPLAY` не установлена, то Xvfb добавляется как зависимость при сборке, а " +"`CONFIGURE_ENV` расширяется с указанием номера порта текущего запущенного " +"экземпляра Xvfb. Параметр _ARGS_ по умолчанию имеет значение `install` и " +"управляет фазой, вокруг которой запускается и останавливается виртуальный " +"дисплей." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:572 +#, no-wrap +msgid "`dos2unix`" +msgstr "`dos2unix`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:580 +msgid "" +"The port has files with line endings in DOS format which need to be " +"converted. Several variables can be set to control which files will be " +"converted. The default is to convert _all_ files, including binaries. See " +"crossref:slow-porting[slow-patch-automatic-replacements,Simple Automatic " +"Replacements] for examples." +msgstr "" +"Порт содержит файлы с символами конца строки в формате DOS, которые " +"необходимо преобразовать. Несколько переменных могут быть установлены для " +"контроля, какие файлы будут преобразованы. По умолчанию преобразуются _все_ " +"файлы, включая бинарные. См. crossref:slow-porting[slow-patch-automatic-" +"replacements,Простые автоматические замены] для примеров." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:582 +msgid "`DOS2UNIX_REGEX`: match file names based on a regular expression." +msgstr "" +"`DOS2UNIX_REGEX`: сопоставлять имена файлов на основе регулярного выражения." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:583 +msgid "`DOS2UNIX_FILES`: match literal file names." +msgstr "`DOS2UNIX_FILES`: соответствуют точным именам файлов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:584 +msgid "`DOS2UNIX_GLOB`: match file names based on a glob pattern." +msgstr "" +"`DOS2UNIX_GLOB`: сопоставлять имена файлов на основе шаблона файлов оболочки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:585 +msgid "" +"`DOS2UNIX_WRKSRC`: the directory from which to start the conversions. " +"Defaults to `${WRKSRC}`." +msgstr "" +"`DOS2UNIX_WRKSRC`: каталог, с которого начинать преобразования. По умолчанию " +"`${WRKSRC}`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:587 +#, no-wrap +msgid "`drupal`" +msgstr "`drupal`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:590 +msgid "Possible arguments: `7`, `module`, `theme`" +msgstr "Возможные аргументы: `7`, `module`, `theme`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:595 +msgid "" +"Automate installation of a port that is a Drupal theme or module. Use with " +"the version of Drupal that the port is expecting. For example, " +"`USES=drupal:7,module` says that this port creates a Drupal 7 module. A " +"Drupal 7 theme can be specified with `USES=drupal:7,theme`." +msgstr "" +"Автоматизирует установку порта, который является темой или модулем Drupal. " +"Использовать с версией Drupal, которую ожидает порт. Например, " +"`USES=drupal:7,module` означает, что этот порт создает модуль Drupal 7. Тему " +"Drupal 7 можно указать с помощью `USES=drupal:7,theme`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:597 +#, no-wrap +msgid "`ebur128`" +msgstr "`ebur128`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:600 +msgid "Possible arguments: (none), `build`, `lib`, `run`, `test`" +msgstr "Возможные аргументы: (нет), `build`, `lib`, `run`, `test`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:605 +msgid "" +"Adds a dependency on package:audio/ebur128[]. It allows to transparently " +"depend on the `rust` or `legacy` variants by using `DEFAULT_VERSIONS` in " +"[.filename]#make.conf#. For instance, to use the legacy version, use " +"`DEFAULT_VERSIONS+=ebur128=legacy`" +msgstr "" +"Добавляет зависимость от пакета package:audio/ebur128[]. Позволяет прозрачно " +"зависеть от вариантов `rust` или `legacy`, используя `DEFAULT_VERSIONS` в " +"[.filename]#make.conf#. Например, для использования устаревшей версии " +"укажите `DEFAULT_VERSIONS+=ebur128=legacy`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:609 +msgid "" +"When no arguments are used, the behavior is the same as if the `lib` " +"argument was provided. The rest of the arguments provide the corresponding " +"category of dependency." +msgstr "" +"Без аргументов поведение аналогично случаю с предоставлением аргумента " +"`lib`. Остальные аргументы указывают соответствующую категорию зависимости." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:611 +#, no-wrap +msgid "`eigen`" +msgstr "`eigen`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:614 +msgid "Possible arguments: 2, 3, build (default), run" +msgstr "Возможные аргументы: 2, 3, build (по умолчанию), run" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:616 +msgid "Add dependency on package:math/eigen[]." +msgstr "Добавить зависимость от пакета package:math/eigen[]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:618 +#, no-wrap +msgid "`electronfix`" +msgstr "`electronfix`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:621 +msgid "Possible arguments: `31`, `32`, `33`" +msgstr "Возможные аргументы: `31`, `32`, `33`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:625 +msgid "" +"Provide support for easy porting of Electron applications that are " +"distributed in binary form. Adds a build and run time dependency on " +"package:devel/electron31[], package:devel/electron32[], or package:devel/" +"electron33[] depending on the argument used." +msgstr "" +"Предоставить поддержку для простого портирования Electron-приложений, " +"распространяемых в бинарной форме. Добавляет зависимость на этапах сборки и " +"выполнения от package:devel/electron31[], package:devel/electron32[] или " +"package:devel/electron33[] в зависимости от используемого аргумента." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:628 +#, no-wrap +msgid "`ELECTRONFIX_SYMLINK_FILES`" +msgstr "`ELECTRONFIX_SYMLINK_FILES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:630 +msgid "List of files to be symlinked from Electron distribution." +msgstr "Список файлов для создания символьных ссылок из дистрибутива Electron." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:631 +#, no-wrap +msgid "`ELECTRONFIX_MAIN_EXECUTABLE`" +msgstr "`ELECTRONFIX_MAIN_EXECUTABLE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:633 +msgid "" +"File name of the main executable to be replaced with the original Electron " +"binary." +msgstr "" +"Имя файла основного исполняемого файла, который будет заменен оригинальным " +"бинарным файлом Electron." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:636 +#, no-wrap +msgid "`elfctl`" +msgstr "`elfctl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:639 +msgid "Possible arguments: (none), `build` (default), `stage`" +msgstr "Возможные аргументы: (отсутствуют), `build` (по умолчанию), `stage`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:641 +msgid "Set ELF binary feature control notes by setting `ELF_FEATURES`." +msgstr "" +"Установите управляющие заметки функций ELF-бинарных файлов, задав " +"`ELF_FEATURES`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:644 +msgid "" +"When either no argument or the `build` argument is supplied, binaries under " +"`BUILD_WRKSRC` are operated on, and files listed in `ELF_FEATURES` are " +"relative to `BUILD_WRKSRC`. When the `stage` argument is supplied, binaries " +"under `STAGEDIR` are operated on and files listed in `ELF_FEATURES` are " +"relative to `STAGEDIR`." +msgstr "" +"Когда не указан аргумент или указан аргумент `build`, операции выполняются " +"над бинарными файлами в `BUILD_WRKSRC`, а файлы, перечисленные в " +"`ELF_FEATURES`, указываются относительно `BUILD_WRKSRC`. Когда указан " +"аргумент `stage`, операции выполняются над бинарными файлами в `STAGEDIR`, а " +"файлы, перечисленные в `ELF_FEATURES`, указываются относительно `STAGEDIR`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:646 +#, no-wrap +msgid "Uses=elfctl" +msgstr "Uses=elfctl" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:653 +#, no-wrap +msgid "" +"ELF_FEATURES=\tfeaturelist:path/to/file1 \\\n" +"\t\tfeaturelist:path/to/file2\n" +msgstr "" +"ELF_FEATURES=\tfeaturelist:path/to/file1 \\\n" +"\t\tfeaturelist:path/to/file2\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:658 +msgid "The format of `featurelist` is described in man:elfctl[1]." +msgstr "Формат `featurelist` описан в man:elfctl[1]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:660 +#, no-wrap +msgid "`elixir`" +msgstr "`elixir`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:666 +msgid "" +"Provide support for ports using package:lang/elixir[]. Adds a build and run " +"time dependency on package:lang/elixir[]." +msgstr "" +"Предоставить поддержку для портов, использующих package:lang/elixir[]. " +"Добавляет зависимость во время сборки и выполнения на package:lang/elixir[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:668 +msgid "Variables provided by the framework:" +msgstr "Предоставляемые фреймворком переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:669 +#, no-wrap +msgid "`ELIXIR_APP_NAME`" +msgstr "`ELIXIR_APP_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:671 +msgid "Elixir app name as installed in Elixir's lib directory" +msgstr "Название приложения Elixir, как оно установлено в каталоге lib Elixir" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:671 +#, no-wrap +msgid "`ELIXIR_LIB_ROOT`" +msgstr "`ELIXIR_LIB_ROOT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:673 +msgid "Elixir default library path" +msgstr "Путь к библиотекам Elixir по умолчанию" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:673 +#, no-wrap +msgid "`ELIXIR_APP_ROOT`" +msgstr "`ELIXIR_APP_ROOT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:675 +msgid "Root directory for this Elixir app" +msgstr "Корневая директория для этого приложения Elixir" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:675 +#, no-wrap +msgid "`ELIXIR_HIDDEN`" +msgstr "`ELIXIR_HIDDEN`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:677 +msgid "Applications to be hidden from the code path; usually ${PORTNAME}" +msgstr "" +"Приложения, которые необходимо скрыть из пути выполнения кода; обычно `$" +"{PORTNAME}`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:677 +#, no-wrap +msgid "`ELIXIR_LOCALE`" +msgstr "`ELIXIR_LOCALE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:679 +msgid "" +"An UTF-8 locale to be used by Elixir during builds (any UTF-8 locale is good)" +msgstr "" +"Локаль UTF-8, которая будет использоваться Elixir во время сборки (подойдет " +"любая локаль UTF-8)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:679 +#, no-wrap +msgid "`MIX_CMD`" +msgstr "`MIX_CMD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:681 +msgid "The `mix` command" +msgstr "Команда `mix`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:681 +#, no-wrap +msgid "`MIX_COMPILE`" +msgstr "`MIX_COMPILE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:683 +msgid "The `mix` command used to compile an Elixir app" +msgstr "Команда `mix`, используемая для компиляции приложения на Elixir" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:683 +#, no-wrap +msgid "`MIX_REWRITE`" +msgstr "`MIX_REWRITE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:685 +msgid "Automatically replace Mix dependencies with code paths" +msgstr "Автоматически заменять зависимости Mix на пути к коду" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:685 +#, no-wrap +msgid "`MIX_BUILD_DEPS`" +msgstr "`MIX_BUILD_DEPS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:687 +msgid "" +"List of `BUILD_DEPENDS` in category/portname format (commonly referenced to " +"as \"deps\" in Erlang and Elixir)" +msgstr "" +"Список `BUILD_DEPENDS` в формате категория/имя_порта (часто упоминаемый как " +"\"deps\" в Erlang и Elixir)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:687 +#, no-wrap +msgid "`MIX_RUN_DEPS`" +msgstr "`MIX_RUN_DEPS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:689 +msgid "List of `RUN_DEPENDS` in category/portname format" +msgstr "Список `RUN_DEPENDS` в формате категория/имя порта" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:689 +#, no-wrap +msgid "`MIX_DOC_DIRS`" +msgstr "`MIX_DOC_DIRS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:691 +msgid "Extra doc directories to be installed in `DOCSDIR`" +msgstr "Дополнительные каталоги документации для установки в `DOCSDIR`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:691 +#, no-wrap +msgid "`MIX_DOC_FILES`" +msgstr "`MIX_DOC_FILES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:693 +msgid "Extra doc files to be installed in `DOCSDIR` (usually README.md)" +msgstr "" +"Дополнительные файлы документации для установки в `DOCSDIR` (обычно " +"README.md)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:693 +#, no-wrap +msgid "`MIX_ENV`" +msgstr "`MIX_ENV`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:695 +msgid "Environment for the Mix build (same format as `MAKE_ENV`)" +msgstr "Окружение для сборки Mix (в том же формате, что и `MAKE_ENV`)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:695 +#, no-wrap +msgid "`MIX_ENV_NAME`" +msgstr "`MIX_ENV_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:697 +msgid "Name of the Mix build environment, usually \"prod\"" +msgstr "Имя среды сборки Mix, обычно \"prod\"" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:697 +#, no-wrap +msgid "`MIX_BUILD_NAME`" +msgstr "`MIX_BUILD_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:699 +msgid "Name of the build output in _build/, usually `${MIX_ENV_NAME}`" +msgstr "Имя выходного файла сборки в _build/, обычно `${MIX_ENV_NAME}`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:699 +#, no-wrap +msgid "`MIX_TARGET`" +msgstr "`MIX_TARGET`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:701 +msgid "Name of the Mix target, usually \"compile\"" +msgstr "Имя цели Mix, обычно \"compile\"" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:701 +#, no-wrap +msgid "`MIX_EXTRA_APPS`" +msgstr "`MIX_EXTRA_APPS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:703 +msgid "List of sub-applications to be built, if any" +msgstr "Список подприложений для сборки, если имеются" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:703 +#, no-wrap +msgid "`MIX_EXTRA_DIRS`" +msgstr "`MIX_EXTRA_DIRS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:705 +msgid "List of extra directories to be installed in `ELIXIR_APP_ROOT`" +msgstr "Список дополнительных каталогов для установки в `ELIXIR_APP_ROOT`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:705 +#, no-wrap +msgid "`MIX_EXTRA_FILES`" +msgstr "`MIX_EXTRA_FILES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:707 +msgid "List of extra files to be installed in `ELIXIR_APP_ROOT`" +msgstr "Список дополнительных файлов для установки в `ELIXIR_APP_ROOT`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:709 +#, no-wrap +msgid "`emacs`" +msgstr "`emacs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:712 +msgid "Possible arguments: (none) (default), `build`, `run`, `noflavors`" +msgstr "Возможные аргументы: (нет) (по умолчанию), `build`, `run`, `noflavors`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:719 +msgid "" +"Provides support for ports requiring Emacs. The `build` argument creates a " +"build dependency on Emacs. The `run` argument creates a run dependency on " +"Emacs. If both the `build` and `run` arguments are absent, create build and " +"run dependencies on Emacs. The `noflavors` argument prevents flavors, and " +"is implied if there is no run dependency on Emacs." +msgstr "" +"Предоставляет поддержку для портов, требующих Emacs. Аргумент `build` " +"создает зависимость сборки от Emacs. Аргумент `run` создает зависимость " +"выполнения от Emacs. Если оба аргумента `build` и `run` отсутствуют, " +"создаются зависимости сборки и выполнения от Emacs. Аргумент `noflavors` " +"запрещает флейворы и подразумевается, если нет зависимости выполнения от " +"Emacs." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:723 +msgid "" +"The default Emacs flavor for ports with `USES=emacs` can be defined in " +"[.filename]#make.conf#. For example, for the `nox` flavor, use " +"`DEFAULT_VERSIONS+= emacs=nox`. The valid flavors are: `full`, `canna`, " +"`nox`, `wayland`, `devel_full`, `devel_nox`." +msgstr "" +"Стандартный вариант Emacs для портов с `USES=emacs` можно определить в " +"[.filename]#make.conf#. Например, для варианта `nox` используйте " +"`DEFAULT_VERSIONS+= emacs=nox`. Допустимые флейворы: `full`, `canna`, `nox`, " +"`wayland`, `devel_full`, `devel_nox`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:725 +msgid "Variables, which can be set by ports:" +msgstr "Переменные, которые могут быть установлены портами:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:726 +#, no-wrap +msgid "`EMACS_FLAVORS_EXCLUDE`" +msgstr "`EMACS_FLAVORS_EXCLUDE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:729 +msgid "" +"Do NOT build these Emacs flavors. If `EMACS_FLAVORS_EXCLUDE` is not defined " +"and:" +msgstr "" +"НЕ собирать эти флейворы Emacs. Если `EMACS_FLAVORS_EXCLUDE` не определена и:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:731 +msgid "there is a run dependency on Emacs" +msgstr "существует зависимость во время выполнения от Emacs" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:732 +msgid "the noflavors argument is not specified" +msgstr "аргумент noflavors не указан" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:735 +msgid "then all valid Emacs flavors are assumed." +msgstr "то предполагаются все допустимые флейворы Emacs." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:736 +#, no-wrap +msgid "`EMACS_NO_DEPENDS`" +msgstr "`EMACS_NO_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:740 +msgid "" +"Do NOT add build or run dependencies on Emacs. This will prevent flavors, " +"and no byte code files will be generated as part of the package." +msgstr "" +"НЕ добавлять зависимости сборки или выполнения от Emacs. Это предотвратит " +"создание вариантов, и никакие файлы байт-кода не будут сгенерированы как " +"часть пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:742 +msgid "Variables, which can be read by ports:" +msgstr "Переменные, которые могут быть прочитаны портами:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:743 +#, no-wrap +msgid "`EMACS_CMD`" +msgstr "`EMACS_CMD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:745 +msgid "" +"Emacs command with full path (e.g. [.filename]#/usr/local/bin/emacs-30.1#)" +msgstr "" +"Команда Emacs с полным путём (например, [.filename]#/usr/local/bin/" +"emacs-30.1#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:746 +#, no-wrap +msgid "`EMACS_FLAVOR`" +msgstr "`EMACS_FLAVOR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:748 +msgid "" +"Used for dependencies (e.g. `BUILD_DEPENDS= dash.el${EMACS_PKGNAMESUFFIX}" +">0:devel/dash@${EMACS_FLAVOR}`)" +msgstr "" +"Используется для зависимостей (например, `BUILD_DEPENDS= dash.el$" +"{EMACS_PKGNAMESUFFIX}>0:devel/dash@${EMACS_FLAVOR}`)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:749 +#, no-wrap +msgid "`EMACS_LIBDIR`" +msgstr "`EMACS_LIBDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:751 +msgid "" +"Emacs Library directory without `${PREFIX}` (e.g. [.filename]#share/emacs#)" +msgstr "" +"Каталог библиотек Emacs без `${PREFIX}` (например, [.filename]#share/emacs#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:752 +#, no-wrap +msgid "`EMACS_LIBDIR_WITH_VER`" +msgstr "`EMACS_LIBDIR_WITH_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:754 +msgid "" +"Library directory without `${PREFIX}` including version (e.g. " +"[.filename]#share/emacs/30.1#)" +msgstr "" +"Каталог библиотеки без `${PREFIX}`, включая версию (например, " +"[.filename]#share/emacs/30.1#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:755 +#, no-wrap +msgid "`EMACS_MAJOR_VER`" +msgstr "`EMACS_MAJOR_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:757 +msgid "Emacs major version (e.g. 30)" +msgstr "Основная версия Emacs (например, 30)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:758 +#, no-wrap +msgid "`EMACS_PKGNAMESUFFIX`" +msgstr "`EMACS_PKGNAMESUFFIX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:760 +msgid "`PKGNAMESUFFIX` to distinguish Emacs flavors" +msgstr "`PKGNAMESUFFIX` для различия вариантов Emacs" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:761 +#, no-wrap +msgid "`EMACS_SITE_LISPDIR`" +msgstr "`EMACS_SITE_LISPDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:763 +msgid "" +"Emacs site-lisp directory without `${PREFIX}` (e.g. [.filename]#share/emacs/" +"site-lisp#)" +msgstr "" +"Каталог site-lisp Emacs без `${PREFIX}` (например, [.filename]#share/emacs/" +"site-lisp#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:764 +#, no-wrap +msgid "`EMACS_VER`" +msgstr "`EMACS_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:766 +msgid "Emacs version (e.g. 30.1)" +msgstr "Версия Emacs (например, 30.1)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:767 +#, no-wrap +msgid "`EMACS_VERSION_SITE_LISPDIR`" +msgstr "`EMACS_VERSION_SITE_LISPDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:769 +msgid "Include version (e.g. [.filename]#share/emacs/30.1/site-lisp#)" +msgstr "" +"Каталог site-lisp Emacs, включая номер версии (например, [.filename]#share/" +"emacs/30.1/site-lisp#)" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:771 +#, no-wrap +msgid "`erlang`" +msgstr "`erlang`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:774 +msgid "Possible arguments: (none), `enc`, `rebar`, `rebar3`" +msgstr "Возможные аргументы: (нет), `enc`, `rebar`, `rebar3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:779 +msgid "" +"Adds a build and run time dependency on package:lang/erlang[]. Depending on " +"the argument, it adds additional build dependencies. `enc` adds a dependency " +"on package:devel/erlang-native-compiler[], `rebar` adds a dependency on " +"package:devel/rebar[] and `rebar3` adds a dependency on package:devel/" +"rebar3[]." +msgstr "" +"Добавляет зависимость на время сборки и выполнения от package:lang/erlang[]. " +"В зависимости от аргумента, добавляет дополнительные зависимости для сборки. " +"`enc` добавляет зависимость от package:devel/erlang-native-compiler[], " +"`rebar` добавляет зависимость от package:devel/rebar[], а `rebar3` добавляет " +"зависимость от package:devel/rebar3[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:781 +msgid "In addition, the following variables are available to the port:" +msgstr "В дополнение, следующие переменные доступны для порта:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:783 +msgid "" +"`ERL_APP_NAME`: Erlang app name as installed in Erlang's lib dir (minus " +"version)" +msgstr "" +"`ERL_APP_NAME`: Имя приложения Erlang, как оно установлено в каталоге lib " +"Erlang (без указания версии)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:784 +msgid "`ERL_APP_ROOT`: Root directory for this Erlang app" +msgstr "`ERL_APP_ROOT`: Корневой каталог для этого приложения Erlang" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:785 +msgid "`REBAR_CMD`: Path to the \"rebar\" command" +msgstr "`REBAR_CMD`: Путь к команде \"rebar\"" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:786 +msgid "`REBAR3_CMD`: Path to the \"rebar3\" command" +msgstr "`REBAR3_CMD`: Путь к команде \"rebar3\"" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:787 +msgid "`REBAR_PROFILE`: Rebar profile" +msgstr "`REBAR_PROFILE`: Профиль Rebar" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:788 +msgid "`REBAR_TARGETS`: Rebar target list (usually compile, maybe escriptize)" +msgstr "" +"`REBAR_TARGETS`: Список целей Rebar (обычно compile, возможно escriptize)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:789 +msgid "`ERL_BUILD_NAME`: Build name for rebar3" +msgstr "`ERL_BUILD_NAME`: Имя сборки для rebar3" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:790 +msgid "`ERL_BUILD_DEPS`: List of BUILD_DEPENDS in category/portname format" +msgstr "`ERL_BUILD_DEPS`: Список BUILD_DEPENDS в формате категория/имя_порта" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:791 +msgid "`ERL_RUN_DEPS`: List of RUN_DEPENDS in category/portname format" +msgstr "`ERL_RUN_DEPS`: Список RUN_DEPENDS в формате категория/имя_порта" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:792 +msgid "`ERL_DOCS`: List of documentation files and directories" +msgstr "`ERL_DOCS`: Список файлов и каталогов документации" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:794 +#, no-wrap +msgid "`fakeroot`" +msgstr "`fakeroot`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:800 +msgid "" +"Changes some default behavior of build systems to allow installing as a " +"user. See https://wiki.debian.org/FakeRoot[] for more information on " +"`fakeroot`." +msgstr "" +"Изменяет некоторые стандартные поведения систем сборки для разрешения " +"установки от имени пользователя. Дополнительную информацию о `fakeroot` " +"можно найти на https://wiki.debian.org/FakeRoot[]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:802 +#, no-wrap +msgid "`fam`" +msgstr "`fam`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:805 +msgid "Possible arguments: (none), `fam`, `gamin`" +msgstr "Возможные аргументы: (нет), `fam`, `gamin`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:808 +msgid "" +"Uses a File Alteration Monitor as a library dependency, either package:devel/" +"fam[] or package:devel/gamin[]. End users can set WITH_FAM_SYSTEM to " +"specify their preference." +msgstr "" +"Использует монитор изменений файлов (FAM — File Alteration Monitor) как " +"зависимость от библиотеки, либо package:devel/fam[], либо package:devel/" +"gamin[]. Конечные пользователи могут задать WITH_FAM_SYSTEM, чтобы указать " +"свои предпочтения." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:810 +#, no-wrap +msgid "`firebird`" +msgstr "`firebird`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:813 +msgid "Possible arguments: (none), `25`" +msgstr "Возможные аргументы: (отсутствуют), `25`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:815 +msgid "Add a dependency to the client library of the Firebird database." +msgstr "Добавить зависимость от клиентской библиотеке базы данных Firebird." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:817 +#, no-wrap +msgid "`fonts`" +msgstr "`fonts`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:820 +msgid "Possible arguments: (none), `fc`, `fontsdir` (default), `none`" +msgstr "" +"Возможные аргументы: (отсутствуют), `fc`, `fontsdir` (по умолчанию), `none`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:826 +msgid "" +"Adds a runtime dependency on tools needed to register fonts. Depending on " +"the argument, add a `crossref:plist[plist-keywords-fc,`@fc`] ${FONTSDIR}` " +"line, `crossref:plist[plist-keywords-fontsdir,`@fontsdir`] ${FONTSDIR}` " +"line, or no line if the argument is `none`, to the plist. `FONTSDIR` " +"defaults to [.filename]#${PREFIX}/share/fonts/${FONTNAME}# and `FONTNAME` to " +"`${PORTNAME}`. Add `FONTSDIR` to `PLIST_SUB` and `SUB_LIST`" +msgstr "" +"Добавляет зависимость во время выполнения на инструменты, необходимые для " +"регистрации шрифтов. В зависимости от аргумента добавляет строку " +"`crossref:plist[plist-keywords-fc,@fc] ${FONTSDIR}`, строку " +"`crossref:plist[plist-keywords-fontsdir,@fontsdir] ${FONTSDIR}` или не " +"добавляет строку, если аргумент `none`, в plist. `FONTSDIR` по умолчанию " +"имеет значение [.filename]#${PREFIX}/share/fonts/${FONTNAME}#, а `FONTNAME` " +"— `${PORTNAME}`. Добавляет `FONTSDIR` в `PLIST_SUB` и `SUB_LIST`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:828 +#, no-wrap +msgid "`fortran`" +msgstr "`fortran`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:831 +msgid "Possible arguments: `gcc` (default)" +msgstr "Возможные аргументы: `gcc` (по умолчанию)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:833 +msgid "Uses the GNU Fortran compiler." +msgstr "Использует компилятор GNU Fortran." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:835 +#, no-wrap +msgid "`fpc`" +msgstr "`fpc`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:838 +msgid "Possible arguments: (none), `run`" +msgstr "Возможные аргументы: (нет), `run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:841 +msgid "" +"Provide support for Free Pascal based ports. It will install Free Pascal " +"compiler and units." +msgstr "" +"Обеспечить поддержку портов на основе Free Pascal. Установит компилятор Free " +"Pascal и модули." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:843 +msgid "Adds a build dependency on package:lang/fpc[]." +msgstr "Добавляет зависимость сборки от package:lang/fpc[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:845 +msgid "If the `run` argument is given a run dependency is also added." +msgstr "Если указан аргумент `run`, также добавляется зависимость запуска." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:847 +#, no-wrap +msgid "`fuse`" +msgstr "`fuse`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:850 +msgid "Possible arguments: `2` (default), `3`" +msgstr "Возможные аргументы: `2` (по умолчанию), `3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:852 +msgid "" +"The port will depend on the FUSE library and handle the dependency on the " +"kernel module depending on the version of FreeBSD." +msgstr "" +"Порт будет зависеть от библиотеки FUSE и обрабатывать зависимость от модуля " +"ядра в зависимости от версии FreeBSD." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:854 +#, no-wrap +msgid "`gem`" +msgstr "`gem`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:857 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1479 +msgid "Possible arguments: (none), `noautoplist`" +msgstr "Возможные аргументы: (отсутствуют), `noautoplist`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:860 +msgid "" +"Handle building with RubyGems. If `noautoplist` is used, the packing list " +"is not generated automatically." +msgstr "" +"Обработка сборки с RubyGems. Если используется `noautoplist`, список " +"упаковки не генерируется автоматически." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:862 +msgid "This implies `USES=ruby`." +msgstr "Это подразумевает `USES=ruby`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:864 +#, no-wrap +msgid "`gettext`" +msgstr "`gettext`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:871 +msgid "" +"Deprecated. Will include both crossref:uses[uses-gettext-runtime,`gettext-" +"runtime`] and crossref:uses[uses-gettext-tools,`gettext-tools`]." +msgstr "" +"Устарело. Будет включать как crossref:uses[uses-gettext-runtime,`gettext-" +"runtime`], так и crossref:uses[uses-gettext-tools,`gettext-tools`]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:873 +#, no-wrap +msgid "`gettext-runtime`" +msgstr "`gettext-runtime`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:876 +msgid "Possible arguments: (none), `lib` (default), `build`, `run`" +msgstr "" +"Возможные аргументы: (отсутствуют), `lib` (по умолчанию), `build`, `run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:880 +msgid "" +"Uses package:devel/gettext-runtime[]. By default, with no arguments or with " +"the `lib` argument, implies a library dependency on " +"[.filename]#libintl.so#. `build` and `run` implies, respectively a build-" +"time and a run-time dependency on [.filename]#gettext#." +msgstr "" +"Использует пакет package:devel/gettext-runtime[]. По умолчанию, без " +"аргументов или с аргументом `lib`, подразумевает зависимость от библиотеки " +"[.filename]#libintl.so#. Аргументы `build` и `run` подразумевают, " +"соответственно, зависимость во время сборки и во время выполнения от " +"[.filename]#gettext#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:882 +#, no-wrap +msgid "`gettext-tools`" +msgstr "`gettext-tools`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:885 +msgid "Possible arguments: (none), `build` (default), `run`" +msgstr "Возможные аргументы: (отсутствуют), `build` (по умолчанию), `run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:889 +msgid "" +"Uses package:devel/gettext-tools[]. By default, with no argument, or with " +"the `build` argument, a build time dependency on [.filename]#msgfmt# is " +"registered. With the `run` argument, a run-time dependency is registered." +msgstr "" +"Использует пакет package:devel/gettext-tools[]. По умолчанию, без аргумента " +"или с аргументом `build`, регистрируется зависимость во время сборки от " +"[.filename]#msgfmt#. С аргументом `run` регистрируется зависимость во время " +"выполнения." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:891 +#, no-wrap +msgid "`ghostscript`" +msgstr "`ghostscript`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:894 +msgid "Possible arguments: _X_, `build`, `run`, `nox11`" +msgstr "Возможные аргументы: _X_, `build`, `run`, `nox11`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:899 +msgid "" +"A specific version _X_ can be used. Possible versions are `7`, `8`, `9`, and " +"`agpl` (default). `nox11` indicates that the `-nox11` version of the port " +"is required. `build` and `run` add build- and run-time dependencies on " +"Ghostscript. The default is both build- and run-time dependencies." +msgstr "" +"Можно указать конкретную версию _X_. Доступные версии: `7`, `8`, `9` и " +"`agpl` (по умолчанию). `nox11` указывает, что требуется версия порта `-" +"nox11`. `build` и `run` добавляют зависимости на Ghostscript во время " +"сборки и выполнения соответственно. По умолчанию добавляются зависимости " +"как на сборку, так и на выполнение." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:901 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:915 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1201 +#, no-wrap +msgid "`gl`" +msgstr "`gl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:908 +msgid "" +"Provides an easy way to depend on GL components. The components should be " +"listed in `USE_GL`. The available components are:" +msgstr "" +"Предоставляет простой способ зависеть от компонентов GL. Компоненты должны " +"быть перечислены в `USE_GL`. Доступные компоненты:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:909 +#, no-wrap +msgid "`egl`" +msgstr "`egl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:911 +msgid "" +"add a library dependency on [.filename]#libEGL.so# from package:graphics/" +"libglvnd[]" +msgstr "" +"добавить зависимость от библиотеки [.filename]#libEGL.so# из пакета " +"package:graphics/libglvnd[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:912 +#, no-wrap +msgid "`gbm`" +msgstr "`gbm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:914 +msgid "" +"Add a library dependency on [.filename]#libgbm.so# from package:graphics/" +"mesa-libs[]" +msgstr "" +"Добавить зависимость от библиотеки [.filename]#libgbm.so# из пакета " +"package:graphics/mesa-libs[]" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:917 +msgid "" +"Add a library dependency on [.filename]#libGL.so# from package:graphics/" +"libglvnd[]" +msgstr "" +"Добавить зависимость от библиотеки [.filename]#libGL.so# из пакета " +"package:graphics/libglvnd[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:918 +#, no-wrap +msgid "`glesv2`" +msgstr "`glesv2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:920 +msgid "" +"Add a library dependency on [.filename]#libGLESv2.so# from package:graphics/" +"libglvnd[]" +msgstr "" +"Добавить зависимость от библиотеки [.filename]#libGLESv2.so# из пакета " +"package:graphics/libglvnd[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:921 +#, no-wrap +msgid "`glew`" +msgstr "`glew`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:923 +msgid "" +"Add a library dependency on [.filename]#libGLEW.so# from package:graphics/" +"glew[]" +msgstr "" +"Добавить зависимость от библиотеки [.filename]#libGLEW.so# из пакета " +"package:graphics/glew[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:924 +#, no-wrap +msgid "`glu`" +msgstr "`glu`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:926 +msgid "" +"Add a library dependency on [.filename]#libGLU.so# from package:graphics/" +"libGLU[]" +msgstr "" +"Добавить зависимость от библиотеки [.filename]#libGLU.so# из " +"package:graphics/libGLU[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:927 +#, no-wrap +msgid "`glut`" +msgstr "`glut`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:929 +msgid "" +"Add a library dependency on [.filename]#libglut.so# from package:graphics/" +"freeglut[]" +msgstr "" +"Добавить зависимость от библиотеки [.filename]#libglut.so# из " +"package:graphics/freeglut[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:930 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2244 +#, no-wrap +msgid "`opengl`" +msgstr "`opengl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:932 +msgid "" +"Add a library dependency on [.filename]#libOpenGL.so# from package:graphics/" +"libglvnd[]" +msgstr "" +"Добавить зависимость от библиотеки [.filename]#libOpenGL.so# из " +"package:graphics/libglvnd[]" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:934 +#, no-wrap +msgid "`gmake`" +msgstr "`gmake`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:939 +msgid "" +"Uses package:devel/gmake[] as a build-time dependency and sets up the " +"environment to use `gmake` as the default `make` for the build." +msgstr "" +"Использует пакет package:devel/gmake[] как зависимость во время сборки и " +"настраивает окружение для использования `gmake` в качестве стандартного " +"`make` при сборке." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:941 +#, no-wrap +msgid "`gnome`" +msgstr "`gnome`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:948 +msgid "" +"Provides an easy way to depend on GNOME components. The components should " +"be listed in `USE_GNOME`. The available components are:" +msgstr "" +"Предоставляет простой способ зависеть от компонентов GNOME. Компоненты " +"должны быть перечислены в `USE_GNOME`. Доступные компоненты:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:950 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1598 +msgid "`atk`" +msgstr "`atk`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:951 +msgid "`atkmm`" +msgstr "`atkmm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:952 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1184 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1601 +msgid "`cairo`" +msgstr "`cairo`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:953 +msgid "`cairomm`" +msgstr "`cairomm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:954 +msgid "`dconf`" +msgstr "`dconf`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:955 +msgid "`esound`" +msgstr "`esound`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:956 +msgid "`evolutiondataserver3`" +msgstr "`evolutiondataserver3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:957 +msgid "`gconf2`" +msgstr "`gconf2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:958 +msgid "`gconfmm26`" +msgstr "`gconfmm26`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:959 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1200 +msgid "`gdkpixbuf`" +msgstr "`gdkpixbuf`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:960 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1612 +msgid "`gdkpixbuf2`" +msgstr "`gdkpixbuf2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:961 +msgid "`glib12`" +msgstr "`glib12`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:962 +msgid "`glib20`" +msgstr "`glib20`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:963 +msgid "`glibmm`" +msgstr "`glibmm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:964 +msgid "`gnomecontrolcenter3`" +msgstr "`gnomecontrolcenter3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:965 +msgid "`gnomedesktop3`" +msgstr "`gnomedesktop3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:966 +msgid "`gnomedesktop4`" +msgstr "`gnomedesktop4`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:967 +msgid "`gnomedocutils`" +msgstr "`gnomedocutils`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:968 +msgid "`gnomemenus3`" +msgstr "`gnomemenus3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:969 +msgid "`gnomemimedata`" +msgstr "`gnomemimedata`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:970 +msgid "`gnomeprefix`" +msgstr "`gnomeprefix`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:971 +msgid "`gnomesharp20`" +msgstr "`gnomesharp20`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:972 +msgid "`gnomevfs2`" +msgstr "`gnomevfs2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:973 +msgid "`gsound`" +msgstr "`gsound`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:974 +msgid "`gtk-update-icon-cache`" +msgstr "`gtk-update-icon-cache`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:975 +msgid "`gtk12`" +msgstr "`gtk12`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:976 +msgid "`gtk20`" +msgstr "`gtk20`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:977 +msgid "`gtk30`" +msgstr "`gtk30`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:978 +msgid "`gtkhtml3`" +msgstr "`gtkhtml3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:979 +msgid "`gtkhtml4`" +msgstr "`gtkhtml4`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:980 +msgid "`gtkmm20`" +msgstr "`gtkmm20`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:981 +msgid "`gtkmm24`" +msgstr "`gtkmm24`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:982 +msgid "`gtkmm30`" +msgstr "`gtkmm30`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:983 +msgid "`gtksharp20`" +msgstr "`gtksharp20`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:984 +msgid "`gtksourceview`" +msgstr "`gtksourceview`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:985 +msgid "`gtksourceview2`" +msgstr "`gtksourceview2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:986 +msgid "`gtksourceview3`" +msgstr "`gtksourceview3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:987 +msgid "`gtksourceviewmm3`" +msgstr "`gtksourceviewmm3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:988 +msgid "`gvfs`" +msgstr "`gvfs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:989 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1786 +msgid "`intlhack`" +msgstr "`intlhack`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:990 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1787 +msgid "`intltool`" +msgstr "`intltool`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:991 +msgid "`introspection`" +msgstr "`introspection`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:992 +msgid "`libartlgpl2`" +msgstr "`libartlgpl2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:993 +msgid "`libbonobo`" +msgstr "`libbonobo`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:994 +msgid "`libbonoboui`" +msgstr "`libbonoboui`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:995 +msgid "`libgda5`" +msgstr "`libgda5`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:996 +msgid "`libgda5-ui`" +msgstr "`libgda5-ui`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:997 +msgid "`libgdamm5`" +msgstr "`libgdamm5`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:998 +msgid "`libglade2`" +msgstr "`libglade2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:999 +msgid "`libgnome`" +msgstr "`libgnome`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1000 +msgid "`libgnomecanvas`" +msgstr "`libgnomecanvas`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1001 +msgid "`libgnomekbd`" +msgstr "`libgnomekbd`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1002 +msgid "`libgnomeprint`" +msgstr "`libgnomeprint`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1003 +msgid "`libgnomeprintui`" +msgstr "`libgnomeprintui`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1004 +msgid "`libgnomeui`" +msgstr "`libgnomeui`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1005 +msgid "`libgsf`" +msgstr "`libgsf`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1006 +msgid "`libgtkhtml`" +msgstr "`libgtkhtml`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1007 +msgid "`libgtksourceviewmm`" +msgstr "`libgtksourceviewmm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1008 +msgid "`libidl`" +msgstr "`libidl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1009 +msgid "`librsvg2`" +msgstr "`librsvg2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1010 +msgid "`libsigc++12`" +msgstr "`libsigc++12`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1011 +msgid "`libsigc++20`" +msgstr "`libsigc++20`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1012 +msgid "`libwnck`" +msgstr "`libwnck`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1013 +msgid "`libwnck3`" +msgstr "`libwnck3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1014 +msgid "`libxml++26`" +msgstr "`libxml++26`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1015 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1637 +msgid "`libxml2`" +msgstr "`libxml2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1016 +msgid "`libxslt`" +msgstr "`libxslt`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1017 +msgid "`metacity`" +msgstr "`metacity`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1018 +msgid "`nautilus3`" +msgstr "`nautilus3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1019 +msgid "`orbit2`" +msgstr "`orbit2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1020 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1237 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1648 +msgid "`pango`" +msgstr "`pango`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1021 +msgid "`pangomm`" +msgstr "`pangomm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1022 +msgid "`pangox-compat`" +msgstr "`pangox-compat`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1023 +msgid "`py3gobject3`" +msgstr "`py3gobject3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1024 +msgid "`pygnome2`" +msgstr "`pygnome2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1025 +msgid "`pygobject`" +msgstr "`pygobject`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1026 +msgid "`pygobject3`" +msgstr "`pygobject3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1027 +msgid "`pygtk2`" +msgstr "`pygtk2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1028 +msgid "`pygtksourceview`" +msgstr "`pygtksourceview`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1029 +msgid "`referencehack`" +msgstr "`referencehack`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1030 +msgid "`vte`" +msgstr "`vte`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1031 +msgid "`vte3`" +msgstr "`vte3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1034 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1800 +msgid "" +"The default dependency is build- and run-time, it can be changed with " +"`:build` or `:run`. For example:" +msgstr "" +"Зависимость по умолчанию — на время сборки и выполнения, её можно изменить с " +"помощью `:build` или `:run`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1039 +#, no-wrap +msgid "" +"USES=\t\tgnome\n" +"USE_GNOME=\tgnomemenus3:build intlhack\n" +msgstr "" +"USES=\t\tgnome\n" +"USE_GNOME=\tgnomemenus3:build intlhack\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1042 +msgid "See crossref:special[using-gnome,Using GNOME] for more information." +msgstr "" +"См. crossref:special[using-gnome,Использование GNOME] для получения " +"дополнительной информации." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1044 +#, no-wrap +msgid "`go`" +msgstr "`go`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1049 +msgid "" +"Ports should not be created for Go libs, see crossref:special[go-libs,Go " +"Libraries] for more information." +msgstr "" +"Порты не следует создавать для библиотек Go, дополнительную информацию см. в " +"crossref:special[go-libs,Библиотеки Go]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1052 +msgid "" +"Possible arguments: (none), `N.NN`, `N.NN-devel`, `modules`, `no_targets`, " +"`run`" +msgstr "" +"Возможные аргументы: (нет), `N.NN`, `N.NN-devel`, `modules`, `no_targets`, " +"`run`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1059 +msgid "" +"Sets default values and targets used to build Go software. A build " +"dependency on the Go compiler port is added, port maintainers can set " +"version required. By default the build is performed in GOPATH mode. If Go " +"software uses modules, the modules-aware mode can be switched on with " +"`modules` argument. `no_targets` will setup build environment like " +"`GO_ENV`, `GO_BUILDFLAGS` but skip creating extract and build targets. " +"`run` will also add a run dependency on the Go compiler port." +msgstr "" +"Устанавливает значения и цели по умолчанию, используемые для сборки ПО на " +"Go. Добавляется зависимость сборки от порта компилятора Go, сопровождающие " +"порта могут установить требуемую версию. По умолчанию сборка выполняется в " +"режиме GOPATH. Если ПО на Go использует модули, режим с поддержкой модулей " +"можно включить с помощью аргумента `modules`. `no_targets` настроит " +"окружение сборки, как `GO_ENV`, `GO_BUILDFLAGS`, но пропустит создание целей " +"извлечения (extract) и сборки (build). `run` также добавит зависимость " +"выполнения от порта компилятора Go." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1061 +msgid "The build process is controlled by several variables:" +msgstr "Процесс сборки контролируется несколькими переменными:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1062 +#, no-wrap +msgid "`GO_MODULE`" +msgstr "`GO_MODULE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1065 +msgid "" +"The name of the application module as specified by the `module` directive in " +"`go.mod`. In most cases, this is the only required variable for ports that " +"use Go modules." +msgstr "" +"Имя модуля приложения, указанное директивой `module` в `go.mod`. В " +"большинстве случаев это единственная необходимая переменная для портов, " +"использующих модули Go." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1066 +#, no-wrap +msgid "`GO_PKGNAME`" +msgstr "`GO_PKGNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1071 +msgid "" +"The name of the Go package when building in GOPATH mode. This is the " +"directory that will be created in `${GOPATH}/src`. If not set explicitly " +"and `GH_SUBDIR` or `GL_SUBDIR` is present, `GO_PKGNAME` will be inferred " +"from it. It is not needed when building in modules-aware mode." +msgstr "" +"Имя пакета Go при сборке в режиме GOPATH. Это каталог, который будет создан " +"в `${GOPATH}/src`. Если не задано явно и присутствует `GH_SUBDIR` или " +"`GL_SUBDIR`, то `GO_PKGNAME` будет выведено из них. Не требуется при сборке " +"в режиме с поддержкой модулей." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1072 +#, no-wrap +msgid "`GO_TARGET`" +msgstr "`GO_TARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1076 +msgid "" +"The packages to build. The default value is `${GO_PKGNAME}`. `GO_TARGET` " +"can also be a tuple in the form `package:path` where path can be either a " +"simple filename or a full path starting with `${PREFIX}`." +msgstr "" +"Пакеты для сборки. Значение по умолчанию — `${GO_PKGNAME}`. `GO_TARGET` " +"также может быть кортежем в формате `package:path`, где path может быть либо " +"простым именем файла, либо полным путём, начинающимся с `${PREFIX}`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1077 +#, no-wrap +msgid "`GO_TESTTARGET`" +msgstr "`GO_TESTTARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1080 +msgid "" +"The packages to test. The default value is `./...` (the current package and " +"all subpackages)." +msgstr "" +"Пакеты для тестирования. Значение по умолчанию — `./...` (текущий пакет и " +"все подпакеты)." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1081 +#, no-wrap +msgid "`CGO_CFLAGS`" +msgstr "`CGO_CFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1083 +msgid "Additional `CFLAGS` values to be passed to the C compiler by `go`." +msgstr "" +"Дополнительные значения `CFLAGS`, передаваемые компилятору C с помощью `go`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1084 +#, no-wrap +msgid "`CGO_LDFLAGS`" +msgstr "`CGO_LDFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1086 +msgid "Additional `LDFLAGS` values to be passed to the C compiler by `go`." +msgstr "" +"Дополнительные значения `LDFLAGS`, передаваемые компилятору C через `go`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1087 +#, no-wrap +msgid "`GO_BUILDFLAGS`" +msgstr "`GO_BUILDFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1089 +msgid "Additional build arguments to be passed to `go build`." +msgstr "Дополнительные аргументы сборки, передаваемые в `go build`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1090 +#, no-wrap +msgid "`GO_TESTFLAGS`" +msgstr "`GO_TESTFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1092 +msgid "Additional build arguments to be passed to `go test`." +msgstr "Дополнительные аргументы сборки, передаваемые в `go test`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1094 +msgid "" +"See crossref:special[using-go,Building Go Applications] for usage examples." +msgstr "" +"См. crossref:special[using-go,Сборка приложений на Go] для примеров " +"использования." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1096 +#, no-wrap +msgid "`gperf`" +msgstr "`gperf`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1101 +msgid "" +"Add a buildtime dependency on package:devel/gperf[] if `gperf` is not " +"present in the base system." +msgstr "" +"Добавить зависимость во время сборки на package:devel/gperf[], если `gperf` " +"отсутствует в базовой системе." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1103 +#, no-wrap +msgid "`grantlee`" +msgstr "`grantlee`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1106 +msgid "Possible arguments: `5`, `selfbuild`" +msgstr "Возможные аргументы: `5`, `selfbuild`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1110 +msgid "" +"Handle dependency on Grantlee. Specify `5` to depend on the Qt5 based " +"version, package:devel/grantlee5[]. `selfbuild` is used internally by " +"package:devel/grantlee5[] to get their versions numbers." +msgstr "" +"Обработать зависимость от Grantlee. Указать `5` для зависимости от версии на " +"основе Qt5, package:devel/grantlee5[]. `selfbuild` используется внутри " +"package:devel/grantlee5[] для получения номеров их версий." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1112 +#, no-wrap +msgid "`groff`" +msgstr "`groff`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1115 +msgid "Possible arguments: `build`, `run`, `both`" +msgstr "Возможные аргументы: `build`, `run`, `both`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1117 +msgid "" +"Registers a dependency on package:textproc/groff[] if not present in the " +"base system." +msgstr "" +"Регистрирует зависимость от package:textproc/groff[], если пакет отсутствует " +"в базовой системе." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1119 +#, no-wrap +msgid "`gssapi`" +msgstr "`gssapi`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1122 +msgid "" +"Possible arguments: (none), `base` (default), `heimdal`, `mit`, `flags`, " +"`bootstrap`" +msgstr "" +"Возможные аргументы: (отсутствуют), `base` (по умолчанию), `heimdal`, `mit`, " +"`flags`, `bootstrap`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1127 +msgid "" +"Handle dependencies needed by consumers of the GSS-API. Only libraries that " +"provide the Kerberos mechanism are available. By default, or set to `base`, " +"the GSS-API library from the base system is used. Can also be set to " +"`heimdal` to use package:security/heimdal[], or `mit` to use " +"package:security/krb5[]." +msgstr "" +"Обрабатывает зависимости, необходимые для использования GSS-API. Доступны " +"только библиотеки, предоставляющие механизм Kerberos. По умолчанию (или при " +"значении `base`) используется библиотека GSS-API из базовой системы. Также " +"можно установить значение `heimdal` для использования package:security/" +"heimdal[] или `mit` для использования package:security/krb5[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1129 +msgid "" +"When the local Kerberos installation is not in `LOCALBASE`, set " +"`HEIMDAL_HOME` (for `heimdal`) or `KRB5_HOME` (for `krb5`) to the location " +"of the Kerberos installation." +msgstr "" +"Если локальная установка Kerberos не находится в `LOCALBASE`, установите " +"`HEIMDAL_HOME` (для `heimdal`) или `KRB5_HOME` (для `krb5`) на каталог " +"установки Kerberos." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1131 +msgid "These variables are exported for the ports to use:" +msgstr "Эти переменные экспортируются для использования портами:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1133 +msgid "`GSSAPIBASEDIR`" +msgstr "`GSSAPIBASEDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1134 +msgid "`GSSAPICPPFLAGS`" +msgstr "`GSSAPICPPFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1135 +msgid "`GSSAPIINCDIR`" +msgstr "`GSSAPIINCDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1136 +msgid "`GSSAPILDFLAGS`" +msgstr "`GSSAPILDFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1137 +msgid "`GSSAPILIBDIR`" +msgstr "`GSSAPILIBDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1138 +msgid "`GSSAPILIBS`" +msgstr "`GSSAPILIBS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1139 +msgid "`GSSAPI_CONFIGURE_ARGS`" +msgstr "`GSSAPI_CONFIGURE_ARGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1142 +msgid "" +"The `flags` option can be given alongside `base`, `heimdal`, or `mit` to " +"automatically add `GSSAPICPPFLAGS`, `GSSAPILDFLAGS`, and `GSSAPILIBS` to " +"`CFLAGS`, `LDFLAGS`, and `LDADD`, respectively. For example, use " +"`base,flags`." +msgstr "" +"Опция `flags` может быть указана вместе с `base`, `heimdal` или `mit` для " +"автоматического добавления `GSSAPICPPFLAGS`, `GSSAPILDFLAGS` и `GSSAPILIBS` " +"в `CFLAGS`, `LDFLAGS` и `LDADD` соответственно. Например, используйте " +"`base,flags`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1145 +msgid "" +"The `bootstrap` option is a special prefix only for use by package:security/" +"krb5[] and package:security/heimdal[]. For example, use `bootstrap,mit`." +msgstr "" +"Опция `bootstrap` — это специальный префикс, предназначенный только для " +"использования в package:security/krb5[] и package:security/heimdal[]. " +"Например, используйте `bootstrap,mit`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1147 +#, no-wrap +msgid "Typical Use" +msgstr "Типичное использование" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1154 +#, no-wrap +msgid "" +"OPTIONS_SINGLE=\tGSSAPI\n" +"OPTIONS_SINGLE_GSSAPI=\tGSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE\n" +msgstr "" +"OPTIONS_SINGLE=\tGSSAPI\n" +"OPTIONS_SINGLE_GSSAPI=\tGSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1162 +#, no-wrap +msgid "" +"GSSAPI_BASE_USES=\tgssapi\n" +"GSSAPI_BASE_CONFIGURE_ON=\t--with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}\n" +"GSSAPI_HEIMDAL_USES=\tgssapi:heimdal\n" +"GSSAPI_HEIMDAL_CONFIGURE_ON=\t--with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}\n" +"GSSAPI_MIT_USES=\tgssapi:mit\n" +"GSSAPI_MIT_CONFIGURE_ON=\t--with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}\n" +"GSSAPI_NONE_CONFIGURE_ON=\t--without-gssapi\n" +msgstr "" +"GSSAPI_BASE_USES=\tgssapi\n" +"GSSAPI_BASE_CONFIGURE_ON=\t--with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}\n" +"GSSAPI_HEIMDAL_USES=\tgssapi:heimdal\n" +"GSSAPI_HEIMDAL_CONFIGURE_ON=\t--with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}\n" +"GSSAPI_MIT_USES=\tgssapi:mit\n" +"GSSAPI_MIT_CONFIGURE_ON=\t--with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS}\n" +"GSSAPI_NONE_CONFIGURE_ON=\t--without-gssapi\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1167 +#, no-wrap +msgid "`gstreamer`" +msgstr "`gstreamer`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1174 +msgid "" +"Provides an easy way to depend on GStreamer components. The components " +"should be listed in `USE_GSTREAMER`. The available components are:" +msgstr "" +"Предоставляет простой способ зависимости от компонентов GStreamer. " +"Компоненты должны быть перечислены в `USE_GSTREAMER`. Доступные компоненты:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1176 +msgid "`a52dec`" +msgstr "`a52dec`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1177 +msgid "`aalib`" +msgstr "`aalib`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1178 +msgid "`amrnb`" +msgstr "`amrnb`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1179 +msgid "`amrwbdec`" +msgstr "`amrwbdec`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1180 +msgid "`aom`" +msgstr "`aom`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1181 +msgid "`assrender`" +msgstr "`assrender`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1182 +msgid "`bad`" +msgstr "`bad`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1183 +msgid "`bs2b`" +msgstr "`bs2b`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1185 +msgid "`cdio`" +msgstr "`cdio`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1186 +msgid "`cdparanoia`" +msgstr "`cdparanoia`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1187 +msgid "`chromaprint`" +msgstr "`chromaprint`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1188 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1603 +msgid "`curl`" +msgstr "`curl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1189 +msgid "`dash`" +msgstr "`dash`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1190 +msgid "`dtls`" +msgstr "`dtls`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1191 +msgid "`dts`" +msgstr "`dts`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1192 +msgid "`dv`" +msgstr "`dv`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1193 +msgid "`dvd`" +msgstr "`dvd`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1194 +msgid "`dvdread`" +msgstr "`dvdread`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1195 +msgid "`editing-services`" +msgstr "`editing-services`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1196 +msgid "`faac`" +msgstr "`faac`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1197 +msgid "`faad`" +msgstr "`faad`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1198 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1610 +msgid "`flac`" +msgstr "`flac`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1199 +msgid "`flite`" +msgstr "`flite`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1202 +msgid "`gme`" +msgstr "`gme`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1203 +msgid "`gnonlin`" +msgstr "`gnonlin`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1204 +msgid "`good`" +msgstr "`good`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1205 +msgid "`gsm`" +msgstr "`gsm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1206 +msgid "`gtk4`" +msgstr "`gtk4`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1207 +msgid "`gtk`" +msgstr "`gtk`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1208 +msgid "`hal`" +msgstr "`hal`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1209 +msgid "`hls`" +msgstr "`hls`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1210 +msgid "`jack`" +msgstr "`jack`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1211 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1427 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1619 +#, no-wrap +msgid "`jpeg`" +msgstr "`jpeg`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1212 +msgid "`kate`" +msgstr "`kate`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1213 +msgid "`kms`" +msgstr "`kms`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1214 +msgid "`ladspa`" +msgstr "`ladspa`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1215 +msgid "`lame`" +msgstr "`lame`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1216 +msgid "`libav`" +msgstr "`libav`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1217 +msgid "`libcaca`" +msgstr "`libcaca`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1218 +msgid "`libde265`" +msgstr "`libde265`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1219 +msgid "`libmms`" +msgstr "`libmms`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1220 +msgid "`libvisual`" +msgstr "`libvisual`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1221 +msgid "`lv2`" +msgstr "`lv2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1222 +msgid "`mm`" +msgstr "`mm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1223 +msgid "`modplug`" +msgstr "`modplug`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1224 +msgid "`mpeg2dec`" +msgstr "`mpeg2dec`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1225 +msgid "`mpeg2enc`" +msgstr "`mpeg2enc`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1226 +msgid "`mpg123`" +msgstr "`mpg123`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1227 +msgid "`mplex`" +msgstr "`mplex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1228 +msgid "`musepack`" +msgstr "`musepack`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1229 +msgid "`neon`" +msgstr "`neon`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1230 +msgid "`ogg`" +msgstr "`ogg`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1231 +msgid "`opencv`" +msgstr "`opencv`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1232 +msgid "`openexr`" +msgstr "`openexr`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1233 +msgid "`openh264`" +msgstr "`openh264`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1234 +msgid "`openjpeg`" +msgstr "`openjpeg`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1235 +msgid "`openmpt`" +msgstr "`openmpt`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1236 +msgid "`opus`" +msgstr "`opus`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1238 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1650 +msgid "`png`" +msgstr "`png`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1239 +msgid "`pulse`" +msgstr "`pulse`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1240 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1652 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2346 +#, no-wrap +msgid "`qt`" +msgstr "`qt`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1241 +msgid "`resindvd`" +msgstr "`resindvd`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1242 +msgid "`rsvg`" +msgstr "`rsvg`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1243 +msgid "`rtmp`" +msgstr "`rtmp`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1244 +msgid "`shout2`" +msgstr "`shout2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1245 +msgid "`sidplay`" +msgstr "`sidplay`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1246 +msgid "`smoothstreaming`" +msgstr "`smoothstreaming`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1247 +msgid "`sndfile`" +msgstr "`sndfile`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1248 +msgid "`sndio`" +msgstr "`sndio`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1249 +msgid "`soundtouch`" +msgstr "`soundtouch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1250 +msgid "`soup`" +msgstr "`soup`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1251 +msgid "`spandsp`" +msgstr "`spandsp`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1252 +msgid "`speex`" +msgstr "`speex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1253 +msgid "`srtp`" +msgstr "`srtp`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1254 +msgid "`taglib`" +msgstr "`taglib`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1255 +msgid "`theora`" +msgstr "`theora`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1256 +msgid "`ttml`" +msgstr "`ttml`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1257 +msgid "`twolame`" +msgstr "`twolame`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1258 +msgid "`ugly`" +msgstr "`ugly`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1259 +msgid "`v4l2`" +msgstr "`v4l2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1260 +msgid "`vorbis`" +msgstr "`vorbis`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1261 +msgid "`vpx`" +msgstr "`vpx`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1262 +msgid "`vulkan`" +msgstr "`vulkan`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1263 +msgid "`wavpack`" +msgstr "`wavpack`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1264 +msgid "`webp`" +msgstr "`webp`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1265 +msgid "`webrtcdsp`" +msgstr "`webrtcdsp`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1266 +msgid "`x264`" +msgstr "`x264`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1267 +msgid "`x265`" +msgstr "`x265`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1268 +msgid "`x`" +msgstr "`x`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1269 +msgid "`ximagesrc`" +msgstr "`ximagesrc`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1270 +msgid "`zbar`" +msgstr "`zbar`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1272 +#, no-wrap +msgid "`guile`" +msgstr "`guile`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1275 +msgid "" +"Possible arguments: (none), `_X.Y_`, `flavors`, `build`, `run`, `alias`, " +"`conflicts`" +msgstr "" +"Возможные аргументы: (нет), `_X.Y_`, `flavors`, `build`, `run`, `alias`, " +"`conflicts`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1279 +msgid "" +"Adds a dependency on Guile. By default this is a library dependency on the " +"appropriate `libguile*.so`, unless overridden by the `build` and/or `run` " +"option. The `alias` option configures `BINARY_ALIAS` appropriately (see " +"crossref:makefiles[binary-alias,Use `BINARY_ALIAS`])." +msgstr "" +"Добавляет зависимость от Guile. По умолчанию это зависимость от " +"соответствующей библиотеки `libguile*.so`, если не переопределено опциями " +"`build` и/или `run`. Опция `alias` настраивает `BINARY_ALIAS` " +"соответствующим образом (см. crossref:makefiles[binary-alias,Использование " +"`BINARY_ALIAS`])." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1282 +msgid "" +"The default version is set by the usual `DEFAULT_VERSIONS` mechanism; if the " +"default version is not one of the listed versions, then the latest available " +"listed version is used." +msgstr "" +"Версия по умолчанию устанавливается с помощью обычного механизма " +"`DEFAULT_VERSIONS`; если версия по умолчанию не входит в список указанных " +"версий, то используется последняя доступная версия из списка." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1285 +msgid "" +"Applications using Guile are normally built for only a single Guile " +"version. However, extension or library modules should use the `flavors` " +"option to build with multiple flavors." +msgstr "" +"Приложения, использующие Guile, обычно собираются только для одной версии " +"Guile. Однако модули расширений или библиотек должны использовать опцию " +"`flavors` для сборки с несколькими флейворами." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1287 +msgid "For more information see crossref:special[using-guile,Using Guile]." +msgstr "" +"Для получения дополнительной информации см. crossref:special[using-" +"guile,Использование Guile]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1289 +#, no-wrap +msgid "`horde`" +msgstr "`horde`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1296 +msgid "" +"Add buildtime and runtime dependencies on package:devel/pear-channel-" +"horde[]. Other Horde dependencies can be added with `USE_HORDE_BUILD` and " +"`USE_HORDE_RUN`. See crossref:special[php-horde,Horde Modules] for more " +"information." +msgstr "" +"Добавить зависимости времени сборки и выполнения для package:devel/pear-" +"channel-horde[]. Другие зависимости Horde можно добавить с помощью " +"`USE_HORDE_BUILD` и `USE_HORDE_RUN`. Дополнительную информацию см. в разделе " +"crossref:special[php-horde,Модули Horde]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1298 +#, no-wrap +msgid "`iconv`" +msgstr "`iconv`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1301 +msgid "" +"Possible arguments: (none), `lib`, `build`, `patch`, `translit`, `wchar_t`" +msgstr "" +"Возможные аргументы: (нет), `lib`, `build`, `patch`, `translit`, `wchar_t`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1307 +msgid "" +"Uses `iconv` functions, either from the port package:converters/libiconv[] " +"as a build-time and run-time dependency, or from the base system. By " +"default, with no arguments or with the `lib` argument, implies `iconv` with " +"build-time and run-time dependencies. `build` implies a build-time " +"dependency, and `patch` implies a patch-time dependency. If the port uses " +"the `WCHAR_T` or `//TRANSLIT` iconv extensions, add the relevant arguments " +"so that the correct iconv is used. For more information see " +"crossref:special[using-iconv,Using `iconv`]." +msgstr "" +"Использует функции `iconv`, либо из порта package:converters/libiconv[] как " +"зависимость на этапе сборки и выполнения, либо из базовой системы. По " +"умолчанию, без аргументов или с аргументом `lib`, подразумевает `iconv` с " +"зависимостями на этапе сборки и выполнения. `build` подразумевает " +"зависимость на этапе сборки, а `patch` — на этапе патчинга. Если порт " +"использует расширения `WCHAR_T` или `//TRANSLIT` для `iconv`, добавьте " +"соответствующие аргументы, чтобы использовалась правильная версия `iconv`. " +"Для получения дополнительной информации см. crossref:special[using-" +"iconv,Использование `iconv`]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1309 +#, no-wrap +msgid "`imake`" +msgstr "`imake`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1312 +msgid "Possible arguments: (none), `env`, `notall`, `noman`" +msgstr "Возможные аргументы: (нет), `env`, `notall`, `noman`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1317 +msgid "" +"Add package:devel/imake[] as a build-time dependency and run `xmkmf -a` " +"during the `configure` stage. If the `env` argument is given, the " +"`configure` target is not set. If the `-a` flag is a problem for the port, " +"add the `notall` argument. If `xmkmf` does not generate a `install.man` " +"target, add the `noman` argument." +msgstr "" +"Добавить package:devel/imake[] как зависимость на этапе сборки и выполнить " +"`xmkmf -a` на этапе `configure`. Если указан аргумент `env`, цель " +"`configure` не устанавливается. Если флаг `-a` вызывает проблемы для порта, " +"добавьте аргумент `notall`. Если `xmkmf` не генерирует цель `install.man`, " +"добавьте аргумент `noman`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1319 +#, no-wrap +msgid "`java`" +msgstr "`java`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1322 +msgid "Possible arguments: (none), `ant`, `build`, `extract`, `run`" +msgstr "Возможные аргументы: (нет), `ant`, `build`, `extract`, `run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1329 +msgid "" +"Defaults to `USES=java:build,run` if no arguments are provided and " +"`NO_BUILD` is undefined. If `NO_BUILD` is defined, `USES=java:run` is used. " +"If the `ant` argument is given, the port uses Apache Ant. If the `build` " +"argument is given, a JDK port is added to the build dependencies. If the " +"`extract` argument is given, a JDK port is added to the extract " +"dependencies. If the `run` argument is given, a JDK port is added to the " +"run dependencies." +msgstr "" +"По умолчанию используется `USES=java:build,run`, если аргументы не " +"предоставлены и `NO_BUILD` не определен. Если `NO_BUILD` определен, " +"используется `USES=java:run`. Если указан аргумент `ant`, порт использует " +"Apache Ant. Если указан аргумент `build`, порт JDK добавляется в зависимости " +"сборки. Если указан аргумент `extract`, порт JDK добавляется в зависимости " +"извлечения. Если указан аргумент `run`, порт JDK добавляется в зависимости " +"выполнения." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1332 +#, no-wrap +msgid "`JAVA_VERSION`" +msgstr "`JAVA_VERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1336 +msgid "" +"List of space-separated suitable java versions for the port. An optional `\\" +"+` allows you to specify a range of versions. (allowed values `8[+]`, `11[\\" +"+]`, `17[+]`, `18[\\+]`, `19[+]`, `20[\\+]`, `21[+]`, `22[\\+]`, `22[+]`)" +msgstr "" +"Список подходящих версий Java для порта, разделенных пробелами. " +"Необязательный символ `\\+` позволяет указать диапазон версий. (допустимые " +"значения `8[+]`, `11[\\+]`, `17[+]`, `18[\\+]`, `19[+]`, `20[\\+]`, `21[+]`, " +"`22[\\+]`, `22[+]`)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1337 +#, no-wrap +msgid "`JAVA_OS`" +msgstr "`JAVA_OS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1340 +msgid "" +"List of space-separated suitable JDK port operating systems for the port. " +"(allowed values: `native`, `linux`)" +msgstr "" +"Список поддерживаемых операционных систем для порта JDK, разделённых " +"пробелами. (допустимые значения: `native`, `linux`)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1341 +#, no-wrap +msgid "`JAVA_VENDOR`" +msgstr "`JAVA_VENDOR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1344 +msgid "" +"List of space-separated suitable JDK port vendors for the port. (allowed " +"values: `openjdk`, `oracle`)" +msgstr "" +"Список подходящих поставщиков портов JDK для порта, разделенных пробелами. " +"(допустимые значения: `openjdk`, `oracle`)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1346 +msgid "The framework exposes the following variables to be read by the port:" +msgstr "Фреймворк предоставляет следующие переменные для чтения портом:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1347 +#, no-wrap +msgid "`JAVA_PORT`" +msgstr "`JAVA_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1349 +msgid "The name of the JDK port. (e.g. 'java/openjdk8')" +msgstr "Имя порта JDK. (например, 'java/openjdk8')" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1350 +#, no-wrap +msgid "`JAVA_PORT_VERSION`" +msgstr "`JAVA_PORT_VERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1352 +msgid "The version of the JDK port. (e.g. '8')" +msgstr "Версия порта JDK. (например, '8')" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1353 +#, no-wrap +msgid "`JAVA_PORT_OS`" +msgstr "`JAVA_PORT_OS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1355 +msgid "The operating system used by the JDK port. (e.g. 'linux')" +msgstr "Используемая операционная система для порта JDK. (например, 'linux')" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1356 +#, no-wrap +msgid "`JAVA_PORT_VENDOR`" +msgstr "`JAVA_PORT_VENDOR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1358 +msgid "The vendor of the JDK port. (e.g. 'openjdk')" +msgstr "Поставщик порта JDK. (например, 'openjdk')" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1359 +#, no-wrap +msgid "`JAVA_PORT_OS_DESCRIPTION`" +msgstr "`JAVA_PORT_OS_DESCRIPTION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1361 +msgid "" +"Description of the operating system used by the JDK port. (e.g. 'Linux')" +msgstr "" +"Описание операционной системы, используемой портом JDK. (например, 'Linux')" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1362 +#, no-wrap +msgid "`JAVA_PORT_VENDOR_DESCRIPTION`" +msgstr "`JAVA_PORT_VENDOR_DESCRIPTION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1364 +msgid "" +"Description of the vendor of the JDK port. (e.g. 'OpenJDK BSD Porting Team')" +msgstr "Описание поставщика порта JDK. (например, 'OpenJDK BSD Porting Team')" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1365 +#, no-wrap +msgid "`JAVA_HOME`" +msgstr "`JAVA_HOME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1367 +msgid "" +"Path to the installation directory of the JDK. (e.g. [.filename]#/usr/local/" +"openjdk8#)" +msgstr "" +"Путь к каталогу установки JDK. (например, [.filename]#/usr/local/openjdk8#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1368 +#, no-wrap +msgid "`JAVAC`" +msgstr "`JAVAC`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1371 +msgid "" +"Path to the Java compiler to use. (e.g. [.filename]#/usr/local/openjdk8/bin/" +"javac# or [.filename]#/usr/local/bin/javac#)" +msgstr "" +"Путь к используемому компилятору Java. (например, [.filename]#/usr/local/" +"openjdk8/bin/javac# или [.filename]#/usr/local/bin/javac#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1372 +#, no-wrap +msgid "`JAR`" +msgstr "`JAR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1375 +msgid "" +"Path to the JAR tool to use. (e.g. [.filename]#/usr/local/openjdk8/bin/jar# " +"or [.filename]#/usr/local/bin/fastjar#)" +msgstr "" +"Путь к используемому инструменту JAR. (например, [.filename]#/usr/local/" +"openjdk8/bin/jar# или [.filename]#/usr/local/bin/fastjar#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1376 +#, no-wrap +msgid "`APPLETVIEWER`" +msgstr "`APPLETVIEWER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1379 +msgid "" +"Path to the appletviewer utility. (e.g. [.filename]#/usr/local/linux-" +"jdk1.8.0/bin/appletviewer#)" +msgstr "" +"Путь к утилите appletviewer. (например, [.filename]#/usr/local/linux-" +"jdk1.8.0/bin/appletviewer#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1380 +#, no-wrap +msgid "`JAVA`" +msgstr "`JAVA`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1382 +msgid "" +"Path to the `java` executable. Use this for executing Java programs. (e.g. " +"[.filename]#/usr/local/openjdk8/bin/java#)" +msgstr "" +"Путь к исполняемому файлу `java`. Используется для запуска программ на Java. " +"(например, [.filename]#/usr/local/openjdk8/bin/java#)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1383 +#, no-wrap +msgid "`JAVADOC`" +msgstr "`JAVADOC`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1385 +msgid "Path to the `javadoc` utility program." +msgstr "Путь к программе `javadoc`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1386 +#, no-wrap +msgid "`JAVAH`" +msgstr "`JAVAH`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1388 +msgid "Path to the `javah` program." +msgstr "Путь к программе `javah`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1389 +#, no-wrap +msgid "`JAVAP`" +msgstr "`JAVAP`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1391 +msgid "Path to the `javap` program." +msgstr "Путь к программе `javap`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1392 +#, no-wrap +msgid "`JAVA_KEYTOOL`" +msgstr "`JAVA_KEYTOOL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1394 +msgid "Path to the `keytool` utility program." +msgstr "Путь к утилите `keytool`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1395 +#, no-wrap +msgid "`JAVA_N2A`" +msgstr "`JAVA_N2A`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1397 +msgid "Path to the `native2ascii` tool." +msgstr "Путь к инструменту `native2ascii`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1398 +#, no-wrap +msgid "`JAVA_POLICYTOOL`" +msgstr "`JAVA_POLICYTOOL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1400 +msgid "Path to the `policytool` program." +msgstr "Путь к программе `policytool`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1401 +#, no-wrap +msgid "`JAVA_SERIALVER`" +msgstr "`JAVA_SERIALVER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1403 +msgid "Path to the `serialver` utility program." +msgstr "Путь к утилите `serialver`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1404 +#, no-wrap +msgid "`RMIC`" +msgstr "`RMIC`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1406 +msgid "Path to the RMI stub/skeleton generator, `rmic`." +msgstr "Путь к генератору RMI-заглушек/скелетов, `rmic`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1407 +#, no-wrap +msgid "`RMIREGISTRY`" +msgstr "`RMIREGISTRY`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1409 +msgid "Path to the RMI registry program, `rmiregistry`." +msgstr "Путь к программе реестра RMI, `rmiregistry`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1410 +#, no-wrap +msgid "`RMID`" +msgstr "`RMID`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1412 +msgid "Path to the RMI daemon program." +msgstr "Путь к программе демона RMI." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1413 +#, no-wrap +msgid "`JAVA_CLASSES`" +msgstr "`JAVA_CLASSES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1416 +msgid "" +"Path to the archive that contains the JDK class files. On most JDKs, this is " +"[.filename]#${JAVA_HOME}/jre/lib/rt.jar#." +msgstr "" +"Путь к архиву, содержащему файлы классов JDK. В большинстве JDK это " +"[.filename]#${JAVA_HOME}/jre/lib/rt.jar#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1417 +#, no-wrap +msgid "`JAVASHAREDIR`" +msgstr "`JAVASHAREDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1419 +msgid "The base directory for all shared Java resources." +msgstr "Базовый каталог для всех общих ресурсов Java." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1420 +#, no-wrap +msgid "`JAVAJARDIR`" +msgstr "`JAVAJARDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1422 +msgid "The directory where a port should install JAR files." +msgstr "Каталог, в котором порт должен устанавливать JAR-файлы." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1423 +#, no-wrap +msgid "`JAVALIBDIR`" +msgstr "`JAVALIBDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1425 +msgid "The directory where JAR files installed by other ports are located." +msgstr "Каталог, в котором находятся JAR-файлы, установленные другими портами." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1430 +msgid "Possible arguments: `lib` (default, implicit), `build`, `run`" +msgstr "" +"Возможные аргументы: `lib` (по умолчанию, подразумевается), `build`, `run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1432 +msgid "Help handling dependencies on `jpeg`." +msgstr "Помощь в обработке зависимостей от `jpeg`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1435 +msgid "" +"If the `lib` argument is provided or no arguments are provided then a lib " +"dependency is added to the port." +msgstr "" +"Если указан аргумент `lib` или аргументы не предоставлены, то в порт " +"добавляется зависимость от библиотеки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1438 +msgid "" +"If the `build` argument is provided then a build dependency is added to the " +"port." +msgstr "" +"Если указан аргумент `build`, то в порт добавляется зависимость сборки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1441 +msgid "" +"If the `run` argument is provided then a run dependency is added to the port." +msgstr "" +"Если указан аргумент `run`, то к порту добавляется зависимость времени " +"выполнения." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1444 +msgid "" +"If the `both` argument is provided then a build dependency and a run " +"dependency are added to the port." +msgstr "" +"Если указан аргумент `both`, то к порту добавляется зависимость для сборки и " +"зависимость для выполнения." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1446 +msgid "The framework provides the following variable that can be set by ports:" +msgstr "" +"Фреймворк предоставляет следующую переменную, которая может быть установлена " +"портами:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1447 +#, no-wrap +msgid "`JPEG_PORT`" +msgstr "`JPEG_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1449 +msgid "Specifies the JPEG implementation to use. Possible values are:" +msgstr "Указывает реализацию JPEG для использования. Возможные значения:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1451 +msgid "package:graphics/jpeg-turbo[] (default)" +msgstr "package:graphics/jpeg-turbo[] (по умолчанию)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1452 +msgid "package:graphics/mozjpeg[]" +msgstr "package:graphics/mozjpeg[]" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1454 +#, no-wrap +msgid "`kde`" +msgstr "`kde`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1457 +msgid "Possible arguments: `5`" +msgstr "Возможные аргументы: `5`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1460 +msgid "" +"Add dependency on KDE components. See crossref:special[using-kde,Using KDE] " +"for more information." +msgstr "" +"Добавить зависимость от компонентов KDE. Подробнее см. в " +"crossref:special[using-kde,Использование KDE]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1462 +#, no-wrap +msgid "`kmod`" +msgstr "`kmod`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1465 +msgid "Possible arguments: (none), `debug`" +msgstr "Возможные аргументы: (отсутствуют), `debug`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1467 +msgid "Fills in the boilerplate for kernel module ports, currently:" +msgstr "Заполняет шаблон для портов модулей ядра, в настоящее время:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1469 +msgid "Add `kld` to `CATEGORIES`." +msgstr "Добавьте `kld` в `CATEGORIES`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1470 +msgid "Set `SSP_UNSAFE`." +msgstr "Установите `SSP_UNSAFE`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1471 +msgid "Set `IGNORE` if the kernel sources are not found in `SRC_BASE`." +msgstr "Установите `IGNORE`, если исходные коды ядра не найдены в `SRC_BASE`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1472 +msgid "" +"Define `KMODDIR` to [.filename]#/boot/modules# by default, add it to " +"`PLIST_SUB` and `MAKE_ENV`, and create it upon installation. If `KMODDIR` is " +"set to [.filename]#/boot/kernel#, it will be rewritten to [.filename]#/boot/" +"modules#. This prevents breaking packages when upgrading the kernel due to " +"[.filename]#/boot/kernel# being renamed to [.filename]#/boot/kernel.old# in " +"the process." +msgstr "" +"Определить `KMODDIR` по умолчанию как [.filename]#/boot/modules#, добавить " +"его в `PLIST_SUB` и `MAKE_ENV`, а также создать его при установке. Если " +"`KMODDIR` установлен в [.filename]#/boot/kernel#, он будет перезаписан в " +"[.filename]#/boot/modules#. Это предотвращает повреждение пакетов при " +"обновлении ядра из-за переименования [.filename]#/boot/kernel# в " +"[.filename]#/boot/kernel.old# в процессе." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1473 +msgid "" +"Handle cross-referencing kernel modules upon installation and " +"deinstallation, using crossref:plist[plist-keywords-kld,`@kld`]." +msgstr "" +"Обрабатывать перекрестные ссылки на модули ядра при установке и удалении, " +"используя crossref:plist[plist-keywords-kld,`@kld`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1474 +msgid "" +"If the `debug` argument is given, the port can install a debug version of " +"the module into [.filename]#KERN_DEBUGDIR#/[.filename]#KMODDIR#. By default, " +"`KERN_DEBUGDIR` is copied from `DEBUGDIR` and set to [.filename]#/usr/lib/" +"debug#. The framework will take care of creating and removing any required " +"directories." +msgstr "" +"Если указан аргумент `debug`, порт может установить отладочную версию модуля " +"в [.filename]#KERN_DEBUGDIR#/[.filename]#KMODDIR#. По умолчанию " +"`KERN_DEBUGDIR` копируется из `DEBUGDIR` и устанавливается в [.filename]#/" +"usr/lib/debug#. Фреймворк позаботится о создании и удалении необходимых " +"каталогов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1476 +#, no-wrap +msgid "`kodi`" +msgstr "`kodi`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1483 +msgid "" +"Provide support for package:multimedia/kodi[] add-ons. If the `noautoplist` " +"argument is provided it does not generate the `plist` automatically." +msgstr "" +"Обеспечить поддержку дополнений для package:multimedia/kodi[]. Если указан " +"аргумент `noautoplist`, автоматическое создание `plist` не выполняется." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1485 +#, no-wrap +msgid "`lazarus`" +msgstr "`lazarus`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1488 +msgid "Possible arguments: (none), `gtk2` (default), `qt5`, `qt6`, `flavors`" +msgstr "" +"Возможные аргументы: (отсутствуют), `gtk2` (по умолчанию), `qt5`, `qt6`, " +"`flavors`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1490 +msgid "Provide support for package:editors/lazarus[] based ports." +msgstr "Обеспечить поддержку портов на основе package:editors/lazarus[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1494 +msgid "" +"If no arguments are provided or if `gtk2` is provided the lazarus-app is " +"built with a `gtk2` interface the package:editors/lazarus[] port will be " +"built with the `gtk2` interface." +msgstr "" +"Если аргументы не предоставлены или указан `gtk2`, приложение lazarus-app " +"будет собрано с интерфейсом `gtk2`, и порт package:editors/lazarus[] будет " +"собран с интерфейсом `gtk2`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1497 +msgid "" +"If the `qt5` argument is provided, the lazarus-app is built with a `qt5` " +"interface." +msgstr "" +"Если указан аргумент `qt5`, приложение lazarus-app собирается с интерфейсом " +"`qt5`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1500 +msgid "" +"If the `qt6` argument is provided, the lazarus-app is built with a `qt6` " +"interface." +msgstr "" +"Если указан аргумент `qt6`, приложение lazarus-app собирается с интерфейсом " +"`qt6`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1503 +msgid "" +"If the `flavors` argument is provided the lazarus-app is built with flavors " +"feature." +msgstr "" +"Если указан аргумент `flavors`, приложение `lazarus-app` собирается с " +"поддержкой функций флейворов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1506 +msgid "" +"If the port does not require compiling lazarus project files automatically, " +"the following variable can be defined:" +msgstr "" +"Если порт не требует автоматической компиляции файлов проекта lazarus, можно " +"определить следующую переменную:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1508 +msgid "`NO_LAZBUILD`= `yes`" +msgstr "`NO_LAZBUILD`= `yes`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1510 +msgid "The following variables are available for ports:" +msgstr "Доступны следующие переменные для портов:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1511 +#, no-wrap +msgid "`LAZARUS_PROJECT_FILES`" +msgstr "`LAZARUS_PROJECT_FILES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1513 +msgid "List of lpi files. It must not be empty. Default: empty" +msgstr "Список lpi-файлов. Он не должен быть пустым. По умолчанию: пусто" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1514 +#, no-wrap +msgid "`LAZARUS_DIR`" +msgstr "`LAZARUS_DIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1517 +msgid "" +"Path to lazarus installation directory Default: [.filename]#${LOCALBASE}/" +"share/lazarus-${LAZARUS_VER}#" +msgstr "" +"Путь к директории установки lazarus. По умолчанию: [.filename]#${LOCALBASE}/" +"share/lazarus-${LAZARUS_VER}#" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1518 +#, no-wrap +msgid "`LAZBUILD_ARGS`" +msgstr "`LAZBUILD_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1522 +msgid "" +"lazbuild extra args. It could be `-d` in most of cases. See man:lazbuild[1] " +"for more information. Default: empty" +msgstr "" +"Дополнительные аргументы lazbuild. В большинстве случаев это может быть `-" +"d`. Подробнее см. man:lazbuild[1]. По умолчанию: пусто" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1523 +#, no-wrap +msgid "`LAZARUS_NO_FLAVORS`" +msgstr "`LAZARUS_NO_FLAVORS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1526 +msgid "" +"Do not build these lazarus flavors. If `LAZARUS_NO_FLAVORS` is not defined " +"then all valid lazarus flavors are assumed." +msgstr "" +"Не собирать эти флейворы lazarus. Если `LAZARUS_NO_FLAVORS` не определена, " +"то предполагаются все допустимые флейворы lazarus." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1527 +#, no-wrap +msgid "`WANT_LAZARUS_DEVEL`" +msgstr "`WANT_LAZARUS_DEVEL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1529 +msgid "If set to `yes` then use package:lazarus/devel[] as build dependency." +msgstr "" +"Если установлено значение `yes`, то используйте package:lazarus/devel[] как " +"зависимость сборки." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1531 +#, no-wrap +msgid "`ldap`" +msgstr "`ldap`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1534 +msgid "Possible arguments: (none), , client, server" +msgstr "Возможные аргументы: (нет), <версия>, клиент, сервер" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1542 +msgid "" +"Registers a dependency on package:net/openldap[]. It uses the specific " +"`` (without the dot notation) if set. Otherwise it tries to find " +"the currently installed version. If necessary it falls back to the default " +"version found in `bsd.default-versions.mk`. `client` specifies a runtime " +"dependency on the client library. This is also the default. `server` " +"specifies a runtime dependency on the server." +msgstr "" +"Регистрирует зависимость от пакета package:net/openldap[]. Использует " +"конкретную `<версию>` (без точечной нотации), если она указана. В противном " +"случае пытается найти установленную версию. При необходимости возвращается к " +"версии по умолчанию, указанной в `bsd.default-versions.mk`. `client` " +"указывает на зависимость во время выполнения от клиентской библиотеки. Это " +"также значение по умолчанию. `server` указывает на зависимость во время " +"выполнения от сервера." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1545 +#, no-wrap +msgid "`IGNORE_WITH_OPENLDAP`" +msgstr "`IGNORE_WITH_OPENLDAP`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1547 +msgid "" +"This variable can be defined if the ports does not support one or more " +"versions of OpenLDAP." +msgstr "" +"Эта переменная может быть определена, если порты не поддерживают одну или " +"несколько версий OpenLDAP." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1547 +#, no-wrap +msgid "`WITH_OPENLDAP_VER`" +msgstr "`WITH_OPENLDAP_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1549 +msgid "User defined variable to set OpenLDAP version." +msgstr "Пользовательская переменная для установки версии OpenLDAP." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1549 +#, no-wrap +msgid "`OPENLDAP_VER`" +msgstr "`OPENLDAP_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1551 +msgid "Detected OpenLDAP version." +msgstr "Обнаруженная версия OpenLDAP." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1553 +#, no-wrap +msgid "`lha`" +msgstr "`lha`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1558 +msgid "Set `EXTRACT_SUFX` to `.lzh`" +msgstr "Установите `EXTRACT_SUFX` в `.lzh`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1560 +#, no-wrap +msgid "`libarchive`" +msgstr "`libarchive`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1566 +msgid "" +"Registers a dependency on package:archivers/libarchive[]. Any ports " +"depending on libarchive must include `USES=libarchive`." +msgstr "" +"Регистрирует зависимость от package:archivers/libarchive[]. Любые порты, " +"зависящие от libarchive, должны включать `USES=libarchive`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1568 +#, no-wrap +msgid "`libedit`" +msgstr "`libedit`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1574 +msgid "" +"Registers a dependency on package:devel/libedit[]. Any ports depending on " +"libedit must include `USES=libedit`." +msgstr "" +"Регистрирует зависимость от package:devel/libedit[]. Все порты, зависящие от " +"libedit, должны включать `USES=libedit`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1576 +#, no-wrap +msgid "`libtool`" +msgstr "`libtool`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1579 +msgid "Possible arguments: (none), `keepla`, `build`" +msgstr "Возможные аргументы: (нет), `keepla`, `build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1583 +msgid "" +"Patches `libtool` scripts. This must be added to all ports that use " +"`libtool`. The `keepla` argument can be used to keep [.filename]#.la# " +"files. Some ports do not ship with their own copy of libtool and need a " +"build time dependency on package:devel/libtool[], use the `:build` argument " +"to add such dependency." +msgstr "" +"Исправляет скрипты `libtool`. Это должно быть добавлено во все порты, " +"использующие `libtool`. Аргумент `keepla` может быть использован для " +"сохранения файлов [.filename]#.la#. Некоторые порты не поставляются с " +"собственной копией libtool и требуют зависимость во время сборки от " +"package:devel/libtool[], используйте аргумент `:build` для добавления такой " +"зависимости." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1585 +#, no-wrap +msgid "`linux`" +msgstr "`linux`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1588 +msgid "Possible arguments: `c6`, `c7`" +msgstr "Возможные аргументы: `c6`, `c7`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1592 +msgid "" +"Ports Linux compatibility framework. Specify `c6` to depend on CentOS 6 " +"packages. Specify `c7` to depend on CentOS 7 packages. The available " +"packages are:" +msgstr "" +"Порт фреймворка совместимости с Linux. Укажите `c6` для зависимостей от " +"пакетов CentOS 6. Укажите `c7` для зависимостей от пакетов CentOS 7. " +"Доступные пакеты:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1594 +msgid "`allegro`" +msgstr "`allegro`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1595 +msgid "`alsa-plugins-oss`" +msgstr "`alsa-plugins-oss`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1596 +msgid "`alsa-plugins-pulseaudio`" +msgstr "`alsa-plugins-pulseaudio`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1597 +msgid "`alsalib`" +msgstr "`alsalib`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1599 +msgid "`avahi-libs`" +msgstr "`avahi-libs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1600 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2820 +msgid "`base`" +msgstr "`base`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1602 +msgid "`cups-libs`" +msgstr "`cups-libs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1604 +msgid "`cyrus-sasl2`" +msgstr "`cyrus-sasl2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1605 +msgid "`dbusglib`" +msgstr "`dbusglib`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1606 +msgid "`dbuslibs`" +msgstr "`dbuslibs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1607 +msgid "`devtools`" +msgstr "`devtools`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1608 +msgid "`dri`" +msgstr "`dri`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1609 +msgid "`expat`" +msgstr "`expat`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1611 +msgid "`fontconfig`" +msgstr "`fontconfig`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1613 +msgid "`gnutls`" +msgstr "`gnutls`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1614 +msgid "`graphite2`" +msgstr "`graphite2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1615 +msgid "`gtk2`" +msgstr "`gtk2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1616 +msgid "`harfbuzz`" +msgstr "`harfbuzz`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1617 +msgid "`jasper`" +msgstr "`jasper`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1618 +msgid "`jbigkit`" +msgstr "`jbigkit`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1620 +msgid "`libasyncns`" +msgstr "`libasyncns`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1621 +msgid "`libaudiofile`" +msgstr "`libaudiofile`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1622 +msgid "`libelf`" +msgstr "`libelf`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1623 +msgid "`libgcrypt`" +msgstr "`libgcrypt`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1624 +msgid "`libgfortran`" +msgstr "`libgfortran`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1625 +msgid "`libgpg-error`" +msgstr "`libgpg-error`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1626 +msgid "`libmng`" +msgstr "`libmng`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1627 +msgid "`libogg`" +msgstr "`libogg`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1628 +msgid "`libpciaccess`" +msgstr "`libpciaccess`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1629 +msgid "`libsndfile`" +msgstr "`libsndfile`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1630 +msgid "`libsoup`" +msgstr "`libsoup`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1631 +msgid "`libssh2`" +msgstr "`libssh2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1632 +msgid "`libtasn1`" +msgstr "`libtasn1`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1633 +msgid "`libthai`" +msgstr "`libthai`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1634 +msgid "`libtheora`" +msgstr "`libtheora`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1635 +msgid "`libv4l`" +msgstr "`libv4l`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1636 +msgid "`libvorbis`" +msgstr "`libvorbis`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1638 +msgid "`mikmod`" +msgstr "`mikmod`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1639 +msgid "`naslibs`" +msgstr "`naslibs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1640 +msgid "`ncurses-base`" +msgstr "`ncurses-base`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1641 +msgid "`nspr`" +msgstr "`nspr`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1642 +msgid "`nss`" +msgstr "`nss`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1643 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2026 +#, no-wrap +msgid "`openal`" +msgstr "`openal`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1644 +msgid "`openal-soft`" +msgstr "`openal-soft`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1645 +msgid "`openldap`" +msgstr "`openldap`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1646 +msgid "`openmotif`" +msgstr "`openmotif`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1647 +msgid "`openssl`" +msgstr "`openssl`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1649 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3001 +#, no-wrap +msgid "`pixman`" +msgstr "`pixman`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1651 +msgid "`pulseaudio-libs`" +msgstr "`pulseaudio-libs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1653 +msgid "`qt-x11`" +msgstr "`qt-x11`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1654 +msgid "`qtwebkit`" +msgstr "`qtwebkit`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1655 +msgid "`scimlibs`" +msgstr "`scimlibs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1656 +msgid "`sdl12`" +msgstr "`sdl12`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1657 +msgid "`sdlimage`" +msgstr "`sdlimage`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1658 +msgid "`sdlmixer`" +msgstr "`sdlmixer`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1659 +msgid "`sqlite3`" +msgstr "`sqlite3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1660 +msgid "`tcl85`" +msgstr "`tcl85`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1661 +msgid "`tcp_wrappers-libs`" +msgstr "`tcp_wrappers-libs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1662 +msgid "`tiff`" +msgstr "`tiff`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1663 +msgid "`tk85`" +msgstr "`tk85`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1664 +msgid "`ucl`" +msgstr "`ucl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1665 +msgid "`xorglibs`" +msgstr "`xorglibs`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1667 +#, no-wrap +msgid "`llvm`" +msgstr "`llvm`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1670 +msgid "" +"Possible arguments: (none), `_XY_`, min=`_XY_`, max=`_XY_`, build, run, lib" +msgstr "" +"Возможные аргументы: (нет), `_XY_`, min=`_XY_`, max=`_XY_`, build, run, lib" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1678 +msgid "" +"Adds a dependency on LLVM. By default this is a build dependency unless " +"overridden by the `run` or `lib` options. The default version is the one " +"set in `LLVM_DEFAULT`. A specific version can be specified as well. The " +"minimum and maximum versions can be specified with the `min` and `max` " +"parameters respectively. The ports framework export the following variables " +"to the port:" +msgstr "" +"Добавляет зависимость от LLVM. По умолчанию это зависимость для сборки, если " +"не переопределено опциями `run` или `lib`. Версия по умолчанию задаётся в " +"`LLVM_DEFAULT`. Также можно указать конкретную версию. Минимальную и " +"максимальную версии можно указать с помощью параметров `min` и `max` " +"соответственно. Фреймворк портов экспортирует следующие переменные в порт:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1679 +#, no-wrap +msgid "`LLVM_VERSION`" +msgstr "`LLVM_VERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1681 +msgid "Version chosen from the arguments to llvm.mk" +msgstr "Версия, выбранная из аргументов к llvm.mk" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1681 +#, no-wrap +msgid "`LLVM_PORT`" +msgstr "`LLVM_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1683 +msgid "Chosen llvm port" +msgstr "Выбранный порт llvm" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1683 +#, no-wrap +msgid "`LLVM_CONFIG`" +msgstr "`LLVM_CONFIG`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1685 +msgid "llvm-config of the chosen port" +msgstr "`llvm-config` выбранного порта" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1685 +#, no-wrap +msgid "`LLVM_LIBLLVM`" +msgstr "`LLVM_LIBLLVM`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1687 +msgid "libLLVM.so of the chosen port" +msgstr "`libLLVM.so` выбранного порта" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1687 +#, no-wrap +msgid "`LLVM_PREFIX`" +msgstr "`LLVM_PREFIX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1689 +msgid "Installation prefix of the chosen port" +msgstr "Префикс инсталляции выбранного порта" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1691 +#, no-wrap +msgid "`localbase`" +msgstr "`localbase`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1694 +msgid "Possible arguments: (none), `ldflags`" +msgstr "Возможные аргументы: (отсутствуют), `ldflags`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1699 +msgid "" +"Ensures that libraries from dependencies in `LOCALBASE` are used instead of " +"the ones from the base system. Specify `ldflags` to add `-L${LOCALBASE}/" +"lib` to `LDFLAGS` instead of `LIBS`. Ports that depend on libraries that " +"are also present in the base system should use this. It is also used " +"internally by a few other `USES`." +msgstr "" +"Гарантирует использование библиотек из зависимостей в `LOCALBASE` вместо " +"библиотек из базовой системы. Указывает `ldflags` для добавления `-L$" +"{LOCALBASE}/lib` в `LDFLAGS` вместо `LIBS`. Порты, зависящие от библиотек, " +"которые также присутствуют в базовой системе, должны использовать эту опцию. " +"Она также используется внутри несколькими другими `USES`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1701 +#, no-wrap +msgid "`lua`" +msgstr "`lua`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1704 +msgid "" +"Possible arguments: (none), `_XY_`, `_XY_+`, `-_XY_`, `_XY_-_ZA_`, `module`, " +"`flavors`, `build`, `run`, `env`" +msgstr "" +"Возможные аргументы: (нет), `_XY_`, `_XY_+`, `-_XY_`, `_XY_-_ZA_`, `module`, " +"`flavors`, `build`, `run`, `env`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1708 +msgid "" +"Adds a dependency on Lua. By default this is a library dependency, unless " +"overridden by the `build` and/or `run` option. The `env` option prevents " +"the addition of any dependency, while still defining all the usual variables." +msgstr "" +"Добавляет зависимость от Lua. По умолчанию это зависимость от библиотеки, " +"если не переопределено опциями `build` и/или `run`. Опция `env` " +"предотвращает добавление любой зависимости, при этом все обычные переменные " +"остаются определенными." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1710 +msgid "" +"The default version is set by the usual `DEFAULT_VERSIONS` mechanism, unless " +"a version or range of versions is specified as an argument, for example, " +"`51` or `51-54`." +msgstr "" +"Версия по умолчанию устанавливается с помощью обычного механизма " +"`DEFAULT_VERSIONS`, если только версия или диапазон версий не указаны в " +"качестве аргумента, например, `51` или `51-54`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1713 +msgid "" +"Applications using Lua are normally built for only a single Lua version. " +"However, library modules intended to be loaded by Lua code should use the " +"`module` option to build with multiple flavors." +msgstr "" +"Приложения, использующие Lua, обычно собираются только для одной версии Lua. " +"Однако модули библиотек, предназначенные для загрузки кодом Lua, должны " +"использовать опцию `module` для сборки с несколькими вариантами." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1715 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1734 +msgid "For more information see crossref:special[using-lua,Using Lua]." +msgstr "" +"Для получения дополнительной информации см. crossref:special[using-" +"lua,Использование Lua]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1717 +#, no-wrap +msgid "`luajit`" +msgstr "`luajit`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1720 +msgid "Possible arguments: (none), `_X_`" +msgstr "Возможные аргументы: (нет), `_X_`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1723 +msgid "" +"Adds a dependency on luajit runtime. A specific version _X_ can be used. " +"Possible versions are `luajit`, `luajit-devel`, `luajit-openresty`" +msgstr "" +"Добавляет зависимость от среды выполнения luajit. Можно указать конкретную " +"версию _X_. Доступные версии: `luajit`, `luajit-devel`, `luajit-openresty`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1725 +msgid "" +"After including [.filename]#bsd.port.options.mk# or " +"[.filename]#bsd.port.pre.mk# the port can inspect these variables:" +msgstr "" +"После включения [.filename]#bsd.port.options.mk# или " +"[.filename]#bsd.port.pre.mk# порт может проверять эти переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1726 +#, no-wrap +msgid "`LUAJIT_VER`" +msgstr "`LUAJIT_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1728 +msgid "The selected luajit version" +msgstr "Выбранная версия luajit" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1728 +#, no-wrap +msgid "`LUAJIT_INCDIR`" +msgstr "`LUAJIT_INCDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1730 +msgid "The path to luajit's header files" +msgstr "Путь к заголовочным файлам luajit" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1730 +#, no-wrap +msgid "`LUAJIT_LUAVER`" +msgstr "`LUAJIT_LUAVER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1732 +msgid "Which luajit spec version is selected (2.0 for luajit, else 2.1)" +msgstr "Какой версии спецификации luajit выбрана (2.0 для luajit, иначе 2.1)" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1736 +#, no-wrap +msgid "`lxqt`" +msgstr "`lxqt`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1743 +msgid "" +"Handle dependencies for the LXQt Desktop Environment. Use `USE_LXQT` to " +"select the components needed for the port. See crossref:special[using-" +"lxqt,Using LXQt] for more information." +msgstr "" +"Обработка зависимостей для рабочей среды LXQt. Используйте `USE_LXQT` для " +"выбора необходимых компонентов для порта. Дополнительную информацию см. в " +"разделе crossref:special[using-lxqt,Использование LXQt]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1745 +#, no-wrap +msgid "`magick`" +msgstr "`magick`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1748 +msgid "Possible arguments: (none), `_X_`, `build`, `nox11`, `run`, `test`" +msgstr "Возможные аргументы: (нет), `_X_`, `build`, `nox11`, `run`, `test`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1753 +msgid "" +"Add a library dependency on `ImageMagick`. A specific version _X_ can be " +"used. Possible versions are `6` and `7` (default). `nox11` indicates that " +"the `-nox11` version of the port is required. `build`, `run` and `test` add " +"build-, run-time and test dependencies on ImageMagick." +msgstr "" +"Добавить зависимость библиотеки от `ImageMagick`. Можно указать конкретную " +"версию _X_. Доступные версии: `6` и `7` (по умолчанию). `nox11` означает, " +"что требуется версия порта `-nox11`. `build`, `run` и `test` добавляют " +"зависимости на сборку, выполнение и тестирование для ImageMagick." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1755 +#, no-wrap +msgid "`makeinfo`" +msgstr "`makeinfo`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1760 +msgid "" +"Add a build-time dependency on `makeinfo` if it is not present in the base " +"system." +msgstr "" +"Добавить зависимость во время сборки на `makeinfo`, если его нет в базовой " +"системе." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1762 +#, no-wrap +msgid "`makeself`" +msgstr "`makeself`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1767 +msgid "" +"Indicates that the distribution files are makeself archives and sets the " +"appropriate dependencies." +msgstr "" +"Указывает, что файлы дистрибутива являются архивами makeself и устанавливает " +"соответствующие зависимости." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1769 +#, no-wrap +msgid "`mate`" +msgstr "`mate`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1776 +msgid "" +"Provides an easy way to depend on MATE components. The components should be " +"listed in `USE_MATE`. The available components are:" +msgstr "" +"Предоставляет простой способ зависимостей от компонентов MATE. Компоненты " +"должны быть перечислены в `USE_MATE`. Доступные компоненты:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1778 +msgid "`autogen`" +msgstr "`autogen`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1779 +msgid "`caja`" +msgstr "`caja`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1780 +msgid "`common`" +msgstr "`common`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1781 +msgid "`controlcenter`" +msgstr "`controlcenter`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1782 +msgid "`desktop`" +msgstr "`desktop`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1783 +msgid "`dialogs`" +msgstr "`dialogs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1784 +msgid "`docutils`" +msgstr "`docutils`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1785 +msgid "`icontheme`" +msgstr "`icontheme`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1788 +msgid "`libmatekbd`" +msgstr "`libmatekbd`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1789 +msgid "`libmateweather`" +msgstr "`libmateweather`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1790 +msgid "`marco`" +msgstr "`marco`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1791 +msgid "`menus`" +msgstr "`menus`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1792 +msgid "`notificationdaemon`" +msgstr "`notificationdaemon`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1793 +msgid "`panel`" +msgstr "`panel`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1794 +msgid "`pluma`" +msgstr "`pluma`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1795 +msgid "`polkit`" +msgstr "`polkit`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1796 +msgid "`session`" +msgstr "`session`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1797 +msgid "`settingsdaemon`" +msgstr "`settingsdaemon`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1805 +#, no-wrap +msgid "" +"USES=\t\tmate\n" +"USE_MATE=\tmenus:build intlhack\n" +msgstr "" +"USES=\t\tmate\n" +"USE_MATE=\tmenus:build intlhack\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1808 +#, no-wrap +msgid "`meson`" +msgstr "`meson`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1814 +msgid "" +"Provide support for Meson based projects. For more information see " +"crossref:special[using-meson,Using `meson`]." +msgstr "" +"Предоставить поддержку для проектов на основе Meson. Дополнительную " +"информацию смотрите в crossref:special[using-meson,Использование `meson`]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1816 +#, no-wrap +msgid "`metaport`" +msgstr "`metaport`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1821 +msgid "" +"Sets the following variables to make it easier to create a metaport: " +"`MASTER_SITES`, `DISTFILES`, `EXTRACT_ONLY`, `NO_BUILD`, `NO_INSTALL`, " +"`NO_MTREE`, `NO_ARCH`." +msgstr "" +"Устанавливает следующие переменные для упрощения создания метапорта: " +"`MASTER_SITES`, `DISTFILES`, `EXTRACT_ONLY`, `NO_BUILD`, `NO_INSTALL`, " +"`NO_MTREE`, `NO_ARCH`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1823 +#, no-wrap +msgid "`minizip`" +msgstr "`minizip`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1826 +msgid "Possible arguments: (none), `ng`" +msgstr "Возможные аргументы: (отсутствуют), `ng`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1828 +msgid "" +"Adds a library dependency on package:archivers/minizip[] or " +"package:archivers/minizip-ng[] respectively." +msgstr "" +"Добавляет зависимость библиотеки от package:archivers/minizip[] или " +"package:archivers/minizip-ng[] соответственно." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1830 +#, no-wrap +msgid "`mlt`" +msgstr "`mlt`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1833 +msgid "Possible arguments: `7`, `nodepend`" +msgstr "Возможные аргументы: `7`, `nodepend`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1835 +msgid "Provide support for ports depending on package:multimedia/mlt7[]." +msgstr "Обеспечить поддержку портов, зависящих от package:multimedia/mlt7[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1838 +msgid "" +"If the `nodepend` argument is provided no library dependency is generated. " +"This argument only makes sense for multimedia/mlt7* ports." +msgstr "" +"Если указан аргумент `nodepend`, зависимости от библиотек не создаются. Этот " +"аргумент имеет смысл только для портов multimedia/mlt7*." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1840 +#, no-wrap +msgid "`mysql`" +msgstr "`mysql`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1843 +msgid "" +"Possible arguments: (none), `_version_`, `client` (default), `server`, " +"`embedded`" +msgstr "" +"Возможные аргументы: (отсутствуют), `_версия_`, `client` (по умолчанию), " +"`server`, `embedded`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1852 +msgid "" +"Provide support for MySQL If no version is given, try to find the current " +"installed version. Fall back to the default version, MySQL-5.6. The " +"possible versions are `55`, `55m`, `55p`, `56`, `56p`, `56w`, `57`, `57p`, " +"`80`, `100m`, `101m`, and `102m`. The `m` and `p` suffixes are for the " +"MariaDB and Percona variants of MySQL. `server` and `embedded` add a build- " +"and run-time dependency on the MySQL server. When using `server` or " +"`embedded`, add `client` to also add a dependency on " +"[.filename]#libmysqlclient.so#. A port can set `IGNORE_WITH_MYSQL` if some " +"versions are not supported." +msgstr "" +"Предоставить поддержку MySQL. Если версия не указана, попытаться определить " +"установленную версию. В случае неудачи использовать версию по умолчанию, " +"MySQL-5.6. Возможные версии: `55`, `55m`, `55p`, `56`, `56p`, `56w`, `57`, " +"`57p`, `80`, `100m`, `101m` и `102m`. Суффиксы `m` и `p` обозначают флейворс " +"MariaDB и Percona для MySQL. Параметры `server` и `embedded` добавляют " +"зависимости во время сборки и выполнения на сервер MySQL. При использовании " +"`server` или `embedded` добавьте `client`, чтобы также включить зависимость " +"от [.filename]#libmysqlclient.so#. Порт может установить " +"`IGNORE_WITH_MYSQL`, если некоторые версии не поддерживаются." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1854 +msgid "The framework sets `MYSQL_VER` to the detected MySQL version." +msgstr "Фреймворк устанавливает `MYSQL_VER` в обнаруженную версию MySQL." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1856 +#, no-wrap +msgid "`mono`" +msgstr "`mono`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1859 +msgid "Possible arguments: (none), `nuget`" +msgstr "Возможные аргументы: (отсутствуют), `nuget`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1861 +msgid "" +"Adds a dependency on the Mono (currently only C#) framework by setting the " +"appropriate dependencies." +msgstr "" +"Добавляет зависимость от фреймворка Mono (в настоящее время только C#), " +"устанавливая соответствующие зависимости." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1865 +msgid "" +"Specify `nuget` when the port uses nuget packages. `NUGET_DEPENDS` needs to " +"be set with the names and versions of the nuget packages in the format " +"`_name_=_version_`. An optional package origin can be added using " +"`_name_=_version_:_origin_`." +msgstr "" +"Укажите `nuget`, если порт использует пакеты nuget. `NUGET_DEPENDS` должен " +"содержать имена и версии пакетов nuget в формате `_имя_=_версия_`. Можно " +"добавить необязательное расположение пакета (origin), используя " +"`_имя_=_версия_:_ расположение _`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1867 +msgid "" +"The helper target, `buildnuget`, will output the content of the " +"`NUGET_DEPENDS` based on the provided [.filename]#packages.config#." +msgstr "" +"Вспомогательная цель `buildnuget` выведет содержимое `NUGET_DEPENDS` на " +"основе предоставленного файла [.filename]#packages.config#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1869 +#, no-wrap +msgid "`motif`" +msgstr "`motif`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1878 +msgid "" +"Uses package:x11-toolkits/open-motif[] as a library dependency. End users " +"can set `WANT_LESSTIF` in [.filename]#make.conf# to use package:x11-toolkits/" +"lesstif[] as dependency instead of package:x11-toolkits/open-motif[]. " +"Similarly setting `WANT_OPEN_MOTIF_DEVEL` in [.filename]#make.conf# will add " +"a dependency on package:x11-toolkits/open-motif-devel[]" +msgstr "" +"Использует package:x11-toolkits/open-motif[] как зависимость библиотеки. " +"Конечные пользователи могут установить `WANT_LESSTIF` в " +"[.filename]#make.conf#, чтобы использовать package:x11-toolkits/lesstif[] " +"как зависимость вместо package:x11-toolkits/open-motif[]. Аналогично, " +"установка `WANT_OPEN_MOTIF_DEVEL` в [.filename]#make.conf# добавит " +"зависимость от package:x11-toolkits/open-motif-devel[]" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1880 +#, no-wrap +msgid "`mpi`" +msgstr "`mpi`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1883 +msgid "Possible arguments: `mpich` (default), `openmpi`" +msgstr "Возможные аргументы: `mpich` (по умолчанию), `openmpi`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1885 +msgid "Provide support for ports depending on `MPI`." +msgstr "Обеспечить поддержку портов, зависящих от `MPI`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1888 +msgid "" +"If the `mpich` argument is provided a dependency on package:net/mpich[] is " +"added to the port." +msgstr "" +"Если указан аргумент `mpich`, в порт добавляется зависимость от package:net/" +"mpich[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1891 +msgid "" +"If the `openmpi` argument is provided a dependency on package:net/openmpi[] " +"is added to the port." +msgstr "" +"Если указан аргумент `openmpi`, в порт добавляется зависимость от " +"package:net/openmpi[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1893 +msgid "" +"The ports framework provides the following variables that can be read by the " +"port:" +msgstr "" +"Фреймворк портов предоставляет следующие переменные, которые могут быть " +"прочитаны портом:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1894 +#, no-wrap +msgid "`MPI_LIBS`" +msgstr "`MPI_LIBS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1896 +msgid "Libraries needed to link programs using `MPI`." +msgstr "" +"Библиотеки, необходимые для связывания программ с использованием `MPI`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1897 +#, no-wrap +msgid "`MPI_CFLAGS`" +msgstr "`MPI_CFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1899 +msgid "Compiler flags necessary to build programs using `MPI`." +msgstr "" +"Флаги компилятора, необходимые для сборки программ с использованием `MPI`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1900 +#, no-wrap +msgid "`MPICC`" +msgstr "`MPICC`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1902 +msgid "" +"Location of the `mpicc` executable. Default: [.filename]#${MPI_HOME}/bin/" +"mpicc#." +msgstr "" +"Расположение исполняемого файла `mpicc`. По умолчанию: [.filename]#$" +"{MPI_HOME}/bin/mpicc#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1903 +#, no-wrap +msgid "`MPICXX`" +msgstr "`MPICXX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1905 +msgid "" +"Location of the `mpicxx` executable. Default: [.filename]#${MPI_HOME}/bin/" +"mpicxx#." +msgstr "" +"Расположение исполняемого файла `mpicxx`. По умолчанию: [.filename]#$" +"{MPI_HOME}/bin/mpicxx#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1906 +#, no-wrap +msgid "`MPIF90`" +msgstr "`MPIF90`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1908 +msgid "" +"Location of the `mpif90` executable. Default: [.filename]#${MPI_HOME}/bin/" +"mpif90#." +msgstr "" +"Расположение исполняемого файла `mpif90`. По умолчанию: [.filename]#$" +"{MPI_HOME}/bin/mpif90#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1909 +#, no-wrap +msgid "`MPIFC`" +msgstr "`MPIFC`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1911 +msgid "Same as above." +msgstr "То же, что и выше." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1912 +#, no-wrap +msgid "`MPI_HOME`" +msgstr "`MPI_HOME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1914 +msgid "" +"Installation directory of `MPI`. Defaults to `${LOCALBASE}` for `MPICH`." +msgstr "" +"Каталог установки `MPI`. По умолчанию используется `${LOCALBASE}` для " +"`MPICH`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1915 +#, no-wrap +msgid "`MPIEXEC`" +msgstr "`MPIEXEC`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1917 +msgid "" +"Location of the `mpiexec` executable. Default: [.filename]#${MPI_HOME}/bin/" +"mpiexec#." +msgstr "" +"Расположение исполняемого файла `mpiexec`. По умолчанию: [.filename]#$" +"{MPI_HOME}/bin/mpiexec#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1918 +#, no-wrap +msgid "`MPIRUN`" +msgstr "`MPIRUN`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1920 +msgid "" +"Location of the `mpirun` executable. Default: [.filename]#${MPI_HOME}/bin/" +"mpirun#." +msgstr "" +"Расположение исполняемого файла `mpirun`. По умолчанию: [.filename]#$" +"{MPI_HOME}/bin/mpirun#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1923 +#, no-wrap +msgid "`ncurses`" +msgstr "`ncurses`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1926 +msgid "Possible arguments: (none), `base`, `port`" +msgstr "Возможные аргументы: (нет), `base`, `port`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1928 +msgid "Uses ncurses, and causes some useful variables to be set." +msgstr "Использует ncurses и устанавливает некоторые полезные переменные." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1930 +#, no-wrap +msgid "`nextcloud`" +msgstr "`nextcloud`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1935 +msgid "" +"Adds support for Nextcloud applications by adding a run time dependency on " +"package:www/nextcloud[]." +msgstr "" +"Добавляет поддержку приложений Nextcloud, добавляя зависимость во время " +"выполнения на package:www/nextcloud[]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1937 +#, no-wrap +msgid "`ninja`" +msgstr "`ninja`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1940 +msgid "Possible arguments: (none), `build`, `make` (default), `run`" +msgstr "Возможные аргументы: (нет), `build`, `make` (по умолчанию), `run`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1947 +msgid "" +"If `build` or `run` arguments are specify, it respectively adds a build or " +"run time dependency on package:devel/ninja[]. If `make` or no arguments are " +"provided, use ninja to build the port instead of make. `make` implies " +"`build`. If the variable `NINJA_DEFAULT` is set to `samurai`, then the " +"dependencies are set on package:devel/samurai[] instead." +msgstr "" +"Если указаны аргументы `build` или `run`, это соответственно добавляет " +"зависимость во время сборки или выполнения от пакета package:devel/ninja[]. " +"Если указан `make` или аргументы не предоставлены, используется ninja для " +"сборки порта вместо make. `make` подразумевает `build`. Если переменная " +"`NINJA_DEFAULT` установлена в `samurai`, тогда зависимости устанавливаются " +"для пакета package:devel/samurai[] вместо этого." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1949 +#, no-wrap +msgid "`nodejs`" +msgstr "`nodejs`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1953 +#, no-wrap +msgid "" +"Possible arguments: (none), `build`, `run`, `current`, `lts`, `10`, `14`, `16`,\n" +" `17`.\n" +msgstr "" +"Возможные аргументы: (нет), `build`, `run`, `current`, `lts`, `10`, `14`, `16`,\n" +" `17`.\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1956 +msgid "" +"Uses nodejs. Adds a dependency on package:www/node*[]. If a supported " +"version is specified then `run` and/or `build` must be specified too." +msgstr "" +"Использует nodejs. Добавляет зависимость от пакета package:www/node*[]. Если " +"указана поддерживаемая версия, то также необходимо указать `run` и/или " +"`build`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1958 +#, no-wrap +msgid "`objc`" +msgstr "`objc`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1963 +msgid "" +"Add objective C dependencies (compiler, runtime library) if the base system " +"does not support it." +msgstr "" +"Добавить зависимости Objective C (компилятор, библиотека времени " +"выполнения), если базовая система их не поддерживает." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1965 +#, no-wrap +msgid "`ocaml`" +msgstr "`ocaml`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1968 +msgid "" +"Possible arguments: (none), " +"`build`,`camlp4`,`dune`,`findlib`,`findplist`,`ldconfig`,`run`,`tk`,`tkbuild`,`tkrun`,`wash`" +msgstr "" +"Возможные аргументы: (нет), `build`, `camlp4`, `dune`, `findlib`, " +"`findplist`, `ldconfig`, `run`, `tk`, `tkbuild`, `tkrun`, `wash`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1970 +msgid "Provide support for OCaml." +msgstr "Обеспечить поддержку OCaml." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1972 +msgid "If no arguments are provided, it defaults to `build`, `run`." +msgstr "Если аргументы не указаны, по умолчанию используются `build`, `run`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1975 +msgid "" +"If the `build` argument is provided then package:lang/ocamlc[] is added to " +"`BUILD_DEPENDS`, `EXTRACT` and `PATCH_DEPENDS`." +msgstr "" +"Если указан аргумент `build`, то package:lang/ocamlc[] добавляется в " +"`BUILD_DEPENDS`, `EXTRACT` и `PATCH_DEPENDS`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1977 +msgid "" +"If the `camlp4` argument is provided then package:devel/ocamlp4[] is used to " +"build." +msgstr "" +"Если указан аргумент `camlp4`, то для сборки используется package:devel/" +"ocamlp4[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1979 +msgid "" +"If the `dune` argument is provided then package:devel/ocaml-dune[] is used " +"as build system." +msgstr "" +"Если указан аргумент `dune`, то package:devel/ocaml-dune[] используется как " +"система сборки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1981 +msgid "" +"If the `findlib` argument is provided then `ocamlfind` will be used to " +"install packages. Package directories will be automatically deleted." +msgstr "" +"Если указан аргумент `findlib`, то для установки пакетов будет " +"использоваться `ocamlfind`. Директории пакетов будут автоматически удалены." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1983 +msgid "" +"If the `findplist` argument is provided then contents of the `findlib` " +"target directories will be added automatically." +msgstr "" +"Если указан аргумент `findplist`, то содержимое целевых каталогов `findlib` " +"будет добавлено автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1988 +msgid "" +"If the `ldconfig` argument is provided then OCaml's [.filename]#ld.conf# " +"file will be automatically processed. When `dune` is used Dune may install " +"stublibs in site-lib package directory(ies) or in a single directory below " +"`DUNE_LIBDIR` site-lib directory. Set if your port installs shared " +"libraries into ocaml" +msgstr "" +"Если указан аргумент `ldconfig`, то файл [.filename]#ld.conf# OCaml будет " +"обработан автоматически. При использовании `dune` Dune может устанавливать " +"stublibs в директориях пакетов site-lib или в отдельной директории ниже " +"`DUNE_LIBDIR` site-lib. Установите, если ваш порт устанавливает общие " +"библиотеки в ocaml" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1990 +msgid "If the `run` argument is provided add ocamlc to `RUN_DEPENDS`." +msgstr "Если указан аргумент `run`, добавить ocamlc в `RUN_DEPENDS`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1994 +msgid "" +"If the `tk` argument is provided then a build and run dependency on " +"package:x11-toolkits/ocaml-labltk[] is added to the port. Implies `tkbuild` " +"and `tkrun`." +msgstr "" +"Если указан аргумент `tk`, то в порт добавляется зависимость на сборку и " +"выполнение от пакета package:x11-toolkits/ocaml-labltk[]. Подразумевает " +"`tkbuild` и `tkrun`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:1997 +msgid "" +"If the `tkbuild` argument is provided then package:x11-toolkits/ocaml-" +"labltk[] is added to `BUILD_DEPENDS`, `EXTRACT` and `PATCH_DEPENDS`." +msgstr "" +"Если указан аргумент `tkbuild`, то пакет package:x11-toolkits/ocaml-labltk[] " +"добавляется в `BUILD_DEPENDS`, `EXTRACT` и `PATCH_DEPENDS`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2000 +msgid "" +"If the `tkrun` argument is provided then package:x11-toolkits/ocaml-labltk[] " +"is added to `RUN_DEPENDS`." +msgstr "" +"Если указан аргумент `tkrun`, то package:x11-toolkits/ocaml-labltk[] " +"добавляется в `RUN_DEPENDS`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2003 +msgid "" +"If the `wash` argument is provided Ocaml's shared directories will be purged " +"on uninstall. Useful when installing to non-standard `PREFIX`." +msgstr "" +"Если указан аргумент `wash`, общие каталоги Ocaml будут очищены при " +"удалении. Полезно при установке в нестандартный `PREFIX`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2005 +msgid "The following variables can be set by the port:" +msgstr "Портом могут быть установлены следующие переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2006 +#, no-wrap +msgid "`OCAML_PKGDIRS`" +msgstr "`OCAML_PKGDIRS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2008 +msgid "" +"Directories under site-lib to be processed if the `findlib` argument is " +"specified. Default: `${PORTNAME}`" +msgstr "" +"Каталоги в site-lib для обработки, если указан аргумент `findlib`. По " +"умолчанию: `${PORTNAME}`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2009 +#, no-wrap +msgid "`OCAML_LDLIBS`" +msgstr "`OCAML_LDLIBS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2012 +msgid "" +"Directories under `PREFIX` to be automatically added/removed from " +"[.filename]#ld.conf#. Default: `${OCAML_SITELIBDIR}/${PORTNAME}`" +msgstr "" +"Каталоги в `PREFIX`, которые будут автоматически добавлены/удалены из " +"[.filename]#ld.conf#. По умолчанию: `${OCAML_SITELIBDIR}/${PORTNAME}`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2013 +#, no-wrap +msgid "`OCAML_PACKAGES`" +msgstr "`OCAML_PACKAGES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2015 +msgid "List of packages to build and install. Default to `${PORTNAME}`" +msgstr "Список пакетов для сборки и установки. По умолчанию `${PORTNAME}`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2018 +#, no-wrap +msgid "`octave`" +msgstr "`octave`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2021 +msgid "Possible arguments: (none), env" +msgstr "Возможные аргументы: (нет), env" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2024 +msgid "" +"Uses package:math/octave[]. `env` loads only one `OCTAVE_VERSION` " +"environmental variable." +msgstr "" +"Использует package:math/octave[]. `env` загружает только одну переменную " +"окружения `OCTAVE_VERSION`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2029 +msgid "Possible arguments: `al`, `soft` (default), `si`, `alut`" +msgstr "Возможные аргументы: `al`, `soft` (по умолчанию), `si`, `alut`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2034 +msgid "" +"Uses OpenAL. The backend can be specified, with the software implementation " +"as the default. The user can specify a preferred backend with " +"`WANT_OPENAL`. Valid values for this knob are `soft` (default) and `si`." +msgstr "" +"Использует OpenAL. Бэкенд может быть указан, с программной реализацией по " +"умолчанию. Пользователь может указать предпочтительный бэкенд с помощью " +"`WANT_OPENAL`. Допустимые значения для этой настройки: `soft` (по умолчанию) " +"и `si`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2036 +#, no-wrap +msgid "`pathfix`" +msgstr "`pathfix`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2043 +msgid "" +"Look for [.filename]#Makefile.in# and [.filename]#configure# in " +"`PATHFIX_WRKSRC` (defaults to `WRKSRC`) and fix common paths to make sure " +"they respect the FreeBSD hierarchy. For example, it fixes the installation " +"directory of `pkgconfig`'s [.filename]#.pc# files to [.filename]#${PREFIX}/" +"libdata/pkgconfig#. If the port uses `USES=autoreconf`, " +"[.filename]#Makefile.am# will be added to `PATHFIX_MAKEFILEIN` automatically." +msgstr "" +"Ищите [.filename]#Makefile.in# и [.filename]#configure# в `PATHFIX_WRKSRC` " +"(по умолчанию `WRKSRC`) и исправляйте стандартные пути, чтобы они " +"соответствовали иерархии FreeBSD. Например, исправляется каталог установки " +"для файлов [.filename]#.pc# `pkgconfig` на [.filename]#${PREFIX}/libdata/" +"pkgconfig#. Если порт использует `USES=autoreconf`, [.filename]#Makefile.am# " +"будет автоматически добавлен в `PATHFIX_MAKEFILEIN`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2046 +msgid "" +"If the port crossref:uses[uses-cmake,`USES=cmake`] it will look for " +"[.filename]#CMakeLists.txt# in `PATHFIX_WRKSRC`. If needed, that default " +"filename can be changed with `PATHFIX_CMAKELISTSTXT`." +msgstr "" +"Если порт crossref:uses[uses-cmake,`USES=cmake`], он будет искать файл " +"[.filename]#CMakeLists.txt# в `PATHFIX_WRKSRC`. При необходимости это имя " +"файла по умолчанию можно изменить с помощью `PATHFIX_CMAKELISTSTXT`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2048 +#, no-wrap +msgid "`pear`" +msgstr "`pear`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2051 +msgid "Possible arguments: `env`" +msgstr "Возможные аргументы: `env`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2056 +msgid "" +"Adds a dependency on package:devel/pear[]. It will setup default behavior " +"for software using the PHP Extension and Application Repository. Using the " +"`env` arguments only sets up the PEAR environment variables. See " +"crossref:special[php-pear,PEAR Modules] for more information." +msgstr "" +"Добавляет зависимость от пакета package:devel/pear[]. Настраивает поведение " +"по умолчанию для программного обеспечения, использующего PHP Extension and " +"Application Repository. Использование аргументов `env` только устанавливает " +"переменные окружения PEAR. Дополнительную информацию см. в " +"crossref:special[php-pear,Модули PEAR]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2058 +#, no-wrap +msgid "`perl5`" +msgstr "`perl5`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2063 +msgid "Depends on Perl. The configuration is done using `USE_PERL5`." +msgstr "Зависит от Perl. Настройка выполняется с помощью `USE_PERL5`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2065 +msgid "" +"`USE_PERL5` can contain the phases in which to use Perl, can be `extract`, " +"`patch`, `build`, `run`, or `test`." +msgstr "" +"`USE_PERL5` может содержать фазы, в которых используется Perl: `extract`, " +"`patch`, `build`, `run` или `test`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2068 +msgid "" +"`USE_PERL5` can also contain `configure`, `modbuild`, or `modbuildtiny` when " +"[.filename]#Makefile.PL#, [.filename]#Build.PL#, or Module::Build::Tiny's " +"flavor of [.filename]#Build.PL# is required." +msgstr "" +"`USE_PERL5` также может содержать `configure`, `modbuild` или " +"`modbuildtiny`, если требуется [.filename]#Makefile.PL#, " +"[.filename]#Build.PL# или вариант [.filename]#Build.PL# для " +"Module::Build::Tiny." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2071 +msgid "" +"`USE_PERL5` defaults to `build run`. When using `configure`, `modbuild`, or " +"`modbuildtiny`, `build` and `run` are implied." +msgstr "" +"`USE_PERL5` по умолчанию имеет значение `build run`. При использовании " +"`configure`, `modbuild` или `modbuildtiny`, `build` и `run` подразумеваются " +"автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2073 +msgid "See crossref:special[using-perl,Using Perl] for more information." +msgstr "" +"См. crossref:special[using-perl,Использование Perl] для получения " +"дополнительной информации." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2075 +#, no-wrap +msgid "`pgsql`" +msgstr "`pgsql`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2078 +msgid "Possible arguments: (none), `_X.Y_`, `_X.Y_+`, `_X.Y_-`, `_X.Y_-_Z.A_`" +msgstr "Возможные аргументы: (нет), `_X.Y_`, `_X.Y_+`, `_X.Y_-`, `_X.Y_-_Z.A_`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2082 +msgid "" +"Provide support for PostgreSQL. Port maintainer can set version required. " +"Minimum and maximum versions or a range can be specified; for example, `9.0-" +"`, `8.4+`, `8.4-9.2.`" +msgstr "" +"Предоставить поддержку PostgreSQL. Ответственный за порт может указать " +"требуемую версию. Можно указать минимальную и максимальную версии или " +"диапазон; например, `9.0-`, `8.4+`, `8.4-9.2`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2087 +msgid "" +"By default, the added dependency will be the client, but if the port " +"requires additional components, this can be done using " +"`WANT_PGSQL=_component[:target]_`; for example, `WANT_PGSQL=server:configure " +"pltcl plperl`. The available components are:" +msgstr "" +"По умолчанию добавляемая зависимость будет клиентской, но если порту " +"требуются дополнительные компоненты, это можно указать с помощью " +"`WANT_PGSQL=_компонент[:цель]_`; например, `WANT_PGSQL=server:configure " +"pltcl plperl`. Доступные компоненты:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2089 +msgid "`client`" +msgstr "`client`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2090 +msgid "`contrib`" +msgstr "`contrib`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2091 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2823 +msgid "`docs`" +msgstr "`docs`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2092 +msgid "`pgtcl`" +msgstr "`pgtcl`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2093 +msgid "`plperl`" +msgstr "`plperl`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2094 +msgid "`plpython`" +msgstr "`plpython`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2095 +msgid "`pltcl`" +msgstr "`pltcl`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2096 +msgid "`server`" +msgstr "`server`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2098 +#, no-wrap +msgid "`php`" +msgstr "`php`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2101 +msgid "" +"Possible arguments: (none), `phpize`, `ext`, `zend`, `build`, `cli`, `cgi`, " +"`mod`, `web`, `embed`, `pecl`, `flavors`, `noflavors`" +msgstr "" +"Возможные аргументы: (нет), `phpize`, `ext`, `zend`, `build`, `cli`, `cgi`, " +"`mod`, `web`, `embed`, `pecl`, `flavors`, `noflavors`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2104 +msgid "" +"Provide support for PHP. Add a runtime dependency on the default PHP " +"version, package:lang/php81[]." +msgstr "" +"Обеспечить поддержку PHP. Добавить зависимость во время выполнения на версию " +"PHP по умолчанию, package:lang/php81[]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2105 +#, no-wrap +msgid "`phpize`" +msgstr "`phpize`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2108 +msgid "Use to build a PHP extension. Enables flavors." +msgstr "Используется для создания расширения PHP. Поддерживает флейворы." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2109 +#, no-wrap +msgid "`ext`" +msgstr "`ext`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2112 +msgid "Use to build, install and register a PHP extension. Enables flavors." +msgstr "" +"Используется для сборки, установки и регистрации расширения PHP. " +"Поддерживает флейворы." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2113 +#, no-wrap +msgid "`zend`" +msgstr "`zend`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2116 +msgid "Use to build, install and register a Zend extension. Enables flavors." +msgstr "" +"Используется для сборки, установки и регистрации Zend-расширения. " +"Поддерживает флейворы." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2117 +#, no-wrap +msgid "`build`" +msgstr "`build`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2119 +msgid "Set PHP also as a build-time dependency." +msgstr "Установить PHP также как зависимость во время сборки." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2120 +#, no-wrap +msgid "`cli`" +msgstr "`cli`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2122 +msgid "Needs the CLI version of PHP." +msgstr "Требуется версия PHP для командной строки." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2123 +#, no-wrap +msgid "`cgi`" +msgstr "`cgi`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2125 +msgid "Needs the CGI version of PHP." +msgstr "Требуется CGI-версия PHP." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2126 +#, no-wrap +msgid "`mod`" +msgstr "`mod`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2128 +msgid "Needs the Apache module for PHP." +msgstr "Требуется модуль Apache для PHP." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2129 +#, no-wrap +msgid "`web`" +msgstr "`web`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2131 +msgid "Needs the Apache module or the CGI version of PHP." +msgstr "Требуется модуль Apache или CGI-версия PHP." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2132 +#, no-wrap +msgid "`embed`" +msgstr "`embed`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2134 +msgid "Needs the embedded library version of PHP." +msgstr "Требуется встроенная версия библиотеки PHP." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2135 +#, no-wrap +msgid "`pecl`" +msgstr "`pecl`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2138 +msgid "" +"Provide defaults for fetching PHP extensions from the PECL repository. " +"Enables flavors." +msgstr "" +"Установить значения по умолчанию для загрузки расширений PHP из репозитория " +"PECL. Включает флейворы." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2139 +#, no-wrap +msgid "`flavors`" +msgstr "`flavors`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2143 +msgid "" +"Enable automatic crossref:flavors[flavors-auto-php,PHP flavors] generation. " +"Flavors will be generated for all PHP versions, except the ones present in " +"crossref:uses[uses-php-ignore,`IGNORE_WITH_PHP`]." +msgstr "" +"Включить автоматическую генерацию crossref:flavors[flavors-auto-" +"php,флейворов PHP]. Флейворы будут созданы для всех версий PHP, за " +"исключением указанных в crossref:uses[uses-php-ignore,`IGNORE_WITH_PHP`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2144 +#, no-wrap +msgid "`noflavors`" +msgstr "`noflavors`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2147 +msgid "" +"Disable automatic PHP flavors generation. _Must only_ be used with " +"extensions provided by PHP itself." +msgstr "" +"Отключить автоматическое создание флейворов PHP. _Должно_ использоваться " +"только с расширениями, предоставляемыми самим PHP." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2149 +msgid "" +"Variables are used to specify which PHP modules are required, as well as " +"which version of PHP are supported." +msgstr "" +"Переменные используются для указания необходимых модулей PHP, а также версий " +"PHP, которые поддерживаются." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2150 +#, no-wrap +msgid "`USE_PHP`" +msgstr "`USE_PHP`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2154 +msgid "" +"The list of required PHP extensions at run-time. Add `:build` to the " +"extension name to add a build-time dependency. Example: `pcre xml:build " +"gettext`" +msgstr "" +"Список необходимых расширений PHP во время выполнения. Добавьте `:build` к " +"названию расширения, чтобы указать зависимость во время сборки. Пример: " +"`pcre xml:build gettext`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2156 +#, no-wrap +msgid "`IGNORE_WITH_PHP`" +msgstr "`IGNORE_WITH_PHP`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2159 +msgid "" +"The port does not work with PHP of the given version. For possible values " +"look at the content of `_ALL_PHP_VERSIONS` in [.filename]#Mk/Uses/php.mk#." +msgstr "" +"Порт не работает с PHP указанной версии. Возможные значения можно посмотреть " +"в содержимом `_ALL_PHP_VERSIONS` в [.filename]#Mk/Uses/php.mk#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2161 +msgid "" +"When building a PHP or Zend extension with `:ext` or `:zend`, these " +"variables can be set:" +msgstr "" +"При сборке расширения PHP или Zend с помощью `:ext` или `:zend`, можно " +"задать следующие переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2162 +#, no-wrap +msgid "`PHP_MODNAME`" +msgstr "`PHP_MODNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2165 +msgid "The name of the PHP or Zend extension. Default value is `${PORTNAME}`." +msgstr "Имя расширения PHP или Zend. Значение по умолчанию: `${PORTNAME}`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2166 +#, no-wrap +msgid "`PHP_HEADER_DIRS`" +msgstr "`PHP_HEADER_DIRS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2169 +msgid "" +"A list of subdirectories from which to install header files. The framework " +"will always install the header files that are present in the same directory " +"as the extension." +msgstr "" +"Список подкаталогов, из которых следует устанавливать заголовочные файлы. " +"Фреймворк всегда будет устанавливать заголовочные файлы, находящиеся в том " +"же каталоге, что и расширение." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2170 +#, no-wrap +msgid "`PHP_MOD_PRIO`" +msgstr "`PHP_MOD_PRIO`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2173 +msgid "" +"The priority at which to load the extension. It is a number between `00` " +"and `99`." +msgstr "Приоритет загрузки расширения. Это число от `00` до `99`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2178 +msgid "" +"For extensions that do not depend on any extension, the priority is " +"automatically set to `20`, for extensions that depend on another extension, " +"the priority is automatically set to `30`. Some extensions may need to be " +"loaded before every other extension, for example package:www/php56-" +"opcache[]. Some may need to be loaded after an extension with a priority of " +"`30`. In that case, add `PHP_MOD_PRIO=_XX_` in the port's Makefile. For " +"example:" +msgstr "" +"Для расширений, которые не зависят от других расширений, приоритет " +"автоматически устанавливается в `20`, а для расширений, зависящих от другого " +"расширения, приоритет автоматически устанавливается в `30`. Некоторые " +"расширения могут требовать загрузки перед всеми остальными, например, " +"package:www/php56-opcache[]. Некоторые могут требовать загрузки после " +"расширения с приоритетом `30`. В таком случае добавьте `PHP_MOD_PRIO=_XX_` в " +"Makefile порта. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2184 +#, no-wrap +msgid "" +"USES=\t\tphp:ext\n" +"USE_PHP=\twddx\n" +"PHP_MOD_PRIO=\t40\n" +msgstr "" +"USES=\t\tphp:ext\n" +"USE_PHP=\twddx\n" +"PHP_MOD_PRIO=\t40\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2187 +msgid "" +"These variables are available to use in `PKGNAMEPREFIX` or `PKGNAMESUFFIX`:" +msgstr "" +"Эти переменные доступны для использования в `PKGNAMEPREFIX` или " +"`PKGNAMESUFFIX`:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2188 +#, no-wrap +msgid "`PHP_PKGNAMEPREFIX`" +msgstr "`PHP_PKGNAMEPREFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2191 +msgid "" +"Contains `php_XY_-` where _XY_ is the current flavor's PHP version. Use " +"with PHP extensions and modules." +msgstr "" +"Содержит `php_XY_-`, где _XY_ — версия PHP текущей редакции. Используется с " +"расширениями и модулями PHP." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2192 +#, no-wrap +msgid "`PHP_PKGNAMESUFFIX`" +msgstr "`PHP_PKGNAMESUFFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2195 +msgid "" +"Contains `-php_XY_` where _XY_ is the current flavor's PHP version. Use " +"with PHP applications." +msgstr "" +"Содержит `-php_XY_`, где _XY_ — версия PHP текущего варианта. Используется с " +"PHP-приложениями." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2196 +#, no-wrap +msgid "`PECL_PKGNAMEPREFIX`" +msgstr "`PECL_PKGNAMEPREFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2199 +msgid "" +"Contains `php_XY_-pecl-` where _XY_ is the current flavor's PHP version. " +"Use with PECL modules." +msgstr "" +"Содержит `php_XY_-pecl-`, где _XY_ — версия PHP текущей редакции. " +"Используется с модулями PECL." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2204 +msgid "" +"With flavors, all PHP extensions, PECL extensions, PEAR modules _must have_ " +"a different package name, so they must all use one of these three variables " +"in their `PKGNAMEPREFIX` or `PKGNAMESUFFIX`." +msgstr "" +"С вариантами сборки все расширения PHP, расширения PECL, модули PEAR _должны " +"иметь_ разные имена пакетов, поэтому они должны использовать одну из трёх " +"переменных в `PKGNAMEPREFIX` или `PKGNAMESUFFIX`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2207 +#, no-wrap +msgid "`pkgconfig`" +msgstr "`pkgconfig`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2210 +msgid "Possible arguments: (none), `build` (default), `run`, `both`" +msgstr "" +"Возможные аргументы: (отсутствуют), `build` (по умолчанию), `run`, `both`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2214 +msgid "" +"Uses package:devel/pkgconf[]. With no arguments or with the `build` " +"argument, it implies `pkg-config` as a build-time dependency. `run` implies " +"a run-time dependency and `both` implies both run-time and build-time " +"dependencies." +msgstr "" +"Использует package:devel/pkgconf[]. Без аргументов или с аргументом `build` " +"подразумевает зависимость от `pkg-config` во время сборки. `run` " +"подразумевает зависимость во время выполнения, а `both` — зависимости как во " +"время выполнения, так и во время сборки." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2216 +#, no-wrap +msgid "`pure`" +msgstr "`pure`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2219 +msgid "Possible arguments: (none), `ffi`" +msgstr "Возможные аргументы: (нет), `ffi`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2223 +msgid "" +"Uses package:lang/pure[]. Largely used for building related pure ports. " +"With the `ffi` argument, it implies package:devel/pure-ffi[] as a run-time " +"dependency." +msgstr "" +"Использует package:lang/pure[]. В основном применяется для сборки портов, " +"зависящих от pure. С аргументом `ffi` подразумевает package:devel/pure-ffi[] " +"как зависимость во время выполнения." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2225 +#, no-wrap +msgid "`pyqt`" +msgstr "`pyqt`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2228 +msgid "Possible arguments: (none), `4`, `5`" +msgstr "Возможные аргументы: (нет), `4`, `5`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2232 +msgid "" +"Uses PyQt. If the port is part of PyQT itself, set `PYQT_DIST`. Use " +"`USE_PYQT` to select the components the port needs. The available " +"components are:" +msgstr "" +"Использует PyQt. Если порт является частью самого PyQT, установите " +"`PYQT_DIST`. Используйте `USE_PYQT` для выбора необходимых порту " +"компонентов. Доступные компоненты:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2234 +msgid "`core`" +msgstr "`core`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2235 +msgid "`dbus`" +msgstr "`dbus`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2236 +msgid "`dbussupport`" +msgstr "`dbussupport`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2237 +msgid "`demo`" +msgstr "`demo`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2238 +msgid "`designer`" +msgstr "`designer`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2239 +msgid "`designerplugin`" +msgstr "`designerplugin`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2240 +msgid "`doc`" +msgstr "`doc`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2241 +msgid "`gui`" +msgstr "`gui`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2242 +msgid "`multimedia`" +msgstr "`multimedia`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2243 +msgid "`network`" +msgstr "`network`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2245 +msgid "`qscintilla2`" +msgstr "`qscintilla2`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2246 +msgid "`sip`" +msgstr "`sip`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2247 +msgid "`sql`" +msgstr "`sql`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2248 +msgid "`svg`" +msgstr "`svg`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2249 +msgid "`test`" +msgstr "`test`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2250 +msgid "`webkit`" +msgstr "`webkit`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2251 +msgid "`xml`" +msgstr "`xml`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2252 +msgid "`xmlpatterns`" +msgstr "`xmlpatterns`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2254 +msgid "These components are only available with PyQT4:" +msgstr "Эти компоненты доступны только с PyQT4:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2256 +msgid "`assistant`" +msgstr "`assistant`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2257 +msgid "`declarative`" +msgstr "`declarative`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2258 +msgid "`help`" +msgstr "`help`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2259 +msgid "`phonon`" +msgstr "`phonon`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2260 +msgid "`script`" +msgstr "`script`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2261 +msgid "`scripttools`" +msgstr "`scripttools`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2263 +msgid "These components are only available with PyQT5:" +msgstr "Эти компоненты доступны только с PyQT5:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2265 +msgid "`multimediawidgets`" +msgstr "`multimediawidgets`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2266 +msgid "`printsupport`" +msgstr "`printsupport`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2267 +msgid "`qml`" +msgstr "`qml`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2268 +msgid "`serialport`" +msgstr "`serialport`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2269 +msgid "`webkitwidgets`" +msgstr "`webkitwidgets`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2270 +msgid "`widgets`" +msgstr "`widgets`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2272 +msgid "" +"The default dependency for each component is build- and run-time, to select " +"only build or run, add `_build` or `_run` to the component name. For example:" +msgstr "" +"Зависимость по умолчанию для каждого компонента — это время сборки и " +"выполнения. Чтобы выбрать только сборку или выполнение, добавьте `_build` " +"или `_run` к имени компонента. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2277 +#, no-wrap +msgid "" +"USES=\t\tpyqt\n" +"USE_PYQT=\tcore doc_build designer_run\n" +msgstr "" +"USES=\t\tpyqt\n" +"USE_PYQT=\tcore doc_build designer_run\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2280 +#, no-wrap +msgid "`pytest`" +msgstr "`pytest`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2283 +msgid "Possible arguments: (none), 4" +msgstr "Возможные аргументы: (нет), 4" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2290 +msgid "" +"Introduces a new dependency on package:devel/pytest[]. It defines a `do-" +"test` target which will run the tests properly. Use the argument to depend " +"on a specific package:devel/pytest[] version. For ports using package:devel/" +"pytest[] consider using this instead of a specific `do-test` target. The " +"framework exposes the following variables to the port:" +msgstr "" +"Вводит новую зависимость от package:devel/pytest[]. Он определяет цель `do-" +"test`, которая будет правильно запускать тесты. Используйте аргумент, чтобы " +"зависеть от определённой версии package:devel/pytest[]. Для портов, " +"использующих package:devel/pytest[], рекомендуется использовать это вместо " +"конкретной цели `do-test`. Фреймворк предоставляет порту следующие " +"переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2291 +#, no-wrap +msgid "`PYTEST_ARGS`" +msgstr "`PYTEST_ARGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2293 +msgid "Additional arguments to pytest (defaults to empty)." +msgstr "Дополнительные аргументы для pytest (по умолчанию пусто)." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2294 +#, no-wrap +msgid "`PYTEST_IGNORED_TESTS`" +msgstr "`PYTEST_IGNORED_TESTS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2297 +msgid "" +"lists of `pytest -k` patterns of tests to ignore (defaults to empty). For " +"tests which are not expected to pass, such as ones requiring a database " +"access." +msgstr "" +"списки шаблонов `pytest -k` для игнорирования тестов (по умолчанию пустые). " +"Для тестов, которые не должны проходить, например, требующих доступа к базе " +"данных." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2298 +#, no-wrap +msgid "`PYTEST_BROKEN_TESTS`" +msgstr "`PYTEST_BROKEN_TESTS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2301 +msgid "" +"lists of `pytest -k` patterns of tests to ignore (defaults to empty). For " +"broken tests which require fixing." +msgstr "" +"списки шаблонов `pytest -k` тестов для игнорирования (по умолчанию пустые). " +"Для сломанных тестов, которые требуют исправления." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2303 +msgid "In addition the following variables may be set by the user:" +msgstr "В дополнение следующие переменные могут быть заданы пользователем:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2304 +#, no-wrap +msgid "`PYTEST_ENABLE_IGNORED_TESTS`" +msgstr "`PYTEST_ENABLE_IGNORED_TESTS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2306 +msgid "Enable tests which are otherwise ignored by `PYTEST_IGNORED_TESTS`." +msgstr "" +"Включить тесты, которые в противном случае игнорируются " +"`PYTEST_IGNORED_TESTS`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2307 +#, no-wrap +msgid "`PYTEST_ENABLE_BROKEN_TESTS`" +msgstr "`PYTEST_ENABLE_BROKEN_TESTS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2309 +msgid "Enable tests which are otherwise ignored by `PYTEST_BROKEN_TESTS`." +msgstr "" +"Включить тесты, которые в противном случае игнорируются " +"`PYTEST_BROKEN_TESTS`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2310 +#, no-wrap +msgid "`PYTEST_ENABLE_ALL_TESTS`" +msgstr "`PYTEST_ENABLE_ALL_TESTS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2313 +msgid "" +"Enable tests which are otherwise ignored by `PYTEST_IGNORED_TESTS` and " +"`PYTEST_BROKEN_TESTS`." +msgstr "" +"Включить тесты, которые в противном случае игнорируются " +"`PYTEST_IGNORED_TESTS` и `PYTEST_BROKEN_TESTS`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2316 +#, no-wrap +msgid "`python`" +msgstr "`python`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2319 +msgid "" +"Possible arguments: (none), `_X.Y_`, `_X.Y+_`, `_-X.Y_`, `_X.Y-Z.A_`, " +"`patch`, `build`, `run`, `test`" +msgstr "" +"Возможные аргументы: (нет), `_X.Y_`, `_X.Y+_`, `_-X.Y_`, `_X.Y-Z.A_`, " +"`patch`, `build`, `run`, `test`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2324 +msgid "" +"Uses Python. A supported version or version range can be specified. If " +"Python is only needed at build time, run time or for the tests, it can be " +"set as a build, run or test dependency with `build`, `run`, or `test`. If " +"Python is also needed during the patch phase, use `patch`. See " +"crossref:special[using-python, Using Python] for more information." +msgstr "" +"Использует Python. Можно указать поддерживаемую версию или диапазон версий. " +"Если Python требуется только во время сборки, выполнения или тестирования, " +"его можно установить как зависимость для сборки, выполнения или тестирования " +"с помощью `build`, `run` или `test`. Если Python также требуется на этапе " +"исправлений, используйте `patch`. Дополнительную информацию см. в разделе " +"crossref:special[using-python,Использование Python]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2327 +msgid "" +"`USES=python:env` can be used when the variables exported by the framework " +"are needed but a dependency on Python is not. It can happen when using with " +"crossref:uses[uses-shebangfix,`USES=shebangfix`], and the goal is only to " +"fix the shebangs but not add a dependency on Python." +msgstr "" +"`USES=python:env` можно использовать, когда необходимы переменные, " +"экспортируемые фреймворком, но зависимость от Python не требуется. Это может " +"быть полезно при использовании с crossref:uses[uses-" +"shebangfix,`USES=shebangfix`], если цель состоит только в исправлении " +"shebang без добавления зависимости от Python." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2329 +#, no-wrap +msgid "`qmail`" +msgstr "`qmail`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2332 +msgid "Possible arguments: (none), `build`, `run`, `both`, `vars`" +msgstr "Возможные аргументы: (нет), `build`, `run`, `both`, `vars`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2337 +msgid "" +"Uses package:mail/qmail[]. With the `build` argument, it implies `qmail` as " +"a build-time dependency. `run` implies a run-time dependency. Using no " +"argument or the `both` argument implies both run-time and build-time " +"dependencies. `vars` will only set QMAIL variables for the port to use." +msgstr "" +"Использует package:mail/qmail[]. С аргументом `build` подразумевается " +"зависимость от `qmail` во время сборки. Аргумент `run` подразумевает " +"зависимость во время выполнения. Использование без аргументов или с " +"аргументом `both` подразумевает зависимости как во время выполнения, так и " +"во время сборки. Аргумент `vars` только устанавливает переменные QMAIL для " +"использования в порте." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2339 +#, no-wrap +msgid "`qmake`" +msgstr "`qmake`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2342 +msgid "" +"Possible arguments: (none), `norecursive`, `outsource`, `no_env`, " +"`no_configure`" +msgstr "" +"Возможные аргументы: (отсутствуют), `norecursive`, `outsource`, `no_env`, " +"`no_configure`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2344 +msgid "" +"Uses QMake for configuring. For more information see crossref:special[using-" +"qmake,Using `qmake`]." +msgstr "" +"Использует QMake для настройки. Для получения дополнительной информации см. " +"crossref:special[using-qmake,Использование `qmake`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2349 +msgid "Possible arguments: `5`, `6`, `no_env`" +msgstr "Возможные аргументы: `5`, `6`, `no_env`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2353 +msgid "" +"Add dependency on Qt components. `no_env` is passed directly to `USES= " +"qmake`. See crossref:special[using-qt,Using Qt] for more information." +msgstr "" +"Добавить зависимость от компонентов Qt. `no_env` передаётся напрямую в " +"`USES= qmake`. Подробнее см. в crossref:special[using-qt,Использование Qt]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2355 +#, no-wrap +msgid "`qt-dist`" +msgstr "`qt-dist`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2358 +#, fuzzy +#| msgid "" +#| "Possible arguments: (none) or `5` and (none) or `6` and (none) or one of " +#| "`3d`, `5compat`, `base`, `charts`, `connectivity`, `datavis3d`, " +#| "`declarative`, `doc` `languageserver`, `gamepad`, `graphicaleffects`, " +#| "`imageformats`, `locat ion`, `lottie`, `multimedia`, `networkauth`, " +#| "`positioning`, `quick3d`, `quickcontrols2`, `quickcontrols`, " +#| "`quicktimeline`, `remoteobjects`, `script`, `scxml `, `sensors`, " +#| "`serialbus`, `serialport`, `shadertools`, `speech`, `svg`, `tools`, " +#| "`translations`, `virtualkeyboard`, `wayland`, `webchannel`, `webengine`, " +#| "`webglplugin`, `websockets`, `webview`, `x11extras`, `xmlpatterns`.\n" +msgid "" +"Possible arguments: (none) or `5` and (none) or `6` and (none) or one of " +"`3d`, `5compat`, `base`, `charts`, `connectivity`, `datavis3d`, " +"`declarative`, `doc` `languageserver`, `gamepad`, `graphicaleffects`, " +"`imageformats`, `locat ion`, `lottie`, `multimedia`, `networkauth`, " +"`positioning`, `quick3d`, `quickcontrols2`, `quickcontrols`, " +"`quicktimeline`, `remoteobjects`, `script`, `scxml `, `sensors`, " +"`serialbus`, `serialport`, `shadertools`, `speech`, `svg`, `tools`, " +"`translations`, `virtualkeyboard`, `wayland`, `webchannel`, `webengine`, " +"`webglplugin`, `websockets`, `webview`, `x11extras`, `xmlpatterns`." +msgstr "" +"Возможные аргументы: (нет) или `5` и (нет) или `6` и (нет) или один из `3d`, " +"`5compat`, `base`, `charts`, `connectivity`, `datavis3d`, `declarative`, " +"`doc`, `languageserver`, `gamepad`, `graphicaleffects`, `imageformats`, " +"`location`, `lottie`, `multimedia`, `networkauth`, `positioning`, `quick3d`, " +"`quickcontrols2`, `quickcontrols`, `quicktimeline`, `remoteobjects`, " +"`script`, `scxml`, `sensors`, `serialbus`, `serialport`, `shadertools`, " +"`speech`, `svg`, `tools`, `translations`, `virtualkeyboard`, `wayland`, " +"`webchannel`, `webengine`, `webglplugin`, `websockets`, `webview`, " +"`x11extras`, `xmlpatterns`.\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2361 +msgid "" +"Provides support for building Qt 5 and Qt 6 components. It takes care of " +"setting up the appropriate configuration environment for the port to build." +msgstr "" +"Предоставляет поддержку сборки компонентов Qt 5 и Qt 6. Обеспечивает " +"настройку соответствующей конфигурации окружения для сборки порта." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2363 +#, no-wrap +msgid "Building Qt 5 Components" +msgstr "Сборка компонентов Qt 5" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2367 +msgid "" +"The port is Qt 5's `networkauth` component, which is part of the " +"`networkauth` distribution file." +msgstr "" +"Порт представляет собой компонент `networkauth` из Qt 5, который входит в " +"файл дистрибутива `networkauth`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2372 +#, no-wrap +msgid "" +"PORTNAME=\tnetworkauth\n" +"DISTVERSION=\t${QT5_VERSION}\n" +msgstr "" +"PORTNAME=\tnetworkauth\n" +"DISTVERSION=\t${QT5_VERSION}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2374 +#, no-wrap +msgid "USES=\t\tqt-dist:5\n" +msgstr "USES=\t\tqt-dist:5\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2380 +#, no-wrap +msgid "Building Qt 6 Components" +msgstr "Сборка компонентов Qt 6" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2384 +msgid "" +"The port is Qt 6's `websockets` component, which is part of the `websockets` " +"distribution file." +msgstr "" +"Порт представляет собой компонент `websockets` из Qt 6, который входит в " +"файл дистрибутива `websockets`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2389 +#, no-wrap +msgid "" +"PORTNAME= websockets\n" +"PORTVERSION= ${QT6_VERSION}\n" +msgstr "" +"PORTNAME= websockets\n" +"PORTVERSION= ${QT6_VERSION}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2391 +#, no-wrap +msgid "USES= qt-dist:6\n" +msgstr "USES= qt-dist:6\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2396 +msgid "" +"If `PORTNAME` does not match the component name, it can be passed as an " +"argument to `qt-dist`." +msgstr "" +"Если `PORTNAME` не совпадает с именем компонента, его можно передать как " +"аргумент в `qt-dist`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2398 +#, no-wrap +msgid "Building Qt 5 Components with Different Names" +msgstr "Сборка компонентов Qt 5 с разными именами" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2402 +msgid "" +"The port is Qt 5's `gui` component, which is part of the `base` distribution " +"file." +msgstr "" +"Порт представляет собой компонент `gui` из Qt 5, который входит в файл " +"дистрибутива `base`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2407 +#, no-wrap +msgid "" +"PORTNAME=\tgui\n" +"DISTVERSION=\t${QT5_VERSION}\n" +msgstr "" +"PORTNAME=\tgui\n" +"DISTVERSION=\t${QT5_VERSION}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2409 +#, no-wrap +msgid "USES=\t\tqt-dist:5,base\n" +msgstr "USES=\t\tqt-dist:5,base\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2414 +#, no-wrap +msgid "`readline`" +msgstr "`readline`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2417 +msgid "Possible arguments: (none), `port`" +msgstr "Возможные аргументы: (нет), `port`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2420 +msgid "" +"Uses readline as a library dependency, and sets `CPPFLAGS` and `LDFLAGS` as " +"necessary. If the `port` argument is used or if readline is not present in " +"the base system, add a dependency on package:devel/readline[]" +msgstr "" +"Использует readline в качестве зависимости библиотеки и устанавливает " +"`CPPFLAGS` и `LDFLAGS` по необходимости. Если используется аргумент `port` " +"или если readline отсутствует в базовой системе, добавляет зависимость от " +"package:devel/readline[]" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2423 +#, no-wrap +msgid "`ruby`" +msgstr "`ruby`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2426 +msgid "Possible arguments: (none), `build`, `extconf`, `run`, `setup`" +msgstr "Возможные аргументы: (нет), `build`, `extconf`, `run`, `setup`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2433 +msgid "" +"Provide support for Ruby related ports. `(none)` without arguments adds " +"runtime dependency on package:lang/ruby[]. `build` adds a dependency on " +"package:lang/ruby[] at build time. `extconf` states that the port uses " +"extconf.rb to configure. `run` adds a dependency on package:lang/ruby[] at " +"run time. This is also the default. `setup` states that the port uses " +"setup.rb to configure and build." +msgstr "" +"Предоставить поддержку для портов, связанных с Ruby. `(none)` без " +"аргументов добавляет зависимость во время выполнения на package:lang/" +"ruby[]. `build` добавляет зависимость на package:lang/ruby[] во время " +"сборки. `extconf` указывает, что порт использует extconf.rb для настройки. " +"`run` добавляет зависимость на package:lang/ruby[] во время выполнения. Это " +"также значение по умолчанию. `setup` указывает, что порт использует " +"setup.rb для настройки и сборки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2435 +msgid "The user may have the following variables defined:" +msgstr "Пользователь может определить следующие переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2436 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2453 +#, no-wrap +msgid "`RUBY_VER`" +msgstr "`RUBY_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2438 +msgid "Alternative short version of ruby in the form of `x.y'." +msgstr "Альтернативная короткая версия ruby в виде `x.y`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2439 +#, no-wrap +msgid "`RUBY_DEFAULT_VER`" +msgstr "`RUBY_DEFAULT_VER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2441 +msgid "Set to (e.g.) `2.7` to use `ruby27` as the default version." +msgstr "" +"Установите (например) `2.7`, чтобы использовать `ruby27` в качестве версии " +"по умолчанию." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2442 +#, no-wrap +msgid "`RUBY_ARCH`" +msgstr "`RUBY_ARCH`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2444 +msgid "Set the architecture name (e.g. i386-freebsd7)." +msgstr "Установите имя архитектуры (например, i386-freebsd7)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2446 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2921 +msgid "The following variables are exported to be used by the port:" +msgstr "Следующие переменные экспортируются для использования портом:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2447 +#, no-wrap +msgid "`RUBY`" +msgstr "`RUBY`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2452 +msgid "" +"Set to full path of ruby. If set, the values of the following variables are " +"automatically obtained from the ruby executable: `RUBY_ARCH`, " +"`RUBY_ARCHLIBDIR`, `RUBY_LIBDIR`, `RUBY_SITEARCHLIBDIR`, `RUBY_SITELIBDIR`, " +"`RUBY_VER` and `RUBY_VERSION`" +msgstr "" +"Установлена в полный путь к ruby. Если задано, значения следующих переменных " +"автоматически получаются из исполняемого файла ruby: `RUBY_ARCH`, " +"`RUBY_ARCHLIBDIR`, `RUBY_LIBDIR`, `RUBY_SITEARCHLIBDIR`, `RUBY_SITELIBDIR`, " +"`RUBY_VER` и `RUBY_VERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2455 +msgid "Set to the alternative short version of ruby in the form of `x.y'." +msgstr "Установлена в альтернативную короткую версию ruby в формате `x.y`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2456 +#, no-wrap +msgid "`RUBY_EXTCONF`" +msgstr "`RUBY_EXTCONF`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2458 +msgid "Set to the alternative name of extconf.rb (default: extconf.rb)." +msgstr "" +"Установлена в альтернативное имя для extconf.rb (по умолчанию: extconf.rb)." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2459 +#, no-wrap +msgid "`RUBY_EXTCONF_SUBDIRS`" +msgstr "`RUBY_EXTCONF_SUBDIRS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2461 +msgid "Set to list of subdirectories, if multiple modules are included." +msgstr "Установлена в список подкаталогов, если включено несколько модулей." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2462 +#, no-wrap +msgid "`RUBY_SETUP`" +msgstr "`RUBY_SETUP`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2464 +msgid "Set to the alternative name of setup.rb (default: setup.rb)." +msgstr "" +"Установлена в альтернативное имя для setup.rb (по умолчанию: setup.rb)." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2467 +#, no-wrap +msgid "`samba`" +msgstr "`samba`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2470 +msgid "Possible arguments: `build`, `env`, `lib`, `run`" +msgstr "Возможные аргументы: `build`, `env`, `lib`, `run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2475 +msgid "" +"Handle dependency on Samba. `env` will not add any dependency and only set " +"up the variables. `build` and `run` will add build-time and run-time " +"dependency on [.filename]#smbd#. `lib` will add a dependency on " +"[.filename]#libsmbclient.so#. The variables that are exported are:" +msgstr "" +"Обработать зависимость от Samba. `env` не добавит никаких зависимостей, а " +"только установит переменные. `build` и `run` добавят зависимости во время " +"сборки и выполнения на [.filename]#smbd#. `lib` добавит зависимость на " +"[.filename]#libsmbclient.so#. Экспортируемые переменные:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2476 +#, no-wrap +msgid "`SAMBA_PORT`" +msgstr "`SAMBA_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2478 +msgid "The origin of the default Samba port." +msgstr "Расположение порта Samba по умолчанию." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2479 +#, no-wrap +msgid "`SAMBA_INCLUDEDIR`" +msgstr "`SAMBA_INCLUDEDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2481 +msgid "The location of the Samba header files." +msgstr "Расположение заголовочных файлов Samba." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2482 +#, no-wrap +msgid "`SAMBA_LIBS`" +msgstr "`SAMBA_LIBS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2484 +msgid "The directory where the Samba shared libraries are available." +msgstr "Каталог, в котором доступны общие библиотеки Samba." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2485 +#, no-wrap +msgid "`SAMBA_LDB_PORT`" +msgstr "`SAMBA_LDB_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2488 +msgid "" +"The origin of the ldb port used by the selected Samba version (e.g., " +"package:databases/ldb28[]). It should be used if a port needs to depend on " +"the same ldb version as the selected Samba version." +msgstr "" +"Расположение порта ldb, используемого выбранной версией Samba (например, " +"package:databases/ldb28[]). Он должен использоваться, если порту требуется " +"зависимость от той же версии ldb, что и у выбранной версии Samba." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2489 +#, no-wrap +msgid "`SAMBA_TALLOC_PORT`" +msgstr "`SAMBA_TALLOC_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2492 +msgid "" +"The origin of the talloc port used by the selected Samba version. It should " +"be used if a port needs to depend on the same talloc version as the selected " +"Samba version." +msgstr "" +"Расположение порта talloc, используемого выбранной версией Samba. Следует " +"использовать, если порту требуется зависеть от той же версии talloc, что и " +"выбранная версия Samba." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2493 +#, no-wrap +msgid "`SAMBA_TDB_PORT`" +msgstr "`SAMBA_TDB_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2496 +msgid "" +"The origin of the TDB port used by the selected Samba version. It should be " +"used if a port needs to depend on the same TDB version as the selected Samba " +"version." +msgstr "" +"Расположение порта TDB, используемого выбранной версией Samba. Его следует " +"использовать, если порту требуется зависеть от той же версии TDB, что и " +"выбранная версия Samba." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2497 +#, no-wrap +msgid "`SAMBA_TEVENT_PORT`" +msgstr "`SAMBA_TEVENT_PORT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2500 +msgid "" +"The origin of the tevent port used by the selected Samba version. It should " +"be used if a port needs to depend on the same tevent version as the selected " +"Samba version." +msgstr "" +"Расположение порта tevent, используемого выбранной версией Samba. Это " +"следует использовать, если порту необходимо зависеть от той же версии " +"tevent, что и выбранная версия Samba." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2502 +#, no-wrap +msgid "`scons`" +msgstr "`scons`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2508 +msgid "" +"Provide support for the use of package:devel/scons[]. See " +"crossref:special[using-scons,Using `scons`] for more information." +msgstr "" +"Предоставить поддержку для использования package:devel/scons[]. " +"Дополнительную информацию смотрите в crossref:special[using-" +"scons,Использование `scons`]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2510 +#, no-wrap +msgid "`sdl`" +msgstr "`sdl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2513 +msgid "Possible arguments: `sdl`" +msgstr "Возможные аргументы: `sdl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2517 +msgid "" +"Provide support for the use of `SDL` packages. The variable `USE_SDL` is " +"mandatory and specifies which components to add as dependencies." +msgstr "" +"Обеспечить поддержку использования пакетов `SDL`. Переменная `USE_SDL` " +"является обязательной и указывает, какие компоненты добавить в зависимости." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2519 +msgid "The current supported `SDL1.2` modules are:" +msgstr "Поддерживаемые в настоящее время модули `SDL1.2`:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2521 +msgid "sdl" +msgstr "sdl" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2522 +msgid "console" +msgstr "console" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2523 +msgid "gfx" +msgstr "gfx" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2524 +msgid "image" +msgstr "image" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2525 +msgid "mixer" +msgstr "mixer" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2526 +msgid "mm" +msgstr "mm" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2527 +msgid "net" +msgstr "net" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2528 +msgid "pango" +msgstr "pango" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2529 +msgid "sound" +msgstr "sound" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2530 +msgid "ttf" +msgstr "ttf" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2532 +msgid "The current supported `SDL2` modules are:" +msgstr "Текущие поддерживаемые модули `SDL2`:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2534 +msgid "sdl2" +msgstr "sdl2" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2535 +msgid "gfx2" +msgstr "gfx2" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2536 +msgid "image2" +msgstr "image2" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2537 +msgid "mixer2" +msgstr "mixer2" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2538 +msgid "net2" +msgstr "net2" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2539 +msgid "sound2" +msgstr "sound2" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2540 +msgid "ttf2" +msgstr "ttf2" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2542 +msgid "The current supported `SDL3` modules are:" +msgstr "Текущие поддерживаемые модули `SDL3`:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2544 +msgid "sdl3" +msgstr "sdl3" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2545 +msgid "image3" +msgstr "image3" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2546 +msgid "ttf3" +msgstr "ttf3" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2548 +#, no-wrap +msgid "`shared-mime-info`" +msgstr "`shared-mime-info`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2555 +msgid "" +"Uses update-mime-database from package:misc/shared-mime-info[]. This uses " +"will automatically add a post-install step in such a way that the port " +"itself still can specify there own post-install step if needed. It also add " +"an crossref:plist[plist-keywords-shared-mime-info,`@shared-mime-info`] entry " +"to the plist." +msgstr "" +"Использует update-mime-database из пакета package:misc/shared-mime-info[]. " +"Это автоматически добавит шаг post-install таким образом, что сам порт всё " +"ещё может указать собственный шаг post-install при необходимости. Также " +"добавляет запись crossref:plist[plist-keywords-shared-mime-info,`@shared-" +"mime-info`] в plist." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2557 +#, no-wrap +msgid "`shebangfix`" +msgstr "`shebangfix`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2563 +msgid "" +"A lot of software uses incorrect locations for script interpreters, most " +"notably [.filename]#/usr/bin/perl# and [.filename]#/bin/bash#. The " +"shebangfix macro fixes shebang lines in scripts listed in `SHEBANG_REGEX`, " +"`SHEBANG_GLOB`, or `SHEBANG_FILES`." +msgstr "" +"Множество программ используют некорректные расположения для интерпретаторов " +"скриптов, особенно [.filename]#/usr/bin/perl# и [.filename]#/bin/bash#. " +"Макрос shebangfix исправляет строки shebang в скриптах, перечисленных в " +"`SHEBANG_REGEX`, `SHEBANG_GLOB` или `SHEBANG_FILES`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2564 +#, no-wrap +msgid "`SHEBANG_REGEX`" +msgstr "`SHEBANG_REGEX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2567 +msgid "" +"Contains _one_ extended regular expressions, and is used with the `-iregex` " +"argument of man:find[1]. See crossref:uses[uses-shebangfix-ex-" +"regex,`USESshebangfix` with `SHEBANG_REGEX`]." +msgstr "" +"Содержит _одно_ расширенное регулярное выражение и используется с аргументом " +"`-iregex` в man:find[1]. См. crossref:uses[uses-shebangfix-ex-" +"regex,`USESshebangfix` с `SHEBANG_REGEX`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2568 +#, no-wrap +msgid "`SHEBANG_GLOB`" +msgstr "`SHEBANG_GLOB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2571 +msgid "" +"Contains a list of patterns used with the `-name` argument of man:find[1]. " +"See crossref:uses[uses-shebangfix-ex-glob,`USESshebangfix` with " +"`SHEBANG_GLOB`]." +msgstr "" +"Содержит список шаблонов, используемых с аргументом `-name` в man:find[1]. " +"См. crossref:uses[uses-shebangfix-ex-glob,`USESshebangfix` с `SHEBANG_GLOB`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2572 +#, no-wrap +msgid "`SHEBANG_FILES`" +msgstr "`SHEBANG_FILES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2577 +msgid "" +"Contains a list of files or man:sh[1] globs. The shebangfix macro is run " +"from `${WRKSRC}`, so `SHEBANG_FILES` can contain paths that are relative to " +"`${WRKSRC}`. It can also deal with absolute paths if files outside of `$" +"{WRKSRC}` require patching. See crossref:uses[uses-shebangfix-ex-" +"files,`USESshebangfix` with `SHEBANG_FILES`]." +msgstr "" +"Содержит список файлов или шаблонов man:sh[1]. Макрос shebangfix выполняется " +"из `${WRKSRC}`, поэтому `SHEBANG_FILES` может содержать пути, относительные " +"к `${WRKSRC}`. Также он может работать с абсолютными путями, если требуется " +"исправление файлов вне `${WRKSRC}`. См. crossref:uses[uses-shebangfix-ex-" +"files,`USESshebangfix` с `SHEBANG_FILES`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2579 +msgid "" +"Currently Bash, Java, Ksh, Lua, Perl, PHP, Python, Ruby, Tcl, and Tk are " +"supported by default." +msgstr "" +"В настоящее время Bash, Java, Ksh, Lua, Perl, PHP, Python, Ruby, Tcl и Tk " +"поддерживаются по умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2581 +msgid "There are three configuration variables:" +msgstr "Существует три переменных конфигурации:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2582 +#, no-wrap +msgid "`SHEBANG_LANG`" +msgstr "`SHEBANG_LANG`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2584 +msgid "The list of supported interpreters." +msgstr "Список поддерживаемых интерпретаторов." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2585 +#, no-wrap +msgid "`_interp__CMD`" +msgstr "`_interp__CMD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2588 +msgid "" +"The path to the command interpreter on FreeBSD. The default value is `$" +"{LOCALBASE}/bin/_interp_`." +msgstr "" +"Путь к интерпретатору команд в FreeBSD. Значение по умолчанию — `$" +"{LOCALBASE}/bin/_interp_`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2589 +#, no-wrap +msgid "`_interp__OLD_CMD`" +msgstr "`_interp__OLD_CMD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2593 +msgid "" +"The list of wrong invocations of interpreters. These are typically obsolete " +"paths, or paths used on other operating systems that are incorrect on " +"FreeBSD. They will be replaced by the correct path in `_interp__CMD`." +msgstr "" +"Список неправильных вызовов интерпретаторов. Обычно это устаревшие пути или " +"пути, используемые в других операционных системах, которые неверны в " +"FreeBSD. Они будут заменены на правильные пути в `_interp__CMD`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2597 +msgid "" +"These will _always_ be part of `_interp__OLD_CMD`: `\"/usr/bin/env " +"_interp_\" /bin/_interp_ /usr/bin/_interp_ /usr/local/bin/_interp_`." +msgstr "" +"Эти пути _всегда_ будут частью `_interp__OLD_CMD`: `\"/usr/bin/env " +"_interp_\" /bin/_interp_ /usr/bin/_interp_ /usr/local/bin/_interp_`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2604 +msgid "" +"`_interp__OLD_CMD` contain multiple values. Any entry with spaces must be " +"quoted. See crossref:uses[uses-shebangfix-ex-ksh,Specifying all the Paths " +"When Adding an Interpreter to `USESshebangfix`]." +msgstr "" +"`_interp__OLD_CMD` содержит несколько значений. Любая запись с пробелами " +"должна быть заключена в кавычки. См. crossref:uses[uses-shebangfix-ex-" +"ksh,Указание всех путей при добавлении интерпретатора в `USESshebangfix`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2610 +msgid "" +"The fixing of shebangs is done during the `patch` phase. If scripts are " +"created with incorrect shebangs during the `build` phase, the build process " +"(for example, the [.filename]#configure# script, or the " +"[.filename]#Makefiles#) must be patched or given the right path (for " +"example, with `CONFIGURE_ENV`, `CONFIGURE_ARGS`, `MAKE_ENV`, or `MAKE_ARGS`) " +"to generate the right shebangs." +msgstr "" +"Исправление шебанг-строк выполняется на этапе `patch`. Если скрипты " +"создаются с некорректными шебанг-строками на этапе `build`, процесс сборки " +"(например, скрипт [.filename]#configure# или [.filename]#Makefiles#) должен " +"быть исправлен или ему должен быть указан правильный путь (например, с " +"помощью `CONFIGURE_ENV`, `CONFIGURE_ARGS`, `MAKE_ENV` или `MAKE_ARGS`) для " +"генерации корректных шебанг-строк." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2612 +msgid "" +"Correct paths for supported interpreters are available in `_interp__CMD`." +msgstr "" +"Правильные пути для поддерживаемых интерпретаторов доступны в `_interp__CMD`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2617 +msgid "" +"When used with crossref:uses[uses-python,`USES=python`], and the aim is only " +"to fix the shebangs but a dependency on Python itself is not wanted, use " +"`USES=python:env` instead." +msgstr "" +"При использовании с crossref:uses[uses-python,`USES=python`], если цель " +"состоит только в исправлении shebang, но зависимость от самого Python не " +"требуется, используйте `USES=python:env`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2620 +#, no-wrap +msgid "Adding Another Interpreter to `USES=shebangfix`" +msgstr "Добавление другого интерпретатора в `USES=shebangfix`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2625 +msgid "To add another interpreter, set `SHEBANG_LANG`. For example:" +msgstr "" +"Чтобы добавить другой интерпретатор, установите `SHEBANG_LANG`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2629 +#, no-wrap +msgid "SHEBANG_LANG=\tlua\n" +msgstr "SHEBANG_LANG=\tlua\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2634 +#, no-wrap +msgid "Specifying all the Paths When Adding an Interpreter to `USES=shebangfix`" +msgstr "Указание всех путей при добавлении интерпретатора в `USES=shebangfix`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2638 +msgid "" +"If it was not already defined, and there were no default values for " +"`_interp__OLD_CMD` and `_interp__CMD` the Ksh entry could be defined as:" +msgstr "" +"Если они еще не были определены и не было значений по умолчанию для " +"`_interp__OLD_CMD` и `_interp__CMD`, запись Ksh можно определить как:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2644 +#, no-wrap +msgid "" +"SHEBANG_LANG=\tksh\n" +"ksh_OLD_CMD=\t\"/usr/bin/env ksh\" /bin/ksh /usr/bin/ksh\n" +"ksh_CMD=\t${LOCALBASE}/bin/ksh\n" +msgstr "" +"SHEBANG_LANG=\tksh\n" +"ksh_OLD_CMD=\t\"/usr/bin/env ksh\" /bin/ksh /usr/bin/ksh\n" +"ksh_CMD=\t${LOCALBASE}/bin/ksh\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2649 +#, no-wrap +msgid "Adding a Strange Location for an Interpreter" +msgstr "Добавление нестандартного расположения интерпретатора" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2655 +msgid "" +"Some software uses strange locations for an interpreter. For example, an " +"application might expect Python to be located in [.filename]#/opt/bin/" +"python2.7#. The strange path to be replaced can be declared in the port " +"[.filename]#Makefile#:" +msgstr "" +"Некоторое программное обеспечение использует нестандартные пути для " +"интерпретатора. Например, приложение может ожидать, что Python будет " +"расположен в [.filename]#/opt/bin/python2.7#. Нестандартный путь, который " +"нужно заменить, можно указать в [.filename]#Makefile# порта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2659 +#, no-wrap +msgid "python_OLD_CMD=\t/opt/bin/python2.7\n" +msgstr "python_OLD_CMD=\t/opt/bin/python2.7\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2664 +#, no-wrap +msgid "`USES=shebangfix` with `SHEBANG_REGEX`" +msgstr "`USES=shebangfix` с `SHEBANG_REGEX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2668 +msgid "" +"To fix all the files in `${WRKSRC}/scripts` ending in [.filename]#.pl#, " +"[.filename]#.sh#, or [.filename]#.cgi# do:" +msgstr "" +"Для исправления всех файлов в `${WRKSRC}/scripts`, оканчивающихся на " +"[.filename]#.pl#, [.filename]#.sh# или [.filename]#.cgi#, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2673 +#, no-wrap +msgid "" +"USES=\tshebangfix\n" +"SHEBANG_REGEX=\t./scripts/.*\\.(sh|pl|cgi)\n" +msgstr "" +"USES=\tshebangfix\n" +"SHEBANG_REGEX=\t./scripts/.*\\.(sh|pl|cgi)\n" + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2679 +msgid "" +"`SHEBANG_REGEX` is used by running `find -E`, which uses modern regular " +"expressions also known as extended regular expressions. See " +"man:re_format[7] for more information." +msgstr "" +"`SHEBANG_REGEX` используется при выполнении `find -E`, который применяет " +"современные регулярные выражения, также известные как расширенные регулярные " +"выражения. Подробнее см. в man:re_format[7]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2684 +#, no-wrap +msgid "`USES=shebangfix` with `SHEBANG_GLOB`" +msgstr "`USES=shebangfix` с `SHEBANG_GLOB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2688 +msgid "" +"To fix all the files in `${WRKSRC}` ending in [.filename]#.pl# or " +"[.filename]#.sh#, do:" +msgstr "" +"Для исправления всех файлов в `${WRKSRC}` с окончанием [.filename]#.pl# или " +"[.filename]#.sh# выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2693 +#, no-wrap +msgid "" +"USES=\tshebangfix\n" +"SHEBANG_GLOB=\t*.sh *.pl\n" +msgstr "" +"USES=\tshebangfix\n" +"SHEBANG_GLOB=\t*.sh *.pl\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2698 +#, no-wrap +msgid "`USES=shebangfix` with `SHEBANG_FILES`" +msgstr "`USES=shebangfix` с `SHEBANG_FILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2702 +msgid "" +"To fix the files [.filename]#script/foobar.pl# and [.filename]#script/*.sh# " +"in `${WRKSRC}`, do:" +msgstr "" +"Для исправления файлов [.filename]#script/foobar.pl# и [.filename]#script/" +"*.sh# в `${WRKSRC}` выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2707 +#, no-wrap +msgid "" +"USES=\tshebangfix\n" +"SHEBANG_FILES=\tscripts/foobar.pl scripts/*.sh\n" +msgstr "" +"USES=\tshebangfix\n" +"SHEBANG_FILES=\tscripts/foobar.pl scripts/*.sh\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2712 +#, no-wrap +msgid "`sqlite`" +msgstr "`sqlite`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2715 +msgid "Possible arguments: (none), `2`, `3`" +msgstr "Возможные аргументы: (нет), `2`, `3`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2718 +msgid "" +"Add a dependency on SQLite. The default version used is 3, but version 2 is " +"also possible using the `:2` modifier." +msgstr "" +"Добавить зависимость от SQLite. Используемая по умолчанию версия — 3, но " +"также возможна версия 2 с использованием модификатора `:2`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2720 +#, no-wrap +msgid "`sbrk`" +msgstr "`sbrk`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2725 +msgid "Marks the port as `BROKEN` in `aarch64` and `riscv64`." +msgstr "Помечает порт как `BROKEN` для `aarch64` и `riscv64`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2727 +#, no-wrap +msgid "`ssl`" +msgstr "`ssl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2730 +msgid "Possible arguments: (none), `build`, `run`" +msgstr "Возможные аргументы: (нет), `build`, `run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2734 +msgid "" +"Provide support for OpenSSL. A build- or run-time only dependency can be " +"specified using `build` or `run`. These variables are available for the " +"port's use, they are also added to `MAKE_ENV`:" +msgstr "" +"Обеспечить поддержку OpenSSL. Зависимость только для сборки или выполнения " +"может быть указана с использованием `build` или `run`. Эти переменные " +"доступны для использования портом, а также добавлены в `MAKE_ENV`:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2735 +#, no-wrap +msgid "`OPENSSLBASE`" +msgstr "`OPENSSLBASE`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2737 +msgid "Path to the OpenSSL installation base." +msgstr "Путь к базовой установке OpenSSL." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2738 +#, no-wrap +msgid "`OPENSSLDIR`" +msgstr "`OPENSSLDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2740 +msgid "Path to OpenSSL's configuration files." +msgstr "Путь к файлам конфигурации OpenSSL." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2741 +#, no-wrap +msgid "`OPENSSLLIB`" +msgstr "`OPENSSLLIB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2743 +msgid "Path to the OpenSSL libraries." +msgstr "Путь к библиотекам OpenSSL." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2744 +#, no-wrap +msgid "`OPENSSLINC`" +msgstr "`OPENSSLINC`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2746 +msgid "Path to the OpenSSL includes." +msgstr "Путь к заголовочным файлам OpenSSL." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2747 +#, no-wrap +msgid "`OPENSSLRPATH`" +msgstr "`OPENSSLRPATH`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2749 +msgid "" +"If defined, the path the linker needs to use to find the OpenSSL libraries." +msgstr "" +"Если определено, путь, который требуется компоновщику для поиска библиотек " +"OpenSSL." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2753 +msgid "" +"If a port does not build with an OpenSSL flavor, set the `BROKEN_SSL` " +"variable, and possibly the `BROKEN_SSL_REASON__flavor_`:" +msgstr "" +"Если порт не собирается с вариантом OpenSSL, установите переменную " +"`BROKEN_SSL`, а также, возможно, `BROKEN_SSL_REASON__flavor_`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2758 +#, no-wrap +msgid "" +"BROKEN_SSL=\tlibressl\n" +"BROKEN_SSL_REASON_libressl=\tneeds features only available in OpenSSL\n" +msgstr "" +"BROKEN_SSL=\tlibressl\n" +"BROKEN_SSL_REASON_libressl=\tneeds features only available in OpenSSL\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2763 +#, no-wrap +msgid "`tar`" +msgstr "`tar`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2767 +msgid "" +"Possible arguments: (none), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, " +"`tgz`, `txz`, `xz`, `zst`, `zstd`" +msgstr "" +"Возможные аргументы: (нет), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, " +"`tgz`, `txz`, `xz`, `zst`, `zstd`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2770 +msgid "" +"Set `EXTRACT_SUFX` to `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, `.tar.lzma`, " +"`.tbz`, `.tbz2`, `.tgz`, `.txz`, `.tar.xz`, `.tar.zst` or `.tar.zstd` " +"respectively." +msgstr "" +"Установите `EXTRACT_SUFX` в `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, " +"`.tar.lzma`, `.tbz`, `.tbz2`, `.tgz`, `.txz`, `.tar.xz`, `.tar.zst` или " +"`.tar.zstd` соответственно." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2772 +#, no-wrap +msgid "`tcl`" +msgstr "`tcl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2775 +msgid "Possible arguments: _version_, `wrapper`, `build`, `run`, `tea`" +msgstr "Возможные аргументы: _version_, `wrapper`, `build`, `run`, `tea`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2782 +msgid "" +"Add a dependency on Tcl. A specific version can be requested using " +"_version_. The version can be empty, one or more exact version numbers " +"(currently `84`, `85`, or `86`), or a minimal version number (currently " +"`84+`, `85+` or `86+`). To only request a non version specific wrapper, use " +"`wrapper`. A build- or run-time only dependency can be specified using " +"`build` or `run`. To build the port using the Tcl Extension Architecture, " +"use `tea`. After including [.filename]#bsd.port.pre.mk# the port can " +"inspect the results using these variables:" +msgstr "" +"Добавьте зависимость от Tcl. Конкретная версия может быть запрошена с " +"помощью _version_. Версия может быть пустой, одной или несколькими точными " +"номерами версий (в настоящее время `84`, `85` или `86`), либо минимальным " +"номером версии (в настоящее время `84+`, `85+` или `86+`). Чтобы запросить " +"только неспецифичную для версии обёртку, используйте `wrapper`. Зависимость " +"только на время сборки или выполнения может быть указана с помощью `build` " +"или `run`. Для сборки порта с использованием Tcl Extension Architecture " +"используйте `tea`. После включения [.filename]#bsd.port.pre.mk# порт может " +"проверить результаты с помощью этих переменных:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2784 +msgid "`TCL_VER`: chosen major.minor version of Tcl" +msgstr "`TCL_VER`: выбранная версия Tcl в формате major.minor" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2785 +msgid "`TCLSH`: full path of the Tcl interpreter" +msgstr "`TCLSH`: полный путь к интерпретатору Tcl" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2786 +msgid "`TCL_LIBDIR`: path of the Tcl libraries" +msgstr "`TCL_LIBDIR`: путь к библиотекам Tcl" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2787 +msgid "`TCL_INCLUDEDIR`: path of the Tcl C header files" +msgstr "`TCL_INCLUDEDIR`: путь к заголовочным файлам Tcl на языке C" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2788 +msgid "`TCL_PKG_LIB_PREFIX`: Library prefix, as per TIP595" +msgstr "`TCL_PKG_LIB_PREFIX`: Префикс библиотеки, согласно TIP595" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2789 +msgid "`TCL_PKG_STUB_POSTFIX`: Stub library postfix" +msgstr "`TCL_PKG_STUB_POSTFIX`: Постфикс библиотеки заглушки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2790 +msgid "`TK_VER`: chosen major.minor version of Tk" +msgstr "`TK_VER`: выбранная версия Tk в формате major.minor" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2791 +msgid "`WISH`: full path of the Tk interpreter" +msgstr "`WISH`: полный путь к интерпретатору Tk" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2792 +msgid "`TK_LIBDIR`: path of the Tk libraries" +msgstr "`TK_LIBDIR`: путь к библиотекам Tk" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2793 +msgid "`TK_INCLUDEDIR`: path of the Tk C header files" +msgstr "`TK_INCLUDEDIR`: путь к заголовочным файлам Tk на языке C" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2795 +#, no-wrap +msgid "`terminfo`" +msgstr "`terminfo`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2801 +msgid "" +"Adds crossref:plist[plist-keywords-terminfo,`@terminfo`] to the " +"[.filename]#plist#. Use when the port installs [.filename]#*.terminfo# " +"files in [.filename]#${PREFIX}/share/misc#." +msgstr "" +"Добавляет crossref:plist[plist-keywords-terminfo,`@terminfo`] в файл " +"[.filename]#plist#. Используется, когда порт устанавливает файлы " +"[.filename]#*.terminfo# в каталог [.filename]#${PREFIX}/share/misc#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2803 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2838 +#, no-wrap +msgid "`tex`" +msgstr "`tex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2809 +msgid "" +"Provide support for tex. Loads all the default variables for TEX related " +"ports and does not add any dependency on any ports." +msgstr "" +"Обеспечить поддержку tex. Загружает все стандартные переменные для портов, " +"связанных с TEX, и не добавляет зависимостей от других портов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2811 +msgid "Variables are used to specify which TEX modules are required." +msgstr "Переменные используются для указания того, какие модули TEX требуются." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2812 +#, no-wrap +msgid "`USE_TEX`" +msgstr "`USE_TEX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2816 +msgid "" +"The list of required TEX extensions at run-time. Add `:build` to the " +"extension name to add a build-time dependency, `:run` to add runtime " +"dependency, `:test` for test time dependency, `:extract` for extract time " +"dependency. Example: `base texmf:build source:run`" +msgstr "" +"Список необходимых расширений TEX во время выполнения. Добавьте `:build` к " +"названию расширения, чтобы добавить зависимость на время сборки, `:run` — " +"для зависимости во время выполнения, `:test` — для зависимости во время " +"тестирования, `:extract` — для зависимости во время извлечения. Пример: " +"`base texmf:build source:run`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2818 +msgid "Current possible arguments are as follows:" +msgstr "Текущие возможные аргументы следующие:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2821 +msgid "`texmf`" +msgstr "`texmf`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2822 +msgid "`source`" +msgstr "`source`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2824 +msgid "`web2c`" +msgstr "`web2c`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2825 +msgid "`kpathsea`" +msgstr "`kpathsea`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2826 +msgid "`ptexenc`" +msgstr "`ptexenc`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2827 +msgid "`basic`" +msgstr "`basic`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2828 +msgid "`tlmgr`" +msgstr "`tlmgr`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2829 +msgid "`texlua`" +msgstr "`texlua`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2830 +msgid "`texluajit`" +msgstr "`texluajit`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2831 +msgid "`synctex`" +msgstr "`synctex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2832 +msgid "`xpdfopen`" +msgstr "`xpdfopen`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2833 +msgid "`dvipsk`" +msgstr "`dvipsk`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2834 +msgid "`dvipdfmx`" +msgstr "`dvipdfmx`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2835 +msgid "`xdvik`" +msgstr "`xdvik`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2836 +msgid "`gbklatex`" +msgstr "`gbklatex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2837 +msgid "`formats`" +msgstr "`formats`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2839 +msgid "`latex`" +msgstr "`latex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2840 +msgid "`pdftex`" +msgstr "`pdftex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2841 +msgid "`jadetex`" +msgstr "`jadetex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2842 +msgid "`luatex`" +msgstr "`luatex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2843 +msgid "`ptex`" +msgstr "`ptex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2844 +msgid "`xetex`" +msgstr "`xetex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2845 +msgid "`xmltex`" +msgstr "`xmltex`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2846 +msgid "`texhash`" +msgstr "`texhash`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2847 +msgid "`updmap`" +msgstr "`updmap`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2848 +msgid "`fmtutil`" +msgstr "`fmtutil`" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2850 +#, no-wrap +msgid "`tk`" +msgstr "`tk`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2853 +msgid "Same as arguments for `tcl`" +msgstr "Так же, как аргументы для `tcl`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2856 +msgid "" +"Small wrapper when using both Tcl and Tk. The same variables are returned " +"as when using Tcl." +msgstr "" +"Небольшая обертка при использовании Tcl и Tk. Возвращаются те же переменные, " +"что и при использовании Tcl." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2858 +#, no-wrap +msgid "`trigger`" +msgstr "`trigger`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2864 +msgid "" +"Provide support for ports requiring triggers to be executed by man:pkg[8]. " +"Triggers are executed at the end of a transaction if the conditions are met." +msgstr "" +"Предоставить поддержку для портов, требующих выполнения триггеров с помощью " +"man:pkg[8]. Триггеры выполняются в конце транзакции, если условия выполнены." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2866 +msgid "The following variable can be set by ports:" +msgstr "Следующая переменная может быть установлена портами:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2867 +#, no-wrap +msgid "`TRIGGERS`" +msgstr "`TRIGGERS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2869 +msgid "List of triggers to package. Defaults to `${PORTNAME}`." +msgstr "Список триггеров для пакета. По умолчанию используется `${PORTNAME}`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2872 +msgid "" +"Triggers are specified in UCL format and are usually placed in the " +"[.filename]#files/# directory of the port." +msgstr "" +"Триггеры указываются в формате UCL и обычно размещаются в каталоге " +"[.filename]#files/# порта." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2874 +#, no-wrap +msgid "`uidfix`" +msgstr "`uidfix`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2880 +msgid "" +"Changes some default behavior (mostly variables) of the build system to " +"allow installing this port as a normal user. Try this in the port before " +"using crossref:uses[uses-fakeroot,`USES=fakeroot`] or patching." +msgstr "" +"Изменяет некоторые стандартные настройки (в основном переменные) системы " +"сборки, чтобы позволить установку этого порта обычным пользователем. " +"Попробуйте это в порте перед использованием crossref:uses[uses-" +"fakeroot,`USES=fakeroot`] или исправлением." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2882 +#, no-wrap +msgid "`uniquefiles`" +msgstr "`uniquefiles`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2885 +msgid "Possible arguments: (none), `dirs`" +msgstr "Возможные аргументы: (нет), `dirs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2889 +msgid "" +"Make files or directories 'unique', by adding a prefix or suffix. If the " +"`dirs` argument is used, the port needs a prefix (and only a prefix) based " +"on `UNIQUE_PREFIX` for standard directories `DOCSDIR`, `EXAMPLESDIR`, " +"`DATADIR`, `WWWDIR`, `ETCDIR`. These variables are available for ports:" +msgstr "" +"Сделать файлы или каталоги 'уникальными', добавляя префикс или суффикс. Если " +"используется аргумент `dirs`, порту требуется префикс (и только префикс) на " +"основе `UNIQUE_PREFIX` для стандартных каталогов `DOCSDIR`, `EXAMPLESDIR`, " +"`DATADIR`, `WWWDIR`, `ETCDIR`. Эти переменные доступны для портов:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2891 +msgid "" +"`UNIQUE_PREFIX`: The prefix to be used for directories and files. Default: `$" +"{PKGNAMEPREFIX}`." +msgstr "" +"`UNIQUE_PREFIX`: Префикс, используемый для каталогов и файлов. По умолчанию: " +"`${PKGNAMEPREFIX}`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2892 +msgid "" +"`UNIQUE_PREFIX_FILES`: A list of files that need to be prefixed. Default: " +"empty." +msgstr "" +"`UNIQUE_PREFIX_FILES`: Список файлов, которые необходимо предварить " +"префиксом. По умолчанию: пусто." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2893 +msgid "" +"`UNIQUE_SUFFIX`: The suffix to be used for files. Default: `${PKGNAMESUFFIX}" +"`." +msgstr "" +"`UNIQUE_SUFFIX`: Суффикс, используемый для файлов. По умолчанию: `$" +"{PKGNAMESUFFIX}`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2894 +msgid "" +"`UNIQUE_SUFFIX_FILES`: A list of files that need to be suffixed. Default: " +"empty." +msgstr "" +"`UNIQUE_SUFFIX_FILES`: Список файлов, к которым необходимо добавить суффикс. " +"По умолчанию: пусто." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2896 +#, no-wrap +msgid "`vala`" +msgstr "`vala`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2899 +msgid "Possible arguments: `build`, `lib`, `no_depend`" +msgstr "Возможные аргументы: `build`, `lib`, `no_depend`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2902 +msgid "" +"Adds build or library dependencies on package:lang/vala[]. The `no_depend` " +"argument is reserved for package:lang/vala[] itself." +msgstr "" +"Добавляет зависимости сборки или библиотеки на package:lang/vala[]. Аргумент " +"`no_depend` зарезервирован для самого package:lang/vala[]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2904 +#, no-wrap +msgid "`varnish`" +msgstr "`varnish`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2907 +msgid "Possible arguments: `4` (default), `6`, `7`" +msgstr "Возможные аргументы: `4` (по умолчанию), `6`, `7`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2910 +msgid "" +"Handle dependencies on Varnish Cache. Adds a dependency on package:www/" +"varnish*[]." +msgstr "" +"Обрабатывает зависимости для Varnish Cache. Добавляет зависимость от пакета " +"`package:www/varnish*[]`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2912 +#, no-wrap +msgid "`waf`" +msgstr "`waf`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2917 +msgid "Provide support for ports using the `waf` build system." +msgstr "Обеспечить поддержку портов, использующих систему сборки `waf`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2919 +msgid "It implies `USES=python:build`." +msgstr "Это подразумевает `USES=python:build`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2922 +#, no-wrap +msgid "`WAF_CMD`" +msgstr "`WAF_CMD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2925 +msgid "" +"Location of the `waf` script. Set this if the `waf` script is not in " +"[.filename]#WRKSRC/waf#." +msgstr "" +"Расположение скрипта `waf`. Установите этот параметр, если скрипт `waf` не " +"находится в [.filename]#WRKSRC/waf#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2926 +#, no-wrap +msgid "`CONFIGURE_TARGET`" +msgstr "`CONFIGURE_TARGET`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2928 +msgid "`Configure` target. Default `configure`." +msgstr "Цель для `configure`. По умолчанию – `configure`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2929 +#, no-wrap +msgid "`ALL_TARGET`" +msgstr "`ALL_TARGET`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2931 +msgid "`All` target. Default `build`." +msgstr "Цель для `all`. По умолчанию `build`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2932 +#, no-wrap +msgid "`INSTALL_TARGET`" +msgstr "`INSTALL_TARGET`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2934 +msgid "`Install` target. Default `install`." +msgstr "Цель для `install`. По умолчанию `install`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2936 +#, no-wrap +msgid "`webplugin`" +msgstr "`webplugin`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2939 +msgid "Possible arguments: (none), `ARGS`" +msgstr "Возможные аргументы: (нет), `ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2942 +msgid "" +"Automatically create and remove symbolic links for each application that " +"supports the webplugin framework. `ARGS` can be one of:" +msgstr "" +"Автоматически создавать и удалять символические ссылки для каждого " +"приложения, поддерживающего фреймворк webplugin. `ARGS` может быть одним из:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2944 +msgid "`gecko`: support plug-ins based on Gecko" +msgstr "`gecko`: поддержка плагинов на основе Gecko" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2945 +msgid "`native`: support plug-ins for Gecko, Opera, and WebKit-GTK" +msgstr "`native`: поддержка плагинов для Gecko, Opera и WebKit-GTK" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2946 +msgid "`linux`: support Linux plug-ins" +msgstr "`linux`: поддержка Linux плагинов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2947 +msgid "`all` (default, implicit): support all plug-in types" +msgstr "`all` (по умолчанию, неявно): поддержка всех типов плагинов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2948 +msgid "(individual entries): support only the browsers listed" +msgstr "(отдельные записи): поддерживаются только перечисленные браузеры" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2950 +msgid "These variables can be adjusted:" +msgstr "Эти переменные можно настроить:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2952 +msgid "" +"`WEBPLUGIN_FILES`: No default, must be set manually. The plug-in files to " +"install." +msgstr "" +"`WEBPLUGIN_FILES`: Значение по умолчанию отсутствует, должно быть " +"установлено вручную. Файлы плагинов для установки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2953 +msgid "" +"`WEBPLUGIN_DIR`: The directory to install the plug-in files to, default " +"[.filename]#PREFIX/lib/browser_plugins/WEBPLUGIN_NAME#. Set this if the port " +"installs plug-in files outside of the default directory to prevent broken " +"symbolic links." +msgstr "" +"`WEBPLUGIN_DIR`: Каталог для установки файлов плагина, по умолчанию " +"[.filename]#PREFIX/lib/browser_plugins/WEBPLUGIN_NAME#. Установите это " +"значение, если порт устанавливает файлы плагина вне стандартного каталога, " +"чтобы избежать битых символических ссылок." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2954 +msgid "" +"`WEBPLUGIN_NAME`: The final directory to install the plug-in files into, " +"default `PKGBASE`." +msgstr "" +"`WEBPLUGIN_NAME`: Конечный каталог для установки файлов плагина, по " +"умолчанию `PKGBASE`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2956 +#, no-wrap +msgid "`xfce`" +msgstr "`xfce`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2959 +msgid "Possible arguments: (none), `gtk2`" +msgstr "Возможные аргументы: (нет), `gtk2`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2962 +msgid "" +"Provide support for Xfce related ports. See crossref:special[using-" +"xfce,Using Xfce] for details." +msgstr "" +"Предоставить поддержку для портов, связанных с Xfce. Подробности см. в " +"crossref:special[using-xfce,Использование Xfce]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2965 +msgid "" +"The `gtk2` argument specifies that the port requires GTK2 support. It adds " +"additional features provided by some core components, for example, " +"package:x11/libxfce4menu[] and package:x11-wm/xfce4-panel[]." +msgstr "" +"Аргумент `gtk2` указывает, что порт требует поддержки GTK2. Он добавляет " +"дополнительные возможности, предоставляемые некоторыми основными " +"компонентами, например, package:x11/libxfce4menu[] и package:x11-wm/xfce4-" +"panel[]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2967 +#, no-wrap +msgid "`xorg`" +msgstr "`xorg`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2974 +msgid "" +"Provides an easy way to depend on X.org components. The components should " +"be listed in `USE_XORG`. The available components are:" +msgstr "" +"Предоставляет простой способ зависеть от компонентов X.org. Компоненты " +"должны быть перечислены в `USE_XORG`. Доступные компоненты:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2976 +#, no-wrap +msgid "Available X.Org Components" +msgstr "Доступные компоненты X.Org" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2980 +#, no-wrap +msgid "Name" +msgstr "Имя" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2982 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2983 +#, no-wrap +msgid "`dmx`" +msgstr "`dmx`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2985 +#, no-wrap +msgid "DMX extension library" +msgstr "Библиотека расширений DMX" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2986 +#, no-wrap +msgid "`fontenc`" +msgstr "`fontenc`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2988 +#, no-wrap +msgid "The fontenc Library" +msgstr "Библиотека fontenc" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2989 +#, no-wrap +msgid "`fontutil`" +msgstr "`fontutil`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2991 +#, no-wrap +msgid "Create an index of X font files in a directory" +msgstr "Создать индекс файлов шрифтов X в каталоге" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2992 +#, no-wrap +msgid "`ice`" +msgstr "`ice`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2994 +#, no-wrap +msgid "Inter Client Exchange library for X11" +msgstr "Библиотека Inter Client Exchange для X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2995 +#, no-wrap +msgid "`libfs`" +msgstr "`libfs`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2997 +#, no-wrap +msgid "The FS library" +msgstr "Библиотека FS" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:2998 +#, no-wrap +msgid "`pciaccess`" +msgstr "`pciaccess`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3000 +#, no-wrap +msgid "Generic PCI access library" +msgstr "Универсальная библиотека доступа к PCI" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3003 +#, no-wrap +msgid "Low-level pixel manipulation library" +msgstr "Библиотека для низкоуровневого управления пикселями" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3004 +#, no-wrap +msgid "`sm`" +msgstr "`sm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3006 +#, no-wrap +msgid "Session Management library for X11" +msgstr "Библиотека управления сеансами для X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3007 +#, no-wrap +msgid "`x11`" +msgstr "`x11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3009 +#, no-wrap +msgid "X11 library" +msgstr "Библиотека X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3010 +#, no-wrap +msgid "`xau`" +msgstr "`xau`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3012 +#, no-wrap +msgid "Authentication Protocol library for X11" +msgstr "Библиотека протокола аутентификации для X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3013 +#, no-wrap +msgid "`xaw`" +msgstr "`xaw`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3015 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3018 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3021 +#, no-wrap +msgid "X Athena Widgets library" +msgstr "Библиотека X Athena Widgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3016 +#, no-wrap +msgid "`xaw6`" +msgstr "`xaw6`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3019 +#, no-wrap +msgid "`xaw7`" +msgstr "`xaw7`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3022 +#, no-wrap +msgid "`xbitmaps`" +msgstr "`xbitmaps`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3024 +#, no-wrap +msgid "X.Org bitmaps data" +msgstr "Данные растровых изображений X.Org" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3025 +#, no-wrap +msgid "`xcb`" +msgstr "`xcb`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3027 +#, no-wrap +msgid "The X protocol C-language Binding (XCB) library" +msgstr "Библиотека с интерфейсом языка С для X протокола (XCB)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3028 +#, no-wrap +msgid "`xcomposite`" +msgstr "`xcomposite`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3030 +#, no-wrap +msgid "X Composite extension library" +msgstr "Библиотека расширения X Composite" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3031 +#, no-wrap +msgid "`xcursor`" +msgstr "`xcursor`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3033 +#, no-wrap +msgid "X client-side cursor loading library" +msgstr "X библиотека загрузки курсоров на стороне клиента" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3034 +#, no-wrap +msgid "`xdamage`" +msgstr "`xdamage`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3036 +#, no-wrap +msgid "X Damage extension library" +msgstr "Библиотека расширения X Damage" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3037 +#, no-wrap +msgid "`xdmcp`" +msgstr "`xdmcp`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3039 +#, no-wrap +msgid "X Display Manager Control Protocol library" +msgstr "Библиотека протокола управления дисплейным менеджером X (XDMCP)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3040 +#, no-wrap +msgid "`xext`" +msgstr "`xext`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3042 +#, no-wrap +msgid "X11 Extension library" +msgstr "Библиотека расширений X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3043 +#, no-wrap +msgid "`xfixes`" +msgstr "`xfixes`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3045 +#, no-wrap +msgid "X Fixes extension library" +msgstr "Библиотека расширений X Fixes" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3046 +#, no-wrap +msgid "`xfont`" +msgstr "`xfont`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3048 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3051 +#, no-wrap +msgid "X font library" +msgstr "Библиотека шрифтов X" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3049 +#, no-wrap +msgid "`xfont2`" +msgstr "`xfont2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3052 +#, no-wrap +msgid "`xft`" +msgstr "`xft`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3054 +#, no-wrap +msgid "Client-sided font API for X applications" +msgstr "Клиентский API шрифтов для приложений X" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3055 +#, no-wrap +msgid "`xi`" +msgstr "`xi`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3057 +#, no-wrap +msgid "X Input extension library" +msgstr "Библиотека расширения X Input" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3058 +#, no-wrap +msgid "`xinerama`" +msgstr "`xinerama`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3060 +#, no-wrap +msgid "X11 Xinerama library" +msgstr "Библиотека X11 Xinerama" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3061 +#, no-wrap +msgid "`xkbfile`" +msgstr "`xkbfile`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3063 +#, no-wrap +msgid "XKB file library" +msgstr "Библиотека файлов XKB" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3064 +#, no-wrap +msgid "`xmu`" +msgstr "`xmu`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3066 +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3069 +#, no-wrap +msgid "X Miscellaneous Utilities libraries" +msgstr "Библиотека X Miscellaneous Utilities" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3067 +#, no-wrap +msgid "`xmuu`" +msgstr "`xmuu`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3070 +#, no-wrap +msgid "`xorg-macros`" +msgstr "`xorg-macros`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3072 +#, no-wrap +msgid "X.Org development aclocal macros" +msgstr "X.Org макросы разработки aclocal" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3073 +#, no-wrap +msgid "`xorg-server`" +msgstr "`xorg-server`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3075 +#, no-wrap +msgid "X.Org X server and related programs" +msgstr "Сервер X.Org X и относящиеся к нему программы" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3076 +#, no-wrap +msgid "`xorgproto`" +msgstr "`xorgproto`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3078 +#, no-wrap +msgid "xorg protocol headers" +msgstr "Заголовочные файлы протокола xorg" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3079 +#, no-wrap +msgid "`xpm`" +msgstr "`xpm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3081 +#, no-wrap +msgid "X Pixmap library" +msgstr "Библиотека X Pixmap" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3082 +#, no-wrap +msgid "`xpresent`" +msgstr "`xpresent`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3084 +#, no-wrap +msgid "X Present Extension library" +msgstr "Библиотека расширений X Present" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3085 +#, no-wrap +msgid "`xrandr`" +msgstr "`xrandr`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3087 +#, no-wrap +msgid "X Resize and Rotate extension library" +msgstr "Библиотека расширений X Resize and Rotate" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3088 +#, no-wrap +msgid "`xrender`" +msgstr "`xrender`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3090 +#, no-wrap +msgid "X Render extension library" +msgstr "Библиотека расширения X Render" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3091 +#, no-wrap +msgid "`xres`" +msgstr "`xres`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3093 +#, no-wrap +msgid "X Resource usage library" +msgstr "Библиотека мониторинга ресурсов X Resource usage" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3094 +#, no-wrap +msgid "`xscrnsaver`" +msgstr "`xscrnsaver`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3096 +#, no-wrap +msgid "The XScrnSaver library" +msgstr "Библиотека XScrnSaver" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3097 +#, no-wrap +msgid "`xshmfence`" +msgstr "`xshmfence`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3099 +#, no-wrap +msgid "Shared memory 'SyncFence' synchronization primitive" +msgstr "Примитив синхронизации \"SyncFence\" в разделяемой памяти" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3100 +#, no-wrap +msgid "`xt`" +msgstr "`xt`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3102 +#, no-wrap +msgid "X Toolkit library" +msgstr "Библиотека X Toolkit" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3103 +#, no-wrap +msgid "`xtrans`" +msgstr "`xtrans`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3105 +#, no-wrap +msgid "Abstract network code for X" +msgstr "Абстрактный сетевой код для X" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3106 +#, no-wrap +msgid "`xtst`" +msgstr "`xtst`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3108 +#, no-wrap +msgid "X Test extension" +msgstr "Расширение X Test" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3109 +#, no-wrap +msgid "`xv`" +msgstr "`xv`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3111 +#, no-wrap +msgid "X Video Extension library" +msgstr "Библиотека расширения X Video" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3112 +#, no-wrap +msgid "`xvmc`" +msgstr "`xvmc`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3114 +#, no-wrap +msgid "X Video Extension Motion Compensation library" +msgstr "Библиотека X Video Extension Motion Compensation" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3115 +#, no-wrap +msgid "`xxf86dga`" +msgstr "`xxf86dga`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3117 +#, no-wrap +msgid "X DGA Extension" +msgstr "Расширение X DGA" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3118 +#, no-wrap +msgid "`xxf86vm`" +msgstr "`xxf86vm`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3119 +#, no-wrap +msgid "X Vidmode Extension" +msgstr "Расширение X Vidmode" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3122 +#, no-wrap +msgid "`xorg-cat`" +msgstr "`xorg-cat`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3125 +msgid "" +"Possible arguments: `app`, `data`, `doc`, `driver`, `font`, `lib`, `proto`, " +"`util`, `xserver` and (none) or one off `autotools` (default), `meson`" +msgstr "" +"Возможные аргументы: `app`, `data`, `doc`, `driver`, `font`, `lib`, `proto`, " +"`util`, `xserver` и (без аргументов) или один из `autotools` (по умолчанию), " +"`meson`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3129 +msgid "" +"Provide support for building Xorg components. It takes care of setting up " +"common dependencies and an appropriate configuration environment needed. " +"This is intended only for Xorg components." +msgstr "" +"Обеспечивает поддержку сборки компонентов Xorg. Управляет настройкой общих " +"зависимостей и необходимой конфигурационной среды. Предназначено только для " +"компонентов Xorg." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3131 +msgid "The category has to match upstream categories." +msgstr "Категория должна соответствовать категориям вышестоящего репозитория." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3134 +msgid "" +"The second argument is the build system to use. autotools is the default, " +"but meson is also supported." +msgstr "" +"Второй аргумент — используемая система сборки. По умолчанию используется " +"`autotools`, но также поддерживается `meson`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3136 +#, no-wrap +msgid "`zip`" +msgstr "`zip`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3139 +msgid "Possible arguments: (none), `infozip`" +msgstr "Возможные аргументы: (нет), `infozip`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/uses/_index.adoc:3141 +msgid "" +"Indicates that the distribution files use the ZIP compression algorithm. " +"For files using the InfoZip algorithm the `infozip` argument must be passed " +"to set the appropriate dependencies." +msgstr "" +"Указывает, что файлы дистрибутива используют алгоритм сжатия ZIP. Для " +"файлов, использующих алгоритм InfoZip, необходимо передать аргумент " +"`infozip`, чтобы установить соответствующие зависимости." diff --git a/documentation/content/ru/books/porters-handbook/versions/_index.adoc b/documentation/content/ru/books/porters-handbook/versions/_index.adoc --- a/documentation/content/ru/books/porters-handbook/versions/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/versions/_index.adoc @@ -1,10 +1,12 @@ --- -title: Глава 16. Значения __FreeBSD_version +description: 'Список изменений файла sys/param.h' +params: + path: /books/porters-handbook/versions/ prev: books/porters-handbook/uses showBookMenu: true -weight: 16 -params: - path: "/books/porters-handbook/versions/" +tags: ["FreeBSD versions"] +title: 'Глава 18. Значения __FreeBSD_version' +weight: 18 --- [[versions]] @@ -15,7 +17,7 @@ :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 16 +:sectnumoffset: 18 :partnums: :source-highlighter: rouge :experimental: @@ -45,6313 +47,7580 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] -Here is a convenient list of `__FreeBSD_version` values as defined in http://svnweb.FreeBSD.org/base/head/sys/sys/param.h?view=markup[sys/param.h]: +Здесь удобный список значений `__FreeBSD_version` как определено в https://cgit.freebsd.org/src/tree/sys/sys/param.h[sys/param.h]: + +[[versions-15]] +== Версии FreeBSD 15 + +[[freebsd-versions-table-15]] +.Значения `__FreeBSD_version` в FreeBSD 15 +[cols="1,1,1,1", frame="none", options="header"] +|=== +| Значение +| Версия +| Дата +| Релиз + +|1500000 +|gitref:29a16ce065dbc28bc9e87c9bfadb08bb58b137e4[repository="src",length=12] +|24 августа 2023 +|15.0-CURRENT. + +|1500001 +|gitref:a6662c37b6ffee46e18be5f7570149edc64c1d0b[repository="src",length=12] +|17 сентября 2023 +|15.0-CURRENT после реализации `fpu_kern_enter` и `fpu_kern_leave` для powerpc. + +|1500002 +|gitref:17f5e2b904aff8e4863199a137ee21ef0939bcf4[repository="src",length=12] +|18 октября 2023 +|15.0-CURRENT после изменения внутреннего KAPI между модулями nfscommon и nfscl. + +|1500003 +|gitref:ef85fd507e6e1784a726bccd485129e00bb63311[repository="src",length=12] +|1 ноября 2023 +|15.0-CURRENT после удаления кода обратной совместимости для преобразования inode64. + +|1500004 +|gitref:7fabea328fed60d5207b262d2372e85a7f731eef[repository="src",length=12] +|23 ноября 2023 +|15.0-CURRENT после добавления новой функции VFS под названием `vfs_exjail_clone()`, которая будет использоваться модулем ZFS. + +|1500005 +|gitref:21fce617d1de231a30833cdd9819ef61277b08d8[repository="src",length=12] +|27 ноября 2023 +|15.0-CURRENT после серии механических изменений в дереве: идентификаторы SCCS удалены, закомментированные строки с авторскими правами удалены с помощью `#if 0`, механические исправления стиля после этих изменений и удаление некоторых макросов из [.filename]#sys/cdefs.h#. + +|1500006 +|gitref:c711af7727824da79d87f375f3d6829feec3799a[repository="src",length=12] +|8 декабря 2023 +|15.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-17.0.6-0-g6009708b4367, также известного как релиз 17.0.6. + +|1500007 +|gitref:8ccd0b876e67fda6249f294ff484798cc1e1569f[repository="src",length=12] +|11 декабря 2023 +|15.0-CURRENT после предоставления доступа к execvpe для совместимости с Linux в libc. + +|1500008 +|gitref:9bf957fc9b378e0f9e65eb97e84c2166b450fccc[repository="src",length=12] +|24 декабря 2023 +|15.0-CURRENT после изменений в LinuxKPI. + +|1500009 +|gitref:b068bb09a1a82d9fef0e939ad6135443a959e290[repository="src",length=12] +|11 января 2024 +|15.0-CURRENT после добавления man:vnode_pager_clean_async[9] и man:vnode_pager_clean_sync[9]. + +|1500010 +|gitref:a2da1bdb61bc2d9db0b4268f53281e7c0bbce0bc[repository="src",length=12] +|12 января 2024 +|15.0-CURRENT после изменения внутреннего KAPI между модулями nfscommon и nfscl. + +|1500011 +|gitref:a2da1bdb61bc2d9db0b4268f53281e7c0bbce0bc[repository="src",length=12] +|17 января 2024 +|15.0-CURRENT после добавления поддержки zfs.dataset в man:jail[8]. + +|1500012 +|gitref:120ceebab5d4947dfc80d7492effa034a925d43e[repository="src",length=12] +|24 января 2024 +|15.0-CURRENT после добавления man:kern_openatfp[9] и man:kcmp[2]. + +|1500013 +|gitref:d04abb05375d3525132f1e9f78090db3d0d27f14[repository="src",length=12] +|7 февраля 2024 +|15.0-CURRENT после добавления libsys. + +|1500014 +|gitref:ed27ae8df4b10f67289a32458d89d143e758f6d4[repository="src",length=12] +|11 февраля 2024 +|15.0-CURRENT после переключения clang и других исполняемых файлов LLVM на сборку как PIE. + +|1500015 +|gitref:a7b9f4d96e8bdc30db27ec7a193a8d8fdf7c652c[repository="src",length=12] +|13 марта 2024 +|15.0-CURRENT после удаления избыточных аргументов `type` и `rid` из нескольких функций в API ресурсов new-bus. + +|1500016 +|gitref:60bc9617e79e99bdf670304923f3baed4b749ad3[repository="src",length=12] +|18 марта 2024 +|15.0-CURRENT после введения man:livedump_start_vnode[9]. + +|1500017 +|gitref:bcd401b5a39c6186bb1fe450286299f2a481244c[repository="src",length=12] +|20 марта 2024 +|15.0-CURRENT после исправления утверждения или сбоя clang при сборке последних библиотек boost. + +|1500018 +|gitref:0192eda105b367d4670205547e8e830e3716bea3[repository="src",length=12] +|6 апреля 2024 +|15.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-18.1.3-0-gc13b7485b879, также известной как релиз 18.1.3. + +|1500019 +|gitref:e03e8b07743385e5b199409074fb60b1a9ed1fac[repository="src",length=12] +|31 мая 2024 +|15.0-CURRENT после переопределения `CLOCK_BOOTTIME` как псевдонима для `CLOCK_MONOTONIC` вместо `CLOCK_UPTIME`. + +|1500020 +|gitref:7818c2d37c2c600fc9ad6f2a0951e50dd21b17c8[repository="src",length=12] +|12 июля 2024 +|15.0-CURRENT после удаления поддержки сборки armv6. + +|1500021 +|gitref:24388fccd551f79f64e54099a7d78196535c0a29[repository="src",length=12] +|21 июля 2024 +|15.0-CURRENT после изменений в LinuxKPI. + +|1500022 +|gitref:a1740cb93639648b41055958ad8c7f6083efdc96[repository="src",length=12] +|29 июля 2024 +|15.0-CURRENT после удаления поддержки подкачки стека ядра. + +|1500023 +|gitref:1206cf04a717a55bc15255ed043b066941cb43f2[repository="src",length=12] +|30 июля 2024 +|15.0-CURRENT после добавления новых флагов в man:malloc[9]. + +|1500024 +|gitref:e3953c036f9d66c85b8e19f99f0710b3288ce5fb[repository="src",length=12] +|2 октября 2024 +|15.0-CURRENT после увеличения версии [.filename]#libmd.so.6# до [.filename]#libmd.so.7#. + +|1500025 +|gitref:9d52823bf1dfac237e58b5208299aaa5e2df42e9[repository="src",length=12] +|6 октября 2024 +|15.0-CURRENT после расширения поля `flags` в `vm_object`. + +|1500026 +|gitref:f3dbef108212460489ae68b4c47e20b73984f433[repository="src",length=12] +|23 октября 2024 +|15.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-19.1.2-0-g7ba7d8e2f7b6, также известной как релиз 19.1.2. + +|1500027 +|gitref:893d044346d5ae5fe10cc188b8b0762efd2a5b27[repository="src",length=12] +|14 ноября 2024 +|15.0-CURRENT после скрытия `struct ifnet` и изменения KPI регистрации устройств man:sound[4]. + +|1500028 +|gitref:cab31f5633c1ffdd8b24749a3c9dd22c59568503[repository="src",length=12] +|25 ноября 2024 +|15.0-CURRENT после добавления флага `TDA_PSELECT` для раннего восстановления масок сигналов. + +|1500029 +|gitref:46297859a74563dde6fc5bff9f9ecded9fb61ba6[repository="src",length=12] +|6 декабря 2024 +|15.0-CURRENT после добавления `bus_attach_children`, `bus_detach_children` и `bus_identify_children`. + +|1500030 +|gitref:b196276c20b577b364372f1aa1a646b9ce34bf5c[repository="src",length=12] +|2 января 2025 +|15.0-CURRENT после изменения `bus_generic_detach` для удаления дочерних устройств после их отключения. + +|1500037 +|gitref:7acd5af48cf1870ec48d5910dff1a26466d98074[repository="src",length=12] +|12 апреля 2025 +|15.0-CURRENT после внесения изменений в alloc в LinuxKPI. + +|1500038 +|gitref:[repository="src",length=12] +|19 апреля 2025 +|15.0-CURRENT после удаления vm_page_next() и _prev. + +|1500039 +|gitref:[repository="src",length=12] +|4 мая 2025 +|15.0-CURRENT после введения правильно типизированных jiffies. + +|1500040 +|gitref:[repository="src",length=12] +|4 мая 2025 +|15.0-CURRENT после изменения внутреннего API между модулями nfscommon и nfscl. + +|1500045 +|gitref:a02180cf60a6a0102669b678e9c81ad9f1aa4d91[repository="src",length=12] +|3 июня 2025 +|15.0-CURRENT после внесения изменений dma-mapping.h из drm-kmod в LinuxKPI. + +|1500062 +|gitref:567e6250c003eeb251b4bc8dbe60d2adabab2988[repository="src",length=12] +|17 августа 2025 +|15.0-CURRENT после добавления VTYPE_ISDEV(), VN_ISDEV() и VATTR_ISDEV(). + +|1500063 +|gitref:c340ef28fd384b567e35882d04ce17fa31b7384f[repository="src",length=12] +|August 18, 2025 +|15.0-CURRENT after certctl rewrite, which now produces a bundle. + +|=== + +[[versions-14]] +== Версии FreeBSD 14 + +[[freebsd-versions-table-14]] +.Значения `__FreeBSD_version` в FreeBSD 14 +[cols="1,1,1,1", frame="none", options="header"] +|=== +| Значение +| Версия +| Дата +| Релиз + +|1400000 +|gitref:a53ce3fc4938e37d5ec89304846203d2083c61a2[repository="src",length=12] +|22 января 2021 +|14.0-CURRENT. + +|1400001 +|gitref:739ecbcf1c4fd22b5f6ee0bb180a67644046a3e0[repository="src",length=12] +|23 января 2021 +|14.0-CURRENT после добавления поддержки символьных ссылок к бесблокировочному поиску. + +|1400002 +|gitref:2cf84258922f306a3f84866685d2f5346f67db58[repository="src",length=12] +|26 января 2021 +|14.0-CURRENT после исправления утверждения clang при сборке порта package:devel/onetbb[]. + +|1400003 +|gitref:d386f3a3c32f0396aa7995349dd65d6c59711393[repository="src",length=12] +|28 января 2021 +|14.0-CURRENT после добавления различных компонентов LinuxKPI, конфликтующих с drm-kmod. + +|1400004 +|gitref:68f6800ce05c386ff045b4416d8595d09c4d8fdd[repository="src",length=12] +|8 февраля 2021 +|14.0-CURRENT после изменения интерфейсов ядра для диспетчеризации криптографических операций. + +|1400005 +|gitref:45eabf5754ac1d291bd677fdf29f59ce4bbc2c8f[repository="src",length=12] +|17 февраля 2021 +|14.0-CURRENT после изменения API man:ptrace[2] `PT_GETDBREGS`/`PT_SETDBREGS` на arm64. + +|1400006 +|gitref:c96151d33509655efb7fb26768cb56a041c176f1[repository="src",length=12] +|17 марта 2021 +|14.0-CURRENT после добавления перечисляющих ioctl в man:sndstat[4]. + +|1400007 +|gitref:d36d6816151705907393889d661cbfd25c630ca8[repository="src",length=12] +|6 апреля 2021 +|14.0-CURRENT после исправления некорректного `dlpi_tls_data`. + +|1400008 +|gitref:e152bbecb221a592e7dbcabe3d1170a60f0d0dfe[repository="src",length=12] +|11 апреля 2021 +|14.0-CURRENT после изменения внутреннего KAPI между модулями `krpc` и NFS. + +|1400009 +|gitref:9ca874cf740ee68c5742df8b5f9e20910085c011[repository="src",length=12] +|20 апреля 2021 +|14.0-CURRENT после добавления поддержки TCP LRO для VLAN и VxLAN. + +|1400010 +|gitref:a3a02acde1009f03dc78e979e051acee9f9247c2[repository="src",length=12] +|21 апреля 2021 +|14.0-CURRENT после изменения схемы и определений `nvlist` для ioctl man:sndstat[4]. + +|1400015 +|gitref:d72cd275187c6399caf0ca4125292dc7e55fa478[repository="src",length=12] +|25 мая 2021 +|14.0-CURRENT после добавления дополнительных изменений LinuxKPI, требующих корректировки drm-kmod. + +|1400016 +|gitref:21e3c1fbe2460f144f6d4dfd61c3346b2de59667[repository="src",length=12] +|25 мая 2021 +|14.0-CURRENT после удаления поддержки программных бэкендов KTLS. + +|1400017 +|gitref:beb817edfe22cdea91e19a60c42caabd9404da48[repository="src",length=12] +|25 мая 2021 +|14.0-CURRENT после добавления `crypto_cursor_segment()`. + +|1400018 +|gitref:a4b07a2701f568c2c0f0c0426091f1489244a92d[repository="src",length=12] +|30 мая 2021 +|14.0-CURRENT после разрешения реализации man:VFS_QUOTACTL[9] указывать изменения состояния занятости. + +|1400019 +|gitref:37d64dcdfa519157aff9711f1f226ad7bd778f46[repository="src",length=12] +|7 июня 2021 +|14.0-CURRENT после включения `pr_err_once()` в LinuxKPI [.filename]#printk.h#. + +|1400020 +|gitref:8a1a42b2a7a428fb97fda9f19fd0d67a4eec7535[repository="src",length=12] +|9 июня 2021 +|14.0-CURRENT после добавления макросов для `might_lock_nested()` и `lockdep_(re/un/)pin_lock()` в LinuxKPI. + +|1400021 +|gitref:b47f461c8e67253fdb394968428b760e880baa08[repository="src",length=12] +|10 июня 2021 +|14.0-CURRENT после добавления макроса `list_for_each_entry_lockless()` в LinuxKPI. + +|1400022 +|gitref:40cc9a3a6b81a65a03712dfd93bbed48552a97ad[repository="src",length=12] +|11 июня 2021 +|14.0-CURRENT после коммита gitref:e1a907a25cfa422c0d1acaf9f91352ada04f4bca[repository="src",length=12] изменил внутренний KAPI между модулями `krpc` и nfsserver. + +|1400023 +|gitref:d409305fa3838fb39b38c26fc085fb729b8766d5[repository="src",length=12] +|13 июня 2021 +|14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-12.0.0-0-gd28af7c654d8, также известной как релиз 12.0.0. + +|1400024 +|gitref:41dfd8bd6466fd39957dee2614d88c81cdf420a7[repository="src",length=12] +|18 июня 2021 +|14.0-CURRENT после различных добавлений в LinuxKPI. + +|1400025 +|gitref:5fa1eb1cd927219070b5753b64114a9240d76bf8[repository="src",length=12] +|5 июля 2021 +|14.0-CURRENT после различных добавлений в LinuxKPI. + +|1400026 +|gitref:fad3f322efb53d4924fdda34f9f23f881659c269[repository="src",length=12] +|16 июля 2021 +|14.0-CURRENT после изменения внутреннего KAPI между модулями nfscommon и nfsd. + +|1400027 +|gitref:cc55ee8009a550810d38777fd6ace9abf3a2f6b4[repository="src",length=12] +|28 июля 2021 +|14.0-CURRENT после добавления вспомогательных функций LSE атомарных операций вне строки в [.filename]#libcompiler_rt.a# для архитектуры aarch64. + +|1400028 +|gitref:792b602a337ddc5efaa5e5326d9433fe3da7f303[repository="src",length=12] +|31 июля 2021 +|14.0-CURRENT после обеспечения потокобезопасности разделов FPU в LinuxKPI. + +|1400029 +|gitref:245ec7651e4221043d1032fb3f82f335dc65fc7f[repository="src",length=12] +|5 августа 2021 +|14.0-CURRENT после добавления man:fspacectl[2], man:vn_deallocate[9] и man:VOP_DEALLOCATE[9]. + +|1400030 +|gitref:95941b963606f6e03282cd6f866f3166dcedfa5b[repository="src",length=12] +|12 августа 2021 +|14.0-CURRENT после изменений параметров man:VOP_DEALLOCATE[9] и добавления поддержки man:fspacectl[2] для POSIX разделяемой памяти. + +|1400031 +|gitref:1a4c5061fc5ba8f2eee41456a6873547915f268a[repository="src",length=12] +|24 августа 2021 +|14.0-CURRENT после изменения man:fspacectl[2], man:vn_deallocate[9] и man:VOP_DEALLOCATE[9] для обновления rmsr.r_offset до значимого значения. + +|1400032 +|gitref:76321d2d432ed270d93b282e54e59b708c0cf3b4[repository="src",length=12] +|25 августа 2021 +|14.0-CURRENT после изменения man:fspacectl[2], man:vn_deallocate[9] и man:VOP_DEALLOCATE[9] для упрощения подсчёта количества обнулённых байт. + +|1400033 +|gitref:c751d067c166db71ce8bf3a323c62ac3428bd32a[repository="src",length=12] +|7 сентября 2021 +|14.0-CURRENT после перемещения блокировок буфера сокета в содержащий сокет и переименования sb(un)lock в SOCK_IO_RECV_LOCK, SOCK_IO_RECV_UNLOCK, SOCK_IO_SEND_LOCK и SOCK_IO_SEND_UNLOCK. + +|1400034 +|gitref:c751d067c166db71ce8bf3a323c62ac3428bd32a[repository="src",length=12] +|29 сентября 2021 +|14.0-CURRENT после изменений в LinuxKPI. + +|1400035 +|gitref:16f1ee11e6574d7f8d8a9dc6ebc9be3036ff9fd0[repository="src",length=12] +|4 октября 2021 +|14.0-CURRENT после разделения libtinfow и libncurses. + +|1400036 +|gitref:ac847dbf73685a5df9f70bbcdefa9fdeb559071d[repository="src",length=12] +|6 октября 2021 +|14.0-CURRENT после расширения шифров AES-CCM и Chacha20-Poly1305 в OCF для поддержки нескольких длин одноразовых номеров. + +|1400037 +|gitref:2b68eb8e1dbbdaf6a0df1c83b26f5403ca52d4c3[repository="src",length=12] +|11 октября 2021 +|14.0-CURRENT после удаления аргумента thread из man:VOP_STAT[9] и `fo_stat`. + +|1400038 +|gitref:0d6516b453469ce1d92ec903c4c4df9ee08be0f9[repository="src",length=12] +|17 октября 2021 +|14.0-CURRENT после того, как LinuxKPI получил поддержку отложенного выделения BAR. + +|1400039 +|gitref:bd49c454ca62170506a98959c1acab7ad50c3276[repository="src",length=12] +|19 октября 2021 +|14.0-CURRENT после изменений в аллокаторе страниц. + +|1400040 +|gitref:f38bef2ce417d6270f32b4ed17cec84bfd95d548[repository="src",length=12] +|30 октября 2021 +|14.0-CURRENT после увеличения номера версии разделяемой библиотеки libdialog. + +|1400041 +|gitref:0c276dee030b241e12e1ceb1b2ab619004f08ce1[repository="src",length=12] +|6 ноября 2021 +|14.0-CURRENT после изменения аргументов для man:VOP_ALLOCATE[9]. + +|1400042 +|gitref:20aa359773befc8182f6b5dcb5aad7390cab6c26[repository="src",length=12] +|13 ноября 2021 +|14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-13.0.0-0-gd7b669b3a303, также известного как релиз 13.0.0. + +|1400043 +|gitref:7e1d3eefd410ca0fbae5a217422821244c3eeee4[repository="src",length=12] +|25 ноября 2021 +|14.0-CURRENT после удаления неиспользуемого аргумента потока из man:NDINIT[9]*. + +|1400044 +|gitref:ec434c85b46dd715da1940e2a8911bf476b0e477[repository="src",length=12] +|9 декабря 2021 +|14.0-CURRENT после изменения встроенных программных криптографических преобразований для поддержки AEAD-шифров и изменения аутентификационных преобразований Blake-2S/B для поддержки Init перед Setkey, как в других аутентификационных преобразованиях. + +|1400045 +|gitref:b214fcceacad6b842545150664bd2695c1c2b34f[repository="src",length=12] +|15 декабря 2021 +|14.0-CURRENT после изменения аргумента cookies в man:VOP_READDIR[9] на `**uint64_t`. + +|1400046 +|gitref:e2650af157bc7489deaf2c9054995f0f88a6e5da[repository="src",length=12] +|30 декабря 2021 +|14.0-CURRENT после приведения макросов CPU_SET в соответствие с glibc. + +|1400047 +|gitref:ed6417cd8d0bb5a2c175fce9d8e4a495fae9e9f4[repository="src",length=12] +|January 17, 2022 +|14.0-CURRENT после множества изменений LinuxKPI, необходимых для drm-kmod. + +|1400048 +|gitref:dd2f7a4b45eb1285e710cfce60cb77f7c11f8075[repository="src",length=12] +|18 января 2022 +|14.0-CURRENT после добавления . + +|1400049 +|gitref:2c4b65cc3d227f31864e183c15f6c42e2c596cd9[repository="src",length=12] +|January 24, 2022 +|14.0-CURRENT after adding . + +|1400050 +|gitref:213e91399b7998554d787bb290109ebe602aa279[repository="src",length=12] +|25 января 2022 +|14.0-CURRENT после iflib добавляет возможность, при которой драйвер может установить свою собственную функцию выбора TX-очереди как `ift_txq_select` в структуре `if_txrx`. + +|1400051 +|gitref:59d465e200bb7058dfdb183c061730c10dd5bc03[repository="src",length=12] +|25 января 2022 +|14.0-CURRENT после добавления поддержки i2c для LinuxKPI. + +|1400052 +|gitref:05f0b24bfb3416606c8ea02bc1bdb9bcee7aee0c[repository="src",length=12] +|February 14, 2022 +|14.0-CURRENT после добавления поддержки GUID_INIT и pm_qos.h для LinuxKPI. + +|1400053 +|gitref:ba87e9bf74202b08b8e3b0a297b9b88f6869fbfb[repository="src",length=12] +|February 17, 2022 +|14.0-CURRENT после добавления mmap_lock.h в LinuxKPI. + +|1400054 +|gitref:50bb3a33d879536e86e8a23365f070ef00b5cb32[repository="src",length=12] +|28 марта 2022 +|14.0-CURRENT после изменения `irq_work_queue` для возврата типа bool в LinuxKPI в соответствии с API 5.10. + +|1400055 +|gitref:d69af4758be912625ec08656ba64eb90a98c9a7f[repository="src",length=12] +|29 марта 2022 +|14.0-CURRENT после добавления `for_each_sgtable_dma_sg` и `for_each_sgtable_dma_page` в LinuxKPI + +|1400056 +|gitref:ab8ac4c28574a42a2891b2e2341f802949c1fb57[repository="src",length=12] +|31 марта 2022 +|14.0-CURRENT после обновления zlib до версии 1.2.12 + +|1400057 +|gitref:e68b35e40881a1bd858e1b4b5003123a484fd7cd[repository="src",length=12] +|22 апреля 2022 +|14.0-CURRENT после изменения прототипа udp_tun_func_t(). + +|1400058 +|gitref:2e32d4e41d205d6f14834f87306a77ff77b9c0bd[repository="src",length=12] +|7 мая 2022 +|14.0-CURRENT после изменений в newbus для удаления аргументов devclass. + +|1400059 +|gitref:3a9a9c0ca44ec535dcf73fe8462bee458e54814b[repository="src",length=12] +|14 мая 2022 +|14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-14.0.3-0-g1f9140064dfb, также известной как релиз 14.0.3. + +|1400060 +|gitref:85d7875d42913c2cb10a007a1be05b210dc6aab2[repository="src",length=12] +|6 июня 2022 +|14.0-CURRENT после исправлений LinuxKPI dmi_matches(). + +|1400061 +|gitref:c4c5981c14d5bd69e9df9ae691069ec4c2e92174[repository="src",length=12] +|8 июня 2022 +|14.0-CURRENT после изменений структуры man:mbuf[9]. + +|1400062 +|gitref:8c309d48aabf1cb469334c7716033f177a2715c0[repository="src",length=12] +|18 июня 2022 +|14.0-CURRENT после изменений структуры `kinfo_file`. + +|1400063 +|gitref:8cff8e6e13a6d3ccff40fc0d8d97f5aef22a8f4d[repository="src",length=12] +|29 июня 2022 +|14.0-CURRENT после множества изменений LinuxKPI, необходимых для drm-kmod. + +|1400064 +|gitref:ddd9004e7a5dbf02c34ef0effcef90f7d5df357d[repository="src",length=12] +|18 июля 2022 +|14.0-CURRENT после удаления OBJT_DEFAULT. + +|1400065 +|gitref:b273f93657cf0e6f2c6ee4d0f40a43656233c6d0[repository="src",length=12] +|8 августа 2022 +|14.0-CURRENT после множества изменений LinuxKPI, необходимых для drm-kmod. + +|1400066 +|gitref:ff7812ee7d444b738a454064f9639c3feb5743e8[repository="src",length=12] +|18 августа 2022 +|14.0-CURRENT после множества изменений LinuxKPI, необходимых для drm-kmod. + +|1400069 +|gitref:f95c0bc89ea4fcde04b0990d57e842ef387ea896[repository="src",length=12] +|22 сентября 2022 +|14.0-CURRENT после нескольких изменений в LinuxKPI. + +|1400070 +|gitref:6bddde307e21eba297ac3f3e534b4cf3be81dfe2[repository="src",length=12] +|22 сентября 2022 +|14.0-CURRENT после изменений KPI в pmap_unmapdev() и kmem_*(). + +|1400071 +|gitref:d3f96f661050e9bd21fe29931992a8b9e67ff189[repository="src",length=12] +|26 сентября 2022 +|14.0-CURRENT после изменений KPI, когда списки OID sysctl были преобразованы в RB-деревья. + +|1400072 +|gitref:8a96874eeeee5195b0b0952b77227bef6a26d1a6[repository="src",length=12] +|22 сентября 2022 +|14.0-CURRENT после изменения прототипа `qsort_r` для соответствия POSIX. + +|1400073 +|gitref:9c950139051298831ce19d01ea5fb33ec6ea7f89[repository="src",length=12] +|17 октября 2022 +|14.0-CURRENT after introduction of v2 of TX Queue Select Functionality. + +|1400074 +|gitref:e28932c643e891294a49f386ba65322cf8410225[repository="src",length=12] +|9 декабря 2022 +|14.0-CURRENT после добавления запасных слотов fops в fileops. + +|1400078 +|gitref:4b56afaf7bf4fa37bae5b26fd93ee1ff5969c1bb[repository="src",length=12] +|13 января 2023 +|14.0-CURRENT после изменения LinuxKPI pci.h. + +|1400079 +|gitref:3264f6b88fce7c5437d205685863617d8f6a22dd[repository="src",length=12] +|8 февраля 2023 +|14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-15.0.7-0-g8dfdcc7b7bf6, также известного как релиз 15.0.7. + +|1400084 +|gitref:ea3061526e9ce5d3b65932c1d3e4437abd556d65[repository="src",length=12] +|23 марта 2023 +|14.0-CURRENT после изменения структур reg, gpreg, trapframe и pcb для архитектуры arm64. + +|1400085 +|gitref:1cebc9298cf2272da46c3c574d06a80ce59854aa[repository="src",length=12] +|28 марта 2023 +|14.0-CURRENT после нескольких изменений в LinuxKPI. + +|1400086 +|gitref:c17eb99a66e7d1e8a64458a969eeb7649f827493[repository="src",length=12] +|8 апреля 2023 +|14.0-CURRENT после изменений аргументов vn_lock_pair(). + +|1400087 +|gitref:af22da75a035e25cb47cd3f2eabe5a84d8a5cb34[repository="src",length=12] +|22 апреля 2023 +|14.0-CURRENT после обновлений LinuxKPI. + +|1400088 +|gitref:97583aa2567589cb83540d2d9de1980b76db9a99[repository="src",length=12] +|24 апреля 2023 +|14.0-CURRENT после миграции LinuxKPI на IfAPI. + +|1400089 +|gitref:9fb6718d1b180c341373b25c03dbfc221ddee311[repository="src",length=12] +|25 апреля 2023 +|14.0-CURRENT после динамического выделения массива stoppcbs в smp. + +|1400090 +|gitref:653738e895ba022be1179a95a85089e7bc66dbbe[repository="src",length=12] +|7 июня 2023 +|14.0-CURRENT после того, как ptrace начал очищать TDB_BORN во время PT_DETACH. + +|1400091 +|gitref:a681cba16d8967651a2146385ce44a2bfeb1c4c3[repository="src",length=12] +|22 июня 2023 +|14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-16.0.6-0-g7cbf1a259152, также известного как релиз 16.0.6. + +|1400092 +|gitref:9ead001d5b42ef9cba04757c9e7ee74c06037139[repository="src",length=12] +|24 июня 2023 +|14.0-CURRENT после импорта OpenSSL 3.0.9 в базовую систему. + +|1400093 +|gitref:ba8cc6d7271a50fec978a1d3a088aec7985fae48[repository="src",length=12] +|5 июля 2023 +|14.0-CURRENT после использования __enum_uint8 для vtype и vstate в VFS + +|1400097 +|gitref:29a16ce065dbc28bc9e87c9bfadb08bb58b137e4[repository="src",length=12] +|24 августа 2023 +|14.0-STABLE после ветвления stable/14 + +|1400500 +|gitref:29a16ce065dbc28bc9e87c9bfadb08bb58b137e4[repository="src",length=12] +|8 сентября 2023 +|14.0-STABLE после ветвления releng/14.0 + +|1400501 +|gitref:91e53779b4fc39e755a03190f785ce0cf3f83eb7[repository="src",length=12] +|19 ноября 2023 +|14.0-STABLE после реализации `fpu_kern_enter` и `fpu_kern_leave` для powerpc. + +|1400502 +|gitref:092abb839d1d2826533bb9c4c93d713f8b5043f9[repository="src",length=12] +|24 декабря 2023 +|14.0-STABLE после изменения внутреннего API между модулями kgssapi и krpc. + +|1400503 +|gitref:ba99d960884d50eb7d36146914206644ee132aa4[repository="src",length=12] +|29 декабря 2023 +|14.0-STABLE после изменения внутреннего KAPI между модулями nfscommon и nfscl. + +|1400504 +|gitref:68584c97ecfb3046de7fb1b16c2caa785392237c[repository="src",length=12] +|7 января 2024 +|14.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-17.0.6-0-g6009708b4367, также известного как релиз 17.0.6. + +|1400505 +|gitref:64e869e9b93c8ce47f874b770df696c06bcba0d3[repository="src",length=12] +|7 января 2024 +|14.0-STABLE после добавления man:vnode_pager_clean_async[9] и man:vnode_pager_clean_sync[9]. + +|1400506 +|gitref:d9041710958227194c5e34b169ae73d7ad411017[repository="src",length=12] +|19 января 2024 +|14.0-STABLE после изменения внутреннего KAPI между модулями nfscommon и nfscl. + +|1400507 +|gitref:b566e44b2b88eb9f1b3b658998c7418cccab9e2f[repository="src",length=12] +|31 января 2024 +|14.0-STABLE после добавления man:kern_openatfp[9] и man:kcmp[2]. + +|1400508 +|gitref:2d120981e26dfef5c9cb9eb9936bb46cb6918136[repository="src",length=12] +|18 февраля 2024 +|14.0-STABLE после обновлений LinuxKPI. + +|1400509 +|gitref:b392b36d3776b696601ce0253256803276d24ea2[repository="src",length=12] +|18 февраля 2024 +|14.0-STABLE после изменения внутренней структуры `struct ieee80211vap` в net80211. + +|1400510 +|gitref:69da6e0879831f1ccc5c60135ed43fcea10a933b[repository="src",length=12] +|23 марта 2024 +|14.0-STABLE после исправления утверждения или падения clang при сборке последних библиотек boost. + +|1400511 +|gitref:7c41358a2b0a2e70a2b61ec347354f3452e4d2f3[repository="src",length=12] +|20 апреля 2024 +|14.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-18.1.3-0-gc13b7485b879, также известной как релиз 18.1.3. + +|1401500 +|gitref:7b082bdf72e65f94b9b17d9fa1d0c1c202e4eb49[repository="src",length=12] +|2 мая 2024 +|14.1-STABLE после переименования из 14.1-PRERELEASE. + +|1401501 +|gitref:f285eabc89ce8ccf3aaf563401df942e406c2b5f[repository="src",length=12] +|6 июня 2024 +|14.1-STABLE после добавления модуля linuxkpi_video. + +|1401502 +|gitref:b37a6d41a046dbb46ee1d6bf00c710c03c944a24[repository="src",length=12] +|2 августа 2024 +|14.1-STABLE после изменений в LinuxKPI. + +|1401503 +|gitref:8a5a9dbf389e86d278764ababf2f1eb8ee276680[repository="src",length=12] +|15 октября 2024 +|14.1-STABLE после расширения поля `flags` в `vm_object`. + +|1402500 +|gitref:4e8444d5750a5d9da9c812e8f6caf6d62862be0a[repository="src",length=12] +|31 октября 2024 +|14.2-STABLE после переименования из 14.2-PRERELEASE. + +|1402501 +|gitref:35d2f335e855af816d0a7fe5baf6a3facba84562[repository="src",length=12] +|1 декабря 2024 +|14.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-19.1.4-0-gaadaa00de76e, также известного как релиз 19.1.4. + +|1402502 +|gitref:d172f42e4ba7ba8542ae0866aaba56e329b4ea2c[repository="src",length=12] +|27 февраля 2025 +|14.2-STABLE после удаления избыточных аргументов `type` и `rid` из нескольких функций в API ресурсов new-bus. + +|1402503 +|gitref:4aed8b3b613c5e1499336e4d7ec7e9a3ac3d9a12[repository="src",length=12] +|27 февраля 2025 +|14.2-STABLE после добавления `bus_attach_children`, `bus_detach_children` и `bus_identify_children`. + +|1402505 +|gitref:a3b2d8e360c37853035f9cede6064c4602312bfc[repository="src",length=12] +|18 апреля 2025 +|14.2-STABLE после изменения аллокации в LinuxKPI и удаления микропрограммы iwlwifi. + +|1403503 +|gitref:6cdcf08c9c5eda6dc3b8395cefd9d30a4f5e2f1a[repository="src",length=12] +|13 июля 2025 +|14.3-STABLE после изменений в LinuxKPI dma-mapping.h and acpi. + +|=== + +//// +Template: + +|14XXXXX +|gitref:XXXXXXXX[repository="src",length=12] +|October 30, 2021 +|14.0-CURRENT after XXXXXX. +//// [[versions-13]] -== FreeBSD 13 Versions +== FreeBSD 13 Версии [[freebsd-versions-table-13]] -.FreeBSD 13 `__FreeBSD_version` Values +.FreeBSD 13 Значения `__FreeBSD_version` [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |1300000 |link:https://svnweb.freebsd.org/changeset/base/339436[339436] -|October 19, 2018 +|19 октября 2018 |13.0-CURRENT. |1300001 |link:https://svnweb.freebsd.org/changeset/base/339730[339730] -|October 25, 2018 -|13.0-CURRENT after bumping OpenSSL shared library version numbers. +|25 октября 2018 +|13.0-CURRENT после увеличения номеров версий разделяемых библиотек OpenSSL. |1300002 |link:https://svnweb.freebsd.org/changeset/base/339765[339765] -|October 25, 2018 -|13.0-CURRENT after restoration of [.filename]#sys/joystick.h#. +|25 октября 2018 +|13.0-CURRENT после восстановления [.filename]#sys/joystick.h#. |1300003 |link:https://svnweb.freebsd.org/changeset/base/340055[340055] -|November 2, 2018 -|13.0-CURRENT after vop_symlink API change (`a_target` is now `const`.) +|2 ноября 2018 +|13.0-CURRENT после изменения API `vop_symlink` (параметр `a_target` теперь объявлен как `const`.) |1300004 |link:https://svnweb.freebsd.org/changeset/base/340841[340841] -|November 23, 2018 -|13.0-CURRENT after enabling crtbegin and crtend code. +|23 ноября 2018 +|13.0-CURRENT после включения кода crtbegin и crtend. |1300005 |link:https://svnweb.freebsd.org/changeset/base/341836[341836] -|December 11, 2018 -|13.0-CURRENT after enabling UFS inode checksums. +|11 декабря 2018 +|13.0-CURRENT после включения контрольных сумм inode в UFS. |1300006 |link:https://svnweb.freebsd.org/changeset/base/342398[342398] -|December 24, 2018 -|13.0-CURRENT after fixing `sys/random.h` include to be usable from C++. +|24 декабря 2018 +|13.0-CURRENT после исправления включения [.filename]#sys/random.h# для использования из C++. |1300007 |link:https://svnweb.freebsd.org/changeset/base/342629[342629] -|December 30, 2018 -|13.0-CURRENT after changing the size of `struct linux_cdev` on 32-bit platforms. +|30 декабря 2018 +|13.0-CURRENT после изменения размера `struct linux_cdev` на 32-битных платформах. |1300008 |link:https://svnweb.freebsd.org/changeset/base/342772[342772] -|January 4, 2019 -|13.0-CURRENT after adding `kern.smp.threads_per_core` and `kern.smp.cores` sysctls. +|4 января 2019 +|13.0-CURRENT после добавления системных переменных `kern.smp.threads_per_core` и `kern.smp.cores`. |1300009 |link:https://svnweb.freebsd.org/changeset/base/343213[343213] -|January 20, 2019 -|13.0-CURRENT after `struct ieee80211vap` structure change to resolve ioctl/detach race for ieee80211com structure. +|20 января 2019 +|13.0-CURRENT после изменения структуры `struct ieee80211vap` для устранения состояния гонки между ioctl и detach в структуре ieee80211com. |1300010 |link:https://svnweb.freebsd.org/changeset/base/343485[343485] -|January 27, 2019 -|13.0-CURRENT after increasing `SPECNAMELEN` from 63 to MAXNAMELEN (255). +|27 января 2019 +|13.0-CURRENT после увеличения `SPECNAMELEN` с 63 до `MAXNAMELEN` (255). |1300011 |link:https://svnweb.freebsd.org/changeset/base/344041[344041] -|February 12, 2019 -|13.0-CURRENT after man:renameat[2] has been corrected to work with kernels built with the `CAPABILITIES` option. +|12 февраля 2019 +|13.0-CURRENT после исправления man:renameat[2] для работы с ядрами, собранными с опцией `CAPABILITIES`. |1300012 |link:https://svnweb.freebsd.org/changeset/base/344062[344062] -|February 12, 2019 -|13.0-CURRENT after `taskqgroup_attach()` and `taskqgroup_attach_cpu()` take a device_t and a struct resource pointer as arguments for denoting device interrupts. +|12 февраля 2019 +|13.0-CURRENT после того, как `taskqgroup_attach()` и `taskqgroup_attach_cpu()` принимают аргументы `device_t` и указатель на структуру resource для обозначения прерываний устройства. |1300013 |link:https://svnweb.freebsd.org/changeset/base/344300[344300] -|February 19, 2019 -|13.0-CURRENT after the removal of drm and drm2. +|19 февраля 2019 +|13.0-CURRENT после удаления drm и drm2. |1300014 |link:https://svnweb.freebsd.org/changeset/base/344779[344779] -|March 4, 2019 -|13.0-CURRENT after upgrading clang, llvm, lld, lldb, compiler-rt and libc++ to 8.0.0 rc3. +|4 марта 2019 +|13.0-CURRENT после обновления clang, llvm, lld, lldb, compiler-rt и libc++ до версии 8.0.0 rc3. |1300015 |link:https://svnweb.freebsd.org/changeset/base/345196[345196] -|March 15, 2019 -|13.0-CURRENT after deanonymizing thread and proc state enums, so userland applications can use them without redefining the value names. +|15 марта 2019 +|13.0-CURRENT после деанонимизации перечислений состояний потоков и процессов, что позволяет приложениям пользовательского пространства использовать их без переопределения имен значений. |1300016 |link:https://svnweb.freebsd.org/changeset/base/345236[345236] -|March 16, 2019 -|13.0-CURRENT after enabling LLVM OpenMP 8.0.0 rc5 on amd64 by default. +|16 марта 2019 +|13.0-CURRENT после включения LLVM OpenMP 8.0.0 rc5 на amd64 по умолчанию. |1300017 |link:https://svnweb.freebsd.org/changeset/base/345305[345305] -|March 19, 2019 -|13.0-CURRENT after exposing the Rx mbuf buffer size to drivers in iflib. +|19 марта 2019 +|13.0-CURRENT после раскрытия размера буфера Rx mbuf для драйверов в iflib. |1300018 |link:https://svnweb.freebsd.org/changeset/base/346012[346012] -|March 16, 2019 -|13.0-CURRENT after introduction of funlinkat syscall in link:https://svnweb.freebsd.org/changeset/base/345982[345982]. +|16 марта 2019 +|13.0-CURRENT после введения системного вызова `funlinkat` в link:https://svnweb.freebsd.org/changeset/base/345982[345982]. |1300019 |link:https://svnweb.freebsd.org/changeset/base/346282[346282] -|April 16, 2019 -|13.0-CURRENT after addition of is_random_seeded(9) to man:random[4]. +|16 апреля 2019 +|13.0-CURRENT после добавления man:is_random_seeded[9] в man:random[4]. |1300020 |link:https://svnweb.freebsd.org/changeset/base/346358[346358] -|April 18, 2019 -|13.0-CURRENT after restoring man:random[4] availability tradeoff prior to link:https://svnweb.freebsd.org/changeset/base/346250[346250] and adding new tunables and diagnostic sysctls for programmatically discovering early seeding problems after boot. +|18 апреля 2019 +|13.0-CURRENT после восстановления доступности man:random[4] с учетом компромиссов до link:https://svnweb.freebsd.org/changeset/base/346250[346250] и добавления новых настроек и диагностических sysctl для программного обнаружения проблем с ранней инициализацией семени после загрузки. |1300021 |link:https://svnweb.freebsd.org/changeset/base/346645[346645] -|April 24, 2019 -|13.0-CURRENT after LinuxKPI uses man:bus_dma[9] to be compatible with an IOMMU. +|24 апреля 2019 +|13.0-CURRENT после того, как LinuxKPI использует man:bus_dma[9] для совместимости с IOMMU. |1300022 |link:https://svnweb.freebsd.org/changeset/base/347089[347089] -|May 4, 2019 -|13.0-CURRENT after fixing regression issue after link:https://svnweb.freebsd.org/changeset/base/346645[346645] in the LinuxKPI. +|4 мая 2019 +|13.0-CURRENT после исправления регрессии, возникшей после link:https://svnweb.freebsd.org/changeset/base/346645[346645] в LinuxKPI. |1300023 |link:https://svnweb.freebsd.org/changeset/base/347192[347192] -|May 6, 2019 -|13.0-CURRENT after list-ifying kernel dump device configuration. +|6 мая 2019 +|13.0-CURRENT после преобразования конфигурации устройства дампа ядра в список. |1300024 |link:https://svnweb.freebsd.org/changeset/base/347325[347325] -|May 8, 2019 -|13.0-CURRENT after bumping the Mellanox driver version numbers (man:mlx4en[4]; man:mlx5en[4]). +|8 мая 2019 +|13.0-CURRENT после увеличения номеров версий драйверов Mellanox (man:mlx4en[4]; man:mlx5en[4]). |1300025 |link:https://svnweb.freebsd.org/changeset/base/347532[347532] -|May 13, 2019 -|13.0-CURRENT after renaming `vm.max_wired` to `vm.max_user_wired` and changing its type. +|13 мая 2019 +|13.0-CURRENT после переименования `vm.max_wired` в `vm.max_user_wired` и изменения его типа. |1300026 |link:https://svnweb.freebsd.org/changeset/base/347596[347596] -|May 14, 2019 -|13.0-CURRENT after adding context member to ww_mutex in LinuxKPI. +|14 мая 2019 +|13.0-CURRENT после добавления члена контекста к ww_mutex в LinuxKPI. |1300027 |link:https://svnweb.freebsd.org/changeset/base/347601[347601] -|May 14, 2019 -|13.0-CURRENT after adding prepare to pm_ops in LinuxKPI. +|14 мая 2019 +|13.0-CURRENT после добавления prepare в `pm_ops` в LinuxKPI. |1300028 |link:https://svnweb.freebsd.org/changeset/base/347925[347925] -|May 17, 2019 -|13.0-CURRENT after removal of bm, cs, de, ed, ep, ex, fe, pcn, sf, sn, tl, tx, txp, vx, wb, and xe drivers. +|17 мая 2019 +|13.0-CURRENT после удаления драйверов `bm`, `cs`, de, ed, `ep`, ex, `fe`, `pcn`, sf, `sn`, `tl`, `tx`, `txp`, `vx`, `wb` и xe. |1300029 |link:https://svnweb.freebsd.org/changeset/base/347984[347984] -|May 20, 2019 -|13.0-CURRENT after removing some header pollution due to `sys/eventhandler.h`. Affected files may now need to explicitly include one or more of `sys/eventhandler.h`, `sys/ktr.h`, `sys/lock.h`, or `sys/mutex.h`, when the missing header may have been included implicitly prior to 1300029. +|20 мая 2019 +|13.0-CURRENT после удаления некоторых загрязнений заголовков из-за [.filename]#sys/eventhandler.h#. Затронутые файлы теперь могут требовать явного включения одного или нескольких заголовков: [.filename]#sys/eventhandler.h#, [.filename]#sys/ktr.h#, [.filename]#sys/lock.h# или [.filename]#sys/mutex.h#, тогда как ранее они могли включаться неявно до версии 1300029. |1300030 |link:https://svnweb.freebsd.org/changeset/base/348350[348350] -|May 29, 2019 -|13.0-CURRENT after adding relocation support to libdwarf on powerpc64 to fix handling of DWARF information on unlinked objects. Original commit in link:https://svnweb.freebsd.org/changeset/base/348347[348347]. +|29 мая 2019 +|13.0-CURRENT после добавления поддержки перемещения в libdwarf на powerpc64 для исправления обработки DWARF-информации в несвязанных объектах. Оригинальный коммит в ссылке:https://svnweb.freebsd.org/changeset/base/348347[348347]. |1300031 |link:https://svnweb.freebsd.org/changeset/base/348808[348808] -|June 8, 2019 -|13.0-CURRENT after adding dpcpu and vnet section fixes to i386 kernel modules to avoid panics in certain conditions. i386 kernel modules need to be recompiled with the linker script magic in place or they will refuse to load. +|8 июня 2019 +|13.0-CURRENT после добавления исправлений разделов dpcpu и vnet в модули ядра i386 для предотвращения паники в определённых условиях. Модули ядра i386 необходимо перекомпилировать с включёнными изменениями в скрипт компоновщика, иначе они откажутся загружаться. |1300032 |link:https://svnweb.freebsd.org/changeset/base/349151[349151] -|June 17, 2019 -|13.0-CURRENT after separating kernel crc32() implementation to its own header (gsb_crc32.h) and renaming the source to gsb_crc32.c. +|17 июня 2019 +|13.0-CURRENT после выделения реализации `crc32()` ядра в отдельный заголовочный файл ([.filename]#gsb_crc32.h#) и переименования исходного файла в [.filename]#gsb_crc32.c#. |1300033 |link:https://svnweb.freebsd.org/changeset/base/349277[349277] |June 21, 2019 -|13.0-CURRENT after additions to LinuxKPI's rcu list. +|13.0-CURRENT после добавлений в список `rcu` LinuxKPI. |1300034 |link:https://svnweb.freebsd.org/changeset/base/349352[349352] -|June 24, 2019 -|13.0-CURRENT after NAND and NANDFS removal. +|24 июня 2019 +|13.0-CURRENT после удаления NAND и NANDFS. |1300035 |link:https://svnweb.freebsd.org/changeset/base/349846[349846] -|July 8, 2019 -|13.0-CURRENT after merging the vm_page hold and wire mechanisms. +|8 июля 2019 +|13.0-CURRENT после объединения механизмов удержания и фиксации `vm_page`. |1300036 |link:https://svnweb.freebsd.org/changeset/base/349972[349972] -|July 13, 2019 -|13.0-CURRENT after adding arm_drain_writebuf() and arm_sync_icache() for compatibility with NetBSD and OpenBSD. +|13 июля 2019 +|13.0-CURRENT после добавления `arm_drain_writebuf()` и `arm_sync_icache()` для совместимости с NetBSD и OpenBSD. |1300037 |link:https://svnweb.freebsd.org/changeset/base/350307[350307] -|July 24, 2019 -|13.0-CURRENT after removal of libcap_random(3). +|24 июля 2019 +|13.0-CURRENT после удаления man:libcap_random[3]. |1300038 |link:https://svnweb.freebsd.org/changeset/base/350437[350437] -|July 30, 2019 -|13.0-CURRENT after removal of gzip'ed a.out support. +|30 июля 2019 +|13.0-CURRENT после удаления поддержки gzip'ed a.out. |1300039 |link:https://svnweb.freebsd.org/changeset/base/350665[350665] -|August 7, 2019 -|13.0-CURRENT after merge of fusefs from projects/fuse2. +|7 августа 2019 +|13.0-CURRENT после объединения fusefs из projects/fuse2. |1300040 |link:https://svnweb.freebsd.org/changeset/base/351140[351140] -|August 16, 2019 -|13.0-CURRENT after deletion of sys/dir.h which has been deprecated since 1997. +|16 августа 2019 +|13.0-CURRENT после удаления [.filename]#sys/dir.h#, который был устаревшим с 1997 года. -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/351423[351423] -|August 23, 2019 -|13.0-CURRENT after changing most arguments to man:ping6[8]. +|23 августа 2019 +|13.0-CURRENT после изменения большинства аргументов в man:ping6[8]. |1300041 |link:https://svnweb.freebsd.org/changeset/base/351480[351480] -|August 25, 2019 -|13.0-CURRENT after removal of zlib 1.0.4 after the completion of kernel zlib unification. +|25 августа 2019 +|13.0-CURRENT после удаления zlib 1.0.4 по завершении унификации zlib в ядре. |1300042 |link:https://svnweb.freebsd.org/changeset/base/351522[351522] -|August 27, 2019 -|13.0-CURRENT after addition of kernel-side support for in-kernel TLS. +|27 августа 2019 +|13.0-CURRENT после добавления поддержки TLS внутри ядра на уровне ядра. |1300043 |link:https://svnweb.freebsd.org/changeset/base/351698[351698] -|September 2, 2019 -|13.0-CURRENT after removal of man:gets[3]. +|2 сентября 2019 +|13.0-CURRENT после удаления man:gets[3]. |1300044 |link:https://svnweb.freebsd.org/changeset/base/351701[351701] -|September 2, 2019 -|13.0-CURRENT after adding sysfs create/remove functions that handles multiple files in one call to the LinuxKPI. +|2 сентября 2019 +|13.0-CURRENT после добавления функций создания/удаления sysfs, обрабатывающих несколько файлов за один вызов, в LinuxKPI. |1300045 |link:https://svnweb.freebsd.org/changeset/base/351729[351729] -|September 3, 2019 -|13.0-CURRENT after adding sysctlbyname system call +|3 сентября 2019 +|13.0-CURRENT после добавления системного вызова man:sysctlbyname[3]. |1300046 |link:https://svnweb.freebsd.org/changeset/base/351937[351937] -|September 6, 2019 -|13.0-CURRENT after LinuxKPI sysfs improvements. +|6 сентября 2019 +|13.0-CURRENT после улучшений LinuxKPI sysfs. |1300047 |link:https://svnweb.freebsd.org/changeset/base/352110[352110] -|September 9, 2019 -|13.0-CURRENT after changing the synchonization rules for vm_page reference counting.. +|9 сентября 2019 +|13.0-CURRENT после изменения правил синхронизации для подсчета ссылок `vm_page`. |1300048 |link:https://svnweb.freebsd.org/changeset/base/352700[352700] -|September 25, 2019 -|13.0-CURRENT after adding a shm_open2 syscall to support the upcoming memfd_create syscall. +|25 сентября 2019 +|13.0-CURRENT после добавления системного вызова shm_open2 для поддержки готовящегося системного вызова man:memfd_create[2]. |1300049 |link:https://svnweb.freebsd.org/changeset/base/353274[353274] -|October 7, 2019 -|13.0-CURRENT after factoring out the VNET shutdown check into an own vnet structure field. +|7 октября 2019 +|13.0-CURRENT после вынесения проверки отключения VNET в отдельное поле структуры vnet. |1300050 |link:https://svnweb.freebsd.org/changeset/base/353358[353358] -|October 9, 2019 -|13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 9.0.0 final release r372316. +|9 октября 2019 +|13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до финального релиза 9.0.0 r372316. |1300051 |link:https://svnweb.freebsd.org/changeset/base/353685[353685] -|October 17, 2019 -|13.0-CURRENT after splitting out a more generic debugnet(4) from man:netdump[4]. +|17 октября 2019 +|13.0-CURRENT после выделения более универсального man:debugnet[4] из man:netdump[4]. |1300052 |link:https://svnweb.freebsd.org/changeset/base/353698[353698] -|October 17, 2019 -|13.0-CURRENT after promoting the page busy field to a first class lock that no longer requires the object lock for consistency. +|17 октября 2019 +|13.0-CURRENT после преобразования поля busy page в полноценную блокировку, которая больше не требует блокировки объекта для обеспечения согласованности. |1300053 |link:https://svnweb.freebsd.org/changeset/base/353700[353700] -|October 17, 2019 -|13.0-CURRENT after implementing NetGDB. +|17 октября 2019 +|13.0-CURRENT после реализации NetGDB. |1300054 |link:https://svnweb.freebsd.org/changeset/base/353868[353868] -|October 21, 2019 -|13.0-CURRENT after removing obsoleted KPIs that were used to access interface address lists. +|21 октября 2019 +|13.0-CURRENT после удаления устаревших KPIs, которые использовались для доступа к спискам адресов интерфейсов. |1300055 |link:https://svnweb.freebsd.org/changeset/base/354335[354335] -|November 4, 2019 -|13.0-CURRENT after enabling device class group attributes in the LinuxKPI. +|4 ноября 2019 +|13.0-CURRENT после включения атрибутов группы классов устройств в LinuxKPI. |1300056 |link:https://svnweb.freebsd.org/changeset/base/354460[354460] -|November 7, 2019 -|13.0-CURRENT after fixing a potential OOB read security issue in libc++. +|7 ноября 2019 +|13.0-CURRENT после исправления потенциальной проблемы безопасности с чтением за границами в libc++. |1300057 |link:https://svnweb.freebsd.org/changeset/base/354694[354694] -|November 13, 2019 -|13.0-CURRENT after adding support for AT_EXECPATH to elf_aux_info(3). +|13 ноября 2019 +|13.0-CURRENT после добавления поддержки `AT_EXECPATH` в man:elf_aux_info[3]. |1300058 |link:https://svnweb.freebsd.org/changeset/base/354820[354820] -|November 18, 2019 -|13.0-CURRENT after widening the vm_page aflags field to 16 bits. +|18 ноября 2019 +|13.0-CURRENT после расширения поля `aflags` в `vm_page` до 16 бит. |1300059 |link:https://svnweb.freebsd.org/changeset/base/354835[354835] -|November 18, 2019 -|13.0-CURRENT after converting the in-tree sysent targets to use the new [.filename]#makesyscalls.lua#. +|18 ноября 2019 +|13.0-CURRENT после преобразования встроенных целей `sysent` для использования нового [.filename]#makesyscalls.lua#. |1300060 |link:https://svnweb.freebsd.org/changeset/base/354922[354922] -|November 20, 2019 -|13.0-CURRENT after adding [.filename]#/etc/os-release# as a symbolic link to [.filename]#/var/run/os-release#. +|20 ноября 2019 +|13.0-CURRENT после добавления символической ссылки [.filename]#/etc/os-release# на [.filename]#/var/run/os-release#. |1300061 |link:https://svnweb.freebsd.org/changeset/base/354977[354977] -|November 21, 2019 -|13.0-CURRENT after adding functions to man:bitstring[3] to find contiguous sequences of set or unset bits. +|21 ноября 2019 +|13.0-CURRENT после добавления функций в man:bitstring[3] для поиска непрерывных последовательностей установленных или сброшенных битов. |1300062 |link:https://svnweb.freebsd.org/changeset/base/355309[355309] -|December 2, 2019 -|13.0-CURRENT after adding TCP_STATS support. +|2 декабря 2019 +|13.0-CURRENT после добавления поддержки TCP_STATS. |1300063 |link:https://svnweb.freebsd.org/changeset/base/355537[355537] -|December 8, 2019 -|13.0-CURRENT after removal of VI_DOOMED (use VN_IS_DOOMED instead). +|8 декабря 2019 +|13.0-CURRENT после удаления VI_DOOMED (используйте VN_IS_DOOMED вместо этого). |1300064 |link:https://svnweb.freebsd.org/changeset/base/355658[355658] -|December 9, 2019 -|13.0-CURRENT after correcting the C++ version check for declaring man:timespec_get[3]. +|9 декабря 2019 +|13.0-CURRENT после исправления проверки версии C++ для объявления man:timespec_get[3]. |1300065 |link:https://svnweb.freebsd.org/changeset/base/355643[355643] -|December 12, 2019 -|13.0-CURRENT after adding sigsetop extensions commonly found in musl libc and glibc. +|12 декабря 2019 +|13.0-CURRENT после добавления расширений `sigsetop`, которые обычно встречаются в musl libc и glibc. |1300066 |link:https://svnweb.freebsd.org/changeset/base/355679[355679] -|December 12, 2019 -|13.0-CURRENT after changing the internal interface between the NFS modules as part of the introduction of NFS 4.2. +|12 декабря 2019 +|13.0-CURRENT после изменения внутреннего интерфейса между модулями NFS в рамках внедрения NFS 4.2. |1300067 |link:https://svnweb.freebsd.org/changeset/base/355732[355732] -|December 13, 2019 -|13.0-CURRENT after removing the deprecated `callout_handle_init`, `timeout`, and `untimeout` functions. +|13 декабря 2019 +|13.0-CURRENT после удаления устаревших функций `callout_handle_init`, `timeout` и `untimeout`. |1300068 |link:https://svnweb.freebsd.org/changeset/base/355828[355828] -|December 16, 2019 -|13.0-CURRENT after doubling the value of `ARG_MAX`, for 64 bit platforms. +|16 декабря 2019 +|13.0-CURRENT после удвоения значения `ARG_MAX` для 64-битных платформ. |1300069 |link:https://svnweb.freebsd.org/changeset/base/356051[356051] -|December 24, 2019 -|13.0-CURRENT after the addition of busdma templates. +|24 декабря 2019 +|13.0-CURRENT после добавления шаблонов busdma. |1300070 |link:https://svnweb.freebsd.org/changeset/base/356113[356113] -|December 27, 2019 -|13.0-CURRENT after eliminating the last MI difference in AT_* definitions (for powerpc). +|27 декабря 2019 +|13.0-CURRENT после устранения последнего различия MI в определениях AT_* (для powerpc). |1300071 |link:https://svnweb.freebsd.org/changeset/base/356135[356135] -|December 27, 2019 -|13.0-CURRENT after making USB statistics be per-device instead of per bus. +|27 декабря 2019 +|13.0-CURRENT после изменения статистики USB для каждого устройства вместо каждой шины. |1300072 |link:https://svnweb.freebsd.org/changeset/base/356185[356185] -|December 29, 2019 -|13.0-CURRENT after removal of GEOM_SCHED class and gsched tool. +|29 декабря 2019 +|13.0-CURRENT после удаления класса `GEOM_SCHED` и утилиты `gsched`. |1300073 |link:https://svnweb.freebsd.org/changeset/base/356263[356263] -|January 2, 2020 -|13.0-CURRENT after removing arm/arm as a valid target. +|2 января 2020 +|13.0-CURRENT после удаления arm/arm как допустимой цели. |1300074 |link:https://svnweb.freebsd.org/changeset/base/356337[356337] -|January 3, 2020 -|13.0-CURRENT after removing flags argument from VOP_UNLOCK. +|3 января 2020 +|13.0-CURRENT после удаления аргумента flags из `VOP_UNLOCK`. |1300075 |link:https://svnweb.freebsd.org/changeset/base/356409[356409] -|January 6, 2020 -|13.0-CURRENT after adding own counter for cancelled USB transfers. +|6 января 2020 +|13.0-CURRENT после добавления собственного счетчика отмененных USB-передач. |1300076 |link:https://svnweb.freebsd.org/changeset/base/356511[356511] -|January 8, 2020 -|13.0-CURRENT after pushing vnop implementation into the fileop layer in posix_fallocate. +|8 января 2020 +|13.0-CURRENT после внедрения реализации `vnop` в слой `fileop` в man:posix_fallocate[2]. -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/357396[357396] -|February 2, 2020 -|13.0-CURRENT after removal of armv5 architecture code from the src tree. +|2 февраля 2020 +|13.0-CURRENT после удаления кода архитектуры armv5 из дерева src. |1300077 |link:https://svnweb.freebsd.org/changeset/base/357455[357455] -|February 3, 2020 -|13.0-CURRENT after removal of sparc64 architecture code from the src tree. +|3 февраля 2020 +|13.0-CURRENT после удаления кода архитектуры sparc64 из дерева src. |1300078 |link:https://svnweb.freebsd.org/changeset/base/358020[358020] -|February 17, 2020 -|13.0-CURRENT after changing `struct vnet` and the VNET magic cookie. +|17 февраля 2020 +|13.0-CURRENT после изменения `struct vnet` и волшебного cookie VNET. |1300079 |link:https://svnweb.freebsd.org/changeset/base/358164[358164] -|February 20, 2020 -|13.0-CURRENT after upgrading ncurses to 6.2.x +|20 февраля 2020 +|13.0-CURRENT после обновления ncurses до версии 6.2.x |1300080 |link:https://svnweb.freebsd.org/changeset/base/358172[358172] -|February 20, 2020 -|13.0-CURRENT after adding realpathat syscall to VFS. +|20 февраля 2020 +|13.0-CURRENT после добавления системного вызова `realpathat` в VFS. |1300081 |link:https://svnweb.freebsd.org/changeset/base/358218[358218] -|February 21, 2020 -|13.0-CURRENT after after recent linuxkpi changes. +|21 февраля 2020 +|13.0-CURRENT после недавних изменений в linuxkpi. |1300082 |link:https://svnweb.freebsd.org/changeset/base/358497[358497] -|March 1, 2020 -|13.0-CURRENT after removal of man:bktr[4]. +|1 марта 2020 +|13.0-CURRENT после удаления man:bktr[4]. |1300083 |link:https://svnweb.freebsd.org/changeset/base/358834[358834] -|March 10, 2020 -|13.0-CURRENT after removal of man:amd[8], r358821. +|10 марта 2020 +|13.0-CURRENT после удаления man:amd[8], r358821. |1300084 |link:https://svnweb.freebsd.org/changeset/base/358851[358851] -|March 10, 2020 -|13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0-rc3 c290cb61fdc. +|10 марта 2020 +|13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0-rc3 c290cb61fdc. |1300085 |link:https://svnweb.freebsd.org/changeset/base/359261[359261] -|March 23, 2020 -|13.0-CURRENT after the import of the kyua test framework. +|23 марта 2020 +|13.0-CURRENT после импорта тестового фреймворка kyua. |1300086 |link:https://svnweb.freebsd.org/changeset/base/359347[359347] -|March 26, 2020 -|13.0-CURRENT after switching powerpc and powerpcspe to the lld linker. +|26 марта 2020 +|13.0-CURRENT после переключения powerpc и powerpcspe на компоновщик lld. |1300087 |link:https://svnweb.freebsd.org/changeset/base/359374[359374] -|March 27, 2020 -|13.0-CURRENT after refactoring the driver and consumer interfaces for in-kernel cryptography. +|27 марта 2020 +|13.0-CURRENT после рефакторинга интерфейсов драйвера и потребителя для внутриядерного шифрования. |1300088 |link:https://svnweb.freebsd.org/changeset/base/359530[359530] -|April 1, 2020 -|13.0-CURRENT after removing support for procfs process debugging. +|1 апреля 2020 +|13.0-CURRENT после удаления поддержки отладки процессов через procfs. |1300089 |link:https://svnweb.freebsd.org/changeset/base/359727[359727] -|April 8, 2020 -|13.0-CURRENT after cloning the RCU interface into a sleepable and a non-sleepable part in the LinuxKPI. +|8 апреля 2020 +|13.0-CURRENT после разделения интерфейса RCU на части с возможностью ожидания и без неё в LinuxKPI. |1300090 |link:https://svnweb.freebsd.org/changeset/base/359747[359747] -|April 9, 2020 -|13.0-CURRENT after removing the old NFS lock device driver that uses Giant. +|9 апреля 2020 +|13.0-CURRENT после удаления старого драйвера устройства блокировки NFS, использующего Giant. |1300091 |link:https://svnweb.freebsd.org/changeset/base/359839[359839] -|April 12, 2020 -|13.0-CURRENT after implementing a close_range(2) syscall. +|12 апреля 2020 +|13.0-CURRENT после реализации системного вызова man:close_range[2]. |1300092 |link:https://svnweb.freebsd.org/changeset/base/359920[359920] -|April 14, 2020 -|13.0-CURRENT after reworking unmapped mbufs in KTLS to carry ext_pgs in the mbuf itself. +|14 апреля 2020 +|13.0-CURRENT после переработки немэппированных mbuf в KTLS для хранения `ext_pgs` в самом mbuf. |1300093 |link:https://svnweb.freebsd.org/changeset/base/360418[360418] -|April 27, 2020 -|13.0-CURRENT after adding support for kernel TLS receive offload. +|27 апреля 2020 +|13.0-CURRENT после добавления поддержки выгрузки приема TLS в ядре. |1300094 |link:https://svnweb.freebsd.org/changeset/base/360796[360796] -|May 7, 2020 -|13.0-CURRENT after linuxkpi changes. +|7 мая 2020 +|13.0-CURRENT после изменений в linuxkpi. |1300095 |link:https://svnweb.freebsd.org/changeset/base/361275[361275] -|May 20, 2020 -|13.0-CURRENT after adding HyperV socket support for FreeBSD guests. +|20 мая 2020 +|13.0-CURRENT после добавления поддержки сокетов HyperV для гостевых систем FreeBSD. |1300096 |link:https://svnweb.freebsd.org/changeset/base/361410[361410] -|May 23, 2020 -|13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.1 rc1 f79cd71e145. +|23 мая 2020 +|13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.1 rc1 f79cd71e145. |1300097 |link:https://svnweb.freebsd.org/changeset/base/361724[361724] -|June 2, 2020 -|13.0-CURRENT after implementing __is_constexpr() function macro in the LinuxKPI. +|2 июня 2020 +|13.0-CURRENT после реализации макроса функции `__is_constexpr()` в LinuxKPI. |1300098 |link:https://svnweb.freebsd.org/changeset/base/362159[362159] -|June 14, 2020 -|13.0-CURRENT after changing the `export_args ex_flags` field so that is 64bits. +|14 июня 2020 +|13.0-CURRENT после изменения поля `export_args ex_flags`, чтобы оно было 64-битным. |1300099 |link:https://svnweb.freebsd.org/changeset/base/362453[362453] -|June 20, 2020 -|13.0-CURRENT after making liblzma use libmd implementation of SHA256. +|20 июня 2020 +|13.0-CURRENT после перевода liblzma на использование реализации SHA256 из libmd. |1300100 |link:https://svnweb.freebsd.org/changeset/base/362640[362640] |June 26, 2020 -|13.0-CURRENT after changing the internal API between the NFS kernel modules. +|13.0-CURRENT после изменения внутреннего API между модулями ядра NFS. |1300101 |link:https://svnweb.freebsd.org/changeset/base/363077[363077] -|July 10, 2020 -|13.0-CURRENT after implementing the array_size() function in the LinuxKPI. +|10 июля 2020 +|13.0-CURRENT после реализации функции `array_size()` в LinuxKPI. |1300102 |link:https://svnweb.freebsd.org/changeset/base/363562[363562] -|July 26, 2020 -|13.0-CURRENT after implementing lockless lookup in the VFS layer. +|26 июля 2020 +|13.0-CURRENT после реализации бесблокировочного поиска в слое VFS. |1300103 |link:https://svnweb.freebsd.org/changeset/base/363757[363757] -|August 1, 2020 -|13.0-CURRENT after making rights mandatory for NDINIT_ALL. +|1 августа 2020 +|13.0-CURRENT после того, как права для NDINIT_ALL стали обязательными. |1300104 |link:https://svnweb.freebsd.org/changeset/base/363783[363783] -|August 2, 2020 -|13.0-CURRENT after vnode layout changes. +|2 августа 2020 +|13.0-CURRENT после изменений в структуре vnode. |1300105 |link:https://svnweb.freebsd.org/changeset/base/363894[363894] -|August 5, 2020 -|13.0-CURRENT after vaccess() change. +|5 августа 2020 +|13.0-CURRENT после изменения `vaccess()`. |1300106 |link:https://svnweb.freebsd.org/changeset/base/364092[364092] -|August 11, 2020 -|13.0-CURRENT after adding an argument to newnfs_connect() that indicates use TLS for the connection. +|11 августа 2020 +|13.0-CURRENT после добавления аргумента в `newnfs_connect()`, указывающего на использование TLS для соединения. |1300107 |link:https://svnweb.freebsd.org/changeset/base/364109[364109] -|August 11, 2020 -|13.0-CURRENT after change to clone the task struct fields related to RCU. +|11 августа 2020 +|13.0-CURRENT после изменения для клонирования полей структуры задачи, связанных с RCU. |1300108 |link:https://svnweb.freebsd.org/changeset/base/364233[364233] -|August 14, 2020 -|13.0-CURRENT after adding a few wait_bit functions to the linuxkpi, which are needed for DRM from Linux v5.4. +|14 августа 2020 +|13.0-CURRENT после добавления нескольких функций `wait_bit` в linuxkpi, которые необходимы для DRM из Linux v5.4. |1300109 |link:https://svnweb.freebsd.org/changeset/base/364274[364274] -|August 16, 2020 -|13.0-CURRENT after vget() argument removal and namei flags renumbering. +|16 августа 2020 +|13.0-CURRENT после удаления аргумента `vget()` и перенумерации флагов `namei`. -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/364284[364284] -|August 16, 2020 -|13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to release/11.x llvmorg-11.0.0-rc1-47-gff47911ddfc. +|16 августа 2020 +|13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии release/11.x llvmorg-11.0.0-rc1-47-gff47911ddfc. |1300110 |link:https://svnweb.freebsd.org/changeset/base/364331[364331] -|August 18, 2020 -|13.0-CURRENT after deleting the unused `use_ext` argument to `nfscl_reqstart()`. +|18 августа 2020 +|13.0-CURRENT после удаления неиспользуемого аргумента `use_ext` в `nfscl_reqstart()`. |1300111 |link:https://svnweb.freebsd.org/changeset/base/364476[364476] -|August 22, 2020 -|13.0-CURRENT after adding TLS support to the kernel RPC. +|22 августа 2020 +|13.0-CURRENT после добавления поддержки TLS в RPC ядра. |1300112 |link:https://svnweb.freebsd.org/changeset/base/364747[364747] |August 25, 2020 -|13.0-CURRENT after merging OpenZFS support. +|13.0-CURRENT после объединения поддержки OpenZFS. |1300113 |link:https://svnweb.freebsd.org/changeset/base/364753[364753] |August 25, 2020 -|13.0-CURRENT after adding atomic and bswap functions to libcompiler_rt. +|13.0-CURRENT после добавления атомарных функций и функций `bswap` в libcompiler_rt. |1300114 |link:https://svnweb.freebsd.org/changeset/base/365459[365459] -|September 8, 2020 -|13.0-CURRENT after changing arm64 AT_HWCAP definitions for elf_aux_info(3). +|8 сентября 2020 +|13.0-CURRENT после изменения определений AT_HWCAP для arm64 в man:elf_aux_info[3]. |1300115 |link:https://svnweb.freebsd.org/changeset/base/365705[365705] -|September 14, 2020 -|13.0-CURRENT after fixing man:crunchgen[1] application build with `WARNS=6`. +|14 сентября 2020 +|13.0-CURRENT после исправления сборки приложения man:crunchgen[1] с `WARNS=6`. + +|1300116 +|link:https://svnweb.freebsd.org/changeset/base/366062[366062] +|22 сентября 2020 +|13.0-CURRENT после введения архитектуры powerpc64le. + +|1300117 +|link:https://svnweb.freebsd.org/changeset/base/366070[366070] +|23 сентября 2020 +|13.0-CURRENT после перереализации `purgevfs` для итерации по vnodes вместо всего хэша. + +|1300118 +|link:https://svnweb.freebsd.org/changeset/base/366374[366374] +|2 октября 2020 +|13.0-CURRENT после добавления поддержки подсветки и функций `dmi_*` в linuxkpi. + +|1300119 +|link:https://svnweb.freebsd.org/changeset/base/366432[366432] +|6 октября 2020 +|13.0-CURRENT после заполнения поля контекста получения `ww_mutex` в LinuxKPI. + +|1300120 +|link:https://svnweb.freebsd.org/changeset/base/366666[366666] +|13 октября 2020 +|13.0-CURRENT после исправления отображений только для записи на arm64. + +|1300121 +|link:https://svnweb.freebsd.org/changeset/base/366719[366719] +|15 октября 2020 +|13.0-CURRENT после добавления `VOP_EAGAIN`. + +|1300122 +|link:https://svnweb.freebsd.org/changeset/base/366782[366782] +|17 октября 2020 +|13.0-CURRENT после добавления `ptsname_r`. + +|1300123 +|link:https://svnweb.freebsd.org/changeset/base/366871[366871] +|20 октября 2020 +|13.0-CURRENT после изменений `VOP`, `VPTOCNP` и `INACTIVE`. + +|1300124 +|link:https://svnweb.freebsd.org/changeset/base/367162[367162] +|30 октября 2020 +|13.0-CURRENT после добавления `cache_vop_mkdir` и переименования `cache_rename` в `cache_vop_rename`. + +|1300125 +|link:https://svnweb.freebsd.org/changeset/base/367347[367347] +|4 ноября 2020 +|13.0-CURRENT после использования блокировки `rms` для обработки демонтажа в `zfs`. + +|1300126 +|link:https://svnweb.freebsd.org/changeset/base/367384[367384] +|5 ноября 2020 +|13.0-CURRENT после оптимизации зон на каждый процессор. + +|1300127 +|link:https://svnweb.freebsd.org/changeset/base/367432[367432] +|6 ноября 2020 +|13.0-CURRENT после перемещения `malloc_type_internal` в `malloc_type`. + +|1300128 +|link:https://svnweb.freebsd.org/changeset/base/367522[367522] +|9 ноября 2020 +|13.0-CURRENT после добавлений LinuxKPI для реализации частей ACPI, необходимых `drm-kmod` в базовой системе. + +|1300129 +|link:https://svnweb.freebsd.org/changeset/base/367627[367627] +|12 ноября 2020 +|13.0-CURRENT после удаления `malloc_last_fail`. + +|1300130 +|link:https://svnweb.freebsd.org/changeset/base/367777[367777] +|17 ноября 2020 +|13.0-CURRENT после разделения `p_pd` / `pwddesc` и `p_fd` / filedesc. + +|1300131 +|link:https://svnweb.freebsd.org/changeset/base/368417[368417] +|7 декабря 2020 +|13.0-CURRENT после удаления криптографических файловых дескрипторов. + +|1300132 +|link:https://svnweb.freebsd.org/changeset/base/368659[368659] +|15 декабря 2020 +|13.0-CURRENT после улучшения обработки альтернативных настроек в стеке USB. + +|1300133 +|gitref:2ed0c8d801f5f72dbde7a7d30135c1cc361a1e90[repository="src",length=12] +|23 декабря 2020 +|13.0-CURRENT после изменения внутреннего API между модулями NFS и RPC ядра. + +|1300134 +|gitref:a84b0e94cdbf1a17a798ab7f77375aacb4d400ff[repository="src",length=12] +|7 января 2021 +|13.0-CURRENT после выделения аппаратно-независимой части поддержки USB HID в новый модуль. + +|1300135 +|gitref:35a39dc5b34962081eeda8dbcf0b99a31585499b[repository="src",length=12] +|12 января 2021 +|13.0-CURRENT после добавления `kernel_fpu_begin`/`kernel_fpu_end` в LinuxKPI. + +|1300136 +|gitref:72c551930be195b5ea982c1b16767f54388424f2[repository="src",length=12] +|17 января 2021 +|13.0-CURRENT после переработки очереди `irq_work` в LinuxKPI на основе быстрой `taskqueue`. + +|1300137 +|gitref:010196adcfaf2bb610725394d40691874b4ff2af[repository="src",length=12] +|30 января 2021 +|13.0-CURRENT после исправления утверждения clang при сборке порта package:devel/onetbb[]. + +|1300138 +|gitref:dcee9964238b12a8e55917f292139f074b1a80b2[repository="src",length=12] +|1 февраля 2021 +|13.0-ALPHA3 после добавления блокировки при поиске символьных ссылок в кэше VFS. + +|1300139 +|gitref:91a07ed50ffca4dfada3e7f1f050ea746c1bac66[repository="src",length=12] +|2 февраля 2021 +|13.0-ALPHA3 после добавления различных компонентов LinuxKPI, конфликтующих с drm-kmod. + +|1300500 +|gitref:3c6a89748a01869c18955d5e3bfcdf35f6705d26[repository="src",length=12] +|5 февраля 2021 +|13.0-STABLE после ветвления releng/13.0. + +|1300501 +|gitref:c3f97dd75a1c294c4f60f42b604ee8bcda17be09[repository="src",length=12] +|23 апреля 2021 +|13.0-STABLE после исправления `dl_iterate_phdr()` в rtld. + +|1300501 +|gitref:c3f97dd75a1c294c4f60f42b604ee8bcda17be09[repository="src",length=12] +|23 апреля 2021 +|13.0-STABLE после исправления `dl_iterate_phdr()` в rtld. + +|1300502 +|gitref:da6a8ccfa293c3c831fdde51169754fcb9587657[repository="src",length=12] +|23 апреля 2021 +|13.0-STABLE после реализации `atomic_dec_and_lock_irqsave()` в LinuxKPI. + +|1300503 +|gitref:d60c6dc8f69b1264c7af5e2479ea94f000fd2c6d[repository="src",length=12] +|23 апреля 2021 +|13.0-STABLE после изменения внутреннего KAPI между krpc и NFS. + +|1300504 +|gitref:fb34817c686cc130449325499870e36979899801[repository="src",length=12] +|30 апреля 2021 +|13.0-STABLE после обновления LinuxKPI для поддержки обновления drm-kmod 5.5. + +|1300505 +|gitref:8f81f190a640e211dd814bdde7811982b9491fb0[repository="src",length=12] +|10 мая 2021 +|13.0-STABLE после изменения внутреннего KAPI между модулями nscl.ko и nfscommon.ko. + +|1300506 +|gitref:e31579b8558db508dfc3f8fc276611a7c3c93aa1[repository="src",length=12] +|2 июня 2021 +|13.0-STABLE после добавления поддержки TCP LRO для VLAN и VxLAN. + +|1300507 +|gitref:c64d1bd7145b5d30c97d1cd99e584da529d95100[repository="src",length=12] +|2 июня 2021 +|13.0-STABLE после добавления нового элемента в структуру отслеживания man:EPOCH[9]. + +|1300508 +|gitref:658f5eed38c35f3f7d6695110b7dae8dc94d12c7[repository="src",length=12] +|11 июня 2021 +|13.0-STABLE после добавления макросов для `might_lock_nested()` и `lockdep_(re/un/)pin_lock()` в LinuxKPI. + +|1300509 +|gitref:210349325af9920d1535ad76fa3b92847684f6e0[repository="src",length=12] +|14 июня 2021 +|13.0-STABLE после добавления макроса `list_for_each_entry_lockless()` в LinuxKPI. + +|1300510 +|gitref:eb3397588e1b48043e166587ea454f60efea88d0[repository="src",length=12] +|26 июня 2021 +|13.0-STABLE после изменения внутреннего KAPI между модулями krpc и nfsd. + +|1300511 +|gitref:2622570aeb3d162812d72f7ef192c322cd8b73ef[repository="src",length=12] +|7 июля 2021 +|13.0-STABLE после изменения `softdep_prelink()` для выполнения синхронизации только в случае, если другой поток изменил метаданные vnode с момента предыдущего `prelink`. + +|1300512 +|gitref:f72db34d2295080f57a283858125aa906c0d409e[repository="src",length=12] +|18 июля 2021 +|13.0-STABLE после различных слияний LinuxKPI, OFED, net80211 и драйверов. + +|1300513 +|gitref:af732203b8f7f006927528db5497f5cbc4c4742a[repository="src",length=12] +|31 июля 2021 +|13.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-12.0.1-0-gfed41342a82f, также известной как релиз 12.0.1. + +|1300514 +|gitref:53d162819c20e5cf267cb91f7a19940e96e8bec4[repository="src",length=12] +|3 августа 2021 +|Несовместимые изменения в KBI внутренних интерфейсов между NFS требуют пересборки модулей. + +|1300515 +|gitref:0437d10e359ea1cbefff8d17cd18ca491dbbd5d7[repository="src",length=12] +|22 сентября 2021 +|13.0-STABLE возвращается к KBI 13.0 для linuxkpi. + +|1300518 +|gitref:a017868e281874261a560ba1e3069b4e14b7483e[repository="src",length=12] +|21 октября 2021 +|13.0-STABLE после добавления `crypto_cursor_segment()`. + +|1300519 +|gitref:fe2827f1678b8ff0baf62a1529b2cc121a25b090[repository="src",length=12] +|21 октября 2021 +|13.0-STABLE после расширения шифров AES-CCM и Chacha20-Poly1305 в OCF для поддержки нескольких длин одноразовых номеров. + +|1300521 +|gitref:29745cf91cfc22afa94da0ce43e07a6dc377f631[repository="src",length=12] +|19 ноября 2021 +|13.0-STABLE после различных слияний с LinuxKPI и net80211. + +|1300522 +|gitref:0c8684ae20019b63c6672cc9fa40e1426708b007[repository="src",length=12] +|24 ноября 2021 +|13.0-STABLE после изменения внутреннего KAPI между модулями NFS. + +|(не изменено) +|gitref:7224d4125ab57bc1c4c799a6c286be42f8d37a83[repository="src",length=12] +|6 декабря 2021 +|13.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-13.0.0-0-gd7b669b3a303, также известной как релиз 13.0.0. + +|1300523 +|gitref:690bcf605d84283c1f9d254885a3cac69c5e80a6[repository="src",length=12] +|18 декабря 2021 +|13.0-STABLE после добавления двух аргументов в man:VOP_ALLOCATE[9]. + +|1300524 +|gitref:dc4114875ef10618002d3eeb46f09dc42da56b30[repository="src",length=12] +|14 января 2022 +|13.0-STABLE после обеспечения совместимости макросов CPU_SET с glibc. + +|1300525 +|gitref:dee0854a009cde7dcdb16ba39754237737022c8a[repository="src",length=12] +|22 января 2022 +|13.0-STABLE после множества изменений LinuxKPI, необходимых для drm-kmod. + +|1300526 +|gitref:c39ff2415cb965b729fd16f9eae91e712313877b[repository="src",length=12] +|20 февраля 2022 +|13.0-STABLE после нескольких изменений LinuxKPI, пересекающихся, но не конфликтующих с drm-kmod. + +|1301000 +|gitref:ad329796bdb29c69bce610ad332d08257d7157ac[repository="src",length=12] +|10 марта 2022 +|Ветка releng/13.1 создана. + +|1301500 +|gitref:08523c8c63bbcdcd3f0d36787a544817cb5b8282[repository="src",length=12] +|10 марта 2022 +|13.1-STABLE после ветвления releng/13.1. + +|1301501 +|gitref:6663718bb49635deac3f5dc55fa6f0f7cba593ba[repository="src",length=12] +|27 марта 2022 +|13.1-STABLE после различных слияний с LinuxKPI и net80211. + +|1301502 +|gitref:2278cf4e48e7679b0a60008a83c764fe852174b2[repository="src",length=12] +|27 апреля 2022 +|13.1-STABLE после различных слияний с LinuxKPI. + +|1301503 +|gitref:b2aa64d05bd8b04a1bdb63f2a5f9de39c600b463[repository="src",length=12] +|19 мая 2022 +|13.1-STABLE после добавления альтернативных макросов DRIVER_MODULE без аргумента devclass. + +|1301504 +|gitref:a13b6fc61908fd6afa460b88f94e4a67be74bb9a[repository="src",length=12] +|4 июня 2022 +|13.1-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-14.0.3-0-g1f9140064dfb, также известной как релиз 14.0.3. + +|1301505 +|gitref:6f93a76ffeabf7d4488edc73a0cca01436c2903b[repository="src",length=12] +|21 июня 2022 +|13.1-STABLE после различных слияний с LinuxKPI. + +|1301506 +|gitref:8e6cfc632cf6f9fc906df9d825649443939b55c6[repository="src",length=12] +|13 июля 2022 +|13.1-STABLE после добавления и . + +|1301507 +|gitref:9cbba5950123f3afedcc5f24c43956e7a26f22f4[repository="src",length=12] +|21 июня 2022 +|13.1-STABLE после различных слияний с LinuxKPI. + +|1301508 +|gitref:83ac15a799e348c391951f5877feecd4089bab80[repository="src",length=12] +|17 октября 2022 +|13.1-STABLE после различных слияний в LinuxKPI и для удаления макросов из pause(). + +|1301509 +|gitref:baa97013121a915057ee54dfcb2cb87e541f7d7f[repository="src",length=12] +|19 октября 2022 +|13.1-STABLE после введения версии 2 функциональности выбора очереди TX. + +|1301510 +|gitref:6820a0512fa6616ee1da46cb0075da80478776f0[repository="src",length=12] +|8 декабря 2022 +|13.1-STABLE после исправлений LinuxKPI dmi_matches(). + +|1301511 +|gitref:17333d92643d998d1c6a2dc5f6b1508b6507ad31[repository="src",length=12] +|17 декабря 2022 +|13.1-STABLE после добавления нового rc: `machine_id` для генерации `/etc/machine-id`. + +|1302500 +|gitref:c243de11cf7c4bb3d67bbc1655b149037e5b04f1[repository="src",length=12] +|9 февраля 2023 +|13.2-STABLE после ветвления releng/13.2. + +|1302501 +|gitref:e3068d2655e2aea3e0b462a7298a68d344769ec6[repository="src",length=12] +|16 февраля 2023 +|13.2-STABLE после добавления `totalram_pages()` в LinuxKPI. + +|1302502 +|gitref:5ca371f4f536f9ee9d6c9fb178bf1f7f6de33216[repository="src",length=12] +|17 февраля 2023 +|13.2-STABLE после различных слияний с LinuxKPI. + +|1302503 +|gitref:aaca677fee21f202db4bb974fc5056f4dcbbb598[repository="src",length=12] +|21 февраля 2023 +|13.2-STABLE после различных слияний с LinuxKPI. + +|1302504 +|gitref:d6852eed98ed32ad51120a22aa1ebdf0601917b3[repository="src",length=12] +|12 марта 2023 +|13.2-STABLE после объединения machine-id в `hostid_save`. + +|1302505 +|gitref:85e32e957fcca01d50e29e543584909795c1acef[repository="src",length=12] +|9 апреля 2023 +|13.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-15.0.7-0-g8dfdcc7b7bf6, также известного как релиз 15.0.7. + +|1302506 +|gitref:e982b1cf1fe1dc0b84dc24f03d1c21e3fe6bdef3[repository="src",length=12] +|26 июня 2023 +|13.2-STABLE после различных слияний с LinuxKPI. + +|1302507 +|gitref:b2acc21dfbd6fab28b1715c775b43d4914b75e0c[repository="src",length=12] +|23 июля 2023 +|13.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-16.0.6-0-g7cbf1a259152, также известного как релиз 16.0.6. + +|1302508 +|gitref:21ccba43f511cc4089899619b5a85e6d83a200dc[repository="src",length=12] +|6 сентября 2023 +|13.2-STABLE после того, как ptrace начал очищать TDB_BORN во время PT_DETACH. + +|1302509 +|gitref:faedeaf7377ba7253c281cf3315b17e0cb979075[repository="src",length=12] +|2 декабря 2023 +|13.2-STABLE после добавления новой функции VFS под названием `vfs_exjail_clone()`, которая будет использоваться модулем ZFS. + +|1302510 +|gitref:45758665781dd63dfa38bcb646d4f36b0a6a104f[repository="src",length=12] +|7 января 2024 +|13.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-17.0.6-0-g6009708b4367, также известного как релиз 17.0.6. + +|1303001 +|gitref:a75a3d7afcc88dc0bc9b2797cce983056acadf10[repository="src",length=12] +|19 февраля 2024 +|13.3-BETA3 после изменения внутренней структуры `struct ieee80211vap` в net80211. + +|1303501 +|gitref:a7e1fc7f620d3341549c1380f550aaafbdb45622[repository="src",length=12] +|19 февраля 2024 +|13.3-STABLE после изменения внутренней структуры `struct ieee80211vap` в net80211. + +|1303502 +|gitref:07839ae99c06fcbebd5da6ead49c160c32046542[repository="src",length=12] +|23 марта 2024 +|13.3-STABLE после исправления утверждения или падения clang при сборке последних библиотек boost. + +|1303503 +|gitref:055e875e6077ed1eb2256c3ab5de59a3f6fbce18[repository="src",length=12] +|20 апреля 2024 +|13.3-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-18.1.3-0-gc13b7485b879, также известного как релиз 18.1.3. + +|1304500 +|gitref:77064cddb94875dc8d9693a93ac25019b7f62c59[repository="src",length=12] +|1 августа 2024 +|13.4-STABLE после переименования из 13.4-PRERELEASE. + +|1304501 +|gitref:b802ab153dd24f468b9bfe33a96c61408e0d0565[repository="src",length=12] +|1 декабря 2024 +|13.4-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-19.1.4-0-gaadaa00de76e, также известного как релиз 19.1.4. + |=== +//// +Template: + +|13XXXXX +|gitref:XXXXXXXX[repository="src",length=12] +|October 30, 2021 +|13.0-STABLE after XXXXXX. +//// + [[versions-12]] -== FreeBSD 12 Versions +== Версии FreeBSD 12 [[freebsd-versions-table-12]] -.FreeBSD 12 `__FreeBSD_version` Values +.FreeBSD 12 Значения `__FreeBSD_version` [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |1200000 |link:https://svnweb.freebsd.org/changeset/base/302409[302409] -|July 7, 2016 +|7 июля 2016 |12.0-CURRENT. |1200001 |link:https://svnweb.freebsd.org/changeset/base/302628[302628] -|July 12, 2016 -|12.0-CURRENT after removing collation from `[a-z]`-type ranges. +|12 июля 2016 +|12.0-CURRENT после удаления правил сортировки из диапазонов типа `[a-z]`. |1200002 |link:https://svnweb.freebsd.org/changeset/base/304395[304395] -|August 18, 2016 -|12.0-CURRENT after removing unused and obsolete `openbsd_poll` system call. +|18 августа 2016 +|12.0-CURRENT после удаления неиспользуемого и устаревшего системного вызова `openbsd_poll`. |1200003 |link:https://svnweb.freebsd.org/changeset/base/304608[304608] -|August 22, 2016 -|12.0-CURRENT after adding C++11 `thread_local` support in rev link:https://svnweb.freebsd.org/changeset/base/303795[303795]. +|22 августа 2016 +|12.0-CURRENT после добавления поддержки `thread_local` из C++11 в ревизии link:https://svnweb.freebsd.org/changeset/base/303795[303795]. |1200004 |link:https://svnweb.freebsd.org/changeset/base/304752[304752] -|August 24, 2016 -|12.0-CURRENT after fixing LC*MASK for man:newlocale[3] and man:querylocale[3] (rev link:https://svnweb.freebsd.org/changeset/base/304703[304703]). +|24 августа 2016 +|12.0-CURRENT после исправления LC*MASK для man:newlocale[3] и man:querylocale[3] (rev link:https://svnweb.freebsd.org/changeset/base/304703[304703]). |1200005 |link:https://svnweb.freebsd.org/changeset/base/304789[304789] -|August 25, 2016 -|12.0-CURRENT after changing some ioctl interfaces in rev link:https://svnweb.freebsd.org/changeset/base/304787[304787] between the iSCSI userspace programs and the kernel. +|25 августа 2016 +|12.0-CURRENT после изменения некоторых интерфейсов ioctl в ревизии link:https://svnweb.freebsd.org/changeset/base/304787[304787] между пользовательскими программами iSCSI и ядром. |1200006 |link:https://svnweb.freebsd.org/changeset/base/305256[305256] -|September 1, 2016 -|12.0-CURRENT after man:crunchgen[1] META_MODE fix in link:https://svnweb.freebsd.org/changeset/base/305254[305254]. +|1 сентября 2016 +|12.0-CURRENT после исправления META_MODE в man:crunchgen[1] в link:https://svnweb.freebsd.org/changeset/base/305254[305254]. |1200007 |link:https://svnweb.freebsd.org/changeset/base/305421[305421] -|September 5, 2016 -|12.0-CURRENT after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]. +|5 сентября 2016 +|12.0-CURRENT после разрешения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]. |1200008 |link:https://svnweb.freebsd.org/changeset/base/305833[305833] -|September 15, 2016 -|12.0-CURRENT after removing the 4.3BSD compatible macro `m_copy()` in link:https://svnweb.freebsd.org/changeset/base/305824[305824]. +|15 сентября 2016 +|12.0-CURRENT после удаления совместимого с 4.3BSD макроса `m_copy()` в link:https://svnweb.freebsd.org/changeset/base/305824[305824]. |1200009 |link:https://svnweb.freebsd.org/changeset/base/306077[306077] -|September 21, 2016 -|12.0-CURRENT after removing `bio_taskqueue()` in link:https://svnweb.freebsd.org/changeset/base/305988[305988]. +|21 сентября 2016 +|12.0-CURRENT после удаления `bio_taskqueue()` в link:https://svnweb.freebsd.org/changeset/base/305988[305988]. |1200010 |link:https://svnweb.freebsd.org/changeset/base/306276[306276] -|September 23, 2016 -|12.0-CURRENT after mounting man:msdosfs[5] with longnames support by default. +|23 сентября 2016 +|12.0-CURRENT после монтирования man:msdosfs[5] с поддержкой `longnames` по умолчанию. |1200011 |link:https://svnweb.freebsd.org/changeset/base/306556[306556] -|October 1, 2016 -|12.0-CURRENT after adding `fb_memattr` field to `fb_info` in link:https://svnweb.freebsd.org/changeset/base/306555[306555]. +|1 октября 2016 +|12.0-CURRENT после добавления поля `fb_memattr` в `fb_info` в link:https://svnweb.freebsd.org/changeset/base/306555[306555]. |1200012 |link:https://svnweb.freebsd.org/changeset/base/306592[306592] -|October 2, 2016 -|12.0-CURRENT after man:net80211[4] changes (rev link:https://svnweb.freebsd.org/changeset/base/306590[306590], link:https://svnweb.freebsd.org/changeset/base/306591[306591]). +|2 октября 2016 +|12.0-CURRENT после изменений в man:net80211[4] (rev link:https://svnweb.freebsd.org/changeset/base/306590[306590], link:https://svnweb.freebsd.org/changeset/base/306591[306591]). |1200013 |link:https://svnweb.freebsd.org/changeset/base/307140[307140] -|October 12, 2016 -|12.0-CURRENT after installing header files required development with libzfs_core. +|12 октября 2016 +|12.0-CURRENT после установки заголовочных файлов, необходимых для разработки с `libzfs_core`. |1200014 |link:https://svnweb.freebsd.org/changeset/base/307529[307529] -|October 17, 2016 -|12.0-CURRENT after merging common code in man:rtwn[4] and man:urtwn[4], and adding support for 802.11ac devices. +|17 октября 2016 +|12.0-CURRENT после объединения общего кода в man:rtwn[4] и man:urtwn[4], а также добавления поддержки устройств 802.11ac. |1200015 |link:https://svnweb.freebsd.org/changeset/base/308874[308874] -|November 20, 2016 -|12.0-CURRENT after some ABI change for unbreaking powerpc. +|20 ноября 2016 +|12.0-CURRENT после некоторого изменения ABI для исправления powerpc. |1200016 |link:https://svnweb.freebsd.org/changeset/base/309017[309017] -|November 22, 2016 -|12.0-CURRENT after removing `PG_CACHED`-related fields from `vmmeter`. +|22 ноября 2016 +|12.0-CURRENT после удаления полей, связанных с `PG_CACHED`, из `vmmeter`. |1200017 |link:https://svnweb.freebsd.org/changeset/base/309124[309124] -|November 25, 2016 -|12.0-CURRENT after upgrading our copies of clang, llvm, lldb, compiler-rt and libc++ to 3.9.0 release, and adding lld 3.9.0. +|25 ноября 2016 +|12.0-CURRENT после обновления копий clang, llvm, lldb, compiler-rt и libc++ до версии 3.9.0 и добавления lld 3.9.0. |1200018 |link:https://svnweb.freebsd.org/changeset/base/309676[309676] -|December 7, 2016 -|12.0-CURRENT after adding the `ki_moretdname` member to `struct kinfo_proc` and `struct kinfo_proc32` to export the whole thread name to user-space utilities. +|7 декабря 2016 +|12.0-CURRENT после добавления члена `ki_moretdname` в структуры `struct kinfo_proc` и `struct kinfo_proc32` для экспорта полного имени потока в пользовательские утилиты. |1200019 |link:https://svnweb.freebsd.org/changeset/base/310149[310149] -|December 16, 2016 -|12.0-CURRENT after starting to lay down the foundation for 11ac support. +|16 декабря 2016 +|12.0-CURRENT после начала закладки основы для поддержки 11ac. |1200020 |link:https://svnweb.freebsd.org/changeset/base/312087[312087] -|January 13, 2017 -|12.0-CURRENT after removing `fgetsock` and `fputsock`. +|13 января 2017 +|12.0-CURRENT после удаления `fgetsock` и `fputsock`. |1200021 |link:https://svnweb.freebsd.org/changeset/base/313858[313858] -|February 16, 2017 -|12.0-CURRENT after removing MCA and EISA support. +|16 февраля 2017 +|12.0-CURRENT после удаления поддержки MCA и EISA. |1200022 |link:https://svnweb.freebsd.org/changeset/base/314040[314040] -|February 21, 2017 -|12.0-CURRENT after making the LinuxKPI task struct persistent across system calls. +|21 февраля 2017 +|12.0-CURRENT после обеспечения сохранности структуры задач LinuxKPI между системными вызовами. -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/314373[314373] -|March 2, 2017 -|12.0-CURRENT after removing System V Release 4 binary compatibility support. +|2 марта 2017 +|12.0-CURRENT после удаления поддержки бинарной совместимости с System V Release 4. |1200023 |link:https://svnweb.freebsd.org/changeset/base/314564[314564] -|March 2, 2017 -|12.0-CURRENT after upgrading our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0. +|2 марта 2017 +|12.0-CURRENT после обновления копий clang, llvm, lld, lldb, compiler-rt и libc++ до версии 4.0.0. |1200024 |link:https://svnweb.freebsd.org/changeset/base/314865[314865] -|March 7, 2017 -|12.0-CURRENT after removal of [.filename]#pcap-int.h# +|7 марта 2017 +|12.0-CURRENT после удаления [.filename]#pcap-int.h# |1200025 |link:https://svnweb.freebsd.org/changeset/base/315430[315430] -|March 16, 2017 -|12.0-CURRENT after addition of the [.filename]## header. +|16 марта 2017 +|12.0-CURRENT после добавления заголовочного файла [.filename]##. |1200026 |link:https://svnweb.freebsd.org/changeset/base/315662[315662] -|March 16, 2017 -|12.0-CURRENT after hiding `struct inpcb` and `struct tcpcb` from userland. +|16 марта 2017 +|12.0-CURRENT после скрытия `struct inpcb` и `struct tcpcb` от пользовательского пространства. |1200027 |link:https://svnweb.freebsd.org/changeset/base/315673[315673] -|March 21, 2017 -|12.0-CURRENT after making CAM SIM lock optional. +|21 марта 2017 +|12.0-CURRENT после того, как блокировка CAM SIM стала опциональной. |1200028 |link:https://svnweb.freebsd.org/changeset/base/316683[316683] -|April 10, 2017 -|12.0-CURRENT after renaming `smp_no_rendevous_barrier()` to `smp_no_rendezvous_barrier()` in link:https://svnweb.freebsd.org/changeset/base/316648[316648]. +|10 апреля 2017 +|12.0-CURRENT после переименования `smp_no_rendevous_barrier()` в `smp_no_rendezvous_barrier()` в link:https://svnweb.freebsd.org/changeset/base/316648[316648]. |1200029 |link:https://svnweb.freebsd.org/changeset/base/317176[317176] |April 19, 2017 -|12.0-CURRENT after the removal of `struct vmmeter` from `struct pcpu` from link:https://svnweb.freebsd.org/changeset/base/317061[317061]. +|12.0-CURRENT после удаления `struct vmmeter` из `struct pcpu` в link:https://svnweb.freebsd.org/changeset/base/317061[317061]. |1200030 |link:https://svnweb.freebsd.org/changeset/base/317383[317383] -|April 24, 2017 -|12.0-CURRENT after removing NATM support including man:en[4], man:fatm[4], man:hatm[4], and man:patm[4]. +|24 апреля 2017 +|12.0-CURRENT после удаления поддержки NATM, включая man:en[4], man:fatm[4], man:hatm[4] и man:patm[4]. |1200031 |link:https://svnweb.freebsd.org/changeset/base/318736[318736] -|May 23, 2017 -|12.0-CURRENT after types `ino_t`, `dev_t`, `nlink_t` were extended to 64bit and `struct dirent` changed layout (also known as ino64). +|23 мая 2017 +|12.0-CURRENT после расширения типов `ino_t`, `dev_t`, `nlink_t` до 64 бит и изменения структуры `struct dirent` (также известное как ino64). |1200032 |link:https://svnweb.freebsd.org/changeset/base/319664[319664] -|June 8, 2017 -|12.0-CURRENT after removal of `groff`. +|8 июня 2017 +|12.0-CURRENT после удаления `groff`. |1200033 |link:https://svnweb.freebsd.org/changeset/base/320043[320043] -|June 17, 2017 -|12.0-CURRENT after the type of the `struct event` member `data` was increased to 64bit, and ext structure members added. +|17 июня 2017 +|12.0-CURRENT после того, как тип члена `data` структуры `struct event` был увеличен до 64 бит, и добавлены члены расширенной структуры. |1200034 |link:https://svnweb.freebsd.org/changeset/base/320085[320085] -|June 19, 2017 -|12.0-CURRENT after the NFS client and server were changed so that they actually use the 64bit `ino_t`. +|19 июня 2017 +|12.0-CURRENT после изменения клиента и сервера NFS для фактического использования 64-битного `ino_t`. |1200035 |link:https://svnweb.freebsd.org/changeset/base/320317[320317] |June 24, 2017 -|12.0-CURRENT after the `MAP_GUARD` man:mmap[2] flag was added. +|12.0-CURRENT после добавления флага `MAP_GUARD` в man:mmap[2]. |1200036 |link:https://svnweb.freebsd.org/changeset/base/320347[320347] -|June 26, 2017 -|12.0-CURRENT after changing `time_t` to 64 bits on powerpc (32-bit version). +|26 июня 2017 +|12.0-CURRENT после изменения `time_t` на 64 бита на powerpc (32-битная версия). |1200037 |link:https://svnweb.freebsd.org/changeset/base/320545[320545] -|July 1, 2017 -|12.0-CURRENT after the cleanup and inlining of `bus_dmamap*` functions (link:https://svnweb.freebsd.org/changeset/base/320528[320528]). +|1 июля 2017 +|12.0-CURRENT после очистки и встраивания функций `bus_dmamap*` (link:https://svnweb.freebsd.org/changeset/base/320528[320528]). |1200038 |link:https://svnweb.freebsd.org/changeset/base/320879[320879] -|July 10, 2017 -|12.0-CURRENT after MMC CAM committed. (link:https://svnweb.freebsd.org/changeset/base/320844[320844]). +|10 июля 2017 +|12.0-CURRENT после коммита MMC CAM (link:https://svnweb.freebsd.org/changeset/base/320844[320844]). |1200039 |link:https://svnweb.freebsd.org/changeset/base/321369[321369] -|July 22, 2017 -|12.0-CURRENT after upgrade of copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 5.0.0 (trunk r308421). +|22 июля 2017 +|12.0-CURRENT после обновления копий clang, llvm, lld, lldb, compiler-rt и libc++ до версии 5.0.0 (trunk r308421). |1200040 |link:https://svnweb.freebsd.org/changeset/base/321688[321688] -|July 29, 2017 -|12.0-CURRENT after adding NFS client forced dismount support `umount -N`. +|29 июля 2017 +|12.0-CURRENT после добавления поддержки принудительного демонтирования клиента NFS `umount -N`. |1200041 |link:https://svnweb.freebsd.org/changeset/base/322762[322762] -|August 21, 2017 -|12.0-CURRENT after WRFSBASE instruction become operational on amd64. +|21 августа 2017 +|12.0-CURRENT после того, как инструкция WRFSBASE стала работоспособной на amd64. |1200042 |link:https://svnweb.freebsd.org/changeset/base/322900[322900] -|August 25, 2017 -|12.0-CURRENT after PLPMTUD counters were changed to use man:counter[9]. +|25 августа 2017 +|12.0-CURRENT после изменения счетчиков PLPMTUD для использования man:counter[9]. |1200043 |link:https://svnweb.freebsd.org/changeset/base/322989[322989] -|August 28, 2017 -|12.0-CURRENT after dropping x86 CACHE_LINE_SIZE down to 64 bytes. +|28 августа 2017 +|12.0-CURRENT после уменьшения CACHE_LINE_SIZE для x86 до 64 байт. |1200044 |link:https://svnweb.freebsd.org/changeset/base/323349[323349] -|September 8, 2017 -|12.0-CURRENT after implementing poll_wait() in the LinuxKPI. +|8 сентября 2017 +|12.0-CURRENT после реализации `poll_wait()` в LinuxKPI. |1200045 |link:https://svnweb.freebsd.org/changeset/base/323706[323706] -|September 18, 2017 -|12.0-CURRENT after adding shared memory support to LinuxKPI. (link:https://svnweb.freebsd.org/changeset/base/323703[323703]). +|18 сентября 2017 +|12.0-CURRENT после добавления поддержки разделяемой памяти в LinuxKPI. (link:https://svnweb.freebsd.org/changeset/base/323703[323703]). |1200046 |link:https://svnweb.freebsd.org/changeset/base/323910[323910] -|September 22, 2017 -|12.0-CURRENT after adding support for 32-bit compatibility IOCTLs to LinuxKPI. +|22 сентября 2017 +|12.0-CURRENT после добавления поддержки 32-битных совместимых IOCTL в LinuxKPI. |1200047 |link:https://svnweb.freebsd.org/changeset/base/324053[324053] -|September 26, 2017 -|12.0-CURRENT after removing M_HASHTYPE_RSS_UDP_IPV4_EX. (link:https://svnweb.freebsd.org/changeset/base/324052[324052]). +|26 сентября 2017 +|12.0-CURRENT после удаления M_HASHTYPE_RSS_UDP_IPV4_EX. (link:https://svnweb.freebsd.org/changeset/base/324052[324052]). |1200048 |link:https://svnweb.freebsd.org/changeset/base/324227[324227] -|October 2, 2017 -|12.0-CURRENT after hiding `struct socket` and `struct unpcb` from userland. +|2 октября 2017 +|12.0-CURRENT после скрытия `struct socket` и `struct unpcb` из пользовательского пространства. |1200049 |link:https://svnweb.freebsd.org/changeset/base/324281[324281] -|October 4, 2017 -|12.0-CURRENT after adding the `value.u16` field to `struct diocgattr_arg`. +|4 октября 2017 +|12.0-CURRENT после добавления поля `value.u16` в структуру `struct diocgattr_arg`. |1200050 |link:https://svnweb.freebsd.org/changeset/base/324342[324342] -|October 5, 2017 -|12.0-CURRENT after adding the `armv7 MACHINE_ARCH`. (link:https://svnweb.freebsd.org/changeset/base/324340[324340]). +|5 октября 2017 +|12.0-CURRENT после добавления `armv7 MACHINE_ARCH`. (link:https://svnweb.freebsd.org/changeset/base/324340[324340]). |1200051 |link:https://svnweb.freebsd.org/changeset/base/324455[324455] -|October 9, 2017 -|12.0-CURRENT after removing [.filename]#libstand.a# as a public interface. (link:https://svnweb.freebsd.org/changeset/base/324454[324454]). +|9 октября 2017 +|12.0-CURRENT после удаления [.filename]#libstand.a# как публичного интерфейса. (link:https://svnweb.freebsd.org/changeset/base/324454[324454]). |1200052 |link:https://svnweb.freebsd.org/changeset/base/325028[325028] -|October 26, 2017 -|12.0-CURRENT after fixing `ptrace()` to always clear the correct thread event when resuming. +|26 октября 2017 +|12.0-CURRENT после исправления `ptrace()`, чтобы всегда очищать правильное событие потока при возобновлении. |1200053 |link:https://svnweb.freebsd.org/changeset/base/325506[325506] -|November 7, 2017 -|12.0-CURRENT after changing `struct mbuf` layout to add optional hardware timestamps for receive packets. +|7 ноября 2017 +|12.0-CURRENT после изменения структуры `struct mbuf` для добавления опциональных аппаратных меток времени для принимаемых пакетов. |1200054 |link:https://svnweb.freebsd.org/changeset/base/325852[325852] -|November 15, 2017 -|12.0-CURRENT after changing the layout of `struct vmtotal` to allow for reporting large memory counters. +|15 ноября 2017 +|12.0-CURRENT после изменения структуры `struct vmtotal` для поддержки отчёта больших счётчиков памяти. |1200055 |link:https://svnweb.freebsd.org/changeset/base/327740[327740] -|January 9, 2018 -|12.0-CURRENT after adding `cpucontrol -e` support. +|9 января 2018 +|12.0-CURRENT после добавления поддержки `cpucontrol -e`. |1200056 |link:https://svnweb.freebsd.org/changeset/base/327952[327952] -|January 14, 2018 -|12.0-CURRENT after upgrading clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r321788). +|14 января 2018 +|12.0-CURRENT после обновления clang, llvm, lld, lldb, compiler-rt и libc++ до версии 6.0.0 (ветки/release_60 r321788). |1200057 |link:https://svnweb.freebsd.org/changeset/base/329033[329033] -|February 8, 2018 -|12.0-CURRENT after applying a clang 6.0.0 fix to make the wine ports build correctly. +|8 февраля 2018 +|12.0-CURRENT после применения исправления в clang 6.0.0 для корректной сборки портов wine. |1200058 |link:https://svnweb.freebsd.org/changeset/base/329166[329166] -|February 12, 2018 -|12.0-CURRENT after the lua loader was committed. +|12 февраля 2018 +|12.0-CURRENT после включения загрузчика Lua. |1200059 |link:https://svnweb.freebsd.org/changeset/base/330299[330299] -|March 2, 2018 -|12.0-CURRENT after removing the declaration of `union semun` unless `_WANT_SEMUN` is defined. Also the removal of `struct mymsg` and the renaming of kernel-only members of `struct semid_ds` and `struct msgid_ds`. +|2 марта 2018 +|12.0-CURRENT после удаления объявления `union semun`, если не определено `_WANT_SEMUN`. Также удаление `struct mymsg` и переименование членов `struct semid_ds` и `struct msgid_ds`, предназначенных только для ядра. |1200060 |link:https://svnweb.freebsd.org/changeset/base/330384[330384] -|March 4, 2018 -|12.0-CURRENT after upgrading clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 release. +|4 марта 2018 +|12.0-CURRENT после обновления clang, llvm, lld, lldb, compiler-rt и libc++ до версии 6.0.0. |1200061 |link:https://svnweb.freebsd.org/changeset/base/332100[332100] -|April 6, 2018 -|12.0-CURRENT after changing man:syslog[3] to emit RFC 5424 formatted messages. +|6 апреля 2018 +|12.0-CURRENT после изменения man:syslog[3] для генерации сообщений в формате RFC 5424. |1200062 |link:https://svnweb.freebsd.org/changeset/base/332423[332423] -|April 12, 2018 -|12.0-CURRENT after changing the Netmap API. +|12 апреля 2018 +|12.0-CURRENT после изменения API Netmap. |1200063 |link:https://svnweb.freebsd.org/changeset/base/333446[333446] -|May 10, 2018 -|12.0-CURRENT after reworking CTL frontend and backend options to use man:nv[3], allow creating multiple ioctl frontend ports. +|10 мая 2018 +|12.0-CURRENT после переработки параметров интерфейса и внутренней части CTL для использования man:nv[3], разрешено создание нескольких портов ioctl интерфейса. |1200064 |link:https://svnweb.freebsd.org/changeset/base/334074[334074] -|May 22, 2018 -|12.0-CURRENT after changing the ifnet address and multicast address TAILQ to CK_STAILQ. +|22 мая 2018 +|12.0-CURRENT после изменения ifnet address и multicast address TAILQ на CK_STAILQ. |1200065 |link:https://svnweb.freebsd.org/changeset/base/334290[334290] -|May 28, 2018 -|12.0-CURRENT after changing man:dwatch[1] to allow '-E code' to override profile EVENT_DETAILS. +|28 мая 2018 +|12.0-CURRENT после изменения man:dwatch[1] для разрешения использования '-E code' для переопределения EVENT_DETAILS в профиле. |1200066 |link:https://svnweb.freebsd.org/changeset/base/334466[334466] -|June 1, 2018 -|12.0-CURRENT after removal of in-kernel pmc tables for Intel. +|1 июня 2018 +|12.0-CURRENT после удаления внутриядерных таблиц pmc для Intel. |1200067 |link:https://svnweb.freebsd.org/changeset/base/334892[334892] -|June 9, 2018 -|12.0-CURRENT after adding DW_LANG constants to libdwarf. +|9 июня 2018 +|12.0-CURRENT после добавления констант DW_LANG в libdwarf. |1200068 |link:https://svnweb.freebsd.org/changeset/base/334930[334930] -|June 12, 2018 -|12.0-CURRENT after changing the interface between the NFS modules. +|12 июня 2018 +|12.0-CURRENT после изменения интерфейса между модулями NFS. |1200069 |link:https://svnweb.freebsd.org/changeset/base/335237[335237] -|June 15, 2018 -|12.0-CURRENT after changing `struct kerneldumpheader` to version 4 (similar to version 2 in 11-STABLE and previous). +|15 июня 2018 +|12.0-CURRENT после изменения `struct kerneldumpheader` до версии 4 (аналогично версии 2 в 11-STABLE и более ранних). |1200070 |link:https://svnweb.freebsd.org/changeset/base/335873[335873] -|July 2, 2018 -|12.0-CURRENT after inlining man:atomic[9] in modules on amd64 and i386 requiring all modules of consumers to be rebuilt for these architectures. +|2 июля 2018 +|12.0-CURRENT после встраивания man:atomic[9] в модули на amd64 и i386, что потребовало пересборки всех модулей потребителей для этих архитектур. |1200071 |link:https://svnweb.freebsd.org/changeset/base/335930[335930] -|July 4, 2018 -|12.0-CURRENT after changing the ABI and API of man:epoch[9] (link:https://svnweb.freebsd.org/changeset/base/335924[335924]) requiring modules of consumers to be rebuilt. +|4 июля 2018 +|12.0-CURRENT после изменения ABI и API man:epoch[9] (link:https://svnweb.freebsd.org/changeset/base/335924[335924]), что потребовало пересборки модулей потребителей. |1200072 |link:https://svnweb.freebsd.org/changeset/base/335979[335979] -|July 5, 2018 -|12.0-CURRENT after changing the ABI and API of `struct xinpcb` and friends. +|5 июля 2018 +|12.0-CURRENT после изменения ABI и API `struct xinpcb` и связанных структур. |1200073 |link:https://svnweb.freebsd.org/changeset/base/336313[336313] -|July 15, 2018 -|12.0-CURRENT after changing the ABI and API of `struct if_shared_ctx` and `struct if_softc_ctx` requiring modules of man:iflib[9] consumers to be rebuilt. +|15 июля 2018 +|12.0-CURRENT после изменения ABI и API структур `struct if_shared_ctx` и `struct if_softc_ctx`, что потребовало пересборки модулей потребителей man:iflib[9]. |1200074 |link:https://svnweb.freebsd.org/changeset/base/336360[336360] -|July 16, 2018 -|12.0-CURRENT after updating the configuration of libstdc++ to make use of C99 functions. +|16 июля 2018 +|12.0-CURRENT после обновления конфигурации libstdc++ для использования функций C99. |1200075 |link:https://svnweb.freebsd.org/changeset/base/336538[336538] -|July 19, 2018 -|12.0-CURRENT after zfsloader being folded into loader, and after adding ntpd:ntpd as uid:gid 123:123, and after removing arm big-endian support (MACHINE_ARCH=armeb). +|19 июля 2018 +|12.0-CURRENT после объединения `zfsloader` в `loader`, после добавления ntpd:ntpd как uid:gid 123:123 и после удаления поддержки big-endian для архитектуры arm (MACHINE_ARCH=armeb). |1200076 |link:https://svnweb.freebsd.org/changeset/base/336914[336914] -|July 30, 2018 -|12.0-CURRENT after KPI changes to timespecadd. +|30 июля 2018 +|12.0-CURRENT после изменений KPI в `timespecadd`. |1200077 |link:https://svnweb.freebsd.org/changeset/base/337576[337576] -|August 10, 2018 -|12.0-CURRENT after man:timespec_get[3] was added to the system. +|10 августа 2018 +|12.0-CURRENT после добавления в систему man:timespec_get[3]. |1200078 |link:https://svnweb.freebsd.org/changeset/base/337863[337863] -|August 15, 2018 -|12.0-CURRENT after exec.created hook for jails. +|15 августа 2018 +|12.0-CURRENT после выполнения хука exec.created для клеток. |1200079 |link:https://svnweb.freebsd.org/changeset/base/338061[338061] -|August 19, 2018 -|12.0-CURRENT after converting `arc4random` to using the Chacha20 algorithm and deprecating `arc4random_stir` and `arc4random_addrandom`. +|19 августа 2018 +|12.0-CURRENT после перевода `arc4random` на использование алгоритма Chacha20 и устаревания `arc4random_stir` и `arc4random_addrandom`. |1200080 |link:https://svnweb.freebsd.org/changeset/base/338172[338172] -|August 22, 2018 -|12.0-CURRENT after removing the drm drivers. +|22 августа 2018 +|12.0-CURRENT после удаления драйверов drm. |1200081 |link:https://svnweb.freebsd.org/changeset/base/338182[338182] -|August 21, 2018 -|12.0-CURRENT after KPI changes to NVMe. +|21 августа 2018 +|12.0-CURRENT после изменений KPI для NVMe. |1200082 |link:https://svnweb.freebsd.org/changeset/base/338285[338285] -|August 24, 2018 -|12.0-CURRENT after reverting the removal of the drm drivers. +|24 августа 2018 +|12.0-CURRENT после отмены удаления драйверов drm. |1200083 |link:https://svnweb.freebsd.org/changeset/base/338331[338331] -|August 26, 2018 -|12.0-CURRENT after removing `arc4random_stir` and `arc4random_addrandom`. +|26 августа 2018 +|12.0-CURRENT после удаления `arc4random_stir` и `arc4random_addrandom`. |1200084 |link:https://svnweb.freebsd.org/changeset/base/338478[338478] -|September 5, 2018 -|12.0-CURRENT after updating man:objcopy[1] to properly handle little-endian MIPS64 object files. +|5 сентября 2018 +|12.0-CURRENT после обновления man:objcopy[1] для корректной обработки little-endian MIPS64 объектных файлов. |1200085 |link:https://svnweb.freebsd.org/changeset/base/339270[339270] -|October 19, 2018 -|12.0-STABLE after updating OpenSSL to version 1.1.1. +|19 октября 2018 +|12.0-STABLE после обновления OpenSSL до версии 1.1.1. |1200086 |link:https://svnweb.freebsd.org/changeset/base/339732[339732] -|October 25, 2018 -|12.0-STABLE after updating OpenSSL shared library version numbers. +|25 октября 2018 +|12.0-STABLE после обновления номеров версий разделяемых библиотек OpenSSL. |1200500 |link:https://svnweb.freebsd.org/changeset/base/340471[340471] -|November 16, 2018 -|12-STABLE after releng/12.0 was branched. +|16 ноября 2018 +|12-STABLE после ветвления releng/12.0. |1200501 |link:https://svnweb.freebsd.org/changeset/base/342801[342801] -|January 6, 2019 -|12-STABLE after merge of fixing linux_destroy_dev() behaviour when there are still files open from the destroying cdev. +|6 января 2019 +|12-STABLE после слияния исправления поведения `linux_destroy_dev()`, когда остаются открытые файлы из уничтожаемого cdev. |1200502 |link:https://svnweb.freebsd.org/changeset/base/343126[343126] |January 17, 2019 -|12-STABLE after enabling sys/random.h #include from C++. +|12-STABLE после включения #include в C++. |1200503 |link:https://svnweb.freebsd.org/changeset/base/344152[344152] -|Febrary 15, 2019 -|12-STABLE after merge of fixing man:renameat[2] for CAPABILITIES kernels. +|15 февраля 2019 +|12-STABLE после слияния исправления man:renameat[2] для ядер с CAPABILITIES. |1200504 |link:https://svnweb.freebsd.org/changeset/base/345169[345169] -|March 15, 2019 -|12-STABLE after merging CCM for the benefit of the ZoF port. +|15 марта 2019 +|12-STABLE после слияния CCM для работы с портом ZoF. |1200505 |link:https://svnweb.freebsd.org/changeset/base/345327[345327] -|March 20, 2019 -|12-STABLE after merging support for selectively disabling ZFS without disabling loader. +|20 марта 2019 +|12-STABLE после объединения поддержки выборочного отключения ZFS без отключения загрузчика. |1200506 |link:https://svnweb.freebsd.org/changeset/base/346168[346168] -|April 12, 2019 -|12-STABLE after merging llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365. +|12 апреля 2019 +|12-STABLE после слияния llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp 8.0.0 финальный релиз r356365. |1200507 |link:https://svnweb.freebsd.org/changeset/base/346337[346337] -|April 17, 2019 -|12-STABLE after MFC of iflib changes in link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] and partially of link:https://svnweb.freebsd.org/changeset/base/345305[345305]. +|17 апреля 2019 +|12-STABLE после слияния изменений iflib из ревизий link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] и частично из link:https://svnweb.freebsd.org/changeset/base/345305[345305]. |1200508 |link:https://svnweb.freebsd.org/changeset/base/346784[346784] -|April 27, 2019 -|12-STABLE after ether_gen_addr availability. +|27 апреля 2019 +|12-STABLE после появления `ether_gen_addr`. |1200509 |link:https://svnweb.freebsd.org/changeset/base/347790[347790] -|May 16, 2019 -|12-STABLE after bumping the Mellanox driver version numbers (man:mlx4en[4]; man:mlx5en[4]). +|16 мая 2019 +|12-STABLE после обновления номеров версий драйверов Mellanox (man:mlx4en[4]; man:mlx5en[4]). |1200510 |link:https://svnweb.freebsd.org/changeset/base/348036[348036] -|May 21, 2019 -|12-STABLE after change to struct in linuxkpi from link:https://svnweb.freebsd.org/changeset/base/348035[348035]. +|21 мая 2019 +|12-STABLE после изменения структуры в linuxkpi из link:https://svnweb.freebsd.org/changeset/base/348035[348035]. |1200511 |link:https://svnweb.freebsd.org/changeset/base/348243[348243] -|May 24, 2019 -|12-STABLE after MFC of link:https://svnweb.freebsd.org/changeset/base/347843[347843]: adding group_leader member to struct task_struct to the LinuxKPI. +|24 мая 2019 +|12-STABLE после MFC изменения link:https://svnweb.freebsd.org/changeset/base/347843[347843]: добавление элемента `group_leader` в структуру `task_struct` для LinuxKPI. |1200512 |link:https://svnweb.freebsd.org/changeset/base/348245[348245] -|May 24, 2019 -|12-STABLE after adding context member to ww_mutex in LinuxKPI. +|24 мая 2019 +|12-STABLE после добавления элемента контекста к ww_mutex в LinuxKPI. |1200513 |link:https://svnweb.freebsd.org/changeset/base/349763[349763] -|July 5, 2019 -|12-STABLE after MFC of man:epoch[9] changes: link:https://svnweb.freebsd.org/changeset/base/349763[349763], link:https://svnweb.freebsd.org/changeset/base/340404[340404], link:https://svnweb.freebsd.org/changeset/base/340415[340415], link:https://svnweb.freebsd.org/changeset/base/340417[340417], link:https://svnweb.freebsd.org/changeset/base/340419[340419], link:https://svnweb.freebsd.org/changeset/base/340420[340420]. +|5 июля 2019 +|12-STABLE после MFC man:epoch[9] изменил: link:https://svnweb.freebsd.org/changeset/base/349763[349763], link:https://svnweb.freebsd.org/changeset/base/340404[340404], link:https://svnweb.freebsd.org/changeset/base/340415[340415], link:https://svnweb.freebsd.org/changeset/base/340417[340417], link:https://svnweb.freebsd.org/changeset/base/340419[340419], link:https://svnweb.freebsd.org/changeset/base/340420[340420]. |1200514 |link:https://svnweb.freebsd.org/changeset/base/350083[350083] -|July 17, 2019 -|12-STABLE after additions to LinuxKPI's rcu list. +|17 июля 2019 +|12-STABLE после добавлений в список rcu LinuxKPI. |1200515 |link:https://svnweb.freebsd.org/changeset/base/350877[350877] -|August 11, 2019 -|12-STABLE after MFC of link:https://svnweb.freebsd.org/changeset/base/349891[349891] (reorganize the SRCS lists as one file per line, and then alphabetize them) and link:https://svnweb.freebsd.org/changeset/base/349972[349972] (add arm_sync_icache() and arm_drain_writebuf() sysarch syscall wrappers). +|11 августа 2019 +|12-STABLE после слияния изменений link:https://svnweb.freebsd.org/changeset/base/349891[349891] (реорганизация списков SRCS в виде одного файла на строку с последующей сортировкой по алфавиту) и link:https://svnweb.freebsd.org/changeset/base/349972[349972] (добавление обёрток системных вызовов `arm_sync_icache()` и `arm_drain_writebuf()` для sysarch). |1200516 |link:https://svnweb.freebsd.org/changeset/base/351276[351276] -|August 20, 2019 -|12-STABLE after MFC of various changes to iflib link:https://svnweb.freebsd.org/changeset/base/351276[351276]. +|20 августа 2019 +|12-STABLE после слияния различных изменений в iflib (MFC) link:https://svnweb.freebsd.org/changeset/base/351276[351276]. |1200517 |link:https://svnweb.freebsd.org/changeset/base/352076[352076] -|September 9, 2019 -|12-STABLE after adding sysfs create/remove functions that handles multiple files in one call to the LinuxKPI. +|9 сентября 2019 +|12-STABLE после добавления функций создания/удаления sysfs, обрабатывающих несколько файлов за один вызов в LinuxKPI. |1200518 |link:https://svnweb.freebsd.org/changeset/base/352114[352114] -|September 10, 2019 -|12-STABLE after additional updates to LinuxKPI's sysfs. +|10 сентября 2019 +|12-STABLE после дополнительных обновлений LinuxKPI в sysfs. |1200519 |link:https://svnweb.freebsd.org/changeset/base/352351[352351] -|September 15, 2019 -|12-STABLE after MFC of the new fusefs driver. +|15 сентября 2019 +|12-STABLE после переноса (MFC) нового драйвера fusefs. |1201000 |link:https://svnweb.freebsd.org/changeset/base/352546[352546] -|September 20, 2019 -|releng/12.1 branched from stable/12@r352480. +|20 сентября 2019 +|releng/12.1 ответвился от stable/12@r352480. |1201500 |link:https://svnweb.freebsd.org/changeset/base/352547[352547] -|September 20, 2019 -|12-STABLE after branching releng/12.1. +|20 сентября 2019 +|12-STABLE после ветвления releng/12.1. |1201501 |link:https://svnweb.freebsd.org/changeset/base/354598[354598] -|November 10, 2019 -|12-STABLE after fixing a potential OOB read security issue in libc++. +|10 ноября 2019 +|12-STABLE после исправления потенциальной проблемы безопасности OOB-чтения в libc++. |1201502 |link:https://svnweb.freebsd.org/changeset/base/354613[354613] -|November 11, 2019 -|12-STABLE after enabling device class group attributes in the LinuxKPI. +|11 ноября 2019 +|12-STABLE после включения атрибутов группы классов устройств в LinuxKPI. |1201503 |link:https://svnweb.freebsd.org/changeset/base/354928[354928] -|November 21, 2019 -|12-STABLE after adding support for AT_EXECPATH to elf_aux_info(3). +|21 ноября 2019 +|12-STABLE после добавления поддержки `AT_EXECPATH` в man:elf_aux_info[3]. |1201504 |link:https://svnweb.freebsd.org/changeset/base/355658[355658] -|November 10, 2019 -|12-STABLE after correcting the C++ version check for declaring man:timespec_get[3]. +|10 ноября 2019 +|12-STABLE после исправления проверки версии C++ для объявления man:timespec_get[3]. |1201505 |link:https://svnweb.freebsd.org/changeset/base/355899[355899] -|December 19, 2019 -|12-STABLE after adding sigsetop extensions commonly found in musl libc and glibc. +|19 декабря 2019 +|12-STABLE после добавления расширений `sigsetop`, которые часто встречаются в musl libc и glibc. |1201506 |link:https://svnweb.freebsd.org/changeset/base/355968[355968] -|December 21, 2019 -|12-STABLE after doubling the value of `ARG_MAX`, for 64 bit platforms. +|21 декабря 2019 +|12-STABLE после удвоения значения `ARG_MAX` для 64-битных платформ. |1201507 |link:https://svnweb.freebsd.org/changeset/base/356306[356306] -|January 2, 2020 -|12-STABLE after adding functions to man:bitstring[3] to find contiguous sequences of set or unset bits. +|2 января 2020 +|12-STABLE после добавления функций в man:bitstring[3] для поиска непрерывных последовательностей установленных или сброшенных битов. |1201508 |link:https://svnweb.freebsd.org/changeset/base/356394[356394] -|January 6, 2020 -|12-STABLE after making USB statistics be per-device instead of per bus. +|6 января 2020 +|12-STABLE после изменения статистики USB для каждого устройства вместо каждой шины. |1201509 |link:https://svnweb.freebsd.org/changeset/base/356460[356460] -|January 7, 2020 -|12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 9.0.0 final release r372316. +|7 января 2020 +|12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до финального релиза 9.0.0 r372316. |1201510 |link:https://svnweb.freebsd.org/changeset/base/356679[356679] -|January 13, 2020 -|12-STABLE after adding own counter for cancelled USB transfers. +|13 января 2020 +|12-STABLE после добавления собственного счётчика для отменённых USB-передач. |1201511 |link:https://svnweb.freebsd.org/changeset/base/357333[357333] -|January 31, 2020 -|12-STABLE after adding [.filename]#/etc/os-release# as a symbolic link to [.filename]#/var/run/os-release#. +|31 января 2020 +|12-STABLE после добавления символической ссылки [.filename]#/etc/os-release# на [.filename]#/var/run/os-release#. |1201512 |link:https://svnweb.freebsd.org/changeset/base/357612[357612] -|February 6, 2020 -|12-STABLE after recent LinuxKPI changes. +|6 февраля 2020 +|12-STABLE после недавних изменений в LinuxKPI. |1201513 |link:https://svnweb.freebsd.org/changeset/base/359957[359957] -|Apr 15, 2020 -|12-STABLE after cloning the RCU interface into a sleepable and a non-sleepable part in the LinuxKPI. +|15 апреля 2020 +|12-STABLE после разделения интерфейса RCU на допускающий и не допускающий сон части в LinuxKPI. |1201514 |link:https://svnweb.freebsd.org/changeset/base/360525[360525] -|May 1, 2020 -|12-STABLE after implementing full man:bus_dma[9] support in the LinuxKPI and pulling in all dependencies. +|1 мая 2020 +|12-STABLE после реализации полной поддержки man:bus_dma[9] в LinuxKPI и включения всех зависимостей. |1201515 |link:https://svnweb.freebsd.org/changeset/base/360545[360545] -|May 1, 2020 -|12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0 release. +|1 мая 2020 +|12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0. |1201516 |link:https://svnweb.freebsd.org/changeset/base/360620[360620] -|May 4, 2020 -|12-STABLE after moving `id_mapped` to end of `bus_dma_impl` structure to preserve KPI. +|4 мая 2020 +|12-STABLE после перемещения `id_mapped` в конец структуры `bus_dma_impl` для сохранения KPI. |1201517 |link:https://svnweb.freebsd.org/changeset/base/361350[361350] -|May 21, 2020 -|12-STABLE after renaming `vm.max_wired` to `vm.max_user_wired` and changing its type. +|21 мая 2020 +|12-STABLE после переименования `vm.max_wired` в `vm.max_user_wired` и изменения его типа. |1201518 |link:https://svnweb.freebsd.org/changeset/base/362319[362319] -|June 18, 2020 -|12-STABLE after implementing __is_constexpr() function macro in the LinuxKPI. +|18 июня 2020 +|12-STABLE после реализации макроса функции `__is_constexpr()` в LinuxKPI. |1201519 |link:https://svnweb.freebsd.org/changeset/base/362916[362916] -|July 4, 2020 -|12-STABLE after making liblzma use libmd implementation of SHA256. +|4 июля 2020 +|12-STABLE после перевода liblzma на использование реализации SHA256 из libmd. |1201520 |link:https://svnweb.freebsd.org/changeset/base/363494[363494] -|July 24, 2020 -|12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.1 release. +|24 июля 2020 +|12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.1. |1201521 |link:https://svnweb.freebsd.org/changeset/base/363790[363790] -|August 3, 2020 -|12-STABLE after implementing the array_size() function in the LinuxKPI. +|3 августа 2020 +|12-STABLE после реализации функции `array_size()` в LinuxKPI. |1201522 |link:https://svnweb.freebsd.org/changeset/base/363832[363832] -|August 4, 2020 -|12-STABLE after adding sysctlbyname system call. +|4 августа 2020 +|12-STABLE после добавления системного вызова sysctlbyname. |1201523 |link:https://svnweb.freebsd.org/changeset/base/364390[364390] -|August 19, 2020 -|12-STABLE after change to clone the task struct fields related to RCU. +|19 августа 2020 +|12-STABLE после изменения для клонирования полей структуры задачи, связанных с RCU. |1201524 |link:https://svnweb.freebsd.org/changeset/base/365356[365356] -|September 5, 2020 -|12-STABLE after splitting XDR off into a separate kernel module, to minimize ZFS dependencies. +|5 сентября 2020 +|12-STABLE после выделения XDR в отдельный модуль ядра для минимизации зависимостей ZFS. |1201525 |link:https://svnweb.freebsd.org/changeset/base/365471[365471] -|September 8, 2020 -|12-STABLE after adding atomic and bswap functions to libcompiler_rt. +|8 сентября 2020 +|12-STABLE после добавления атомарных функций и функций `bswap` в libcompiler_rt. |1201526 |link:https://svnweb.freebsd.org/changeset/base/365608[365608] -|September 10, 2020 -|12-STABLE after updating net80211 and kernel privilege checking API changes. +|10 сентября 2020 +|12-STABLE после обновления net80211 и изменений API проверки привилегий ядра. |1202000 |link:https://svnweb.freebsd.org/changeset/base/365618[365618] -|September 11, 2020 -|releng/12.2 branched from stable/12@r365618. +|11 сентября 2020 +|releng/12.2 ответвился от stable/12@r365618. |1202500 |link:https://svnweb.freebsd.org/changeset/base/365619[365619] -|September 11, 2020 -|12-STABLE after branching releng/12.2. +|11 сентября 2020 +|12-STABLE после ветвления releng/12.2. |1202501 |link:https://svnweb.freebsd.org/changeset/base/365661[365661] -|September 12, 2020 -|12-STABLE after followup commits to libcompiler_rt. +|12 сентября 2020 +|12-STABLE после последующих коммитов в libcompiler_rt. |1202502 |link:https://svnweb.freebsd.org/changeset/base/365816[365816] -|September 16, 2020 -|12-STABLE after fixing man:crunchgen[1] application build with `WARNS=6`. +|16 сентября 2020 +|12-STABLE после исправления сборки приложения man:crunchgen[1] с `WARNS=6`. + +|1202503 +|link:https://svnweb.freebsd.org/changeset/base/366878[366878] +|20 октября 2020 +|12-STABLE после заполнения поля контекста захвата `ww_mutex` в LinuxKPI. + +|1202504 +|link:https://svnweb.freebsd.org/changeset/base/367511[367511] +|9 ноября 2020 +|12-STABLE после добавления man:ptsname_r[3]. + +|1202505 +|gitref:f3d75bed5475b15f21edf4052665b1212b548bd0[repository="src",length=12] +|28 декабря 2020 +|12-STABLE после улучшения обработки альтернативных настроек в стеке USB. + +|1202506 +|gitref:d36cc12ddfe3335ec8306bd4b393f11069551fa0[repository="src",length=12] +|30 апреля 2021 +|12-STABLE после изменения внутреннего KAPI между krpc и NFS. + +|1202507 +|gitref:1e279fe9deaea1c5e3503117dd3077dcffb1276d[repository="src",length=12] +|10 мая 2021 +|12-STABLE после изменения внутреннего KAPI между модулями nscl.ko и nfscommon.ko. + +|1202508 +|gitref:489236b0474857b0a7a2df77c302290e12be9e7b[repository="src",length=12] +|26 июня 2021 +|12-STABLE после изменения внутреннего KAPI между модулями krpc и nfsd. + +|1203500 +|gitref:f2900e784cb024e55ec0f5cd6834af5fadcb9f9a[repository="src",length=12] +|20 октября 2021 +|12-STABLE после ветвления releng/12.3. + +|1203501 +|gitref:b148c7b87148b653fdbef9c5aa591b9abcd99e26[repository="src",length=12] +|22 декабря 2021 +|12-STABLE после добавления атомарных функций и функций `bswap` в libcompiler_rt. + +|1203502 +|gitref:4772e4135cb3fe7f25531894f3b02f35ec086bda[repository="src",length=12] +|22 декабря 2021 +|12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 11.0.1. + +|1203503 +|gitref:e405b2dc913c99189aa9b923ed686a790253cc7e[repository="src",length=12] +|25 декабря 2021 +|12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 12.0.0. + +|1203504 +|gitref:1a398266112e73f91a4f2e2701ceefd3f2948aac[repository="src",length=12] +|25 декабря 2021 +|12-STABLE после добавления вспомогательных функций LSE атомарных операций вне строки в [.filename]#libcompiler_rt.a# для архитектуры aarch64. + +|1203505 +|gitref:0b7be89b329e0f862c25f34abfb13c75a4d45f2a[repository="src",length=12] +|25 декабря 2021 +|12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 13.0.0. + +|1203506 +|gitref:f591279d9c93bc2ea9cd1a447c2df11d437fbc7b[repository="src",length=12] +|12 февраля 2022 +|12-STABLE после восстановления компромисса доступности random(4). + +|1203507 +|gitref:180d95e04e938328de8f2a24d16fdb5049e15262[repository="src",length=12] +|9 апреля 2022 +|12-STABLE после объединения zlib. + +|1203508 +|gitref:6c717a28505d3e77a0c3780ca1f65eb85b538eb9[repository="src",length=12] +|19 октября 2022 +|12-STABLE после iflib: Разрешить драйверам определять, в какую очередь передавать данные. + +|1204000 +|gitref:fce871fe35204527a2ce08e43e1572ae9295cc00[repository="src",length=12] +|20 октября 2022 +|releng/12.4 — ветка от stable/12. + +|1204500 +|gitref:6a9031c5e2ba5435aa4ea08ee05c351d5bef035d[repository="src",length=12] +|20 октября 2022 +|12-STABLE после ветвления releng/12.4. + |=== +//// +Template: + +|12XXXXX +|gitref:XXXXXXXX[repository="src",length=12] +|October 30, 2021 +|12-STABLE after XXXXXX. +//// + [[versions-11]] -== FreeBSD 11 Versions +== FreeBSD 11 Версии [[freebsd-versions-table-11]] -.FreeBSD 11 `__FreeBSD_version` Values +.FreeBSD 11 Значения `__FreeBSD_version` [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |1100000 |link:https://svnweb.freebsd.org/changeset/base/256284[256284] -|October 10, 2013 +|10 октября 2013 |11.0-CURRENT. |1100001 |link:https://svnweb.freebsd.org/changeset/base/256776[256776] -|October 19, 2013 -|11.0-CURRENT after addition of support for "first boot" [.filename]#rc.d# scripts, so ports can make use of this. +|19 октября 2013 +|11.0-CURRENT после добавления поддержки сценариев [.filename]#rc.d# для "первой загрузки", что позволяет портам использовать эту возможность. |1100002 |link:https://svnweb.freebsd.org/changeset/base/257696[257696] -|November 5, 2013 -|11.0-CURRENT after dropping support for historic ioctls. +|5 ноября 2013 +|11.0-CURRENT после прекращения поддержки устаревших ioctl. |1100003 |link:https://svnweb.freebsd.org/changeset/base/258284[258284] -|November 17, 2013 -|11.0-CURRENT after iconv changes. +|17 ноября 2013 +|11.0-CURRENT после изменений в iconv. |1100004 |link:https://svnweb.freebsd.org/changeset/base/259424[259424] -|December 15, 2013 -|11.0-CURRENT after the behavior change of `gss_pseudo_random` introduced in link:https://svnweb.freebsd.org/changeset/base/259286[259286]. +|15 декабря 2013 +|11.0-CURRENT после изменения поведения `gss_pseudo_random`, внесённого в link:https://svnweb.freebsd.org/changeset/base/259286[259286]. |1100005 |link:https://svnweb.freebsd.org/changeset/base/260010[260010] -|December 28, 2013 -|11.0-CURRENT after link:https://svnweb.freebsd.org/changeset/base/259951[259951] - Do not coalesce entries in man:vm_map_stack[9]. +|28 декабря 2013 +|11.0-CURRENT после link:https://svnweb.freebsd.org/changeset/base/259951[259951] - Не объединять записи в man:vm_map_stack[9]. |1100006 |link:https://svnweb.freebsd.org/changeset/base/261246[261246] -|January 28, 2014 -|11.0-CURRENT after upgrades of libelf and libdwarf. +|28 января 2014 +|11.0-CURRENT после обновления libelf и libdwarf. |1100007 |link:https://svnweb.freebsd.org/changeset/base/261283[261283] -|January 30, 2014 -|11.0-CURRENT after upgrade of libc++ to 3.4 release. +|30 января 2014 +|11.0-CURRENT после обновления libc++ до версии 3.4. |1100008 |link:https://svnweb.freebsd.org/changeset/base/261881[261881] |February 14, 2014 -|11.0-CURRENT after libc++ 3.4 ABI compatibility fix. +|11.0-CURRENT после исправления совместимости ABI в libc++ 3.4. |1100009 |link:https://svnweb.freebsd.org/changeset/base/261991[261991] -|February 16, 2014 -|11.0-CURRENT after upgrade of llvm/clang to 3.4 release. +|16 февраля 2014 +|11.0-CURRENT после обновления llvm/clang до версии 3.4. |1100010 |link:https://svnweb.freebsd.org/changeset/base/262630[262630] -|February 28, 2014 -|11.0-CURRENT after upgrade of ncurses to 5.9 release (rev link:https://svnweb.freebsd.org/changeset/base/262629[262629]). +|28 февраля 2014 +|11.0-CURRENT после обновления ncurses до версии 5.9 (ревизия link:https://svnweb.freebsd.org/changeset/base/262629[262629]). |1100011 |link:https://svnweb.freebsd.org/changeset/base/263102[263102] -|March 13, 2014 -|11.0-CURRENT after ABI change in struct if_data. +|13 марта 2014 +|11.0-CURRENT после изменения ABI в структуре `if_data`. |1100012 |link:https://svnweb.freebsd.org/changeset/base/263140[263140] -|March 14, 2014 -|11.0-CURRENT after removal of Novell IPX protocol support. +|14 марта 2014 +|11.0-CURRENT после удаления поддержки протокола Novell IPX. |1100013 |link:https://svnweb.freebsd.org/changeset/base/263152[263152] -|March 14, 2014 -|11.0-CURRENT after removal of AppleTalk protocol support. +|14 марта 2014 +|11.0-CURRENT после удаления поддержки протокола AppleTalk. |1100014 |link:https://svnweb.freebsd.org/changeset/base/263235[263235] |March 16, 2014 -|11.0-CURRENT after renaming [.filename]## to [.filename]## to avoid a clash with similarly named headers in other operating systems. A compatibility header is left in place to limit build breakage, but will be deprecated in due course. +|11.0-CURRENT после переименования [.filename]## в [.filename]## во избежание конфликта с одноименными заголовочными файлами в других операционных системах. Совместимый заголовочный файл оставлен для уменьшения количества проблем при сборке, но в будущем будет устаревшим. |1100015 |link:https://svnweb.freebsd.org/changeset/base/263620[263620] -|March 22, 2014 -|11.0-CURRENT after `cnt` rename to `vm_cnt`. +|22 марта 2014 +|11.0-CURRENT после переименования `cnt` в `vm_cnt`. |1100016 |link:https://svnweb.freebsd.org/changeset/base/263660[263660] -|March 23, 2014 -|11.0-CURRENT after addition of `armv6hf TARGET_ARCH`. +|23 марта 2014 +|11.0-CURRENT после добавления `armv6hf TARGET_ARCH`. |1100017 |link:https://svnweb.freebsd.org/changeset/base/264121[264121] -|April 4, 2014 -|11.0-CURRENT after GCC support for `__block` definition. +|4 апреля 2014 +|11.0-CURRENT после удаления поддержки GCC для определения `__block`. |1100018 |link:https://svnweb.freebsd.org/changeset/base/264212[264212] -|April 6, 2014 -|11.0-CURRENT after support for UDP-Lite protocol (RFC 3828). +|6 апреля 2014 +|11.0-CURRENT после добавления поддержки протокола UDP-Lite (RFC 3828). |1100019 |link:https://svnweb.freebsd.org/changeset/base/264289[264289] -|April 8, 2014 -|11.0-CURRENT after FreeBSD-SA-14:06.openssl (rev link:https://svnweb.freebsd.org/changeset/base/264265[264265]). +|8 апреля 2014 +|11.0-CURRENT после FreeBSD-SA-14:06.openssl (ревизия link:https://svnweb.freebsd.org/changeset/base/264265[264265]). |1100020 |link:https://svnweb.freebsd.org/changeset/base/265215[265215] -|May 1, 2014 -|11.0-CURRENT after removing lindev in favor of having /dev/full by default (rev link:https://svnweb.freebsd.org/changeset/base/265212[265212]). +|1 мая 2014 +|11.0-CURRENT после удаления `lindev` в пользу наличия /dev/full по умолчанию (rev link:https://svnweb.freebsd.org/changeset/base/265212[265212]). |1100021 |link:https://svnweb.freebsd.org/changeset/base/266151[266151] -|May 6, 2014 -|11.0-CURRENT after [.filename]#src.opts.mk# changes, decoupling man:make.conf[5] from `buildworld` (rev link:https://svnweb.freebsd.org/changeset/base/265419[265419]). +|6 мая 2014 +|11.0-CURRENT после изменений в [.filename]#src.opts.mk#, отделяющих man:make.conf[5] от `buildworld` (rev link:https://svnweb.freebsd.org/changeset/base/265419[265419]). |1100022 |link:https://svnweb.freebsd.org/changeset/base/266904[266904] -|May 30, 2014 -|11.0-CURRENT after changes to man:strcasecmp[3], moving man:strcasecmp_l[3] and man:strncasecmp_l[3] from [.filename]## to [.filename]## for POSIX 2008 compliance (rev link:https://svnweb.freebsd.org/changeset/base/266865[266865]). +|30 мая 2014 +|11.0-CURRENT после изменений в man:strcasecmp[3], перемещении man:strcasecmp_l[3] и man:strncasecmp_l[3] из [.filename]## в [.filename]## для соответствия POSIX 2008 (rev link:https://svnweb.freebsd.org/changeset/base/266865[266865]). |1100023 |link:https://svnweb.freebsd.org/changeset/base/267440[267440] -|June 13, 2014 -|11.0-CURRENT after the CUSE library and kernel module have been attached to the build by default. +|13 июня 2014 +|11.0-CURRENT после подключения библиотеки CUSE и модуля ядра к сборке по умолчанию. |1100024 |link:https://svnweb.freebsd.org/changeset/base/267992[267992] -|June 27, 2014 -|11.0-CURRENT after man:sysctl[3] API change. +|27 июня 2014 +|11.0-CURRENT после изменения API man:sysctl[3]. |1100025 |link:https://svnweb.freebsd.org/changeset/base/268066[268066] -|June 30, 2014 -|11.0-CURRENT after man:regex[3] library update to add ">" and "<" delimiters. +|30 июня 2014 +|11.0-CURRENT после обновления библиотеки man:regex[3] для добавления разделителей ">" и "<". |1100026 |link:https://svnweb.freebsd.org/changeset/base/268118[268118] -|July 1, 2014 -|11.0-CURRENT after the internal interface between the NFS modules, including the krpc, was changed by (rev link:https://svnweb.freebsd.org/changeset/base/268115[268115]). +|1 июля 2014 +|11.0-CURRENT после изменения внутреннего интерфейса между модулями NFS, включая krpc, в (rev link:https://svnweb.freebsd.org/changeset/base/268115[268115]). |1100027 |link:https://svnweb.freebsd.org/changeset/base/268441[268441] -|July 8, 2014 -|11.0-CURRENT after FreeBSD-SA-14:17.kmem (rev link:https://svnweb.freebsd.org/changeset/base/268431[268431]). +|8 июля 2014 +|11.0-CURRENT после FreeBSD-SA-14:17.kmem (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/268431[268431]). |1100028 |link:https://svnweb.freebsd.org/changeset/base/268945[268945] -|July 21, 2014 -|11.0-CURRENT after man:hdestroy[3] compliance fix changed ABI. +|21 июля 2014 +|11.0-CURRENT после исправления соответствия man:hdestroy[3] изменился ABI. |1100029 |link:https://svnweb.freebsd.org/changeset/base/270173[270173] -|August 3, 2014 -|11.0-CURRENT after `SOCK_DGRAM` bug fix (rev link:https://svnweb.freebsd.org/changeset/base/269489[269489]). +|3 августа 2014 +|11.0-CURRENT после исправления ошибки `SOCK_DGRAM` (rev link:https://svnweb.freebsd.org/changeset/base/269489[269489]). |1100030 |link:https://svnweb.freebsd.org/changeset/base/270929[270929] -|September 1, 2014 -|11.0-CURRENT after `SOCK_RAW` sockets were changed to not modify packets at all. +|1 сентября 2014 +|11.0-CURRENT после того, как сокеты `SOCK_RAW` были изменены так, чтобы вообще не модифицировать пакеты. |1100031 |link:https://svnweb.freebsd.org/changeset/base/271341[271341] -|September 9, 2014 -|11.0-CURRENT after FreeBSD-SA-14:18.openssl (rev link:https://svnweb.freebsd.org/changeset/base/269686[269686]). +|9 сентября 2014 +|11.0-CURRENT после FreeBSD-SA-14:18.openssl (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/269686[269686]). |1100032 |link:https://svnweb.freebsd.org/changeset/base/271438[271438] -|September 11, 2014 -|11.0-CURRENT after API changes to `ifa_ifwithbroadaddr`, `ifa_ifwithdstaddr`, `ifa_ifwithnet`, and `ifa_ifwithroute`. +|11 сентября 2014 +|11.0-CURRENT после изменений API в `ifa_ifwithbroadaddr`, `ifa_ifwithdstaddr`, `ifa_ifwithnet` и `ifa_ifwithroute`. |1100033 |link:https://svnweb.freebsd.org/changeset/base/271657[271657] -|September 9, 2014 -|11.0-CURRENT after changing `access`, `eaccess`, and `faccessat` to validate the mode argument. +|9 сентября 2014 +|11.0-CURRENT после изменения `access`, `eaccess` и `faccessat` для проверки аргумента mode. |1100034 |link:https://svnweb.freebsd.org/changeset/base/271686[271686] -|September 16, 2014 -|11.0-CURRENT after FreeBSD-SA-14:19.tcp (rev link:https://svnweb.freebsd.org/changeset/base/271666[271666]). +|16 сентября 2014 +|11.0-CURRENT после FreeBSD-SA-14:19.tcp (rev link:https://svnweb.freebsd.org/changeset/base/271666[271666]). |1100035 |link:https://svnweb.freebsd.org/changeset/base/271705[271705] -|September 17, 2014 -|11.0-CURRENT after i915 HW context support. +|17 сентября 2014 +|11.0-CURRENT после добавления поддержки аппаратного контекста i915. |1100036 |link:https://svnweb.freebsd.org/changeset/base/271724[271724] -|September 17, 2014 -|Version bump to have ABI note distinguish binaries ready for strict man:mmap[2] flags checking (rev link:https://svnweb.freebsd.org/changeset/base/271724[271724]). +|17 сентября 2014 +|Увеличение версии для различия в ABI-примечании бинарных файлов, готовых к строгой проверке флагов man:mmap[2] (изменение link:https://svnweb.freebsd.org/changeset/base/271724[271724]). |1100037 |link:https://svnweb.freebsd.org/changeset/base/272674[272674] -|October 6, 2014 -|11.0-CURRENT after addition of man:explicit_bzero[3] (rev link:https://svnweb.freebsd.org/changeset/base/272673[272673]). +|6 октября 2014 +|11.0-CURRENT после добавления man:explicit_bzero[3] (изменение:https://svnweb.freebsd.org/changeset/base/272673[272673]). |1100038 |link:https://svnweb.freebsd.org/changeset/base/272951[272951] |October 11, 2014 -|11.0-CURRENT after cleanup of TCP wrapper headers. +|11.0-CURRENT после очистки заголовков TCP wrapper. |1100039 |link:https://svnweb.freebsd.org/changeset/base/273250[273250] -|October 18, 2014 -|11.0-CURRENT after removal of `MAP_RENAME` and `MAP_NORESERVE`. +|18 октября 2014 +|11.0-CURRENT после удаления `MAP_RENAME` и `MAP_NORESERVE`. |1100040 |link:https://svnweb.freebsd.org/changeset/base/273432[273432] -|October 21, 2014 -|11.0-CURRENT after FreeBSD-SA-14:23 (rev link:https://svnweb.freebsd.org/changeset/base/273146[273146]). +|21 октября 2014 +|11.0-CURRENT после FreeBSD-SA-14:23 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/273146[273146]). |1100041 |link:https://svnweb.freebsd.org/changeset/base/273875[273875] -|October 30, 2014 -|11.0-CURRENT after API changes to `syscall_register`, `syscall32_register`, `syscall_register_helper` and `syscall32_register_helper` (rev link:https://svnweb.freebsd.org/changeset/base/273707[273707]). +|30 октября 2014 +|11.0-CURRENT после изменений API в `syscall_register`, `syscall32_register`, `syscall_register_helper` и `syscall32_register_helper` (rev link:https://svnweb.freebsd.org/changeset/base/273707[273707]). |1100042 |link:https://svnweb.freebsd.org/changeset/base/274046[274046] -|November 3, 2014 -|11.0-CURRENT after a change to `struct tcpcb`. +|3 ноября 2014 +|11.0-CURRENT после изменения `struct tcpcb`. |1100043 |link:https://svnweb.freebsd.org/changeset/base/274085[274085] -|November 4, 2014 -|11.0-CURRENT after enabling man:vt[4] by default. +|4 ноября 2014 +|11.0-CURRENT после включения man:vt[4] по умолчанию. |1100044 |link:https://svnweb.freebsd.org/changeset/base/274116[274116] -|November 4, 2014 -|11.0-CURRENT after adding new libraries/utilities (dpv and figpar) for data throughput visualization. +|4 ноября 2014 +|11.0-CURRENT после добавления новых библиотек/утилит (`dpv` и `figpar`) для визуализации пропускной способности данных. |1100045 |link:https://svnweb.freebsd.org/changeset/base/274162[274162] -|November 4, 2014 -|11.0-CURRENT after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25. +|4 ноября 2014 +|11.0-CURRENT после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25. |1100046 |link:https://svnweb.freebsd.org/changeset/base/274470[274470] -|November 13, 2014 -|11.0-CURRENT after `kern_poll` signature change (rev link:https://svnweb.freebsd.org/changeset/base/274462[274462]). +|13 ноября 2014 +|11.0-CURRENT после изменения сигнатуры `kern_poll` (rev link:https://svnweb.freebsd.org/changeset/base/274462[274462]). |1100047 |link:https://svnweb.freebsd.org/changeset/base/274476[274476] -|November 13, 2014 -|11.0-CURRENT after removal of no-at version of VFS syscalls helpers, like `kern_open`. +|13 ноября 2014 +|11.0-CURRENT после удаления no-at версий вспомогательных системных вызовов VFS, таких как `kern_open`. |1100048 |link:https://svnweb.freebsd.org/changeset/base/275358[275358] -|December 1, 2014 -|11.0-CURRENT after starting the process of removing the use of the deprecated "M_FLOWID" flag from the network code. +|1 декабря 2014 +|11.0-CURRENT после начала процесса удаления использования устаревшего флага "M_FLOWID" из сетевого кода. |1100049 |link:https://svnweb.freebsd.org/changeset/base/275633[275633] -|December 9, 2014 -|11.0-CURRENT after importing an important fix to the LLVM vectorizer, which could lead to buffer overruns in some cases. +|9 декабря 2014 +|11.0-CURRENT после импорта важного исправления в векторизатор LLVM, которое в некоторых случаях могло приводить к переполнению буфера. |1100050 |link:https://svnweb.freebsd.org/changeset/base/275732[275732] -|December 12, 2014 -|11.0-CURRENT after adding AES-ICM and AES-GCM to OpenCrypto. +|12 декабря 2014 +|11.0-CURRENT после добавления AES-ICM и AES-GCM в OpenCrypto. |1100051 |link:https://svnweb.freebsd.org/changeset/base/276096[276096] |December 23, 2014 -|11.0-CURRENT after removing old NFS client and server code from the kernel. +|11.0-CURRENT после удаления старого кода клиента и сервера NFS из ядра. |1100052 |link:https://svnweb.freebsd.org/changeset/base/276479[276479] -|December 31, 2014 -|11.0-CURRENT after upgrade of clang, llvm and lldb to 3.5.0 release. +|31 декабря 2014 +|11.0-CURRENT после обновления clang, llvm и lldb до версии 3.5.0. |1100053 |link:https://svnweb.freebsd.org/changeset/base/276781[276781] -|January 7, 2015 -|11.0-CURRENT after man:MCLGET[9] gained a return value (rev link:https://svnweb.freebsd.org/changeset/base/276750[276750]). +|7 января 2015 +|11.0-CURRENT после того, как man:MCLGET[9] получил возвращаемое значение (rev link:https://svnweb.freebsd.org/changeset/base/276750[276750]). |1100054 |link:https://svnweb.freebsd.org/changeset/base/277213[277213] -|January 15, 2015 -|11.0-CURRENT after rewrite of callout subsystem. +|15 января 2015 +|11.0-CURRENT после переработки подсистемы вызовов. |1100055 |link:https://svnweb.freebsd.org/changeset/base/277528[277528] -|January 22, 2015 -|11.0-CURRENT after reverting callout changes in link:https://svnweb.freebsd.org/changeset/base/277213[277213]. +|22 января 2015 +|11.0-CURRENT после отмены изменений callout в link:https://svnweb.freebsd.org/changeset/base/277213[277213]. |1100056 |link:https://svnweb.freebsd.org/changeset/base/277610[277610] -|January 23, 2015 -|11.0-CURRENT after addition of `futimens` and `utimensat` system calls. +|23 января 2015 +|11.0-CURRENT после добавления системных вызовов `futimens` и `utimensat`. |1100057 |link:https://svnweb.freebsd.org/changeset/base/277897[277897] -|January 29, 2015 -|11.0-CURRENT after removal of d_thread_t. +|29 января 2015 +|11.0-CURRENT после удаления `d_thread_t`. |1100058 |link:https://svnweb.freebsd.org/changeset/base/278228[278228] -|February 5, 2015 -|11.0-CURRENT after addition of support for probing the SCSI VPD Extended Inquiry page (0x86). +|5 февраля 2015 +|11.0-CURRENT после добавления поддержки запроса страницы расширенного запроса SCSI VPD (0x86). |1100059 |link:https://svnweb.freebsd.org/changeset/base/278442[278442] -|February 9, 2015 -|11.0-CURRENT after import of xz 5.2.0, which added multi-threaded compression and lzma gained libthr dependency (rev link:https://svnweb.freebsd.org/changeset/base/278433[278433]). +|9 февраля 2015 +|11.0-CURRENT после импорта xz 5.2.0, который добавил многопоточное сжатие, и lzma получила зависимость от libthr (rev link:https://svnweb.freebsd.org/changeset/base/278433[278433]). |1100060 |link:https://svnweb.freebsd.org/changeset/base/278846[278846] -|February 16, 2015 -|11.0-CURRENT after forwarding `FBIO_BLANK` to framebuffer clients. +|16 февраля 2015 +|11.0-CURRENT после пересылки `FBIO_BLANK` клиентам фреймбуфера. |1100061 |link:https://svnweb.freebsd.org/changeset/base/278964[278964] -|February 18, 2015 -|11.0-CURRENT after `CDAI_FLAG_NONE` addition. +|18 февраля 2015 +|11.0-CURRENT после добавления `CDAI_FLAG_NONE`. |1100062 |link:https://svnweb.freebsd.org/changeset/base/279221[279221] -|February 23, 2015 -|11.0-CURRENT after man:mtio[4] and man:sa[4] API and man:ioctl[2] additions. +|23 февраля 2015 +|11.0-CURRENT после добавлений API man:mtio[4] и man:sa[4], а также man:ioctl[2]. |1100063 |link:https://svnweb.freebsd.org/changeset/base/279728[279728] -|March 7, 2015 -|11.0-CURRENT after adding mutex support to the `pps_ioctl()` API in the kernel. +|7 марта 2015 +|11.0-CURRENT после добавления поддержки мьютексов в API `pps_ioctl()` в ядре. |1100064 |link:https://svnweb.freebsd.org/changeset/base/279729[279729] -|March 7, 2015 -|11.0-CURRENT after adding PPS support to USB serial drivers. +|7 марта 2015 +|11.0-CURRENT после добавления поддержки PPS в драйверы USB-последовательных портов. |1100065 |link:https://svnweb.freebsd.org/changeset/base/280031[280031] -|March 15, 2015 -|11.0-CURRENT after upgrading clang, llvm and lldb to 3.6.0. +|15 марта 2015 +|11.0-CURRENT после обновления clang, llvm и lldb до версии 3.6.0. |1100066 |link:https://svnweb.freebsd.org/changeset/base/280306[280306] -|March 20, 2015 -|11.0-CURRENT after removal of SSLv2 support from OpenSSL. +|20 марта 2015 +|11.0-CURRENT после удаления поддержки SSLv2 из OpenSSL. |1100067 |link:https://svnweb.freebsd.org/changeset/base/280630[280630] -|March 25, 2015 -|11.0-CURRENT after removal of SSLv2 support from man:fetch[1] and man:fetch[3]. +|25 марта 2015 +|11.0-CURRENT после удаления поддержки SSLv2 из man:fetch[1] и man:fetch[3]. |1100068 |link:https://svnweb.freebsd.org/changeset/base/281172[281172] -|April 6, 2015 -|11.0-CURRENT after change to net.inet6.ip6.mif6table sysctl. +|6 апреля 2015 +|11.0-CURRENT после изменения системной настройки net.inet6.ip6.mif6table. |1100069 |link:https://svnweb.freebsd.org/changeset/base/281550[281550] -|April 15, 2015 -|11.0-CURRENT after removal of const qualifier from man:iconv[3]. +|15 апреля 2015 +|11.0-CURRENT после удаления квалификатора const из man:iconv[3]. |1100070 |link:https://svnweb.freebsd.org/changeset/base/281613[281613] -|April 16, 2015 -|11.0-CURRENT after moving ALTQ from [.filename]#contrib# to [.filename]#net/altq#. +|16 апреля 2015 +|11.0-CURRENT после перемещения ALTQ из [.filename]#contrib# в [.filename]#net/altq#. |1100071 |link:https://svnweb.freebsd.org/changeset/base/282256[282256] -|April 29, 2015 -|11.0-CURRENT after API/ABI change to man:smb[4] (rev link:https://svnweb.freebsd.org/changeset/base/281985[281985]). +|29 апреля 2015 +|11.0-CURRENT после изменения API/ABI в man:smb[4] (rev link:https://svnweb.freebsd.org/changeset/base/281985[281985]). |1100072 |link:https://svnweb.freebsd.org/changeset/base/282319[282319] -|May 1, 2015 -|11.0-CURRENT after adding man:reallocarray[3] in libc (rev link:https://svnweb.freebsd.org/changeset/base/282314[282314]). +|1 мая 2015 +|11.0-CURRENT после добавления man:reallocarray[3] в libc (изменение link:https://svnweb.freebsd.org/changeset/base/282314[282314]). |1100073 |link:https://svnweb.freebsd.org/changeset/base/282650[282650] -|May 8, 2015 -|11.0-CURRENT after extending the maximum number of allowed PCM channels in a PCM stream to 127 and decreasing the maximum number of sub-channels to 1. +|8 мая 2015 +|11.0-CURRENT после увеличения максимального количества разрешённых PCM-каналов в PCM-потоке до 127 и уменьшения максимального количества подканалов до 1. |1100074 |link:https://svnweb.freebsd.org/changeset/base/283526[283526] -|May 25, 2015 -|11.0-CURRENT after adding preliminary support for x86-64 Linux binaries (rev link:https://svnweb.freebsd.org/changeset/base/283424[283424]), and upgrading clang and llvm to 3.6.1. +|25 мая 2015 +|11.0-CURRENT после добавления предварительной поддержки бинарных файлов Linux для x86-64 (rev link:https://svnweb.freebsd.org/changeset/base/283424[283424]) и обновления clang и llvm до версии 3.6.1. |1100075 |link:https://svnweb.freebsd.org/changeset/base/283623[283623] -|May 27, 2015 -|11.0-CURRENT after `dounmount()` requiring a reference on the passed struct mount (rev link:https://svnweb.freebsd.org/changeset/base/283602[283602]). +|27 мая 2015 +|11.0-CURRENT после `dounmount()`, требующей ссылки на переданную структуру mount (изменение rev link:https://svnweb.freebsd.org/changeset/base/283602[283602]). |1100076 |link:https://svnweb.freebsd.org/changeset/base/283983[283983] -|June 4, 2015 -|11.0-CURRENT after disabled generation of legacy formatted password databases entries by default. +|4 июня 2015 +|11.0-CURRENT после отключения генерации записей в устаревших форматах баз данных паролей по умолчанию. |1100077 |link:https://svnweb.freebsd.org/changeset/base/284233[284233] -|June 10, 2015 -|11.0-CURRENT after API changes to `lim_cur`, `lim_max`, and `lim_rlimit` (rev link:https://svnweb.freebsd.org/changeset/base/284215[284215]). +|10 июня 2015 +|11.0-CURRENT после изменений API в `lim_cur`, `lim_max` и `lim_rlimit` (rev link:https://svnweb.freebsd.org/changeset/base/284215[284215]). |1100078 |link:https://svnweb.freebsd.org/changeset/base/286672[286672] -|August 12, 2015 -|11.0-CURRENT after man:crunchgen[1] changes from link:https://svnweb.freebsd.org/changeset/base/284356[284356] to link:https://svnweb.freebsd.org/changeset/base/285986[285986]. +|12 августа 2015 +|11.0-CURRENT после изменений man:crunchgen[1] в ревизиях link:https://svnweb.freebsd.org/changeset/base/284356[284356] до link:https://svnweb.freebsd.org/changeset/base/285986[285986]. |1100079 |link:https://svnweb.freebsd.org/changeset/base/286874[286874] -|August 18, 2015 -|11.0-CURRENT after import of jemalloc 4.0.0 (rev link:https://svnweb.freebsd.org/changeset/base/286866[286866]). +|18 августа 2015 +|11.0-CURRENT после импорта jemalloc 4.0.0 (ревизия link:https://svnweb.freebsd.org/changeset/base/286866[286866]). |1100080 |link:https://svnweb.freebsd.org/changeset/base/288943[288943] -|October 5, 2015 -|11.0-CURRENT after upgrading clang, llvm, lldb, compiler-rt and libc++ to 3.7.0. +|5 октября 2015 +|11.0-CURRENT после обновления clang, llvm, lldb, compiler-rt и libc++ до версии 3.7.0. |1100081 |link:https://svnweb.freebsd.org/changeset/base/289415[289415] -|October 16, 2015 -|11.0-CURRENT after undating ZFS to support resumable send/receive (rev link:https://svnweb.freebsd.org/changeset/base/289362[289362]). +|16 октября 2015 +|11.0-CURRENT после `обновления` ZFS для поддержки возобновляемой отправки/приёмки (rev link:https://svnweb.freebsd.org/changeset/base/289362[289362]). |1100082 |link:https://svnweb.freebsd.org/changeset/base/289594[289594] -|October 19, 2015 -|11.0-CURRENT after Linux KPI updates. +|19 октября 2015 +|11.0-CURRENT после обновлений Linux KPI. |1100083 |link:https://svnweb.freebsd.org/changeset/base/289749[289749] |October 22, 2015 -|11.0-CURRENT after renaming [.filename]#linuxapi.ko# to [.filename]#linuxkpi.ko#. +|11.0-CURRENT после переименования [.filename]#linuxapi.ko# в [.filename]#linuxkpi.ko#. |1100084 |link:https://svnweb.freebsd.org/changeset/base/290135[290135] -|October 29, 2015 -|11.0-CURRENT after moving the LinuxKPI module into the default kernel build. +|29 октября 2015 +|11.0-CURRENT после перемещения модуля LinuxKPI в стандартную сборку ядра. |1100085 |link:https://svnweb.freebsd.org/changeset/base/290207[290207] -|October 30, 2015 -|11.0-CURRENT after import of OpenSSL 1.0.2d. +|30 октября 2015 +|11.0-CURRENT после импорта OpenSSL 1.0.2d. |1100086 |link:https://svnweb.freebsd.org/changeset/base/290275[290275] -|November 2, 2015 -|11.0-CURRENT after making man:figpar[3] macros more unique. +|2 ноября 2015 +|11.0-CURRENT после изменения макросов man:figpar[3] для большей уникальности. |1100087 |link:https://svnweb.freebsd.org/changeset/base/290479[290479] -|November 7, 2015 -|11.0-CURRENT after changing man:sysctl_add_oid[9]'s ABI. +|7 ноября 2015 +|11.0-CURRENT после изменения ABI man:sysctl_add_oid[9]. |1100088 |link:https://svnweb.freebsd.org/changeset/base/290495[290495] -|November 7, 2015 -|11.0-CURRENT after string collation and locales rework. +|7 ноября 2015 +|11.0-CURRENT после переработки сортировки строк и локалей. |1100089 |link:https://svnweb.freebsd.org/changeset/base/290505[290505] -|November 7, 2015 -|11.0-CURRENT after API change to man:sysctl_add_oid[9] (rev link:https://svnweb.freebsd.org/changeset/base/290475[290475]). +|7 ноября 2015 +|11.0-CURRENT после изменения API в man:sysctl_add_oid[9] (rev link:https://svnweb.freebsd.org/changeset/base/290475[290475]). |1100090 |link:https://svnweb.freebsd.org/changeset/base/290715[290715] -|November 10, 2015 -|11.0-CURRENT after API change to callout_stop macro; (rev link:https://svnweb.freebsd.org/changeset/base/290664[290664]). +|10 ноября 2015 +|11.0-CURRENT после изменения API для макроса callout_stop; (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/290664[290664]). |1100091 |link:https://svnweb.freebsd.org/changeset/base/291537[291537] -|November 30, 2015 -|11.0-CURRENT after changing the interface between the [.filename]#nfsd.ko# and [.filename]#nfscommon.ko# modules in link:https://svnweb.freebsd.org/changeset/base/291527[291527]. +|30 ноября 2015 +|11.0-CURRENT после изменения интерфейса между модулями [.filename]#nfsd.ko# и [.filename]#nfscommon.ko# в link:https://svnweb.freebsd.org/changeset/base/291527[291527]. |1100092 |link:https://svnweb.freebsd.org/changeset/base/292499[292499] -|December 19, 2015 -|11.0-CURRENT after removal of vm_pageout_grow_cache (rev link:https://svnweb.freebsd.org/changeset/base/292469[292469]). +|19 декабря 2015 +|11.0-CURRENT после удаления `vm_pageout_grow_cache` (изменение:https://svnweb.freebsd.org/changeset/base/292469[292469]). |1100093 |link:https://svnweb.freebsd.org/changeset/base/292966[292966] -|December 30, 2015 -|11.0-CURRENT after removal of sys/crypto/sha2.h (rev link:https://svnweb.freebsd.org/changeset/base/292782[292782]). +|30 декабря 2015 +|11.0-CURRENT после удаления sys/crypto/sha2.h (изменение link:https://svnweb.freebsd.org/changeset/base/292782[292782]). |1100094 |link:https://svnweb.freebsd.org/changeset/base/294086[294086] -|January 15, 2016 -|11.0-CURRENT after LinuxKPI PCI changes (rev link:https://svnweb.freebsd.org/changeset/base/294086[294086]). +|15 января 2016 +|11.0-CURRENT после изменений LinuxKPI PCI (rev link:https://svnweb.freebsd.org/changeset/base/294086[294086]). |1100095 |link:https://svnweb.freebsd.org/changeset/base/294327[294327] -|January 19, 2016 -|11.0-CURRENT after LRO optimizations. +|19 января 2016 +|11.0-CURRENT после оптимизаций LRO. |1100096 |link:https://svnweb.freebsd.org/changeset/base/294505[294505] -|January 21, 2016 -|11.0-CURRENT after LinuxKPI idr_* additions. +|21 января 2016 +|11.0-CURRENT после добавления LinuxKPI idr_*. |1100097 |link:https://svnweb.freebsd.org/changeset/base/294860[294860] -|January 26, 2016 -|11.0-CURRENT after API change to man:dpv[3]. +|26 января 2016 +|11.0-CURRENT после изменения API в man:dpv[3]. |1100098 |link:https://svnweb.freebsd.org/changeset/base/295682[295682] -|February 16, 2016 -|11.0-CURRENT after API change to rman (rev link:https://svnweb.freebsd.org/changeset/base/294883[294883]). +|16 февраля 2016 +|11.0-CURRENT после изменения API в `rman` (rev link:https://svnweb.freebsd.org/changeset/base/294883[294883]). |1100099 |link:https://svnweb.freebsd.org/changeset/base/295739[295739] -|February 18, 2016 -|11.0-CURRENT after allowing drivers to set the TCP ACK/data segment aggregation limit. +|18 февраля 2016 +|11.0-CURRENT после разрешения драйверам устанавливать лимит агрегации сегментов TCP ACK/данных. |1100100 |link:https://svnweb.freebsd.org/changeset/base/296136[296136] -|February 26, 2016 -|11.0-CURRENT after man:bus_alloc_resource_any[9] API addition. +|26 февраля 2016 +|11.0-CURRENT после добавления API man:bus_alloc_resource_any[9]. |1100101 |link:https://svnweb.freebsd.org/changeset/base/296417[296417] -|March 5, 2016 -|11.0-CURRENT after upgrading our copies of clang, llvm, lldb and compiler-rt to 3.8.0 release. +|5 марта 2016 +|11.0-CURRENT после обновления копий clang, llvm, lldb и compiler-rt до релиза 3.8.0. |1100102 |link:https://svnweb.freebsd.org/changeset/base/296749[296749] -|March 12, 2016 -|11.0-CURRENT after libelf cross-endian fix in rev link:https://svnweb.freebsd.org/changeset/base/296685[296685]. +|12 марта 2016 +|11.0-CURRENT после исправления кросс-эндианности libelf в ревизии link:https://svnweb.freebsd.org/changeset/base/296685[296685]. |1100103 |link:https://svnweb.freebsd.org/changeset/base/297000[297000] -|March 18, 2016 -|11.0-CURRENT after using uintmax_t for rman ranges. +|18 марта 2016 +|11.0-CURRENT после использования `uintmax_t` для диапазонов `rman`. |1100104 |link:https://svnweb.freebsd.org/changeset/base/297156[297156] -|March 21, 2016 -|11.0-CURRENT after tracking filemon usage via a proc.p_filemon pointer rather than its own lists. +|21 марта 2016 +|11.0-CURRENT после отслеживания использования `filemon` через указатель proc.p_filemon вместо собственных списков. |1100105 |link:https://svnweb.freebsd.org/changeset/base/297602[297602] -|April 6, 2016 -|11.0-CURRENT after fixing sed functions `i` and `a` from discarding leading white space. +|6 апреля 2016 +|11.0-CURRENT после исправления функций `i` и `a` в sed, которые отбрасывали начальные пробелы. |1100106 |link:https://svnweb.freebsd.org/changeset/base/298486[298486] -|April 22, 2016 -|11.0-CURRENT after fixes for using IPv6 addresses with RDMA. +|22 апреля 2016 +|11.0-CURRENT после исправлений для использования IPv6-адресов с RDMA. |1100107 |link:https://svnweb.freebsd.org/changeset/base/299090[299090] -|May 4, 2016 -|11.0-CURRENT after improving performance and functionality of the man:bitstring[3] api. +|4 мая 2016 +|11.0-CURRENT после улучшения производительности и функциональности API man:bitstring[3]. |1100108 |link:https://svnweb.freebsd.org/changeset/base/299530[299530] -|May 12, 2016 -|11.0-CURRENT after fixing handling of IOCTLs in the LinuxKPI. +|12 мая 2016 +|11.0-CURRENT после исправления обработки IOCTL в LinuxKPI. |1100109 |link:https://svnweb.freebsd.org/changeset/base/299933[299933] -|May 16, 2016 -|11.0-CURRENT after implementing more Linux device related functions in the LinuxKPI. +|16 мая 2016 +|11.0-CURRENT после реализации дополнительных функций, связанных с устройствами Linux, в LinuxKPI. |1100110 |link:https://svnweb.freebsd.org/changeset/base/300207[300207] -|May 19, 2016 -|11.0-CURRENT after adding support for managing Shingled Magnetic Recording (SMR) drives. +|19 мая 2016 +|11.0-CURRENT после добавления поддержки управления дисками с черепичной магнитной записью (Shingled Magnetic Recording, SMR). |1100111 |link:https://svnweb.freebsd.org/changeset/base/300303[300303] -|May 20, 2016 -|11.0-CURRENT after removing brk and sbrk from arm64. +|20 мая 2016 +|11.0-CURRENT после удаления `brk` и `sbrk` из arm64. |1100112 |link:https://svnweb.freebsd.org/changeset/base/300539[300539] -|May 23, 2016 -|11.0-CURRENT after adding bit_count to the man:bitstring[3] API. +|23 мая 2016 +|11.0-CURRENT после добавления `bit_count` в man:bitstring[3] API. |1100113 |link:https://svnweb.freebsd.org/changeset/base/300701[300701] -|May 26, 2016 -|11.0-CURRENT after disabling alignment faults on armv6. +|26 мая 2016 +|11.0-CURRENT после отключения ошибок выравнивания на armv6. |1100114 |link:https://svnweb.freebsd.org/changeset/base/300806[300806] -|May 26, 2016 -|11.0-CURRENT after fixing man:crunchgen[1] usage with `MAKEOBJDIRPREFIX`. +|26 мая 2016 +|11.0-CURRENT после исправления использования man:crunchgen[1] с `MAKEOBJDIRPREFIX`. |1100115 |link:https://svnweb.freebsd.org/changeset/base/300982[300982] -|May 30, 2016 -|11.0-CURRENT after adding an mbuf flag for `M_HASHTYPE_`. +|30 мая 2016 +|11.0-CURRENT после добавления флага mbuf для `M_HASHTYPE_`. |1100116 |link:https://svnweb.freebsd.org/changeset/base/301011[301011] -|May 31, 2016 -|11.0-CURRENT after SHA-512t256 (rev link:https://svnweb.freebsd.org/changeset/base/300903[300903]) and Skein (rev link:https://svnweb.freebsd.org/changeset/base/300966[300966]) where added to libmd, libcrypt, the kernel, and ZFS (rev link:https://svnweb.freebsd.org/changeset/base/301010[301010]). +|31 мая 2016 +|11.0-CURRENT после добавления SHA-512t256 (ревизия link:https://svnweb.freebsd.org/changeset/base/300903[300903]) и Skein (ревизия link:https://svnweb.freebsd.org/changeset/base/300966[300966]) в libmd, libcrypt, ядро и ZFS (ревизия link:https://svnweb.freebsd.org/changeset/base/301010[301010]). |1100117 |link:https://svnweb.freebsd.org/changeset/base/301892[301892] -|June 6, 2016 -|11.0-CURRENT after libpam was synced with stock link:https://svnweb.freebsd.org/changeset/base/301602[301602], bumping library version. +|6 июня 2016 +|11.0-CURRENT после синхронизации libpam с основной версией link:https://svnweb.freebsd.org/changeset/base/301602[301602], что привело к увеличению версии библиотеки. |1100118 |link:https://svnweb.freebsd.org/changeset/base/302071[302071] -|June 21, 2016 -|11.0-CURRENT after breaking binary compatibility of struct disk link:https://svnweb.freebsd.org/changeset/base/302069[302069]. +|21 июня 2016 +|11.0-CURRENT после нарушения бинарной совместимости структуры disk link:https://svnweb.freebsd.org/changeset/base/302069[302069]. |1100119 |link:https://svnweb.freebsd.org/changeset/base/302150[302150] -|June 23, 2016 -|11.0-CURRENT after switching geom_disk to using a pool mutex. +|23 июня 2016 +|11.0-CURRENT после перевода `geom_disk` на использование мьютекса пула. |1100120 |link:https://svnweb.freebsd.org/changeset/base/302153[302153] -|June 23, 2016 -|11.0-CURRENT after adding spares to struct ifnet. +|23 июня 2016 +|11.0-CURRENT после добавления запасных элементов в struct ifnet. |1100121 |link:https://svnweb.freebsd.org/changeset/base/303979[303979] -|August 12, 2015 -|11-STABLE after `releng/11.0` branched from 11-STABLE (rev link:https://svnweb.freebsd.org/changeset/base/303975[303975]). +|12 августа 2015 +|11-STABLE после того, как ветка `releng/11.0` отделилась от 11-STABLE (изменение:https://svnweb.freebsd.org/changeset/base/303975[303975]). |1100500 |link:https://svnweb.freebsd.org/changeset/base/303979[303979] -|August 12, 2016 -|11.0-STABLE adding branched link:https://svnweb.freebsd.org/changeset/base/303976[303976]. +|12 августа 2016 +|11.0-STABLE добавлена ветвленная link: https://svnweb.freebsd.org/changeset/base/303976[303976]. |1100501 |link:https://svnweb.freebsd.org/changeset/base/304609[304609] -|August 22, 2016 -|11.0-STABLE after adding C++11 thread_local support. +|22 августа 2016 +|11.0-STABLE после добавления поддержки `thread_local` в C++11. |1100502 |link:https://svnweb.freebsd.org/changeset/base/304865[304865] -|August 26, 2016 -|11.0-STABLE after `LC_*_MASK` fix. +|26 августа 2016 +|11.0-STABLE после исправления `LC_*_MASK`. |1100503 |link:https://svnweb.freebsd.org/changeset/base/305733[305733] -|September 12, 2016 -|11.0-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]. +|12 сентября 2016 +|11.0-STABLE после устранения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]. |1100504 |link:https://svnweb.freebsd.org/changeset/base/307330[307330] -|October 14, 2016 -|11.0-STABLE after ZFS merges. +|14 октября 2016 +|11.0-STABLE после объединения ZFS. |1100505 |link:https://svnweb.freebsd.org/changeset/base/307590[307590] -|October 19, 2016 -|11.0-STABLE after `struct fb_info` change. +|19 октября 2016 +|11.0-STABLE после изменения `struct fb_info`. |1100506 |link:https://svnweb.freebsd.org/changeset/base/308048[308048] -|October 28, 2016 -|11.0-STABLE after installing header files required development with libzfs_core. +|28 октября 2016 +|11.0-STABLE после установки заголовочных файлов, необходимых для разработки с `libzfs_core`. |1100507 |link:https://svnweb.freebsd.org/changeset/base/310120[310120] -|December 15, 2016 -|11.0-STABLE after adding the `ki_moretdname` member to `struct kinfo_proc` and `struct kinfo_proc32` to export the whole thread name to user-space utilities. +|15 декабря 2016 +|11.0-STABLE после добавления члена `ki_moretdname` в структуры `struct kinfo_proc` и `struct kinfo_proc32` для экспорта полного имени потока в пользовательские утилиты. |1100508 |link:https://svnweb.freebsd.org/changeset/base/310618[310618] -|December 26, 2016 -|11.0-STABLE after upgrading our copies of clang, llvm, lldb, compiler-rt and libc++ to 3.9.1 release, and adding lld 3.9.1. +|26 декабря 2016 +|11.0-STABLE после обновления копий clang, llvm, lldb, compiler-rt и libc++ до версии 3.9.1, а также добавления lld 3.9.1. |1100509 |link:https://svnweb.freebsd.org/changeset/base/311186[311186] -|January 3, 2017 -|11.0-STABLE after man:crunchgen[1] META_MODE fix (rev link:https://svnweb.freebsd.org/changeset/base/311185[311185]). +|3 января 2017 +|11.0-STABLE после исправления META_MODE в man:crunchgen[1] (изменение link:https://svnweb.freebsd.org/changeset/base/311185[311185]). |1100510 |link:https://svnweb.freebsd.org/changeset/base/315312[315312] -|March 15, 2017 -|11.0-STABLE after MFC of `fget_cap`, `getsock_cap`, and related changes. +|15 марта 2017 +|11.0-STABLE после MFC изменений, связанных с `fget_cap`, `getsock_cap` и другими. |1100511 |link:https://svnweb.freebsd.org/changeset/base/316423[316423] -|April 2, 2017 -|11.0-STABLE after multiple MFCs updating clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0 release. +|2 апреля 2017 +|11.0-STABLE после нескольких MFC, обновляющих clang, llvm, lld, lldb, compiler-rt и libc++ до версии 4.0.0. |1100512 |link:https://svnweb.freebsd.org/changeset/base/316498[316498] -|April 4, 2017 -|11.0-STABLE after making CAM SIM lock optional (revs link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674]). +|4 апреля 2017 +|11.0-STABLE после того, как блокировка CAM SIM стала опциональной (ревизии link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674]). |1100513 |link:https://svnweb.freebsd.org/changeset/base/318197[318197] -|May 11, 2017 -|11.0-STABLE after merging the addition of the [.filename]## header. +|11 мая 2017 +|11.0-STABLE после объединения добавления заголовочного файла [.filename]##. |1100514 |link:https://svnweb.freebsd.org/changeset/base/319279[319279] -|May 31, 2017 -|11.0-STABLE after multiple MFCs of `libpcap`, `WITHOUT_INET6`, and a few other minor changes. +|31 мая 2017 +|11.0-STABLE после нескольких MFC для `libpcap`, `WITHOUT_INET6` и нескольких других незначительных изменений. |1101000 |link:https://svnweb.freebsd.org/changeset/base/320486[320486] |June 30, 2017 -|`releng/11.1` branched from `stable/11`. +|`releng/11.1` отделился от `stable/11`. |1101001 |link:https://svnweb.freebsd.org/changeset/base/320763[320763] |June 30, 2017 -|11.1-RC1 After merging the `MAP_GUARD` man:mmap[2] flag addition. +|11.1-RC1 После объединения добавления флага `MAP_GUARD` в man:mmap[2]. |1101500 |link:https://svnweb.freebsd.org/changeset/base/320487[320487] |June 30, 2017 -|11-STABLE after `releng/11.1` branched. +|11-STABLE после ветвления `releng/11.1`. |1101501 |link:https://svnweb.freebsd.org/changeset/base/320666[320666] -|July 5, 2017 -|11-STABLE after merging the `MAP_GUARD` man:mmap[2] flag addition. +|5 июля 2017 +|11-STABLE после объединения добавления флага `MAP_GUARD` в man:mmap[2]. |1101502 |link:https://svnweb.freebsd.org/changeset/base/321688[321688] -|July 29, 2017 -|11-STABLE after merging the NFS client forced dismount support `umount -N` addition. +|29 июля 2017 +|11-STABLE после объединения поддержки принудительного демонтирования клиента NFS с добавлением `umount -N`. |1101503 |link:https://svnweb.freebsd.org/changeset/base/323431[323431] -|September 11, 2017 -|11-STABLE after merging changes making the WRFSBASE instruction operational on amd64. +|11 сентября 2017 +|11-STABLE после объединения изменений, сделавших инструкцию WRFSBASE работоспособной на amd64. |1101504 |link:https://svnweb.freebsd.org/changeset/base/324006[324006] -|September 26, 2017 -|11-STABLE after merging libm from head, which adds man:cacoshl[3], man:cacosl[3], man:casinhl[3], man:casinl[3], man:catanl[3], man:catanhl[3], man:sincos[3], man:sincosf[3], and man:sincosl[3]. +|26 сентября 2017 +|11-STABLE после слияния libm из head, что добавляет man:cacoshl[3], man:cacosl[3], man:casinhl[3], man:casinl[3], man:catanl[3], man:catanhl[3], man:sincos[3], man:sincosf[3] и man:sincosl[3]. |1101505 |link:https://svnweb.freebsd.org/changeset/base/324023[324023] -|September 26, 2017 -|11-STABLE after merging clang, llvm, lld, lldb, compiler-rt and libc++ 5.0.0 release. +|26 сентября 2017 +|11-STABLE после объединения clang, llvm, lld, lldb, compiler-rt и libc++ версии 5.0.0. |1101506 |link:https://svnweb.freebsd.org/changeset/base/325003[325003] -|October 25, 2017 -|11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/324281[324281], adding the `value.u16` field to `struct diocgattr_arg`. +|25 октября 2017 +|11-STABLE после слияния link:https://svnweb.freebsd.org/changeset/base/324281[324281], добавления поля `value.u16` в структуру `struct diocgattr_arg`. |1101507 |link:https://svnweb.freebsd.org/changeset/base/328379[328379] -|January 24, 2018 -|11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/325028[325028], fixing `ptrace()` to always clear the correct thread event when resuming. +|24 января 2018 +|11-STABLE после слияния с link:https://svnweb.freebsd.org/changeset/base/325028[325028], исправление `ptrace()` для корректной очистки события нужного потока при возобновлении. |1101508 |link:https://svnweb.freebsd.org/changeset/base/328386[328386] -|January 24, 2018 -|11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/316648[316648], renaming smp_no_rendevous_barrier() to smp_no_rendezvous_barrier(). +|24 января 2018 +|11-STABLE после объединения изменений link:https://svnweb.freebsd.org/changeset/base/316648[316648], переименование `smp_no_rendevous_barrier()` в `smp_no_rendezvous_barrier()`. |1101509 |link:https://svnweb.freebsd.org/changeset/base/328653[328653] -|February 1, 2018 -|11-STABLE after an overwrite merge backport of the LinuxKPI from FreeBSD-head. +|1 февраля 2018 +|11-STABLE после обратного переноса (overwrite merge) LinuxKPI из FreeBSD-head. |1101510 |link:https://svnweb.freebsd.org/changeset/base/329450[329450] -|February 17, 2018 -|11-STABLE after the cmpxchg() macro is now fully functional in the LinuxKPI. +|17 февраля 2018 +|11-STABLE после того, как макрос `cmpxchg()` стал полностью функциональным в LinuxKPI. |1101511 |link:https://svnweb.freebsd.org/changeset/base/329981[329981] -|February 25, 2018 -|11-STABLE after concluding the recent LinuxKPI related updates. +|25 февраля 2018 +|11-STABLE после завершения недавних обновлений, связанных с LinuxKPI. |1101512 |link:https://svnweb.freebsd.org/changeset/base/331219[331219] -|March 19, 2018 -|11-STABLE after merging retpoline support from the upstream llvm, clang and lld 5.0 branches. +|19 марта 2018 +|11-STABLE после объединения поддержки `retpoline` из вышестоящих веток llvm, clang и lld 5.0. |1101513 |link:https://svnweb.freebsd.org/changeset/base/331838[331838] -|March 31, 2018 -|11-STABLE after merging clang, llvm, lld, lldb, compiler-rt and libc++ 6.0.0 release, and several follow-up fixes. +|31 марта 2018 +|11-STABLE после объединения clang, llvm, lld, lldb, compiler-rt и libc++ версии 6.0.0, а также нескольких последующих исправлений. |1101514 |link:https://svnweb.freebsd.org/changeset/base/332089[332089] -|April 5, 2018 -|11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/328331[328331], adding a new and incompatible interpretation of ${name}_limits in rc scripts. +|5 апреля 2018 +|11-STABLE после объединения изменений link:https://svnweb.freebsd.org/changeset/base/328331[328331], добавляющего новую и несовместимую интерпретацию `${name}_limits` в rc-скриптах. |1101515 |link:https://svnweb.freebsd.org/changeset/base/332363[332363] -|April 10, 2018 -|11-STABLE after reverting link:https://svnweb.freebsd.org/changeset/base/331880[331880], removing the new and incompatible interpretation of ${name}_limits in rc scripts. +|10 апреля 2018 +|11-STABLE после отмены изменений из link:https://svnweb.freebsd.org/changeset/base/331880[331880], удаляющих новую и несовместимую интерпретацию `${name}_limits` в rc-скриптах. |1101516 |link:https://svnweb.freebsd.org/changeset/base/334392[334392] -|May 30, 2018 -|11-STABLE after man:dwatch[1] touch-ups. +|30 мая 2018 +|11-STABLE после доработок man:dwatch[1]. |1102000 |link:https://svnweb.freebsd.org/changeset/base/334459[334459] -|June 1, 2018 -|`releng/11.2` branched from `stable/11`. +|1 июня 2018 +|`releng/11.2` отделился от `stable/11`. |1102500 |link:https://svnweb.freebsd.org/changeset/base/334461[334461] -|June 1, 2018 -|11-STABLE after releng/11.2 branched. +|1 июня 2018 +|11-STABLE после ветвления releng/11.2. |1102501 |link:https://svnweb.freebsd.org/changeset/base/335436[335436] |June 20, 2018 -|11-STABLE after LinuxKPI updates requiring recompilation of external kernel modules. +|11-STABLE после обновлений LinuxKPI, требующих перекомпиляции внешних модулей ядра. |1102502 |link:https://svnweb.freebsd.org/changeset/base/338617[338617] -|September 12, 2018 -|11-STABLE after adding a socket option SO_TS_CLOCK and fixing recvmsg32() system call to properly down-convert layout of the 64-bit structures to match what 32-bit app(s) expect. +|12 сентября 2018 +|11-STABLE после добавления сокет-опции SO_TS_CLOCK и исправления системного вызова `recvmsg32()` для корректного преобразования структуры 64-битных данных в формат, ожидаемый 32-битными приложениями. |1102503 |link:https://svnweb.freebsd.org/changeset/base/338931[338931] -|September 25, 2018 -|11-STABLE after merging a TCP checksum fix to man:iflib[9] and adding new media types to if_media.h +|25 сентября 2018 +|11-STABLE после объединения исправления контрольной суммы TCP в man:iflib[9] и добавления новых типов носителей в if_media.h |1102504 |link:https://svnweb.freebsd.org/changeset/base/340309[340309] -|November 9, 2018 -|11-STABLE after several MFCs: updating man:objcopy[1] to properly handle little-endian MIPS64 object; correcting mips64el test to use ELF header; adding test for 64-bit ELF in _libelf_is_mips64el. +|9 ноября 2018 +|11-STABLE после нескольких MFC: обновление man:objcopy[1] для корректной обработки little-endian MIPS64 объектов; исправление теста mips64el для использования заголовка ELF; добавление теста для 64-битного ELF в _libelf_is_mips64el. |1102505 |link:https://svnweb.freebsd.org/changeset/base/342804[342804] -|January 6, 2019 -|11-STABLE after merge of fixing linux_destroy_dev() behaviour when there are still files open from the destroying cdev. +|6 января 2019 +|11-STABLE после слияния исправления поведения `linux_destroy_dev()`, когда остаются открытые файлы из уничтожаемого cdev. |1102506 |link:https://svnweb.freebsd.org/changeset/base/344220[344220] -|February 17, 2019 -|11-STABLE after merging multiple commits to lualoader. +|17 февраля 2019 +|11-STABLE после объединения нескольких коммитов в lualoader. |1102507 |link:https://svnweb.freebsd.org/changeset/base/346296[346296] -|April 16, 2019 -|11-STABLE after merging llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365. +|16 апреля 2019 +|11-STABLE после объединения llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp 8.0.0 финальный релиз r356365. |1102508 |link:https://svnweb.freebsd.org/changeset/base/346784[346784] -|April 27, 2019 -|11-STABLE after ether_gen_addr availability. +|27 апреля 2019 +|11-STABLE после появления `ether_gen_addr`. |1102509 |link:https://svnweb.freebsd.org/changeset/base/347212[347212] -|May 6, 2019 -|11-STABLE after MFC of link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] and partially of link:https://svnweb.freebsd.org/changeset/base/345305[345305]. +|6 мая 2019 +|11-STABLE после слияния изменений link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] и частично link:https://svnweb.freebsd.org/changeset/base/345305[345305]. |1102510 |link:https://svnweb.freebsd.org/changeset/base/347883[347883] -|May 16, 2019 -|11-STABLE after bumping the Mellanox driver version numbers (man:mlx4en[4]; man:mlx5en[4]). +|16 мая 2019 +|11-STABLE после увеличения номеров версий драйверов Mellanox (man:mlx4en[4]; man:mlx5en[4]). |1103000 |link:https://svnweb.freebsd.org/changeset/base/349026[349026] -|June 14, 2019 -|`releng/11.3` branched from `stable/11`. +|14 июня 2019 +|`releng/11.3` отделился от `stable/11`. |1103500 |link:https://svnweb.freebsd.org/changeset/base/349027[349027] -|June 14, 2019 -|11-STABLE after releng/11.3 branched. +|14 июня 2019 +|11-STABLE после ветвления releng/11.3. |1103501 |link:https://svnweb.freebsd.org/changeset/base/354598[354598] -|November 10, 2019 -|11-STABLE after fixing a potential OOB read security issue in libc++. +|10 ноября 2019 +|11-STABLE после исправления потенциальной проблемы безопасности OOB-чтения в libc++. |1103502 |link:https://svnweb.freebsd.org/changeset/base/354614[354614] -|November 11, 2019 -|11-STABLE after adding sysfs create/remove functions that handles multiple files in one call to the LinuxKPI. +|11 ноября 2019 +|11-STABLE после добавления функций создания/удаления sysfs, обрабатывающих несколько файлов за один вызов в LinuxKPI. |1103503 |link:https://svnweb.freebsd.org/changeset/base/354615[354615] -|November 11, 2019 -|11-STABLE after LinuxKPI sysfs improvements. +|11 ноября 2019 +|11-STABLE после улучшений LinuxKPI sysfs. |1103504 |link:https://svnweb.freebsd.org/changeset/base/354616[354616] -|November 11, 2019 -|11-STABLE after enabling device class group attributes in the LinuxKPI. +|11 ноября 2019 +|11-STABLE после включения атрибутов группы классов устройств в LinuxKPI. |1103505 |link:https://svnweb.freebsd.org/changeset/base/355899[355899] -|December 19, 2019 -|11-STABLE after adding sigsetop extensions commonly found in musl libc and glibc. +|19 декабря 2019 +|11-STABLE после добавления расширений `sigsetop`, которые часто встречаются в musl libc и glibc. |1103506 |link:https://svnweb.freebsd.org/changeset/base/356395[356395] -|January 6, 2020 -|11-STABLE after making USB statistics be per-device instead of per bus. +|6 января 2020 +|11-STABLE после изменения статистики USB для каждого устройства вместо каждой шины. |1103507 |link:https://svnweb.freebsd.org/changeset/base/356680[356680] -|January 13, 2020 -|11-STABLE after adding own counter for cancelled USB transfers. +|13 января 2020 +|11-STABLE после добавления собственного счетчика для отмененных USB-передач. |1103508 |link:https://svnweb.freebsd.org/changeset/base/357613[357613] -|February 6, 2020 -|11-STABLE after recent LinuxKPI changes. +|6 февраля 2020 +|11-STABLE после недавних изменений в LinuxKPI. |1103509 |link:https://svnweb.freebsd.org/changeset/base/359958[359958] -|April 15, 2020 -|11-STABLE after moving `id_mapped` to end of `bus_dma_impl` structure to preserve KPI. +|15 апреля 2020 +|11-STABLE после перемещения `id_mapped` в конец структуры `bus_dma_impl` для сохранения KPI. |1103510 |link:https://svnweb.freebsd.org/changeset/base/360658[360658] -|May 5, 2020 -|11-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 9.0.0 final release r372316. +|5 мая 2020 +|11-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до финального релиза 9.0.0 r372316. |1103511 |link:https://svnweb.freebsd.org/changeset/base/360784[360784] -|May 7, 2020 -|11-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0 release. +|7 мая 2020 +|11-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0. |1104000 |link:https://svnweb.freebsd.org/changeset/base/360804[360804] -|May 8, 2020 -|`releng/11.4` branched from `stable/11`. +|8 мая 2020 +|`releng/11.4` ответвился от `stable/11`. |1104001 |link:https://svnweb.freebsd.org/changeset/base/360822[360822] -|May 8, 2020 -|11.4-BETA1 after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0 release. +|8 мая 2020 +|11.4-BETA1 после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0. |1104500 |link:https://svnweb.freebsd.org/changeset/base/360805[360805] -|May 8, 2020 -|11-STABLE after releng/11.4 branched. +|8 мая 2020 +|11-STABLE после ветвления releng/11.4. |1104501 |link:https://svnweb.freebsd.org/changeset/base/362320[362320] -|June 18, 2020 -|11-STABLE after implementing __is_constexpr() function macro in the LinuxKPI. +|18 июня 2020 +|11-STABLE после реализации макроса функции `__is_constexpr()` в LinuxKPI. |1104502 |link:https://svnweb.freebsd.org/changeset/base/362919[362919] -|July 4, 2020 -|11-STABLE after making liblzma use libmd implementation of SHA256. +|4 июля 2020 +|11-STABLE после перевода liblzma на использование реализации SHA256 из libmd. |1104503 |link:https://svnweb.freebsd.org/changeset/base/363496[363496] -|July 24, 2020 -|11-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.1 release. +|24 июля 2020 +|11-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.1. |1104504 |link:https://svnweb.freebsd.org/changeset/base/363792[363792] -|August 3, 2020 -|11-STABLE after implementing the array_size() function in the LinuxKPI. +|3 августа 2020 +|11-STABLE после реализации функции `array_size()` в LinuxKPI. |1104505 |link:https://svnweb.freebsd.org/changeset/base/364391[364391] -|August 19, 2020 -|11-STABLE after change to clone the task struct fields related to RCU. +|19 августа 2020 +|11-STABLE после изменения для клонирования полей структуры задачи, связанных с RCU. |1104506 |link:https://svnweb.freebsd.org/changeset/base/365471[365471] -|September 8, 2020 -|11-STABLE after adding atomic and bswap functions to libcompiler_rt. +|8 сентября 2020 +|11-STABLE после добавления атомарных функций и функций `bswap` в libcompiler_rt. |1104507 |link:https://svnweb.freebsd.org/changeset/base/365661[365661] -|September 12, 2020 -|11-STABLE after followup commits to libcompiler_rt. +|12 сентября 2020 +|11-STABLE после последующих коммитов в libcompiler_rt. + +|1104508 +|link:https://svnweb.freebsd.org/changeset/base/366879[366879] +|20 октября 2020 +|11-STABLE после заполнения поля контекста получения в `ww_mutex` в LinuxKPI. + +|1104509 +|link:https://svnweb.freebsd.org/changeset/base/366889[366889] +|20 октября 2020 +|11-STABLE после добавлений в список `RCU` LinuxKPI. + +|1104510 +|link:https://svnweb.freebsd.org/changeset/base/367513[367513] +|9 ноября 2020 +|11-STABLE после добавления `ptsname_r`. |=== [[versions-10]] -== FreeBSD 10 Versions +== Версии FreeBSD 10 [[freebsd-versions-table-10]] -.FreeBSD 10 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` в FreeBSD 10 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |1000000 |link:https://svnweb.freebsd.org/changeset/base/225757[225757] -|September 26, 2011 +|26 сентября 2011 |10.0-CURRENT. |1000001 |link:https://svnweb.freebsd.org/changeset/base/227070[227070] -|November 4, 2011 -|10-CURRENT after addition of the man:posix_fadvise[2] system call. +|4 ноября 2011 +|10-CURRENT после добавления системного вызова man:posix_fadvise[2]. |1000002 |link:https://svnweb.freebsd.org/changeset/base/228444[228444] -|December 12, 2011 -|10-CURRENT after defining boolean true/false in sys/types.h, sizeof(bool) may have changed (rev link:https://svnweb.freebsd.org/changeset/base/228444[228444]). 10-CURRENT after xlocale.h was introduced (rev link:https://svnweb.freebsd.org/changeset/base/227753[227753]). +|12 декабря 2011 +|10-CURRENT после определения булевых значений true/false в sys/types.h, размер sizeof(bool) мог измениться (ревизия link:https://svnweb.freebsd.org/changeset/base/228444[228444]). 10-CURRENT после введения xlocale.h (ревизия link:https://svnweb.freebsd.org/changeset/base/227753[227753]). |1000003 |link:https://svnweb.freebsd.org/changeset/base/228571[228571] -|December 16, 2011 -|10-CURRENT after major changes to man:carp[4], changing size of struct in_aliasreq, struct in6_aliasreq (rev link:https://svnweb.freebsd.org/changeset/base/228571[228571]) and straitening arguments check of SIOCAIFADDR (rev link:https://svnweb.freebsd.org/changeset/base/228574[228574]). +|16 декабря 2011 +|10-CURRENT после значительных изменений в man:carp[4], изменения размера структур `in_aliasreq`, `in6_aliasreq` (rev link:https://svnweb.freebsd.org/changeset/base/228571[228571]) и упрощения проверки аргументов SIOCAIFADDR (rev link:https://svnweb.freebsd.org/changeset/base/228574[228574]). |1000004 |link:https://svnweb.freebsd.org/changeset/base/229204[229204] -|January 1, 2012 -|10-CURRENT after the removal of `skpc()` and the addition of man:memcchr[9] (rev link:https://svnweb.freebsd.org/changeset/base/229200[229200]). +|1 января 2012 +|10-CURRENT после удаления `skpc()` и добавления man:memcchr[9] (изменение:https://svnweb.freebsd.org/changeset/base/229200[229200]). |1000005 |link:https://svnweb.freebsd.org/changeset/base/230207[230207] -|January 16, 2012 -|10-CURRENT after the removal of support for SIOCSIFADDR, SIOCSIFNETMASK, SIOCSIFBRDADDR, SIOCSIFDSTADDR ioctls. +|16 января 2012 +|10-CURRENT после удаления поддержки ioctls SIOCSIFADDR, SIOCSIFNETMASK, SIOCSIFBRDADDR, SIOCSIFDSTADDR. |1000006 |link:https://svnweb.freebsd.org/changeset/base/230590[230590] -|January 26, 2012 -|10-CURRENT after introduction of read capacity data asynchronous notification in the man:cam[4] layer. +|26 января 2012 +|10-CURRENT после внедрения асинхронного уведомления о данных пропускной способности чтения в слое man:cam[4]. |1000007 |link:https://svnweb.freebsd.org/changeset/base/231025[231025] -|February 5, 2012 -|10-CURRENT after introduction of new man:tcp[4] socket options: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT. +|5 февраля 2012 +|10-CURRENT после введения новых параметров сокета man:tcp[4]: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL и TCP_KEEPCNT. |1000008 |link:https://svnweb.freebsd.org/changeset/base/231505[231505] -|February 11, 2012 -|10-CURRENT after introduction of the new extensible man:sysctl[3] interface NET_RT_IFLISTL to query address lists. +|11 февраля 2012 +|10-CURRENT после введения нового расширяемого интерфейса man:sysctl[3] NET_RT_IFLISTL для запроса списков адресов. |1000009 |link:https://svnweb.freebsd.org/changeset/base/232154[232154] -|February 25, 2012 -|10-CURRENT after import of libarchive 3.0.3 (rev link:https://svnweb.freebsd.org/changeset/base/232153[232153]). +|25 февраля 2012 +|10-CURRENT после импорта libarchive 3.0.3 (rev link:https://svnweb.freebsd.org/changeset/base/232153[232153]). |1000010 |link:https://svnweb.freebsd.org/changeset/base/233757[233757] -|March 31, 2012 -|10-CURRENT after xlocale cleanup. +|31 марта 2012 +|10-CURRENT после очистки `xlocale`. |1000011 |link:https://svnweb.freebsd.org/changeset/base/234355[234355] -|April 16, 2012 -|10-CURRENT import of LLVM/Clang 3.1 trunk link:https://svnweb.freebsd.org/changeset/base/154661[154661] (rev link:https://svnweb.freebsd.org/changeset/base/234353[234353]). +|16 апреля 2012 +|Импорт LLVM/Clang 3.1 из 10-CURRENT, ссылка на ревизию: link:https://svnweb.freebsd.org/changeset/base/154661[154661] (ревизия link:https://svnweb.freebsd.org/changeset/base/234353[234353]). |1000012 |link:https://svnweb.freebsd.org/changeset/base/234924[234924] -|May 2, 2012 -|10-CURRENT jemalloc import. +|2 мая 2012 +|10-CURRENT импорт jemalloc. |1000013 |link:https://svnweb.freebsd.org/changeset/base/235788[235788] -|May 22, 2012 -|10-CURRENT after byacc import. +|22 мая 2012 +|10-CURRENT после импорта `byacc`. |1000014 |link:https://svnweb.freebsd.org/changeset/base/237631[237631] -|June 27, 2012 -|10-CURRENT after BSD sort becoming the default sort (rev link:https://svnweb.freebsd.org/changeset/base/237629[237629]). +|27 июня 2012 +|10-CURRENT после того, как BSD sort стал сортировкой по умолчанию (rev link:https://svnweb.freebsd.org/changeset/base/237629[237629]). |1000015 |link:https://svnweb.freebsd.org/changeset/base/238405[238405] -|July 12, 2012 -|10-CURRENT after import of OpenSSL 1.0.1c. +|12 июля 2012 +|10-CURRENT после импорта OpenSSL 1.0.1c. -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/238429[238429] |July 13, 2012 -|10-CURRENT after the fix for LLVM/Clang 3.1 regression. +|10-CURRENT после исправления регрессии в LLVM/Clang 3.1. |1000016 |link:https://svnweb.freebsd.org/changeset/base/239179[239179] -|August 8, 2012 -|10-CURRENT after KBI change in man:ucom[4]. +|8 августа 2012 +|10-CURRENT после изменения KBI в man:ucom[4]. |1000017 |link:https://svnweb.freebsd.org/changeset/base/239214[239214] -|August 8, 2012 -|10-CURRENT after adding streams feature to the USB stack. +|8 августа 2012 +|10-CURRENT после добавления функции потоков в стек USB. |1000018 |link:https://svnweb.freebsd.org/changeset/base/240233[240233] -|September 8, 2012 -|10-CURRENT after major rewrite of man:pf[4]. +|8 сентября 2012 +|10-CURRENT после значительной переработки man:pf[4]. |1000019 |link:https://svnweb.freebsd.org/changeset/base/241245[241245] -|October 6, 2012 -|10-CURRENT after man:pfil[9] KBI/KPI changed to supply packets in net byte order to AF_INET filter hooks. +|6 октября 2012 +|10-CURRENT после изменения KBI/KPI в man:pfil[9] для передачи пакетов в порядке байтов сети к хукам фильтрации AF_INET. |1000020 |link:https://svnweb.freebsd.org/changeset/base/241610[241610] -|October 16, 2012 -|10-CURRENT after the network interface cloning KPI changed and struct if_clone becoming opaque. +|16 октября 2012 +|10-CURRENT после изменения KPI клонирования сетевых интерфейсов и структура `if_clone` стала непрозрачной. |1000021 |link:https://svnweb.freebsd.org/changeset/base/241897[241897] -|October 22, 2012 -|10-CURRENT after removal of support for non-MPSAFE filesystems and addition of support for FUSEFS (rev link:https://svnweb.freebsd.org/changeset/base/241519[241519]). +|22 октября 2012 +|10-CURRENT после удаления поддержки не-MPSAFE файловых систем и добавления поддержки FUSEFS (rev link:https://svnweb.freebsd.org/changeset/base/241519[241519]). |1000022 |link:https://svnweb.freebsd.org/changeset/base/241913[241913] -|October 22, 2012 -|10-CURRENT after the entire IPv4 stack switched to network byte order for IP packet header storage. +|22 октября 2012 +|10-CURRENT после перевода всего стека IPv4 на сетевой порядок байтов для хранения заголовков IP-пакетов. |1000023 |link:https://svnweb.freebsd.org/changeset/base/242619[242619] -|November 5, 2012 -|10-CURRENT after jitter buffer in the common USB serial driver code, to temporarily store characters if the TTY buffer is full. Add flow stop and start signals when this happens. +|5 ноября 2012 +|10-CURRENT после буфера джиттера в общем коде драйвера USB-последовательного порта, для временного хранения символов, если буфер TTY заполнен. Добавлены сигналы остановки и возобновления потока при возникновении такой ситуации. |1000024 |link:https://svnweb.freebsd.org/changeset/base/242624[242624] -|November 5, 2012 -|10-CURRENT after clang was made the default compiler on i386 and amd64. +|5 ноября 2012 +|10-CURRENT после того, как clang стал компилятором по умолчанию для i386 и amd64. |1000025 |link:https://svnweb.freebsd.org/changeset/base/243443[243443] -|November 17, 2012 -|10-CURRENT after the sin6_scope_id member variable in struct sockaddr_in6 was changed to being filled by the kernel before passing the structure to the userland via sysctl or routing socket. This means the KAME-specific embedded scope id in sin6_addr.s6_addr[2] is always cleared in userland application. +|17 ноября 2012 +|10-CURRENT после того, как переменная-член sin6_scope_id в структуре sockaddr_in6 была изменена таким образом, что ядро заполняет её перед передачей структуры в пользовательское пространство через sysctl или сокет маршрутизации. Это означает, что специфичный для KAME встроенный идентификатор области в sin6_addr.s6_addr[2] всегда очищается в пользовательских приложениях. |1000026 |link:https://svnweb.freebsd.org/changeset/base/245313[245313] -|January 11, 2013 -|10-CURRENT after install gained the -N flag. May also be used to indicate the presence of nmtree. +|11 января 2013 +|10-CURRENT после установки получил флаг -N. Также может использоваться для указания наличия nmtree. |1000027 |link:https://svnweb.freebsd.org/changeset/base/246084[246084] -|January 29, 2013 -|10-CURRENT after cat gained the -l flag (rev link:https://svnweb.freebsd.org/changeset/base/246083[246083]). +|29 января 2013 +|10-CURRENT после того, как команда `cat` получила флаг `-l` (rev link:https://svnweb.freebsd.org/changeset/base/246083[246083]). |1000028 |link:https://svnweb.freebsd.org/changeset/base/246759[246759] -|February 13, 2013 -|10-CURRENT after USB moved to the driver structure requiring a rebuild of all USB modules. +|13 февраля 2013 +|10-CURRENT после перемещения USB в структуру драйверов, требующую пересборки всех модулей USB. |1000029 |link:https://svnweb.freebsd.org/changeset/base/247821[247821] -|March 4, 2013 -|10-CURRENT after the introduction of tickless callout facility which also changed the layout of struct callout (rev link:https://svnweb.freebsd.org/changeset/base/247777[247777]). +|4 марта 2013 +|10-CURRENT после внедрения бестиковой системы отложенных вызовов, которая также изменила структуру struct callout (rev link:https://svnweb.freebsd.org/changeset/base/247777[247777]). |1000030 |link:https://svnweb.freebsd.org/changeset/base/248210[248210] -|March 12, 2013 -|10-CURRENT after KPI breakage introduced in the VM subsystem to support read/write locking (rev link:https://svnweb.freebsd.org/changeset/base/248084[248084]). +|12 марта 2013 +|10-CURRENT после нарушения KPI, внесённого в подсистему VM для поддержки блокировок чтения/записи (rev link:https://svnweb.freebsd.org/changeset/base/248084[248084]). |1000031 |link:https://svnweb.freebsd.org/changeset/base/249943[249943] -|April 26, 2013 -|10-CURRENT after the dst parameter of the ifnet `if_output` method was changed to take const qualifier (rev link:https://svnweb.freebsd.org/changeset/base/249925[249925]). +|26 апреля 2013 +|10-CURRENT после изменения параметра `dst` метода `if_output` в ifnet, чтобы он принимал квалификатор const (ревизия link:https://svnweb.freebsd.org/changeset/base/249925[249925]). |1000032 |link:https://svnweb.freebsd.org/changeset/base/250163[250163] -|May 1, 2013 -|10-CURRENT after the introduction of the man:accept4[2] (rev link:https://svnweb.freebsd.org/changeset/base/250154[250154]) and man:pipe2[2] (rev link:https://svnweb.freebsd.org/changeset/base/250159[250159]) system calls. +|1 мая 2013 +|10-CURRENT после введения системных вызовов man:accept4[2] (rev link:https://svnweb.freebsd.org/changeset/base/250154[250154]) и man:pipe2[2] (rev link:https://svnweb.freebsd.org/changeset/base/250159[250159]). |1000033 |link:https://svnweb.freebsd.org/changeset/base/250881[250881] -|May 21, 2013 -|10-CURRENT after flex 2.5.37 import. +|21 мая 2013 +|10-CURRENT после импорта flex 2.5.37. |1000034 |link:https://svnweb.freebsd.org/changeset/base/251294[251294] -|June 3, 2013 -|10-CURRENT after the addition of these functions to libm: man:cacos[3], man:cacosf[3], man:cacosh[3], man:cacoshf[3], man:casin[3], man:casinf[3], man:casinh[3], man:casinhf[3], man:catan[3], man:catanf[3], man:catanh[3], man:catanhf[3], man:logl[3], man:log2l[3], man:log10l[3], man:log1pl[3], man:expm1l[3]. +|3 июня 2013 +|10-CURRENT после добавления следующих функций в libm: man:cacos[3], man:cacosf[3], man:cacosh[3], man:cacoshf[3], man:casin[3], man:casinf[3], man:casinh[3], man:casinhf[3], man:catan[3], man:catanf[3], man:catanh[3], man:catanhf[3], man:logl[3], man:log2l[3], man:log10l[3], man:log1pl[3], man:expm1l[3]. |1000035 |link:https://svnweb.freebsd.org/changeset/base/251527[251527] -|June 8, 2013 -|10-CURRENT after the introduction of the man:aio_mlock[2] system call (rev link:https://svnweb.freebsd.org/changeset/base/251526[251526]). +|8 июня 2013 +|10-CURRENT после введения системного вызова man:aio_mlock[2] (изменение link:https://svnweb.freebsd.org/changeset/base/251526[251526]). |1000036 |link:https://svnweb.freebsd.org/changeset/base/253049[253049] -|July 9, 2013 -|10-CURRENT after the addition of a new function to the kernel GSSAPI module's function call interface. +|9 июля 2013 +|10-CURRENT после добавления новой функции в интерфейс вызовов функций модуля ядра GSSAPI. |1000037 |link:https://svnweb.freebsd.org/changeset/base/253089[253089] -|July 9, 2013 -|10-CURRENT after the migration of statistics structures to PCPU counters. Changed structures include: `ahstat`, `arpstat`, `espstat`, `icmp6_ifstat`, `icmp6stat`, `in6_ifstat`, `ip6stat`, `ipcompstat`, `ipipstat`, `ipsecstat`, `mrt6stat`, `mrtstat`, `pfkeystat`, `pim6stat`, `pimstat`, `rip6stat`, `udpstat` (rev link:https://svnweb.freebsd.org/changeset/base/253081[253081]). +|9 июля 2013 +|10-CURRENT после миграции структур статистики на PCPU-счетчики. Измененные структуры включают: `ahstat`, `arpstat`, `espstat`, `icmp6_ifstat`, `icmp6stat`, `in6_ifstat`, `ip6stat`, `ipcompstat`, `ipipstat`, `ipsecstat`, `mrt6stat`, `mrtstat`, `pfkeystat`, `pim6stat`, `pimstat`, `rip6stat`, `udpstat` (rev link:https://svnweb.freebsd.org/changeset/base/253081[253081]). |1000038 |link:https://svnweb.freebsd.org/changeset/base/253396[253396] -|July 16, 2013 -|10-CURRENT after making `ARM EABI` the default ABI on arm, armeb, armv6, and armv6eb architectures. +|16 июля 2013 +|10-CURRENT после установки `ARM EABI` в качестве ABI по умолчанию для архитектур arm, armeb, armv6 и armv6eb. |1000039 |link:https://svnweb.freebsd.org/changeset/base/253549[253549] -|July 22, 2013 -|10-CURRENT after `CAM` and man:mps[4] driver scanning changes. +|22 июля 2013 +|10-CURRENT после изменений в сканировании драйверов `CAM` и man:mps[4]. |1000040 |link:https://svnweb.freebsd.org/changeset/base/253638[253638] -|July 24, 2013 -|10-CURRENT after addition of libusb pkgconf files. +|24 июля 2013 +|10-CURRENT после добавления файлов `pkgconf` для libusb. |1000041 |link:https://svnweb.freebsd.org/changeset/base/253970[253970] -|August 5, 2013 -|10-CURRENT after change from `time_second` to `time_uptime` in `PF_INET6`. +|5 августа 2013 +|10-CURRENT после изменения с `time_second` на `time_uptime` в `PF_INET6`. |1000042 |link:https://svnweb.freebsd.org/changeset/base/254138[254138] -|August 9, 2013 -|10-CURRENT after VM subsystem change to unify soft and hard busy mechanisms. +|9 августа 2013 +|10-CURRENT после изменения подсистемы VM для объединения механизмов мягкой и жесткой занятости. |1000043 |link:https://svnweb.freebsd.org/changeset/base/254273[254273] -|August 13, 2013 -|10-CURRENT after `WITH_ICONV` is enabled by default. A new man:src.conf[5] option, `WITH_LIBICONV_COMPAT` (disabled by default) adds `libiconv_open` to provide compatibility with the package:libiconv[] port. +|13 августа 2013 +|10-CURRENT после того, как `WITH_ICONV` включён по умолчанию. Новая опция man:src.conf[5], `WITH_LIBICONV_COMPAT` (выключена по умолчанию), добавляет `libiconv_open` для обеспечения совместимости с портом package:converters/libiconv[]. |1000044 |link:https://svnweb.freebsd.org/changeset/base/254358[254358] -|August 15, 2013 -|10-CURRENT after `libc.so` conversion to an man:ld[1] script (rev link:https://svnweb.freebsd.org/changeset/base/251668[251668]). +|15 августа 2013 +|10-CURRENT после преобразования [.filename]#libc.so# в скрипт man:ld[1] (изменение rev link:https://svnweb.freebsd.org/changeset/base/251668[251668]). |1000045 |link:https://svnweb.freebsd.org/changeset/base/254389[254389] -|August 15, 2013 -|10-CURRENT after devfs programming interface change by replacing the cdevsw flag `D_UNMAPPED_IO` with the struct cdev flag `SI_UNMAPPED`. +|15 августа 2013 +|10-CURRENT после изменения программного интерфейса devfs путем замены флага `D_UNMAPPED_IO` в cdevsw на флаг `SI_UNMAPPED` в структуре cdev. |1000046 |link:https://svnweb.freebsd.org/changeset/base/254537[254537] -|August 19, 2013 -|10-CURRENT after addition of `M_PROTO[9-12]` and removal of `M_FRAG\|M_FIRSTFRAG\|M_LASTFRAG` mbuf flags (rev link:https://svnweb.freebsd.org/changeset/base/254524[254524], link:https://svnweb.freebsd.org/changeset/base/254526[254526]). +|19 августа 2013 +|10-CURRENT после добавления `M_PROTO[9-12]` и удаления `M_FRAG`|M_FIRSTFRAG\|M_LASTFRAG` флаги mbuf (версии link:https://svnweb.freebsd.org/changeset/base/254524[254524], link:https://svnweb.freebsd.org/changeset/base/254526[254526]). |1000047 |link:https://svnweb.freebsd.org/changeset/base/254627[254627] -|August 21, 2013 -|10-CURRENT after man:stat[2] update to allow storing some Windows/DOS and CIFS file attributes as man:stat[2] flags. +|21 августа 2013 +|10-CURRENT после обновления man:stat[2], позволяющего сохранять некоторые атрибуты файлов Windows/DOS и CIFS в виде флагов man:stat[2]. |1000048 |link:https://svnweb.freebsd.org/changeset/base/254672[254672] |August 22, 2013 -|10-CURRENT after modification of structure `xsctp_inpcb`. +|10-CURRENT после изменения структуры `xsctp_inpcb`. |1000049 |link:https://svnweb.freebsd.org/changeset/base/254760[254760] -|August 24, 2013 -|10-CURRENT after man:physio[9] support for devices that do not function properly with split I/O, such as man:sa[4]. +|24 августа 2013 +|10-CURRENT после поддержки man:physio[9] для устройств, которые работают некорректно с разделённым вводом-выводом, таких как man:sa[4]. |1000050 |link:https://svnweb.freebsd.org/changeset/base/254844[254844] -|August 24, 2013 -|10-CURRENT after modifications of structure `mbuf` (rev link:https://svnweb.freebsd.org/changeset/base/254780[254780], link:https://svnweb.freebsd.org/changeset/base/254799[254799], link:https://svnweb.freebsd.org/changeset/base/254804[254804], link:https://svnweb.freebsd.org/changeset/base/254807[254807]link:https://svnweb.freebsd.org/changeset/base/254842[254842]). +|24 августа 2013 +|10-CURRENT после изменений структуры `mbuf` (rev link:https://svnweb.freebsd.org/changeset/base/254780[254780], link:https://svnweb.freebsd.org/changeset/base/254799[254799], link:https://svnweb.freebsd.org/changeset/base/254804[254804], link:https://svnweb.freebsd.org/changeset/base/254807[254807]link:https://svnweb.freebsd.org/changeset/base/254842[254842]). |1000051 |link:https://svnweb.freebsd.org/changeset/base/254887[254887] -|August 25, 2013 -|10-CURRENT after Radeon KMS driver import (rev link:https://svnweb.freebsd.org/changeset/base/254885[254885]). +|25 августа 2013 +|10-CURRENT после импорта драйвера Radeon KMS (ревизия link:https://svnweb.freebsd.org/changeset/base/254885[254885]). |1000052 |link:https://svnweb.freebsd.org/changeset/base/255180[255180] -|September 3, 2013 -|10-CURRENT after import of NetBSD `libexecinfo` is connected to the build. +|3 сентября 2013 +|10-CURRENT после импорта NetBSD `libexecinfo` подключен к сборке. |1000053 |link:https://svnweb.freebsd.org/changeset/base/255305[255305] -|September 6, 2013 -|10-CURRENT after API and ABI changes to the Capsicum framework. +|6 сентября 2013 +|10-CURRENT после изменений API и ABI в рамках Capsicum. |1000054 |link:https://svnweb.freebsd.org/changeset/base/255321[255321] -|September 6, 2013 -|10-CURRENT after `gcc` and `libstdc++` are no longer built by default. +|6 сентября 2013 +|10-CURRENT после того, как `gcc` и `libstdc++` больше не собираются по умолчанию. |1000055 |link:https://svnweb.freebsd.org/changeset/base/255449[255449] -|September 6, 2013 -|10-CURRENT after addition of `MMAP_32BIT` man:mmap[2] flag (rev link:https://svnweb.freebsd.org/changeset/base/255426[255426]). +|6 сентября 2013 +|10-CURRENT после добавления флага `MMAP_32BIT` в man:mmap[2] (rev link:https://svnweb.freebsd.org/changeset/base/255426[255426]). |1000100 |link:https://svnweb.freebsd.org/changeset/base/259065[259065] |December 7, 2013 -|`releng/10.0` branched from `stable/10`. +|`releng/10.0` ответвился от `stable/10`. |1000500 |link:https://svnweb.freebsd.org/changeset/base/256283[256283] -|October 10, 2013 -|10-STABLE after branch from `head/`. +|10 октября 2013 +|10-STABLE после ветвления от `head/`. |1000501 |link:https://svnweb.freebsd.org/changeset/base/256916[256916] -|October 22, 2013 -|10-STABLE after addition of first-boot man:rc[8] support. +|22 октября 2013 +|10-STABLE после добавления поддержки man:rc[8] при первой загрузке. |1000502 |link:https://svnweb.freebsd.org/changeset/base/258398[258398] -|November 20, 2013 -|10-STABLE after removal of iconv symbols from `libc.so.7`. +|20 ноября 2013 +|10-STABLE после удаления символов iconv из `libc.so.7`. |1000510 |link:https://svnweb.freebsd.org/changeset/base/259067[259067] |December 7, 2013 -|`releng/10.0` __FreeBSD_version update to prevent the value from going backwards. +|`releng/10.0` __FreeBSD_version обновлён, чтобы предотвратить уменьшение значения. |1000700 |link:https://svnweb.freebsd.org/changeset/base/259069[259069] |December 7, 2013 -|10-STABLE after `releng/10.0` branch. +|10-STABLE после ветки `releng/10.0`. |1000701 |link:https://svnweb.freebsd.org/changeset/base/259447[259447] -|December 15, 2013 -|10.0-STABLE after Heimdal encoding fix. +|15 декабря 2013 +|10.0-STABLE после исправления кодирования Heimdal. |1000702 |link:https://svnweb.freebsd.org/changeset/base/260135[260135] -|December 31, 2013 -|10-STABLE after MAP_STACK fixes. +|31 декабря 2013 +|10-STABLE после исправлений MAP_STACK. |1000703 |link:https://svnweb.freebsd.org/changeset/base/262801[262801] -|March 5, 2014 -|10-STABLE after upgrade of libc++ to 3.4 release. +|5 марта 2014 +|10-STABLE после обновления libc++ до версии 3.4. |1000704 |link:https://svnweb.freebsd.org/changeset/base/262889[262889] -|March 7, 2014 -|10-STABLE after MFC of the man:vt[4] driver (rev link:https://svnweb.freebsd.org/changeset/base/262861[262861]). +|7 марта 2014 +|10-STABLE после слияния из ветки man:vt[4] драйвера (ревизия link:https://svnweb.freebsd.org/changeset/base/262861[262861]). |1000705 |link:https://svnweb.freebsd.org/changeset/base/263508[263508] -|March 21, 2014 -|10-STABLE after upgrade of llvm/clang to 3.4 release. +|21 марта 2014 +|10-STABLE после обновления llvm/clang до версии 3.4. |1000706 |link:https://svnweb.freebsd.org/changeset/base/264214[264214] -|April 6, 2014 -|10-STABLE after GCC support for `__block` definition. +|6 апреля 2014 +|10-STABLE после удаления поддержки GCC для определения `__block`. |1000707 |link:https://svnweb.freebsd.org/changeset/base/264289[264289] -|April 8, 2014 -|10-STABLE after FreeBSD-SA-14:06.openssl. +|8 апреля 2014 +|10-STABLE после FreeBSD-SA-14:06.openssl. |1000708 |link:https://svnweb.freebsd.org/changeset/base/265122[265122] -|April 30, 2014 -|10-STABLE after FreeBSD-SA-14:07.devfs, FreeBSD-SA-14:08.tcp, and FreeBSD-SA-14:09.openssl. +|30 апреля 2014 +|10-STABLE после FreeBSD-SA-14:07.devfs, FreeBSD-SA-14:08.tcp и FreeBSD-SA-14:09.openssl. |1000709 |link:https://svnweb.freebsd.org/changeset/base/265946[265946] -|May 13, 2014 -|10-STABLE after support for UDP-Lite protocol (RFC 3828). +|13 мая 2014 +|10-STABLE после добавления поддержки протокола UDP-Lite (RFC 3828). |1000710 |link:https://svnweb.freebsd.org/changeset/base/267465[267465] -|June 13, 2014 -|10-STABLE after changes to man:strcasecmp[3], moving man:strcasecmp_l[3] and man:strncasecmp_l[3] from [.filename]## to [.filename]## for POSIX 2008 compliance. +|13 июня 2014 +|10-STABLE после изменений в man:strcasecmp[3], переноса man:strcasecmp_l[3] и man:strncasecmp_l[3] из [.filename]## в [.filename]## для соответствия POSIX 2008. |1000711 |link:https://svnweb.freebsd.org/changeset/base/268442[268442] -|July 8, 2014 -|10-STABLE after FreeBSD-SA-14:17.kmem (rev link:https://svnweb.freebsd.org/changeset/base/268432[268432]). +|8 июля 2014 +|10-STABLE после FreeBSD-SA-14:17.kmem (ревизия:https://svnweb.freebsd.org/changeset/base/268432[268432]). |1000712 |link:https://svnweb.freebsd.org/changeset/base/269400[269400] -|August 1, 2014 -|10-STABLE after man:nfsd[8] 4.1 merge (rev link:https://svnweb.freebsd.org/changeset/base/269398[269398]). +|1 августа 2014 +|10-STABLE после слияния man:nfsd[8] 4.1 (rev link:https://svnweb.freebsd.org/changeset/base/269398[269398]). |1000713 |link:https://svnweb.freebsd.org/changeset/base/269484[269484] -|August 3, 2014 -|10-STABLE after man:regex[3] library update to add ">" and "<" delimiters. +|3 августа 2014 +|10-STABLE после обновления библиотеки man:regex[3] для добавления разделителей ">" и "<". |1000714 |link:https://svnweb.freebsd.org/changeset/base/270174[270174] -|August 3, 2014 -|10-STABLE after `SOCK_DGRAM` bug fix (rev link:https://svnweb.freebsd.org/changeset/base/269490[269490]). +|3 августа 2014 +|10-STABLE после исправления ошибки `SOCK_DGRAM` (rev link:https://svnweb.freebsd.org/changeset/base/269490[269490]). |1000715 |link:https://svnweb.freebsd.org/changeset/base/271341[271341] -|September 9, 2014 -|10-STABLE after FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/269686[269686]). +|9 сентября 2014 +|10-STABLE после FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/269686[269686]). |1000716 |link:https://svnweb.freebsd.org/changeset/base/271686[271686] -|September 16, 2014 -|10-STABLE after FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271667[271667]). +|16 сентября 2014 +|10-STABLE после FreeBSD-SA-14:19 (ревизия link:https://svnweb.freebsd.org/changeset/base/271667[271667]). |1000717 |link:https://svnweb.freebsd.org/changeset/base/271816[271816] -|September 18, 2014 -|10-STABLE after i915 HW context support. +|18 сентября 2014 +|10-STABLE после добавления поддержки аппаратного контекста i915. |1001000 |link:https://svnweb.freebsd.org/changeset/base/272463[272463] -|October 2, 2014 -|10.1-RC1 after releng/10.1 branch. +|2 октября 2014 +|10.1-RC1 после ветки releng/10.1. |1001500 |link:https://svnweb.freebsd.org/changeset/base/272464[272464] -|October 2, 2014 -|10-STABLE after releng/10.1 branch. +|2 октября 2014 +|10-STABLE после ветки releng/10.1. |1001501 |link:https://svnweb.freebsd.org/changeset/base/273432[273432] -|October 21, 2014 -|10-STABLE after FreeBSD-SA-14:20, FreeBSD-SA-14:22, and FreeBSD-SA-14:23 (rev link:https://svnweb.freebsd.org/changeset/base/273411[273411]). +|21 октября 2014 +|10-STABLE после исправлений уязвимостей FreeBSD-SA-14:20, FreeBSD-SA-14:22 и FreeBSD-SA-14:23 (ссылка на ревизию: https://svnweb.freebsd.org/changeset/base/273411[273411]). |1001502 |link:https://svnweb.freebsd.org/changeset/base/274162[274162] -|November 4, 2014 -|10-STABLE after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25. +|4 ноября 2014 +|10-STABLE после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25. |1001503 |link:https://svnweb.freebsd.org/changeset/base/275040[275040] -|November 25, 2014 -|10-STABLE after merging new libraries/utilities (man:dpv[1] man:dpv[3], and man:figpar[3]) for data throughput visualization. +|25 ноября 2014 +|10-STABLE после объединения новых библиотек/утилит (man:dpv[1], man:dpv[3] и man:figpar[3]) для визуализации пропускной способности данных. |1001504 |link:https://svnweb.freebsd.org/changeset/base/275742[275742] -|December 13, 2014 -|10-STABLE after merging an important fix to the LLVM vectorizer, which could lead to buffer overruns in some cases. +|13 декабря 2014 +|10-STABLE после объединения важного исправления в векторизатор LLVM, которое в некоторых случаях могло приводить к переполнению буфера. |1001505 |link:https://svnweb.freebsd.org/changeset/base/276633[276633] -|January 3, 2015 -|10-STABLE after merging some arm constants in link:https://svnweb.freebsd.org/changeset/base/276312[276312]. +|3 января 2015 +|10-STABLE после объединения некоторых констант ARM в link:https://svnweb.freebsd.org/changeset/base/276312[276312]. |1001506 |link:https://svnweb.freebsd.org/changeset/base/277087[277087] -|January 12, 2015 -|10-STABLE after merging max table size update for yacc. +|12 января 2015 +|10-STABLE после объединения обновления максимального размера таблицы для yacc. |1001507 |link:https://svnweb.freebsd.org/changeset/base/277790[277790] -|January 27, 2015 -|10-STABLE after changes to the UDP tunneling callback to provide a context pointer and the source sockaddr. +|27 января 2015 +|10-STABLE после изменений в обратном вызове туннелирования UDP для предоставления указателя контекста и исходного `sockaddr`. |1001508 |link:https://svnweb.freebsd.org/changeset/base/278974[278974] -|February 18, 2015 -|10-STABLE after addition of the `CDAI_TYPE_EXT_INQ` request type. +|18 февраля 2015 +|10-STABLE после добавления типа запроса `CDAI_TYPE_EXT_INQ`. |1001509 |link:https://svnweb.freebsd.org/changeset/base/279287[279287] -|February 25, 2015 -|10-STABLE after FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp, and FreeBSD-SA-15:05.bind. +|25 февраля 2015 +|10-STABLE после FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp и FreeBSD-SA-15:05.bind. |1001510 |link:https://svnweb.freebsd.org/changeset/base/279329[279329] -|February 26, 2015 -|10-STABLE after MFC of rev link:https://svnweb.freebsd.org/changeset/base/278964[278964]. +|26 февраля 2015 +|10-STABLE после MFC ревизии link:https://svnweb.freebsd.org/changeset/base/278964[278964]. |1001511 |link:https://svnweb.freebsd.org/changeset/base/280246[280246] -|19 March, 2015 -|10-STABLE after [.filename]#sys/capability.h# is renamed to [.filename]#sys/capsicum.h# (rev link:https://svnweb.freebsd.org/changeset/base/280224/[280224/]). +|19 марта 2015 +|10-STABLE после переименования [.filename]#sys/capability.h# в [.filename]#sys/capsicum.h# (изменение:https://svnweb.freebsd.org/changeset/base/280224/[280224/]). |1001512 |link:https://svnweb.freebsd.org/changeset/base/280438[280438] -|24 March, 2015 -|10-STABLE after addition of new man:mtio[4], man:sa[4] ioctls. +|24 марта 2015 +|10-STABLE после добавления новых ioctl в man:mtio[4] и man:sa[4]. |1001513 |link:https://svnweb.freebsd.org/changeset/base/281955[281955] -|24 April, 2015 -|10-STABLE after starting the process of removing the use of the deprecated "M_FLOWID" flag from the network code. +|24 апреля 2015 +|10-STABLE после начала процесса удаления использования устаревшего флага "M_FLOWID" из сетевого кода. |1001514 |link:https://svnweb.freebsd.org/changeset/base/282275[282275] -|April 30, 2015 -|10-STABLE after MFC of man:iconv[3] fixes. +|30 апреля 2015 +|10-STABLE после MFC исправлений man:iconv[3]. |1001515 |link:https://svnweb.freebsd.org/changeset/base/282781[282781] -|May 11, 2015 -|10-STABLE after adding back `M_FLOWID`. +|11 мая 2015 +|10-STABLE после возврата `M_FLOWID`. |1001516 |link:https://svnweb.freebsd.org/changeset/base/283341[283341] -|May 24, 2015 -|10-STABLE after MFC of many USB things. +|24 мая 2015 +|10-STABLE после переноса (MFC) множества изменений, связанных с USB. |1001517 |link:https://svnweb.freebsd.org/changeset/base/283950[283950] -|June 3, 2015 -|10-STABLE after MFC of sound related things. +|3 июня 2015 +|10-STABLE после слияния изменений, связанных со звуком. |1001518 |link:https://svnweb.freebsd.org/changeset/base/284204[284204] -|June 10, 2015 -|10-STABLE after MFC of zfs vfs fixes (rev link:https://svnweb.freebsd.org/changeset/base/284203[284203]). +|10 июня 2015 +|10-STABLE после MFC исправлений vfs для zfs (rev link:https://svnweb.freebsd.org/changeset/base/284203[284203]). |1001519 |link:https://svnweb.freebsd.org/changeset/base/284720[284720] -|June 23, 2015 -|10-STABLE after reverting bumping `MAXCPU` on amd64. +|23 июня 2015 +|10-STABLE после отмены увеличения `MAXCPU` на amd64. |1002000 |link:https://svnweb.freebsd.org/changeset/base/285830[285830] -|24 July, 2015 -|`releng/10.2` branched from 10-STABLE. +|24 июля 2015 +|`releng/10.2` отделился от 10-STABLE. |1002500 |link:https://svnweb.freebsd.org/changeset/base/285831[285831] -|24 July, 2015 -|10-STABLE after `releng/10.2` branched from 10-STABLE. +|24 июля 2015 +|10-STABLE после того, как ветка `releng/10.2` отделилась от 10-STABLE. |1002501 |link:https://svnweb.freebsd.org/changeset/base/289005[289005] -|8 October, 2015 -|10-STABLE after merge of ZFS changes that affected the internal interface of zfeature_info structure (rev link:https://svnweb.freebsd.org/changeset/base/288572[288572]). +|8 октября 2015 +|10-STABLE после объединения изменений ZFS, затронувших внутренний интерфейс структуры `zfeature_info` (rev link:https://svnweb.freebsd.org/changeset/base/288572[288572]). |1002502 |link:https://svnweb.freebsd.org/changeset/base/291243[291243] -|24 November, 2015 -|10-STABLE after merge of dump device changes that affected the arguments of `g_dev_setdumpdev()`(rev link:https://svnweb.freebsd.org/changeset/base/291215[291215]). +|24 ноября 2015 +|10-STABLE после объединения изменений устройств дампа, которые затронули аргументы `g_dev_setdumpdev()`(rev link:https://svnweb.freebsd.org/changeset/base/291215[291215]). |1002503 |link:https://svnweb.freebsd.org/changeset/base/292224[292224] -|14 December, 2015 -|10-STABLE after merge of changes to the internal interface between the nfsd.ko and nfscommon.ko modules, requiring them to be upgraded together (rev link:https://svnweb.freebsd.org/changeset/base/292223[292223]). +|14 декабря 2015 +|10-STABLE после объединения изменений во внутренний интерфейс между модулями nfsd.ko и nfscommon.ko, что требует их совместного обновления (rev link:https://svnweb.freebsd.org/changeset/base/292223[292223]). |1002504 |link:https://svnweb.freebsd.org/changeset/base/292589[292589] -|22 December, 2015 -|10-STABLE after merge of xz 5.2.2 merge (multithread support) (rev link:https://svnweb.freebsd.org/changeset/base/292588[292588]). +|22 декабря 2015 +|10-STABLE после слияния xz 5.2.2 (поддержка многопоточности) (rev link:https://svnweb.freebsd.org/changeset/base/292588[292588]). |1002505 |link:https://svnweb.freebsd.org/changeset/base/292908[292908] -|30 December, 2015 -|10-STABLE after merge of changes to man:pci[4] (rev link:https://svnweb.freebsd.org/changeset/base/292907[292907]). +|30 декабря 2015 +|10-STABLE после объединения изменений в man:pci[4] (rev link:https://svnweb.freebsd.org/changeset/base/292907[292907]). |1002506 |link:https://svnweb.freebsd.org/changeset/base/293476[293476] -|9 January, 2016 -|10-STABLE after merge of man:utimensat[2] (rev link:https://svnweb.freebsd.org/changeset/base/293473[293473]). +|9 января 2016 +|10-STABLE после объединения man:utimensat[2] (изменение link:https://svnweb.freebsd.org/changeset/base/293473[293473]). |1002507 |link:https://svnweb.freebsd.org/changeset/base/293610[293610] -|9 January, 2016 -|10-STABLE after merge of changes to man:linux[4] (rev link:https://svnweb.freebsd.org/changeset/base/293477[293477] through link:https://svnweb.freebsd.org/changeset/base/293609[293609]). +|9 января 2016 +|10-STABLE после объединения изменений в man:linux[4] (rev link:https://svnweb.freebsd.org/changeset/base/293477[293477] через link:https://svnweb.freebsd.org/changeset/base/293609[293609]). |1002508 |link:https://svnweb.freebsd.org/changeset/base/293619[293619] -|9 January, 2016 -|10-STABLE after merge of changes to man:figpar[3] types/macros (rev link:https://svnweb.freebsd.org/changeset/base/290275[290275]). +|9 января 2016 +|10-STABLE после объединения изменений в типы/макросы man:figpar[3] (rev link:https://svnweb.freebsd.org/changeset/base/290275[290275]). |1002509 |link:https://svnweb.freebsd.org/changeset/base/295107[295107] -|1 February, 2016 -|10-STABLE after merge of API change to man:dpv[3]. +|1 февраля 2016 +|10-STABLE после объединения изменения API в man:dpv[3]. |1003000 |link:https://svnweb.freebsd.org/changeset/base/296373[296373] -|4 March, 2016 -|`releng/10.3` branched from 10-STABLE. +|4 марта 2016 +|`releng/10.3` ответвился от 10-STABLE. |1003500 |link:https://svnweb.freebsd.org/changeset/base/296374[296374] -|4 March, 2016 -|10-STABLE after `releng/10.3` branched from 10-STABLE. +|4 марта 2016 +|10-STABLE после того, как ветка `releng/10.3` отделилась от 10-STABLE. |1003501 |link:https://svnweb.freebsd.org/changeset/base/298299[298299] -|19 June, 2016 -|10-STABLE after adding kdbcontrol's -P option (rev link:https://svnweb.freebsd.org/changeset/base/298297[298297]). +|19 июня 2016 +|10-STABLE после добавления опции -P для `kdbcontrol` (rev link:https://svnweb.freebsd.org/changeset/base/298297[298297]). |1003502 |link:https://svnweb.freebsd.org/changeset/base/299966[299966] -|19 June, 2016 -|10-STABLE after libcrypto.so was made position independent. +|19 июня 2016 +|10-STABLE после того, как libcrypto.so стала позиционно-независимой. |1003503 |link:https://svnweb.freebsd.org/changeset/base/300235[300235] -|19 June, 2016 -|10-STABLE after allowing MK_ overrides (rev link:https://svnweb.freebsd.org/changeset/base/300233[300233]). +|19 июня 2016 +|10-STABLE после разрешения переопределений `MK_` (изменение link:https://svnweb.freebsd.org/changeset/base/300233[300233]). |1003504 |link:https://svnweb.freebsd.org/changeset/base/302066[302066] -|21 June, 2016 -|10-STABLE after MFC of filemon changes from 11-CURRENT. +|21 июня 2016 +|10-STABLE после переноса изменений `filemon` из 11-CURRENT. |1003505 |link:https://svnweb.freebsd.org/changeset/base/302228[302228] -|27 June, 2016 -|10-STABLE after converting sed to use REG_STARTEND, fixing a Mesa issue. +|27 июня 2016 +|10-STABLE после замены в sed на использование REG_STARTEND, с исправлением проблемы в Mesa. |1003506 |link:https://svnweb.freebsd.org/changeset/base/304611[304611] -|August 22, 2016 -|10-STABLE after adding C++11 thread_local support. +|22 августа 2016 +|10-STABLE после добавления поддержки `thread_local` в C++11. |1003507 |link:https://svnweb.freebsd.org/changeset/base/304864[304864] -|August 26, 2016 -|10-STABLE after `LC_*_MASK` fix. +|26 августа 2016 +|10-STABLE после исправления `LC_*_MASK`. |1003508 |link:https://svnweb.freebsd.org/changeset/base/305734[305734] -|September 12, 2016 -|10-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]. +|12 сентября 2016 +|10-STABLE после устранения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]. |1003509 |link:https://svnweb.freebsd.org/changeset/base/307331[307331] -|October 14, 2016 -|10-STABLE after ZFS merges. +|14 октября 2016 +|10-STABLE после слияния с ZFS. |1003510 |link:https://svnweb.freebsd.org/changeset/base/308047[308047] -|October 28, 2016 -|10-STABLE after installing header files required development with libzfs_core. +|28 октября 2016 +|10-STABLE после установки заголовочных файлов, необходимых для разработки с libzfs_core. |1003511 |link:https://svnweb.freebsd.org/changeset/base/310121[310121] -|December 15, 2016 -|10-STABLE after exporting whole thread name in `kinfo_proc` (rev link:https://svnweb.freebsd.org/changeset/base/309676[309676]). +|15 декабря 2016 +|10-STABLE после экспорта полного имени потока в `kinfo_proc` (rev link:https://svnweb.freebsd.org/changeset/base/309676[309676]). |1003512 |link:https://svnweb.freebsd.org/changeset/base/315730[315730] -|March 22, 2017 -|10-STABLE after libmd changes (rev link:https://svnweb.freebsd.org/changeset/base/314143[314143]). +|22 марта 2017 +|10-STABLE после изменений в libmd (rev link:https://svnweb.freebsd.org/changeset/base/314143[314143]). |1003513 |link:https://svnweb.freebsd.org/changeset/base/316499[316499] -|April 4, 2017 -|10-STABLE after making CAM SIM lock optional (revs link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674]). +|4 апреля 2017 +|10-STABLE после того, как блокировка CAM SIM стала опциональной (ревизии link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674]). |1003514 |link:https://svnweb.freebsd.org/changeset/base/318198[318198] -|May 11, 2017 -|10-STABLE after merging the addition of the [.filename]## header. +|11 мая 2017 +|10-STABLE после объединения добавления заголовочного файла [.filename]##. |1003515 |link:https://svnweb.freebsd.org/changeset/base/321222[321222] -|July 19, 2017 -|10-STABLE after adding C++14 sized deallocation functions to libc++. +|19 июля 2017 +|10-STABLE после добавления функций освобождения памяти с указанием размера из C++14 в libc++. |1003516 |link:https://svnweb.freebsd.org/changeset/base/321717[321717] -|July 30, 2017 -|10-STABLE after merging the `MAP_GUARD` man:mmap[2] flag addition. +|30 июля 2017 +|10-STABLE после объединения добавления флага `MAP_GUARD` в man:mmap[2]. |1004000 |link:https://svnweb.freebsd.org/changeset/base/323604[323604] -|September 15, 2017 -|`releng/10.4` branched from 10-STABLE. +|15 сентября 2017 +|`releng/10.4` ответвился от 10-STABLE. |1004500 |link:https://svnweb.freebsd.org/changeset/base/323605[323605] -|September 15, 2017 -|10-STABLE after `releng/10.4` branched from 10-STABLE. +|15 сентября 2017 +|10-STABLE после того, как ветка `releng/10.4` отделилась от 10-STABLE. |1004501 |link:https://svnweb.freebsd.org/changeset/base/328379[328379] -|January 24, 2018 -|10-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/325028[325028], fixing `ptrace()` to always clear the correct thread event when resuming. +|24 января 2018 +|10-STABLE после слияния изменений link:https://svnweb.freebsd.org/changeset/base/325028[325028], исправляющего `ptrace()`, чтобы всегда очищать правильное событие потока при возобновлении. |1004502 |link:https://svnweb.freebsd.org/changeset/base/356396[356396] -|January 6, 2020 -|10-STABLE after making USB statistics be per-device instead of per bus. +|6 января 2020 +|10-STABLE после изменения статистики USB для каждого устройства вместо каждой шины. |1004503 |link:https://svnweb.freebsd.org/changeset/base/356681[356681] -|January 13, 2020 -|10-STABLE after adding own counter for cancelled USB transfers. +|13 января 2020 +|10-STABLE после добавления собственного счетчика для отмененных USB-передач. |=== [[versions-9]] -== FreeBSD 9 Versions +== Версии FreeBSD 9 [[freebsd-versions-table-9]] -.FreeBSD 9 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` в FreeBSD 9 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |900000 |link:https://svnweb.freebsd.org/changeset/base/196432[196432] -|August 22, 2009 +|22 августа 2009 |9.0-CURRENT. |900001 |link:https://svnweb.freebsd.org/changeset/base/197019[197019] -|September 8, 2009 -|9.0-CURRENT after importing x86emu, a software emulator for real mode x86 CPU from OpenBSD. +|8 сентября 2009 +|9.0-CURRENT после импорта x86emu, программного эмулятора процессора x86 в реальном режиме из OpenBSD. |900002 |link:https://svnweb.freebsd.org/changeset/base/197430[197430] -|September 23, 2009 -|9.0-CURRENT after implementing the EVFILT_USER kevent filter functionality. +|23 сентября 2009 +|9.0-CURRENT после реализации функциональности фильтра `kevent` `EVFILT_USER`. |900003 |link:https://svnweb.freebsd.org/changeset/base/200039[200039] -|December 2, 2009 -|9.0-CURRENT after addition of man:sigpause[2] and PIE support in csu. +|2 декабря 2009 +|9.0-CURRENT после добавления man:sigpause[2] и поддержки PIE в `csu`. |900004 |link:https://svnweb.freebsd.org/changeset/base/200185[200185] -|December 6, 2009 -|9.0-CURRENT after addition of libulog and its libutempter compatibility interface. +|6 декабря 2009 +|9.0-CURRENT после добавления libulog и его совместимого интерфейса libutempter. |900005 |link:https://svnweb.freebsd.org/changeset/base/200447[200447] |December 12, 2009 -|9.0-CURRENT after addition of man:sleepq_sleepcnt[9], which can be used to query the number of waiters on a specific waiting queue. +|9.0-CURRENT после добавления man:sleepq_sleepcnt[9], который может использоваться для запроса количества ожидающих в конкретной очереди ожидания. |900006 |link:https://svnweb.freebsd.org/changeset/base/201513[201513] -|January 4, 2010 -|9.0-CURRENT after change of the man:scandir[3] and man:alphasort[3] prototypes to conform to SUSv4. +|4 января 2010 +|9.0-CURRENT после изменения прототипов man:scandir[3] и man:alphasort[3] для соответствия SUSv4. |900007 |link:https://svnweb.freebsd.org/changeset/base/202219[202219] -|January 13, 2010 -|9.0-CURRENT after the removal of man:utmp[5] and the addition of utmpx (see man:getutxent[3]) for improved logging of user logins and system events. +|13 января 2010 +|9.0-CURRENT после удаления man:utmp[5] и добавления `utmpx` (см. man:getutxent[3]) для улучшенного логирования входов пользователей и системных событий. |900008 |link:https://svnweb.freebsd.org/changeset/base/202722[202722] -|January 20, 2010 -|9.0-CURRENT after the import of BSDL bc/dc and the deprecation of GNU bc/dc. +|20 января 2010 +|9.0-CURRENT после импорта BSDL bc/dc и устаревания GNU bc/dc. |900009 |link:https://svnweb.freebsd.org/changeset/base/203052[203052] -|January 26, 2010 -|9.0-CURRENT after the addition of SIOCGIFDESCR and SIOCSIFDESCR ioctls to network interfaces. These ioctl can be used to manipulate interface description, as inspired by OpenBSD. +|26 января 2010 +|9.0-CURRENT после добавления ioctl SIOCGIFDESCR и SIOCSIFDESCR к сетевым интерфейсам. Эти ioctl могут использоваться для управления описанием интерфейса, по аналогии с OpenBSD. |900010 |link:https://svnweb.freebsd.org/changeset/base/205471[205471] -|March 22, 2010 -|9.0-CURRENT after the import of zlib 1.2.4. +|22 марта 2010 +|9.0-CURRENT после импорта zlib 1.2.4. |900011 |link:https://svnweb.freebsd.org/changeset/base/207410[207410] |April 24, 2010 -|9.0-CURRENT after adding soft-updates journalling. +|9.0-CURRENT после добавления журналирования soft-updates. |900012 |link:https://svnweb.freebsd.org/changeset/base/207842[207842] -|May 10, 2010 -|9.0-CURRENT after adding liblzma, xz, xzdec, and lzmainfo. +|10 мая 2010 +|9.0-CURRENT после добавления liblzma, xz, xzdec и lzmainfo. |900013 |link:https://svnweb.freebsd.org/changeset/base/208486[208486] -|May 24, 2010 -|9.0-CURRENT after bringing in USB fixes for man:linux[4]. +|24 мая 2010 +|9.0-CURRENT после внесения исправлений для USB в man:linux[4]. |900014 |link:https://svnweb.freebsd.org/changeset/base/208973[208973] -|June 10, 2010 -|9.0-CURRENT after adding Clang. +|10 июня 2010 +|9.0-CURRENT после добавления Clang. |900015 |link:https://svnweb.freebsd.org/changeset/base/210390[210390] -|July 22, 2010 -|9.0-CURRENT after the import of BSD grep. +|22 июля 2010 +|9.0-CURRENT после импорта BSD grep. |900016 |link:https://svnweb.freebsd.org/changeset/base/210565[210565] -|July 28, 2010 -|9.0-CURRENT after adding mti_zone to struct malloc_type_internal. +|28 июля 2010 +|9.0-CURRENT после добавления `mti_zone` в структуру `malloc_type_internal`. |900017 |link:https://svnweb.freebsd.org/changeset/base/211701[211701] -|August 23, 2010 -|9.0-CURRENT after changing back default grep to GNU grep and adding WITH_BSD_GREP knob. +|23 августа 2010 +|9.0-CURRENT после возврата к GNU grep по умолчанию и добавления параметра WITH_BSD_GREP. |900018 |link:https://svnweb.freebsd.org/changeset/base/211735[211735] -|August 24, 2010 -|9.0-CURRENT after the man:pthread_kill[3] -generated signal is identified as SI_LWP in si_code. Previously, si_code was SI_USER. +|24 августа 2010 +|9.0-CURRENT после того, как сигнал, сгенерированный через man:pthread_kill[3], идентифицируется как SI_LWP в `si_code`. Ранее `si_code` имел значение SI_USER. |900019 |link:https://svnweb.freebsd.org/changeset/base/211937[211937] -|August 28, 2010 -|9.0-CURRENT after addition of the MAP_PREFAULT_READ flag to man:mmap[2]. +|28 августа 2010 +|9.0-CURRENT после добавления флага MAP_PREFAULT_READ в man:mmap[2]. |900020 |link:https://svnweb.freebsd.org/changeset/base/212381[212381] -|September 9, 2010 -|9.0-CURRENT after adding drain functionality to sbufs, which also changed the layout of struct sbuf. +|9 сентября 2010 +|9.0-CURRENT после добавления функциональности drain в `sbufs`, что также изменило структуру struct `sbuf`. |900021 |link:https://svnweb.freebsd.org/changeset/base/212568[212568] -|September 13, 2010 -|9.0-CURRENT after DTrace has grown support for userland tracing. +|13 сентября 2010 +|9.0-CURRENT после того, как DTrace обзавелся поддержкой трассировки в пользовательском пространстве. |900022 |link:https://svnweb.freebsd.org/changeset/base/213395[213395] -|October 2, 2010 -|9.0-CURRENT after addition of the BSDL man utilities and retirement of GNU/GPL man utilities. +|2 октября 2010 +|9.0-CURRENT после добавления утилит man под лицензией BSDL и удаления утилит man под лицензией GNU/GPL. |900023 |link:https://svnweb.freebsd.org/changeset/base/213700[213700] -|October 11, 2010 -|9.0-CURRENT after updating xz to git 20101010 snapshot. +|11 октября 2010 +|9.0-CURRENT после обновления xz до снимка git 20101010. |900024 |link:https://svnweb.freebsd.org/changeset/base/215127[215127] -|November 11, 2010 -|9.0-CURRENT after libgcc.a was replaced by libcompiler_rt.a. +|11 ноября 2010 +|9.0-CURRENT после замены libgcc.a на libcompiler_rt.a. |900025 |link:https://svnweb.freebsd.org/changeset/base/215166[215166] -|November 12, 2010 -|9.0-CURRENT after the introduction of the modularised congestion control. +|12 ноября 2010 +|9.0-CURRENT после внедрения модульной системы управления перегрузкой. |900026 |link:https://svnweb.freebsd.org/changeset/base/216088[216088] -|November 30, 2010 -|9.0-CURRENT after the introduction of Serial Management Protocol (SMP) passthrough and the XPT_SMP_IO and XPT_GDEV_ADVINFO CAM CCBs. +|30 ноября 2010 +|9.0-CURRENT после введения сквозной передачи Serial Management Protocol (SMP) и CAM `CCBs` XPT_SMP_IO и XPT_GDEV_ADVINFO. |900027 |link:https://svnweb.freebsd.org/changeset/base/216212[216212] -|December 5, 2010 -|9.0-CURRENT after the addition of log2 to libm. +|5 декабря 2010 +|9.0-CURRENT после добавления log2 в libm. |900028 |link:https://svnweb.freebsd.org/changeset/base/216615[216615] -|December 21, 2010 -|9.0-CURRENT after the addition of the Hhook (Helper Hook), Khelp (Kernel Helpers) and Object Specific Data (OSD) KPIs. +|21 декабря 2010 +|9.0-CURRENT после добавления Hhook (Helper Hook), Khelp (Kernel Helpers) и KPI Object Specific Data (OSD). |900029 |link:https://svnweb.freebsd.org/changeset/base/216758[216758] -|December 28, 2010 -|9.0-CURRENT after the modification of the TCP stack to allow Khelp modules to interact with it via helper hook points and store per-connection data in the TCP control block. +|28 декабря 2010 +|9.0-CURRENT после модификации стека TCP для разрешения модулям Khelp взаимодействовать с ним через точки подключения вспомогательных функций и хранить данные для каждого соединения в блоке управления TCP. |900030 |link:https://svnweb.freebsd.org/changeset/base/217309[217309] -|January 12, 2011 -|9.0-CURRENT after the update of libdialog to version 20100428. +|12 января 2011 +|9.0-CURRENT после обновления libdialog до версии 20100428. |900031 |link:https://svnweb.freebsd.org/changeset/base/218414[218414] -|February 7, 2011 -|9.0-CURRENT after the addition of man:pthread_getthreadid_np[3]. +|7 февраля 2011 +|9.0-CURRENT после добавления man:pthread_getthreadid_np[3]. |900032 |link:https://svnweb.freebsd.org/changeset/base/218425[218425] -|February 8, 2011 -|9.0-CURRENT after the removal of the uio_yield prototype and symbol. +|8 февраля 2011 +|9.0-CURRENT после удаления прототипа и символа `uio_yield`. |900033 |link:https://svnweb.freebsd.org/changeset/base/218822[218822] -|February 18, 2011 -|9.0-CURRENT after the update of binutils to version 2.17.50. +|18 февраля 2011 +|9.0-CURRENT после обновления binutils до версии 2.17.50. |900034 |link:https://svnweb.freebsd.org/changeset/base/219406[219406] -|March 8, 2011 -|9.0-CURRENT after the struct sysvec (sv_schedtail) changes. +|8 марта 2011 +|9.0-CURRENT после изменений в структуре `sysvec` (`sv_schedtail`). |900035 |link:https://svnweb.freebsd.org/changeset/base/220150[220150] -|March 29, 2011 -|9.0-CURRENT after the update of base gcc and libstdc++ to the last GPLv2 licensed revision. +|29 марта 2011 +|9.0-CURRENT после обновления базового gcc и libstdc++ до последней ревизии, лицензированной под GPLv2. |900036 |link:https://svnweb.freebsd.org/changeset/base/220770[220770] -|April 18, 2011 -|9.0-CURRENT after the removal of libobjc and Objective-C support from the base system. +|18 апреля 2011 +|9.0-CURRENT после удаления libobjc и поддержки Objective-C из базовой системы. |900037 |link:https://svnweb.freebsd.org/changeset/base/221862[221862] -|May 13, 2011 -|9.0-CURRENT after importing the man:libprocstat[3] library and man:fuser[1] utility to the base system. +|13 мая 2011 +|9.0-CURRENT после импорта библиотеки man:libprocstat[3] и утилиты man:fuser[1] в базовую систему. |900038 |link:https://svnweb.freebsd.org/changeset/base/222167[222167] -|May 22, 2011 -|9.0-CURRENT after adding a lock flag argument to man:VFS_FHTOVP[9]. +|22 мая 2011 +|9.0-CURRENT после добавления аргумента флага блокировки к man:VFS_FHTOVP[9]. |900039 |link:https://svnweb.freebsd.org/changeset/base/223637[223637] -|June 28, 2011 -|9.0-CURRENT after importing pf from OpenBSD 4.5. +|28 июня 2011 +|9.0-CURRENT после импорта pf из OpenBSD 4.5. |900040 |link:https://svnweb.freebsd.org/changeset/base/224217[224217] -|July 19, 2011 -|Increase default MAXCPU for FreeBSD to 64 on amd64 and ia64 and to 128 for XLP (mips). +|19 июля 2011 +|Увеличить значение MAXCPU по умолчанию для FreeBSD до 64 на amd64 и ia64 и до 128 для XLP (mips). |900041 |link:https://svnweb.freebsd.org/changeset/base/224834[224834] -|August 13, 2011 -|9.0-CURRENT after the implementation of Capsicum capabilities; fget(9) gains a rights argument. +|13 августа 2011 +|Версия 9.0-CURRENT после реализации возможностей Capsicum; man:fget[9] получает аргумент rights. |900042 |link:https://svnweb.freebsd.org/changeset/base/225350[225350] -|August 28, 2011 -|Bump shared libraries' version numbers for libraries whose ABI has changed in preparation for 9.0. +|28 августа 2011 +|Увеличьте номера версий общих библиотек для библиотек, чей ABI изменился в рамках подготовки к 9.0. |900043 |link:https://svnweb.freebsd.org/changeset/base/225350[225350] -|September 2, 2011 -|Add automatic detection of USB mass storage devices which do not support the no synchronize cache SCSI command. +|2 сентября 2011 +|Добавить автоматическое обнаружение USB-накопителей, которые не поддерживают команду SCSI "no synchronize cache". |900044 |link:https://svnweb.freebsd.org/changeset/base/225469[225469] -|September 10, 2011 -|Re-factor auto-quirk. 9.0-RELEASE. +|10 сентября 2011 +|Переработка автоматического определения особенностей оборудования (auto-quirk). 9.0-RELEASE. |900045 |link:https://svnweb.freebsd.org/changeset/base/229285[229285] -|January 2, 2012 -|9-STABLE after MFC of true/false from 1000002. +|2 января 2012 +|9-STABLE после MFC значения true/false из 1000002. |900500 |link:https://svnweb.freebsd.org/changeset/base/229318[229318] -|January 2, 2012 +|2 января 2012 |9.0-STABLE. |900501 |link:https://svnweb.freebsd.org/changeset/base/229723[229723] -|January 6, 2012 -|9.0-STABLE after merging of addition of the man:posix_fadvise[2] system call. +|6 января 2012 +|9.0-STABLE после объединения добавления системного вызова man:posix_fadvise[2]. |900502 |link:https://svnweb.freebsd.org/changeset/base/230237[230237] -|January 16, 2012 -|9.0-STABLE after merging gperf 3.0.3 +|16 января 2012 +|9.0-STABLE после слияния gperf 3.0.3 |900503 |link:https://svnweb.freebsd.org/changeset/base/231768[231768] -|February 15, 2012 -|9.0-STABLE after introduction of the new extensible man:sysctl[3] interface NET_RT_IFLISTL to query address lists. +|15 февраля 2012 +|9.0-STABLE после введения нового расширяемого интерфейса man:sysctl[3] NET_RT_IFLISTL для запроса списков адресов. |900504 |link:https://svnweb.freebsd.org/changeset/base/232728[232728] -|March 3, 2012 -|9.0-STABLE after changes related to mounting of filesystem inside a jail. +|3 марта 2012 +|9.0-STABLE после изменений, связанных с монтированием файловой системы внутри клетки. |900505 |link:https://svnweb.freebsd.org/changeset/base/232945[232945] -|March 13, 2012 -|9.0-STABLE after introduction of new man:tcp[4] socket options: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT. +|13 марта 2012 +|9.0-STABLE после введения новых параметров сокета man:tcp[4]: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL и TCP_KEEPCNT. |900506 |link:https://svnweb.freebsd.org/changeset/base/235786[235786] -|May 22, 2012 -|9.0-STABLE after introduction of the `quick_exit` function and related changes required for C++11. +|22 мая 2012 +|9.0-STABLE после введения функции `quick_exit` и связанных изменений, необходимых для C++11. |901000 |link:https://svnweb.freebsd.org/changeset/base/239082[239082] -|August 5, 2012 +|5 августа 2012 |9.1-RELEASE. |901500 |link:https://svnweb.freebsd.org/changeset/base/239081[239081] -|August 6, 2012 -|9.1-STABLE after branching releng/9.1 (RELENG_9_1). +|6 августа 2012 +|9.1-STABLE после ветвления releng/9.1 (RELENG_9_1). |901501 |link:https://svnweb.freebsd.org/changeset/base/240659[240659] -|November 11, 2012 -|9.1-STABLE after man:LIST_PREV[3] added to queue.h (rev link:https://svnweb.freebsd.org/changeset/base/242893[242893]) and KBI change in USB serial devices. +|11 ноября 2012 +|9.1-STABLE после man:LIST_PREV[3] добавлен в queue.h (изменение rev link:https://svnweb.freebsd.org/changeset/base/242893[242893]) и изменения KBI в USB последовательных устройствах. |901502 |link:https://svnweb.freebsd.org/changeset/base/243656[243656] -|November 28, 2012 -|9.1-STABLE after USB serial jitter buffer requires rebuild of USB serial device modules. +|28 ноября 2012 +|9.1-STABLE после того, как буфер дрожания USB serial требует пересборки модулей устройств USB serial. |901503 |link:https://svnweb.freebsd.org/changeset/base/247090[247090] -|February 21, 2013 -|9.1-STABLE after USB moved to the driver structure requiring a rebuild of all USB modules. Also indicates the presence of nmtree. +|21 февраля 2013 +|9.1-STABLE после перемещения USB в структуру драйверов, что потребовало пересборки всех модулей USB. Также указывает на наличие nmtree. |901504 |link:https://svnweb.freebsd.org/changeset/base/248338[248338] -|March 15, 2013 -|9.1-STABLE after install gained -l, -M, -N and related flags and cat gained the -l option. +|15 марта 2013 +|9.1-STABLE после установки получил флаги -l, -M, -N и связанные с ними, а cat получил опцию -l. |901505 |link:https://svnweb.freebsd.org/changeset/base/251687[251687] -|June 13, 2013 -|9.1-STABLE after fixes in ctfmerge bootstrapping (rev link:https://svnweb.freebsd.org/changeset/base/249243[249243]). +|13 июня 2013 +|9.1-STABLE после исправлений в начальной загрузке `ctfmerge` (rev link:https://svnweb.freebsd.org/changeset/base/249243[249243]). |902001 |link:https://svnweb.freebsd.org/changeset/base/253912[253912] -|August 3, 2013 -|`releng/9.2` branched from `stable/9`. +|3 августа 2013 +|`releng/9.2` ответвился от `stable/9`. |902501 |link:https://svnweb.freebsd.org/changeset/base/253913[253913] -|August 2, 2013 -|9.2-STABLE after creation of `releng/9.2` branch. +|2 августа 2013 +|9.2-STABLE после создания ветки `releng/9.2`. |902502 |link:https://svnweb.freebsd.org/changeset/base/254938[254938] -|August 26, 2013 -|9.2-STABLE after inclusion of the `PIM_RESCAN` CAM path inquiry flag. +|26 августа 2013 +|9.2-STABLE после включения флага запроса пути CAM `PIM_RESCAN`. |902503 |link:https://svnweb.freebsd.org/changeset/base/254979[254979] -|August 27, 2013 -|9.2-STABLE after inclusion of the `SI_UNMAPPED` cdev flag. +|27 августа 2013 +|9.2-STABLE после включения флага `SI_UNMAPPED` для cdev. |902504 |link:https://svnweb.freebsd.org/changeset/base/256917[256917] -|October 22, 2013 -|9.2-STABLE after inclusion of support for "first boot" man:rc[8] scripts. +|22 октября 2013 +|9.2-STABLE после добавления поддержки скриптов "первой загрузки" man:rc[8]. |902505 |link:https://svnweb.freebsd.org/changeset/base/259448[259448] -|December 12, 2013 -|9.2-STABLE after Heimdal encoding fix. +|12 декабря 2013 +|9.2-STABLE после исправления кодировки Heimdal. |902506 |link:https://svnweb.freebsd.org/changeset/base/260136[260136] -|December 31, 2013 -|9-STABLE after MAP_STACK fixes (rev link:https://svnweb.freebsd.org/changeset/base/260082[260082]). +|31 декабря 2013 +|9-STABLE после исправлений MAP_STACK (rev link:https://svnweb.freebsd.org/changeset/base/260082[260082]). |902507 |link:https://svnweb.freebsd.org/changeset/base/262801[262801] -|March 5, 2014 -|9-STABLE after upgrade of libc++ to 3.4 release. +|5 марта 2014 +|9-STABLE после обновления libc++ до версии 3.4. |902508 |link:https://svnweb.freebsd.org/changeset/base/263171[263171] -|March 14, 2014 -|9-STABLE after merge of the Radeon KMS driver (rev link:https://svnweb.freebsd.org/changeset/base/263170[263170]). +|14 марта 2014 +|9-STABLE после объединения драйвера Radeon KMS (rev link:https://svnweb.freebsd.org/changeset/base/263170[263170]). |902509 |link:https://svnweb.freebsd.org/changeset/base/263509[263509] -|March 21, 2014 -|9-STABLE after upgrade of llvm/clang to 3.4 release. +|21 марта 2014 +|9-STABLE после обновления llvm/clang до версии 3.4. |902510 |link:https://svnweb.freebsd.org/changeset/base/263818[263818] -|March 27, 2014 -|9-STABLE after merge of the man:vt[4] driver. +|27 марта 2014 +|9-STABLE после слияния драйвера man:vt[4]. |902511 |link:https://svnweb.freebsd.org/changeset/base/264289[264289] -|March 27, 2014 -|9-STABLE after FreeBSD-SA-14:06.openssl. +|27 марта 2014 +|9-STABLE после FreeBSD-SA-14:06.openssl. |902512 |link:https://svnweb.freebsd.org/changeset/base/265123[265123] -|April 30, 2014 -|9-STABLE after FreeBSD-SA-14:08.tcp. +|30 апреля 2014 +|9-STABLE после FreeBSD-SA-14:08.tcp. |903000 |link:https://svnweb.freebsd.org/changeset/base/267656[267656] -|June 20, 2014 -|9-RC1 `releng/9.3` branch. +|20 июня 2014 +|9-RC1 ветка `releng/9.3`. |903500 |link:https://svnweb.freebsd.org/changeset/base/267657[267657] -|June 20, 2014 -|9.3-STABLE `releng/9.3` branch. +|20 июня 2014 +|9.3-STABLE ветка `releng/9.3`. |903501 |link:https://svnweb.freebsd.org/changeset/base/268443[268443] -|July 8, 2014 -|9-STABLE after FreeBSD-SA-14:17.kmem (rev link:https://svnweb.freebsd.org/changeset/base/268433[268433]). +|8 июля 2014 +|9-STABLE после FreeBSD-SA-14:17.kmem (изменение:https://svnweb.freebsd.org/changeset/base/268433[268433]). |903502 |link:https://svnweb.freebsd.org/changeset/base/270175[270175] -|August 19, 2014 -|9-STABLE after `SOCK_DGRAM` bug fix (rev link:https://svnweb.freebsd.org/changeset/base/269789[269789]). +|19 августа 2014 +|9-STABLE после исправления ошибки `SOCK_DGRAM` (rev link:https://svnweb.freebsd.org/changeset/base/269789[269789]). |903503 |link:https://svnweb.freebsd.org/changeset/base/271341[271341] -|September 9, 2014 -|9-STABLE after FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/269687[269687]). +|9 сентября 2014 +|9-STABLE после FreeBSD-SA-14:18 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/269687[269687]). |903504 |link:https://svnweb.freebsd.org/changeset/base/271686[271686] -|September 16, 2014 -|9-STABLE after FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271668[271668]). +|16 сентября 2014 +|9-STABLE после FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271668[271668]). |903505 |link:https://svnweb.freebsd.org/changeset/base/273432[273432] -|October 21, 2014 -|9-STABLE after FreeBSD-SA-14:20, FreeBSD-SA-14:21, and FreeBSD-SA-14:22 (rev link:https://svnweb.freebsd.org/changeset/base/273412[273412]). +|21 октября 2014 +|9-STABLE после исправлений FreeBSD-SA-14:20, FreeBSD-SA-14:21 и FreeBSD-SA-14:22 (rev link:https://svnweb.freebsd.org/changeset/base/273412[273412]). |903506 |link:https://svnweb.freebsd.org/changeset/base/274162[274162] -|November 4, 2014 -|9-STABLE after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25. +|4 ноября 2014 +|9-STABLE после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25. |903507 |link:https://svnweb.freebsd.org/changeset/base/275742[275742] -|December 13, 2014 -|9-STABLE after merging an important fix to the LLVM vectorizer, which could lead to buffer overruns in some cases. +|13 декабря 2014 +|9-STABLE после объединения важного исправления в векторизатор LLVM, которое в некоторых случаях могло приводить к переполнению буфера. |903508 |link:https://svnweb.freebsd.org/changeset/base/279287[279287] -|February 25, 2015 -|9-STABLE after FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp, and FreeBSD-SA-15:05.bind. +|25 февраля 2015 +|9-STABLE после FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp и FreeBSD-SA-15:05.bind. |903509 |link:https://svnweb.freebsd.org/changeset/base/296219[296219] -|February 29, 2016 -|9-STABLE after bumping the default value of `compat.linux.osrelease` to `2.6.18` to support the linux-c6-* ports out of the box. +|29 февраля 2016 +|9-STABLE после увеличения значения по умолчанию `compat.linux.osrelease` до `2.6.18` для поддержки портов linux-c6-* без дополнительной настройки. |903510 |link:https://svnweb.freebsd.org/changeset/base/300236[300236] -|May 19, 2016 -|9-STABLE after System Binary Interface (SBI) page was moved in latest version of Berkeley Boot Loader (BBL) due to code size increase in link:https://svnweb.freebsd.org/changeset/base/300234[300234]. +|19 мая 2016 +|9-STABLE после того, как страница System Binary Interface (SBI) была перемещена в последней версии Berkeley Boot Loader (BBL) из-за увеличения размера кода в link:https://svnweb.freebsd.org/changeset/base/300234[300234]. |903511 |link:https://svnweb.freebsd.org/changeset/base/305735[305735] -|September 12, 2016 -|9-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]. +|12 сентября 2016 +|9-STABLE после разрешения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]. |=== [[versions-8]] -== FreeBSD 8 Versions +== Версии FreeBSD 8 [[freebsd-versions-table-8]] -.FreeBSD 8 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` в FreeBSD 8 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |800000 |link:https://svnweb.freebsd.org/changeset/base/172531[172531] -|October 11, 2007 -|8.0-CURRENT. Separating wide and single byte ctype. +|11 октября 2007 +|8.0-CURRENT. Разделение `ctype` на широкие и однобайтовые символы. |800001 |link:https://svnweb.freebsd.org/changeset/base/172688[172688] -|October 16, 2007 -|8.0-CURRENT after libpcap 0.9.8 and tcpdump 3.9.8 import. +|16 октября 2007 +|8.0-CURRENT после импорта libpcap 0.9.8 и tcpdump 3.9.8. |800002 |link:https://svnweb.freebsd.org/changeset/base/172841[172841] -|October 21, 2007 -|8.0-CURRENT after renaming man:kthread_create[9] and friends to man:kproc_create[9] etc. +|21 октября 2007 +|8.0-CURRENT после переименования man:kthread_create[9] и связанных функций в man:kproc_create[9] и т.д. |800003 |link:https://svnweb.freebsd.org/changeset/base/172932[172932] -|October 24, 2007 -|8.0-CURRENT after ABI backwards compatibility to the FreeBSD 4/5/6 versions of the PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs was added, which required the ABI of the PCIOCGETCONF IOCTL to be broken again +|24 октября 2007 +|8.0-CURRENT после того, как была добавлена обратная совместимость ABI с версиями FreeBSD 4/5/6 для IOCTL PCIOCGETCONF, PCIOCREAD и PCIOCWRITE, что потребовало снова нарушить ABI IOCTL PCIOCGETCONF |800004 |link:https://svnweb.freebsd.org/changeset/base/173573[173573] -|November 12, 2007 -|8.0-CURRENT after man:agp[4] driver moved from src/sys/pci to src/sys/dev/agp +|12 ноября 2007 +|8.0-CURRENT после перемещения драйвера man:agp[4] из src/sys/pci в src/sys/dev/agp |800005 |link:https://svnweb.freebsd.org/changeset/base/174261[174261] -|December 4, 2007 -|8.0-CURRENT after changes to the jumbo frame allocator (rev link:https://svnweb.freebsd.org/changeset/base/174247[174247]). +|4 декабря 2007 +|8.0-CURRENT после изменений в аллокаторе джамбо-фреймов (rev link:https://svnweb.freebsd.org/changeset/base/174247[174247]). |800006 |link:https://svnweb.freebsd.org/changeset/base/174399[174399] -|December 7, 2007 -|8.0-CURRENT after the addition of callgraph capture functionality to man:hwpmc[4]. +|7 декабря 2007 +|8.0-CURRENT после добавления функциональности захвата `callgraph` в man:hwpmc[4]. |800007 |link:https://svnweb.freebsd.org/changeset/base/174901[174901] -|December 25, 2007 -|8.0-CURRENT after `kdb_enter()` gains a "why" argument. +|25 декабря 2007 +|8.0-CURRENT после `kdb_enter()` получает аргумент "why". |800008 |link:https://svnweb.freebsd.org/changeset/base/174951[174951] -|December 28, 2007 -|8.0-CURRENT after LK_EXCLUPGRADE option removal. +|28 декабря 2007 +|8.0-CURRENT после удаления опции LK_EXCLUPGRADE. |800009 |link:https://svnweb.freebsd.org/changeset/base/175168[175168] -|January 9, 2008 -|8.0-CURRENT after introduction of man:lockmgr_disown[9] +|9 января 2008 +|8.0-CURRENT после введения man:lockmgr_disown[9] |800010 |link:https://svnweb.freebsd.org/changeset/base/175204[175204] -|January 10, 2008 -|8.0-CURRENT after the man:vn_lock[9] prototype change. +|10 января 2008 +|8.0-CURRENT после изменения прототипа man:vn_lock[9]. |800011 |link:https://svnweb.freebsd.org/changeset/base/175295[175295] -|January 13, 2008 -|8.0-CURRENT after the man:VOP_LOCK[9] and man:VOP_UNLOCK[9] prototype changes. +|13 января 2008 +|8.0-CURRENT после изменений прототипов man:VOP_LOCK[9] и man:VOP_UNLOCK[9]. |800012 |link:https://svnweb.freebsd.org/changeset/base/175487[175487] -|January 19, 2008 -|8.0-CURRENT after introduction of man:lockmgr_recursed[9], man:BUF_RECURSED[9] and man:BUF_ISLOCKED[9] and the removal of `BUF_REFCNT()`. +|19 января 2008 +|8.0-CURRENT после введения man:lockmgr_recursed[9], man:BUF_RECURSED[9] и man:BUF_ISLOCKED[9], а также удаления `BUF_REFCNT()`. |800013 |link:https://svnweb.freebsd.org/changeset/base/175581[175581] -|January 23, 2008 -|8.0-CURRENT after introduction of the "ASCII" encoding. +|23 января 2008 +|8.0-CURRENT после введения кодировки "ASCII". |800014 |link:https://svnweb.freebsd.org/changeset/base/175636[175636] -|January 24, 2008 -|8.0-CURRENT after changing the prototype of man:lockmgr[9] and removal of `lockcount()` and `LOCKMGR_ASSERT()`. +|24 января 2008 +|8.0-CURRENT после изменения прототипа man:lockmgr[9] и удаления `lockcount()` и `LOCKMGR_ASSERT()`. |800015 |link:https://svnweb.freebsd.org/changeset/base/175688[175688] -|January 26, 2008 -|8.0-CURRENT after extending the types of the man:fts[3] structures. +|26 января 2008 +|8.0-CURRENT после расширения типов структур man:fts[3]. |800016 |link:https://svnweb.freebsd.org/changeset/base/175872[175872] -|February 1, 2008 -|8.0-CURRENT after adding an argument to man:MEXTADD[9] +|1 февраля 2008 +|8.0-CURRENT после добавления аргумента в man:MEXTADD[9] |800017 |link:https://svnweb.freebsd.org/changeset/base/176015[176015] -|February 6, 2008 -|8.0-CURRENT after the introduction of LK_NODUP and LK_NOWITNESS options in the man:lockmgr[9] space. +|6 февраля 2008 +|8.0-CURRENT после введения опций LK_NODUP и LK_NOWITNESS в пространстве man:lockmgr[9]. |800018 |link:https://svnweb.freebsd.org/changeset/base/176112[176112] -|February 8, 2008 -|8.0-CURRENT after the addition of m_collapse. +|8 февраля 2008 +|8.0-CURRENT после добавления `m_collapse`. |800019 |link:https://svnweb.freebsd.org/changeset/base/176124[176124] -|February 9, 2008 -|8.0-CURRENT after the addition of current working directory, root directory, and jail directory support to the kern.proc.filedesc sysctl. +|9 февраля 2008 +|8.0-CURRENT после добавления поддержки текущего рабочего каталога, корневого каталога и каталога клетки в sysctl kern.proc.filedesc. |800020 |link:https://svnweb.freebsd.org/changeset/base/176251[176251] -|February 13, 2008 -|8.0-CURRENT after introduction of man:lockmgr_assert[9] and `BUF_ASSERT` functions. +|13 февраля 2008 +|8.0-CURRENT после добавления man:lockmgr_assert[9] и функций `BUF_ASSERT`. |800021 |link:https://svnweb.freebsd.org/changeset/base/176321[176321] -|February 15, 2008 -|8.0-CURRENT after introduction of man:lockmgr_args[9] and LK_INTERNAL flag removal. +|15 февраля 2008 +|8.0-CURRENT после введения man:lockmgr_args[9] и удаления флага LK_INTERNAL. |800022 |link:https://svnweb.freebsd.org/changeset/base/176556[176556] -|(backed out) -|8.0-CURRENT after changing the default system ar to BSD man:ar[1]. +|(отменено) +|8.0-CURRENT после изменения стандартной системной ar на BSD man:ar[1]. |800023 |link:https://svnweb.freebsd.org/changeset/base/176560[176560] -|February 25, 2008 -|8.0-CURRENT after changing the prototypes of man:lockstatus[9] and man:VOP_ISLOCKED[9];, more specifically retiring the `struct thread` argument. +|25 февраля 2008 +|8.0-CURRENT после изменения прототипов man:lockstatus[9] и man:VOP_ISLOCKED[9];, а именно удаления аргумента `struct thread`. |800024 |link:https://svnweb.freebsd.org/changeset/base/176709[176709] -|March 1, 2008 -|8.0-CURRENT after axing out the `lockwaiters` and `BUF_LOCKWAITERS` functions, changing the return value of `brelvp` from void to int and introducing new flags for man:lockinit[9]. +|1 марта 2008 +|8.0-CURRENT после удаления функций `lockwaiters` и `BUF_LOCKWAITERS`, изменения возвращаемого значения `brelvp` с void на int и добавления новых флагов для man:lockinit[9]. |800025 |link:https://svnweb.freebsd.org/changeset/base/176958[176958] -|March 8, 2008 -|8.0-CURRENT after adding F_DUP2FD command to man:fcntl[2]. +|8 марта 2008 +|8.0-CURRENT после добавления команды F_DUP2FD в man:fcntl[2]. |800026 |link:https://svnweb.freebsd.org/changeset/base/177086[177086] -|March 12, 2008 -|8.0-CURRENT after changing the priority parameter to cv_broadcastpri such that 0 means no priority. +|12 марта 2008 +|8.0-CURRENT после изменения параметра приоритета на `cv_broadcastpri`, где 0 означает отсутствие приоритета. |800027 |link:https://svnweb.freebsd.org/changeset/base/177551[177551] -|March 24, 2008 -|8.0-CURRENT after changing the bpf monitoring ABI when zerocopy bpf buffers were added. +|24 марта 2008 +|8.0-CURRENT после изменения ABI мониторинга bpf при добавлении буферов bpf с `zerocopy`. |800028 |link:https://svnweb.freebsd.org/changeset/base/177637[177637] -|March 26, 2008 -|8.0-CURRENT after adding l_sysid to struct flock. +|26 марта 2008 +|8.0-CURRENT после добавления `l_sysid` в структуру flock. |800029 |link:https://svnweb.freebsd.org/changeset/base/177688[177688] |March 28, 2008 -|8.0-CURRENT after reintegration of the `BUF_LOCKWAITERS` function and the addition of man:lockmgr_waiters[9]. +|8.0-CURRENT после повторного включения функции `BUF_LOCKWAITERS` и добавления man:lockmgr_waiters[9]. |800030 |link:https://svnweb.freebsd.org/changeset/base/177844[177844] -|April 1, 2008 -|8.0-CURRENT after the introduction of the man:rw_try_rlock[9] and man:rw_try_wlock[9] functions. +|1 апреля 2008 +|8.0-CURRENT после введения функций man:rw_try_rlock[9] и man:rw_try_wlock[9]. |800031 |link:https://svnweb.freebsd.org/changeset/base/177958[177958] -|April 6, 2008 -|8.0-CURRENT after the introduction of the `lockmgr_rw` and `lockmgr_args_rw` functions. +|6 апреля 2008 +|8.0-CURRENT после введения функций `lockmgr_rw` и `lockmgr_args_rw`. |800032 |link:https://svnweb.freebsd.org/changeset/base/178006[178006] -|April 8, 2008 -|8.0-CURRENT after the implementation of the openat and related syscalls, introduction of the O_EXEC flag for the man:open[2], and providing the corresponding linux compatibility syscalls. +|8 апреля 2008 +|8.0-CURRENT после реализации системных вызовов `openat` и связанных с ними, введения флага O_EXEC для man:open[2] и предоставления соответствующих системных вызовов совместимости с Linux. |800033 |link:https://svnweb.freebsd.org/changeset/base/178017[178017] -|April 8, 2008 -|8.0-CURRENT after added man:write[2] support for man:psm[4] in native operation level. Now arbitrary commands can be written to [.filename]#/dev/psm%d# and status can be read back from it. +|8 апреля 2008 +|8.0-CURRENT после добавления поддержки man:write[2] для man:psm[4] на уровне нативной работы. Теперь произвольные команды можно записывать в [.filename]#/dev/psm%d#, а статус — считывать из него. |800034 |link:https://svnweb.freebsd.org/changeset/base/178051[178051] -|April 10, 2008 -|8.0-CURRENT after introduction of the `memrchr` function. +|10 апреля 2008 +|8.0-CURRENT после введения функции `memrchr`. |800035 |link:https://svnweb.freebsd.org/changeset/base/178256[178256] -|April 16, 2008 -|8.0-CURRENT after introduction of the `fdopendir` function. +|16 апреля 2008 +|8.0-CURRENT после введения функции `fdopendir`. |800036 |link:https://svnweb.freebsd.org/changeset/base/178362[178362] -|April 20, 2008 -|8.0-CURRENT after switchover of 802.11 wireless to multi-bss support (aka vaps). +|20 апреля 2008 +|8.0-CURRENT после перехода на поддержку multi-bss в беспроводных сетях 802.11 (также известную как `vaps`). |800037 |link:https://svnweb.freebsd.org/changeset/base/178892[178892] -|May 9, 2008 -|8.0-CURRENT after addition of multi routing table support (aka man:setfib[1], man:setfib[2]). +|9 мая 2008 +|8.0-CURRENT после добавления поддержки нескольких таблиц маршрутизации (также известных как man:setfib[1], man:setfib[2]). |800038 |link:https://svnweb.freebsd.org/changeset/base/179316[179316] -|May 26, 2008 -|8.0-CURRENT after removal of netatm and ISDN4BSD. Also, the addition of the Compact C Type (CTF) tools. +|26 мая 2008 +|8.0-CURRENT после удаления `netatm` и ISDN4BSD. Также добавлены инструменты Compact C Type (CTF). |800039 |link:https://svnweb.freebsd.org/changeset/base/179784[179784] -|June 14, 2008 -|8.0-CURRENT after removal of sgtty. +|14 июня 2008 +|8.0-CURRENT после удаления `sgtty`. |800040 |link:https://svnweb.freebsd.org/changeset/base/180025[180025] -|June 26, 2008 -|8.0-CURRENT with kernel NFS lockd client. +|26 июня 2008 +|8.0-CURRENT с клиентом `lockd` для NFS в ядре. |800041 |link:https://svnweb.freebsd.org/changeset/base/180691[180691] -|July 22, 2008 -|8.0-CURRENT after addition of man:arc4random_buf[3] and man:arc4random_uniform[3]. +|22 июля 2008 +|8.0-CURRENT после добавления man:arc4random_buf[3] и man:arc4random_uniform[3]. |800042 |link:https://svnweb.freebsd.org/changeset/base/181439[181439] -|August 8, 2008 -|8.0-CURRENT after addition of man:cpuctl[4]. +|8 августа 2008 +|8.0-CURRENT после добавления man:cpuctl[4]. |800043 |link:https://svnweb.freebsd.org/changeset/base/181694[181694] -|August 13, 2008 -|8.0-CURRENT after changing man:bpf[4] to use a single device node, instead of device cloning. +|13 августа 2008 +|8.0-CURRENT после изменения man:bpf[4] для использования единого узла устройства вместо клонирования устройств. |800044 |link:https://svnweb.freebsd.org/changeset/base/181803[181803] -|August 17, 2008 -|8.0-CURRENT after the commit of the first step of the vimage project renaming global variables to be virtualized with a V_ prefix with macros to map them back to their global names. +|17 августа 2008 +|8.0-CURRENT после внесения изменений, связанных с первым этапом проекта VIMAGE, переименованы глобальные переменные, подлежащие виртуализации, с добавлением префикса `V_` и макросов для их обратного отображения на глобальные имена. |800045 |link:https://svnweb.freebsd.org/changeset/base/181905[181905] -|August 20, 2008 -|8.0-CURRENT after the integration of the MPSAFE TTY layer, including changes to various drivers and utilities that interact with it. +|20 августа 2008 +|8.0-CURRENT после интеграции MPSAFE TTY слоя, включая изменения в различных драйверах и утилитах, взаимодействующих с ним. |800046 |link:https://svnweb.freebsd.org/changeset/base/182869[182869] -|September 8, 2008 -|8.0-CURRENT after the separation of the GDT per CPU on amd64 architecture. +|8 сентября 2008 +|8.0-CURRENT после разделения GDT для каждого процессора на архитектуре amd64. |800047 |link:https://svnweb.freebsd.org/changeset/base/182905[182905] -|September 10, 2008 -|8.0-CURRENT after removal of VSVTX, VSGID and VSUID. +|10 сентября 2008 +|8.0-CURRENT после удаления VSVTX, VSGID и VSUID. |800048 |link:https://svnweb.freebsd.org/changeset/base/183091[183091] -|September 16, 2008 -|8.0-CURRENT after converting the kernel NFS mount code to accept individual mount options in the man:nmount[2] iovec, not just one big struct nfs_args. +|16 сентября 2008 +|8.0-CURRENT после преобразования кода монтирования ядра NFS для поддержки отдельных опций монтирования в `iovec` man:nmount[2], а не только одной большой структуры nfs_args. |800049 |link:https://svnweb.freebsd.org/changeset/base/183114[183114] -|September 17, 2008 -|8.0-CURRENT after the removal of man:suser[9] and man:suser_cred[9]. +|17 сентября 2008 +|8.0-CURRENT после удаления man:suser[9] и man:suser_cred[9]. |800050 |link:https://svnweb.freebsd.org/changeset/base/184099[184099] -|October 20, 2008 -|8.0-CURRENT after buffer cache API change. +|20 октября 2008 +|8.0-CURRENT после изменения API кэша буфера. |800051 |link:https://svnweb.freebsd.org/changeset/base/184205[184205] -|October 23, 2008 -|8.0-CURRENT after the removal of the man:MALLOC[9] and man:FREE[9] macros. +|23 октября 2008 +|8.0-CURRENT после удаления макросов man:MALLOC[9] и man:FREE[9]. |800052 |link:https://svnweb.freebsd.org/changeset/base/184419[184419] -|October 28, 2008 -|8.0-CURRENT after the introduction of accmode_t and renaming of VOP_ACCESS 'a_mode' argument to 'a_accmode'. +|28 октября 2008 +|8.0-CURRENT после введения `accmode_t` и переименования аргумента `a_mode` в `a_accmode` в VOP_ACCESS. |800053 |link:https://svnweb.freebsd.org/changeset/base/184555[184555] -|November 2, 2008 -|8.0-CURRENT after the prototype change of man:vfs_busy[9] and the introduction of its MBF_NOWAIT and MBF_MNTLSTLOCK flags. +|2 ноября 2008 +|8.0-CURRENT после изменения прототипа man:vfs_busy[9] и введения флагов MBF_NOWAIT и MBF_MNTLSTLOCK. |800054 |link:https://svnweb.freebsd.org/changeset/base/185162[185162] -|November 22, 2008 -|8.0-CURRENT after the addition of buf_ring, memory barriers and ifnet functions to facilitate multiple hardware transmit queues for cards that support them, and a lockless ring-buffer implementation to enable drivers to more efficiently manage queuing of packets. +|22 ноября 2008 +|8.0-CURRENT после добавления `buf_ring`, барьеров памяти и функций ifnet для поддержки нескольких аппаратных очередей передачи для карт, которые их поддерживают, а также реализации кольцевого буфера без блокировок, чтобы позволить драйверам более эффективно управлять очередями пакетов. |800055 |link:https://svnweb.freebsd.org/changeset/base/185363[185363] -|November 27, 2008 -|8.0-CURRENT after the addition of Intel(TM) Core, Core2, and Atom support to man:hwpmc[4]. +|27 ноября 2008 +|8.0-CURRENT после добавления поддержки Intel(TM) Core, Core2 и Atom в man:hwpmc[4]. |800056 |link:https://svnweb.freebsd.org/changeset/base/185435[185435] -|November 29, 2008 -|8.0-CURRENT after the introduction of multi-/no-IPv4/v6 jails. +|29 ноября 2008 +|8.0-CURRENT после введения многопользовательских/без IPv4/v6 клеток. |800057 |link:https://svnweb.freebsd.org/changeset/base/185522[185522] -|December 1, 2008 -|8.0-CURRENT after the switch to the ath hal source code. +|1 декабря 2008 +|8.0-CURRENT после перехода на исходный код `hal` для ath. |800058 |link:https://svnweb.freebsd.org/changeset/base/185968[185968] -|December 12, 2008 -|8.0-CURRENT after the introduction of the VOP_VPTOCNP operation. +|12 декабря 2008 +|8.0-CURRENT после введения операции VOP_VPTOCNP. |800059 |link:https://svnweb.freebsd.org/changeset/base/186119[186119] -|December 15, 2008 -|8.0-CURRENT incorporates the new arp-v2 rewrite. +|15 декабря 2008 +|8.0-CURRENT включает новую переработанную версию arp-v2. |800060 |link:https://svnweb.freebsd.org/changeset/base/186344[186344] -|December 19, 2008 -|8.0-CURRENT after the addition of makefs. +|19 декабря 2008 +|8.0-CURRENT после добавления makefs. |800061 |link:https://svnweb.freebsd.org/changeset/base/187289[187289] -|January 15, 2009 -|8.0-CURRENT after TCP Appropriate Byte Counting. +|15 января 2009 +|8.0-CURRENT после TCP Appropriate Byte Counting. |800062 |link:https://svnweb.freebsd.org/changeset/base/187830[187830] -|January 28, 2009 -|8.0-CURRENT after removal of minor(), minor2unit(), unit2minor(), etc. +|28 января 2009 +|8.0-CURRENT после удаления `minor()`, `minor2unit()`, `unit2minor()` и т.д. |800063 |link:https://svnweb.freebsd.org/changeset/base/188745[188745] -|February 18, 2009 -|8.0-CURRENT after GENERIC config change to use the USB2 stack, but also the addition of man:fdevname[3]. +|18 февраля 2009 +|8.0-CURRENT после изменения конфигурации GENERIC для использования стека USB2, а также добавления man:fdevname[3]. |800064 |link:https://svnweb.freebsd.org/changeset/base/188946[188946] -|February 23, 2009 -|8.0-CURRENT after the USB2 stack is moved to and replaces dev/usb. +|23 февраля 2009 +|8.0-CURRENT после переноса стека USB2 и замены dev/usb. |800065 |link:https://svnweb.freebsd.org/changeset/base/189092[189092] -|February 26, 2009 -|8.0-CURRENT after the renaming of all functions in man:libmp[3]. +|26 февраля 2009 +|8.0-CURRENT после переименования всех функций в man:libmp[3]. |800066 |link:https://svnweb.freebsd.org/changeset/base/189110[189110] -|February 27, 2009 -|8.0-CURRENT after changing USB devfs handling and layout. +|27 февраля 2009 +|8.0-CURRENT после изменения обработки и структуры USB devfs. |800067 |link:https://svnweb.freebsd.org/changeset/base/189136[189136] -|February 28, 2009 -|8.0-CURRENT after adding getdelim(), getline(), stpncpy(), strnlen(), wcsnlen(), wcscasecmp(), and wcsncasecmp(). +|28 февраля 2009 +|8.0-CURRENT после добавления `getdelim()`, `getline()`, `stpncpy()`, `strnlen()`, `wcsnlen()`, `wcscasecmp()`, and `wcsncasecmp()`. |800068 |link:https://svnweb.freebsd.org/changeset/base/189276[189276] -|March 2, 2009 -|8.0-CURRENT after renaming the ushub devclass to uhub. +|2 марта 2009 +|8.0-CURRENT после переименования класса устройств `ushub` в `uhub`. |800069 |link:https://svnweb.freebsd.org/changeset/base/189585[189585] -|March 9, 2009 -|8.0-CURRENT after libusb20.so.1 was renamed to libusb.so.1. +|9 марта 2009 +|8.0-CURRENT после переименования libusb20.so.1 в libusb.so.1. |800070 |link:https://svnweb.freebsd.org/changeset/base/189592[189592] -|March 9, 2009 -|8.0-CURRENT after merging IGMPv3 and Source-Specific Multicast (SSM) to the IPv4 stack. +|9 марта 2009 +|8.0-CURRENT после объединения IGMPv3 и Source-Specific Multicast (SSM) в стек IPv4. |800071 |link:https://svnweb.freebsd.org/changeset/base/189825[189825] -|March 14, 2009 -|8.0-CURRENT after gcc was patched to use C99 inline semantics in c99 and gnu99 mode. +|14 марта 2009 +|8.0-CURRENT после того, как gcc был исправлен для использования семантики встраивания C99 в режимах c99 и gnu99. |800072 |link:https://svnweb.freebsd.org/changeset/base/189853[189853] |March 15, 2009 -|8.0-CURRENT after the IFF_NEEDSGIANT flag has been removed; non-MPSAFE network device drivers are no longer supported. +|8.0-CURRENT после удаления флага IFF_NEEDSGIANT; неподдерживаемые MPSAFE драйверы сетевых устройств больше не поддерживаются. |800073 |link:https://svnweb.freebsd.org/changeset/base/190265[190265] -|March 18, 2009 -|8.0-CURRENT after the dynamic string token substitution has been implemented for rpath and needed paths. +|18 марта 2009 +|8.0-CURRENT после реализации подстановки динамических строковых токенов для rpath и необходимых путей. |800074 |link:https://svnweb.freebsd.org/changeset/base/190373[190373] -|March 24, 2009 -|8.0-CURRENT after tcpdump 4.0.0 and libpcap 1.0.0 import. +|24 марта 2009 +|8.0-CURRENT после импорта tcpdump 4.0.0 и libpcap 1.0.0. |800075 |link:https://svnweb.freebsd.org/changeset/base/190787[190787] -|April 6, 2009 -|8.0-CURRENT after layout of structs vnet_net, vnet_inet and vnet_ipfw has been changed. +|6 апреля 2009 +|8.0-CURRENT после изменения структуры структур vnet_net, vnet_inet и vnet_ipfw. |800076 |link:https://svnweb.freebsd.org/changeset/base/190866[190866] -|April 9, 2009 -|8.0-CURRENT after adding delay profiles in dummynet. +|9 апреля 2009 +|8.0-CURRENT после добавления профилей задержки в dummynet. |800077 |link:https://svnweb.freebsd.org/changeset/base/190914[190914] -|April 14, 2009 -|8.0-CURRENT after removing VOP_LEASE() and vop_vector.vop_lease. +|14 апреля 2009 +|8.0-CURRENT после удаления `VOP_LEASE()` и vop_vector.vop_lease. |800078 |link:https://svnweb.freebsd.org/changeset/base/191080[191080] -|April 15, 2009 -|8.0-CURRENT after struct rt_weight fields have been added to struct rt_metrics and struct rt_metrics_lite, changing the layout of struct rt_metrics_lite. A bump to RTM_VERSION was made, but backed out. +|15 апреля 2009 +|8.0-CURRENT после добавления полей `rt_weight` в структуры `rt_metrics` и `rt_metrics_lite`, что изменило расположение полей в структуре `rt_metrics_lite`. Версия RTM_VERSION была увеличена, но затем отменена. |800079 |link:https://svnweb.freebsd.org/changeset/base/191117[191117] -|April 15, 2009 -|8.0-CURRENT after struct llentry pointers are added to struct route and struct route_in6. +|15 апреля 2009 +|8.0-CURRENT после добавления указателей на структуру `llentry` в структуры `route` и `route_in6`. |800080 |link:https://svnweb.freebsd.org/changeset/base/191126[191126] -|April 15, 2009 -|8.0-CURRENT after layout of struct inpcb has been changed. +|15 апреля 2009 +|8.0-CURRENT после изменения структуры inpcb. |800081 |link:https://svnweb.freebsd.org/changeset/base/191267[191267] -|April 19, 2009 -|8.0-CURRENT after the layout of struct malloc_type has been changed. +|19 апреля 2009 +|8.0-CURRENT после изменения структуры `malloc_type`. |800082 |link:https://svnweb.freebsd.org/changeset/base/191368[191368] -|April 21, 2009 -|8.0-CURRENT after the layout of struct ifnet has changed, and with if_ref() and if_rele() ifnet refcounting. +|21 апреля 2009 +|8.0-CURRENT после изменения структуры struct ifnet и с `if_ref()` и `if_rele()` для подсчета ссылок (`refcounting`) ifnet. |800083 |link:https://svnweb.freebsd.org/changeset/base/191389[191389] -|April 22, 2009 -|8.0-CURRENT after the implementation of a low-level Bluetooth HCI API. +|22 апреля 2009 +|8.0-CURRENT после реализации низкоуровневого API HCI Bluetooth. |800084 |link:https://svnweb.freebsd.org/changeset/base/191672[191672] -|April 29, 2009 -|8.0-CURRENT after IPv6 SSM and MLDv2 changes. +|29 апреля 2009 +|8.0-CURRENT после изменений в IPv6 SSM и MLDv2. |800085 |link:https://svnweb.freebsd.org/changeset/base/191688[191688] -|April 30, 2009 -|8.0-CURRENT after enabling support for VIMAGE kernel builds with one active image. +|30 апреля 2009 +|8.0-CURRENT после включения поддержки сборки ядра с VIMAGE с одним активным образом. |800086 |link:https://svnweb.freebsd.org/changeset/base/191910[191910] -|May 8, 2009 -|8.0-CURRENT after adding support for input lines of arbitrarily length in man:patch[1]. +|8 мая 2009 +|8.0-CURRENT после добавления поддержки строк ввода произвольной длины в man:patch[1]. |800087 |link:https://svnweb.freebsd.org/changeset/base/191990[191990] -|May 11, 2009 -|8.0-CURRENT after some VFS KPI changes. The thread argument has been removed from the FSD parts of the VFS. `VFS_*` functions do not need the context any more because it always refers to `curthread`. In some special cases, the old behavior is retained. +|11 мая 2009 +|8.0-CURRENT после некоторых изменений в VFS KPI. Аргумент потока был удален из частей FSD в VFS. Функциям `VFS_*` больше не нужен контекст, так как он всегда относится к `curthread`. В некоторых особых случаях старое поведение сохранено. |800088 |link:https://svnweb.freebsd.org/changeset/base/192470[192470] -|May 20, 2009 -|8.0-CURRENT after net80211 monitor mode changes. +|20 мая 2009 +|8.0-CURRENT после изменений режима монитора в net80211. |800089 |link:https://svnweb.freebsd.org/changeset/base/192649[192649] -|May 23, 2009 -|8.0-CURRENT after adding UDP control block support. +|23 мая 2009 +|8.0-CURRENT после добавления поддержки блока управления UDP. |800090 |link:https://svnweb.freebsd.org/changeset/base/192669[192669] -|May 23, 2009 -|8.0-CURRENT after virtualizing interface cloning. +|23 мая 2009 +|8.0-CURRENT после виртуализации клонирования интерфейсов. |800091 |link:https://svnweb.freebsd.org/changeset/base/192895[192895] -|May 27, 2009 -|8.0-CURRENT after adding hierarchical jails and removing global securelevel. +|27 мая 2009 +|8.0-CURRENT после добавления иерархических клеток и удаления глобального securelevel. |800092 |link:https://svnweb.freebsd.org/changeset/base/193011[193011] -|May 29, 2009 -|8.0-CURRENT after changing `sx_init_flags()` KPI. The `SX_ADAPTIVESPIN` is retired and a new `SX_NOADAPTIVE` flag is introduced to handle the reversed logic. +|29 мая 2009 +|8.0-CURRENT после изменения KPI `sx_init_flags()`. `SX_ADAPTIVESPIN` упразднён, и введён новый флаг `SX_NOADAPTIVE` для обработки обратной логики. |800093 |link:https://svnweb.freebsd.org/changeset/base/193047[193047] -|May 29, 2009 -|8.0-CURRENT after adding mnt_xflag to struct mount. +|29 мая 2009 +|8.0-CURRENT после добавления `mnt_xflag` в структуру mount. |800094 |link:https://svnweb.freebsd.org/changeset/base/193093[193093] -|May 30, 2009 -|8.0-CURRENT after adding man:VOP_ACCESSX[9]. +|30 мая 2009 +|8.0-CURRENT после добавления man:VOP_ACCESSX[9]. |800095 |link:https://svnweb.freebsd.org/changeset/base/193096[193096] -|May 30, 2009 -|8.0-CURRENT after changing the polling KPI. The polling handlers now return the number of packets processed. A new `IFCAP_POLLING_NOCOUNT` is also introduced to specify that the return value is not significant and the counting should be skipped. +|30 мая 2009 +|8.0-CURRENT после изменения KPI для polling. Обработчики polling теперь возвращают количество обработанных пакетов. Также введена новая возможность `IFCAP_POLLING_NOCOUNT`, которая указывает, что возвращаемое значение не является значимым и подсчёт следует пропустить. |800096 |link:https://svnweb.freebsd.org/changeset/base/193219[193219] -|June 1, 2009 -|8.0-CURRENT after updating to the new netisr implementation and after changing the way we store and access FIBs. +|1 июня 2009 +|8.0-CURRENT после обновления до новой реализации netisr и после изменения способа хранения и доступа к FIB. |800097 |link:https://svnweb.freebsd.org/changeset/base/193731[193731] -|June 8, 2009 -|8.0-CURRENT after the introduction of vnet destructor hooks and infrastructure. +|8 июня 2009 +|8.0-CURRENT после введения хуков и инфраструктуры деструктора vnet. -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/194012[194012] -|June 11, 2009 -|8.0-CURRENT after the introduction of netgraph outbound to inbound path call detection and queuing, which also changed the layout of struct thread. +|11 июня 2009 +|8.0-CURRENT после введения в netgraph обнаружения вызовов пути из исходящего во входящий и организации очередей, что также изменило структуру struct thread. |800098 |link:https://svnweb.freebsd.org/changeset/base/194210[194210] -|June 14, 2009 -|8.0-CURRENT after OpenSSL 0.9.8k import. +|14 июня 2009 +|8.0-CURRENT после импорта OpenSSL 0.9.8k. |800099 |link:https://svnweb.freebsd.org/changeset/base/194675[194675] -|June 22, 2009 -|8.0-CURRENT after NGROUPS update and moving route virtualization into its own VImage module. +|22 июня 2009 +|8.0-CURRENT после обновления NGROUPS и переноса виртуализации маршрутов в собственный модуль VImage. |800100 |link:https://svnweb.freebsd.org/changeset/base/194920[194920] -|June 24, 2009 -|8.0-CURRENT after SYSVIPC ABI change. +|24 июня 2009 +|8.0-CURRENT после изменения ABI SYSVIPC. |800101 |link:https://svnweb.freebsd.org/changeset/base/195175[195175] -|June 29, 2009 -|8.0-CURRENT after the removal of the /dev/net/* per-interface character devices. +|29 июня 2009 +|8.0-CURRENT после удаления символьных устройств /dev/net/* для каждого интерфейса. |800102 |link:https://svnweb.freebsd.org/changeset/base/195634[195634] -|July 12, 2009 -|8.0-CURRENT after padding was added to struct sackhint, struct tcpcb, and struct tcpstat. +|12 июля 2009 +|8.0-CURRENT после добавления заполнения к структурам `sackhint`, `tcpcb` и `tcpstat`. |800103 |link:https://svnweb.freebsd.org/changeset/base/195654[195654] -|July 13, 2009 -|8.0-CURRENT after replacing struct tcpopt with struct toeopt in the TOE driver interface to the TCP syncache. +|13 июля 2009 +|8.0-CURRENT после замены структуры `tcpopt` на структуру `toeopt` в интерфейсе драйвера TOE к `syncache` TCP. |800104 |link:https://svnweb.freebsd.org/changeset/base/195699[195699] -|July 14, 2009 -|8.0-CURRENT after the addition of the linker-set based per-vnet allocator. +|14 июля 2009 +|8.0-CURRENT после добавления распределителя на основе наборов компоновщика для каждого vnet. |800105 |link:https://svnweb.freebsd.org/changeset/base/195767[195767] -|July 19, 2009 -|8.0-CURRENT after version bump for all shared libraries that do not have symbol versioning turned on. +|19 июля 2009 +|8.0-CURRENT после увеличения версии для всех разделяемых библиотек, у которых не включено управление версиями символов. |800106 |link:https://svnweb.freebsd.org/changeset/base/195852[195852] -|July 24, 2009 -|8.0-CURRENT after introduction of OBJT_SG VM object type. +|24 июля 2009 +|8.0-CURRENT после введения типа объекта VM OBJT_SG. |800107 |link:https://svnweb.freebsd.org/changeset/base/196037[196037] -|August 2, 2009 -|8.0-CURRENT after making the newbus subsystem Giant free by adding the newbus sxlock and 8.0-RELEASE. +|2 августа 2009 +|8.0-CURRENT после освобождения подсистемы newbus от Giant путем добавления `sxlock` в newbus и 8.0-RELEASE. |800108 |link:https://svnweb.freebsd.org/changeset/base/199627[199627] -|November 21, 2009 -|8.0-STABLE after implementing EVFILT_USER kevent filter. +|21 ноября 2009 +|8.0-STABLE после реализации фильтра `kevent` `EVFILT_USER`. |800500 |link:https://svnweb.freebsd.org/changeset/base/201749[201749] -|January 7, 2010 -|8.0-STABLE after `__FreeBSD_version` bump to make `pkg_add -r` use packages-8-stable. +|7 января 2010 +|8.0-STABLE после увеличения `__FreeBSD_version`, чтобы `pkg_add -r` использовал пакеты-8-stable. |800501 |link:https://svnweb.freebsd.org/changeset/base/202922[202922] -|January 24, 2010 -|8.0-STABLE after change of the man:scandir[3] and man:alphasort[3] prototypes to conform to SUSv4. +|24 января 2010 +|8.0-STABLE после изменения прототипов man:scandir[3] и man:alphasort[3] для соответствия SUSv4. |800502 |link:https://svnweb.freebsd.org/changeset/base/203299[203299] -|January 31, 2010 -|8.0-STABLE after addition of man:sigpause[2]. +|31 января 2010 +|8.0-STABLE после добавления man:sigpause[2]. |800503 |link:https://svnweb.freebsd.org/changeset/base/204344[204344] -|February 25, 2010 -|8.0-STABLE after addition of SIOCGIFDESCR and SIOCSIFDESCR ioctls to network interfaces. These ioctl can be used to manipulate interface description, as inspired by OpenBSD. +|25 февраля 2010 +|8.0-STABLE после добавления ioctl SIOCGIFDESCR и SIOCSIFDESCR к сетевым интерфейсам. Эти ioctl могут использоваться для управления описанием интерфейса, по аналогии с OpenBSD. |800504 |link:https://svnweb.freebsd.org/changeset/base/204546[204546] -|March 1, 2010 -|8.0-STABLE after MFC of importing x86emu, a software emulator for real mode x86 CPU from OpenBSD. +|1 марта 2010 +|8.0-STABLE после MFC импорта x86emu, программного эмулятора реального режима x86 CPU из OpenBSD. |800505 |link:https://svnweb.freebsd.org/changeset/base/208259[208259] -|May 18, 2010 -|8.0-STABLE after MFC of adding liblzma, xz, xzdec, and lzmainfo. +|18 мая 2010 +|8.0-STABLE после MFC добавления liblzma, xz, xzdec и lzmainfo. |801000 |link:https://svnweb.freebsd.org/changeset/base/209150[209150] -|June 14, 2010 +|14 июня 2010 |8.1-RELEASE |801500 |link:https://svnweb.freebsd.org/changeset/base/209146[209146] -|June 14, 2010 -|8.1-STABLE after 8.1-RELEASE. +|14 июня 2010 +|8.1-STABLE после 8.1-RELEASE. |801501 |link:https://svnweb.freebsd.org/changeset/base/214762[214762] -|November 3, 2010 -|8.1-STABLE after KBI change in struct sysentvec, and implementation of PL_FLAG_SCE/SCX/EXEC/SI and pl_siginfo for ptrace(PT_LWPINFO) . +|3 ноября 2010 +|8.1-STABLE после изменения KBI в структуре `sysentvec`, а также реализации PL_FLAG_SCE/SCX/EXEC/SI и `pl_siginfo` для ptrace(PT_LWPINFO). |802000 |link:https://svnweb.freebsd.org/changeset/base/216639[216639] -|December 22, 2010 +|22 декабря 2010 |8.2-RELEASE |802500 |link:https://svnweb.freebsd.org/changeset/base/216654[216654] -|December 22, 2010 -|8.2-STABLE after 8.2-RELEASE. +|22 декабря 2010 +|8.2-STABLE после 8.2-RELEASE. |802501 |link:https://svnweb.freebsd.org/changeset/base/219107[219107] -|February 28, 2011 -|8.2-STABLE after merging DTrace changes, including support for userland tracing. +|28 февраля 2011 +|8.2-STABLE после объединения изменений DTrace, включая поддержку трассировки пользовательского пространства. |802502 |link:https://svnweb.freebsd.org/changeset/base/219324[219324] -|March 6, 2011 -|8.2-STABLE after merging log2 and log2f into libm. +|6 марта 2011 +|8.2-STABLE после объединения log2 и log2f в libm. |802503 |link:https://svnweb.freebsd.org/changeset/base/221275[221275] -|May 1, 2011 -|8.2-STABLE after upgrade of the gcc to the last GPLv2 version from the FSF gcc-4_2-branch. +|1 мая 2011 +|8.2-STABLE после обновления gcc до последней версии GPLv2 из ветки FSF gcc-4_2-branch. |802504 |link:https://svnweb.freebsd.org/changeset/base/222401[222401] -|May 28, 2011 -|8.2-STABLE after introduction of the KPI and supporting infrastructure for modular congestion control. +|28 мая 2011 +|8.2-STABLE после введения KPI и поддерживающей инфраструктуры для модульного управления перегрузкой. |802505 |link:https://svnweb.freebsd.org/changeset/base/222406[222406] -|May 28, 2011 -|8.2-STABLE after introduction of Hhook and Khelp KPIs. +|28 мая 2011 +|8.2-STABLE после введения KPIs Hhook и Khelp. |802506 |link:https://svnweb.freebsd.org/changeset/base/222408[222408] -|May 28, 2011 -|8.2-STABLE after addition of OSD to struct tcpcb. +|28 мая 2011 +|8.2-STABLE после добавления OSD в структуру tcpcb. |802507 |link:https://svnweb.freebsd.org/changeset/base/222741[222741] -|June 6, 2011 -|8.2-STABLE after ZFS v28 import. +|6 июня 2011 +|8.2-STABLE после импорта ZFS v28. |802508 |link:https://svnweb.freebsd.org/changeset/base/222846[222846] -|June 8, 2011 -|8.2-STABLE after removal of the schedtail event handler and addition of the sv_schedtail method to struct sysvec. +|8 июня 2011 +|8.2-STABLE после удаления обработчика событий `schedtail` и добавления метода `sv_schedtail` в структуру `sysvec`. |802509 |link:https://svnweb.freebsd.org/changeset/base/224017[224017] -|July 14, 2011 -|8.2-STABLE after merging the SSSE3 support into binutils. +|14 июля 2011 +|8.2-STABLE после объединения поддержки SSSE3 в binutils. |802510 |link:https://svnweb.freebsd.org/changeset/base/224214[224214] -|July 19, 2011 -|8.2-STABLE after addition of RFTSIGZMB flag for man:rfork[2]. +|19 июля 2011 +|8.2-STABLE после добавления флага RFTSIGZMB для man:rfork[2]. |802511 |link:https://svnweb.freebsd.org/changeset/base/225458[225458] -|September 9, 2011 -|8.2-STABLE after addition of automatic detection of USB mass storage devices which do not support the no synchronize cache SCSI command. +|9 сентября 2011 +|8.2-STABLE после добавления автоматического обнаружения USB-накопителей, которые не поддерживают команду SCSI "no synchronize cache". |802512 |link:https://svnweb.freebsd.org/changeset/base/225470[225470] -|September 10, 2011 -|8.2-STABLE after merging of re-factoring of auto-quirk. +|10 сентября 2011 +|8.2-STABLE после объединения рефакторинга auto-quirk. |802513 |link:https://svnweb.freebsd.org/changeset/base/226763[226763] -|October 25, 2011 -|8.2-STABLE after merging of the MAP_PREFAULT_READ flag to man:mmap[2]. +|25 октября 2011 +|8.2-STABLE после объединения флага MAP_PREFAULT_READ в man:mmap[2]. |802514 |link:https://svnweb.freebsd.org/changeset/base/227573[227573] -|November 16, 2011 -|8.2-STABLE after merging of addition of man:posix_fallocate[2] syscall. +|16 ноября 2011 +|8.2-STABLE после объединения добавления системного вызова man:posix_fallocate[2]. |802515 |link:https://svnweb.freebsd.org/changeset/base/229725[229725] -|January 6, 2012 -|8.2-STABLE after merging of addition of the man:posix_fadvise[2] system call. +|6 января 2012 +|8.2-STABLE после объединения добавления системного вызова man:posix_fadvise[2]. |802516 |link:https://svnweb.freebsd.org/changeset/base/230239[230239] -|January 16, 2012 -|8.2-STABLE after merging gperf 3.0.3 +|16 января 2012 +|8.2-STABLE после объединения gperf 3.0.3 |802517 |link:https://svnweb.freebsd.org/changeset/base/231769[231769] -|February 15, 2012 -|8.2-STABLE after introduction of the new extensible man:sysctl[3] interface NET_RT_IFLISTL to query address lists. +|15 февраля 2012 +|8.2-STABLE после введения нового расширяемого интерфейса man:sysctl[3] NET_RT_IFLISTL для запроса списков адресов. |803000 |link:https://svnweb.freebsd.org/changeset/base/232446[232446] -|March 3, 2012 +|3 марта 2012 |8.3-RELEASE. |803500 |link:https://svnweb.freebsd.org/changeset/base/232439[232439] -|March 3, 2012 -|8.3-STABLE after branching releng/8.3 (RELENG_8_3). +|3 марта 2012 +|8.3-STABLE после ветвления releng/8.3 (RELENG_8_3). |803501 |link:https://svnweb.freebsd.org/changeset/base/247091[247091] -|February 21, 2013 -|8.3-STABLE after MFC of two USB fixes (rev link:https://svnweb.freebsd.org/changeset/base/246616[246616] and link:https://svnweb.freebsd.org/changeset/base/246759[246759]). +|21 февраля 2013 +|8.3-STABLE после слияния двух исправлений для USB (ссылки на ревизии: link:https://svnweb.freebsd.org/changeset/base/246616[246616] и link:https://svnweb.freebsd.org/changeset/base/246759[246759]). |804000 |link:https://svnweb.freebsd.org/changeset/base/248850[248850] -|March 28, 2013 +|28 марта 2013 |8.4-RELEASE. |804500 |link:https://svnweb.freebsd.org/changeset/base/248819[248819] -|March 28, 2013 -|8.4-STABLE after 8.4-RELEASE. +|28 марта 2013 +|8.4-STABLE после 8.4-RELEASE. |804501 |link:https://svnweb.freebsd.org/changeset/base/259449[259449] -|December 16, 2013 -|8.4-STABLE after MFC of upstream Heimdal encoding fix. +|16 декабря 2013 +|8.4-STABLE после MFC исправления кодировки из вышестоящего Heimdal. |804502 |link:https://svnweb.freebsd.org/changeset/base/265123[265123] -|April 30, 2014 -|8.4-STABLE after FreeBSD-SA-14:08.tcp. +|30 апреля 2014 +|8.4-STABLE после FreeBSD-SA-14:08.tcp. |804503 |link:https://svnweb.freebsd.org/changeset/base/268444[268444] -|July 9, 2014 -|8.4-STABLE after FreeBSD-SA-14:17.kmem. +|9 июля 2014 +|8.4-STABLE после FreeBSD-SA-14:17.kmem. |804504 |link:https://svnweb.freebsd.org/changeset/base/271341[271341] -|September 9, 2014 -|8.4-STABLE after FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/271305[271305]). +|9 сентября 2014 +|8.4-STABLE после FreeBSD-SA-14:18 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/271305[271305]). |804505 |link:https://svnweb.freebsd.org/changeset/base/271686[271686] -|September 16, 2014 -|8.4-STABLE after FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271668[271668]). +|16 сентября 2014 +|8.4-STABLE после FreeBSD-SA-14:19 (ревизия link:https://svnweb.freebsd.org/changeset/base/271668[271668]). |804506 |link:https://svnweb.freebsd.org/changeset/base/273432[273432] -|October 21, 2014 -|8.4-STABLE after FreeBSD-SA-14:21 (rev link:https://svnweb.freebsd.org/changeset/base/273413[273413]). +|21 октября 2014 +|8.4-STABLE после FreeBSD-SA-14:21 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/273413[273413]). |804507 |link:https://svnweb.freebsd.org/changeset/base/274162[274162] -|November 4, 2014 -|8.4-STABLE after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25. +|4 ноября 2014 +|8.4-STABLE после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25. |804508 |link:https://svnweb.freebsd.org/changeset/base/279287[279287] -|February 25, 2015 -|8-STABLE after FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp, and FreeBSD-SA-15:05.bind. +|25 февраля 2015 +|8-STABLE после FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp и FreeBSD-SA-15:05.bind. |804509 |link:https://svnweb.freebsd.org/changeset/base/305736[305736] -|September 12, 2016 -|8-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]. +|12 сентября 2016 +|8-STABLE после устранения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]. |=== [[versions-7]] -== FreeBSD 7 Versions +== Версии FreeBSD 7 [[freebsd-versions-table-7]] -.FreeBSD 7 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` для FreeBSD 7 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |700000 |link:https://svnweb.freebsd.org/changeset/base/147925[147925] -|July 11, 2005 +|11 июля 2005 |7.0-CURRENT. |700001 |link:https://svnweb.freebsd.org/changeset/base/148341[148341] -|July 23, 2005 -|7.0-CURRENT after bump of all shared library versions that had not been changed since RELENG_5. +|23 июля 2005 +|7.0-CURRENT после увеличения версий всех общих библиотек, которые не изменялись с RELENG_5. |700002 |link:https://svnweb.freebsd.org/changeset/base/149039[149039] -|August 13, 2005 -|7.0-CURRENT after credential argument is added to dev_clone event handler. +|13 августа 2005 +|7.0-CURRENT после добавления аргумента учетных данных в обработчик события `dev_clone`. |700003 |link:https://svnweb.freebsd.org/changeset/base/149470[149470] -|August 25, 2005 -|7.0-CURRENT after man:memmem[3] is added to libc. +|25 августа 2005 +|7.0-CURRENT после добавления man:memmem[3] в libc. |700004 |link:https://svnweb.freebsd.org/changeset/base/151888[151888] -|October 30, 2005 -|7.0-CURRENT after man:solisten[9] kernel arguments are modified to accept a backlog parameter. +|30 октября 2005 +|7.0-CURRENT после изменения аргументов ядра man:solisten[9] для принятия параметра backlog. |700005 |link:https://svnweb.freebsd.org/changeset/base/152296[152296] -|November 11, 2005 -|7.0-CURRENT after IFP2ENADDR() was changed to return a pointer to IF_LLADDR(). +|11 ноября 2005 +|7.0-CURRENT после изменения `IFP2ENADDR()` для возврата указателя на `IF_LLADDR()`. |700006 |link:https://svnweb.freebsd.org/changeset/base/152315[152315] -|November 11, 2005 -|7.0-CURRENT after addition of `if_addr` member to `struct ifnet` and IFP2ENADDR() removal. +|11 ноября 2005 +|7.0-CURRENT после добавления члена `if_addr` в `struct ifnet` и удаления `IFP2ENADDR()`. |700007 |link:https://svnweb.freebsd.org/changeset/base/153027[153027] -|December 2, 2005 -|7.0-CURRENT after incorporating scripts from the local_startup directories into the base man:rcorder[8]. +|2 декабря 2005 +|7.0-CURRENT после включения скриптов из каталогов `local_startup` в базовый man:rcorder[8]. |700008 |link:https://svnweb.freebsd.org/changeset/base/153107[153107] -|December 5, 2005 -|7.0-CURRENT after removal of MNT_NODEV mount option. +|5 декабря 2005 +|7.0-CURRENT после удаления опции монтирования MNT_NODEV. |700009 |link:https://svnweb.freebsd.org/changeset/base/153519[153519] -|December 19, 2005 -|7.0-CURRENT after ELF-64 type changes and symbol versioning. +|19 декабря 2005 +|7.0-CURRENT после изменений типа ELF-64 и версионирования символов. |700010 |link:https://svnweb.freebsd.org/changeset/base/153579[153579] -|December 20, 2005 -|7.0-CURRENT after addition of hostb and vgapci drivers, addition of pci_find_extcap(), and changing the AGP drivers to no longer map the aperture. +|20 декабря 2005 +|7.0-CURRENT после добавления драйверов `hostb` и `vgapci`, добавления `pci_find_extcap()` и изменения драйверов AGP, чтобы они больше не отображали апертуру. |700011 |link:https://svnweb.freebsd.org/changeset/base/153936[153936] -|December 31, 2005 -|7.0-CURRENT after tv_sec was made time_t on all platforms but Alpha. +|31 декабря 2005 +|7.0-CURRENT после того, как `tv_sec` был изменён на `time_t` на всех платформах, кроме Alpha. |700012 |link:https://svnweb.freebsd.org/changeset/base/154114[154114] -|January 8, 2006 -|7.0-CURRENT after ldconfig_local_dirs change. +|8 января 2006 +|7.0-CURRENT после изменения ldconfig_local_dirs. |700013 |link:https://svnweb.freebsd.org/changeset/base/154269[154269] -|January 12, 2006 -|7.0-CURRENT after changes to [.filename]#/etc/rc.d/abi# to support [.filename]#/compat/linux/etc/ld.so.cache# being a symlink in a readonly filesystem. +|12 января 2006 +|7.0-CURRENT после изменений в [.filename]#/etc/rc.d/abi# для поддержки [.filename]#/compat/linux/etc/ld.so.cache# в виде символьной ссылки в файловой системе только для чтения. |700014 |link:https://svnweb.freebsd.org/changeset/base/154863[154863] -|January 26, 2006 -|7.0-CURRENT after pts import. +|26 января 2006 +|7.0-CURRENT после импорта pts. |700015 |link:https://svnweb.freebsd.org/changeset/base/157144[157144] -|March 26, 2006 -|7.0-CURRENT after the introduction of version 2 of man:hwpmc[4]'s ABI. +|26 марта 2006 +|7.0-CURRENT после введения версии 2 ABI man:hwpmc[4]. |700016 |link:https://svnweb.freebsd.org/changeset/base/157962[157962] -|April 22, 2006 -|7.0-CURRENT after addition of man:fcloseall[3] to libc. +|22 апреля 2006 +|7.0-CURRENT после добавления man:fcloseall[3] в libc. |700017 |link:https://svnweb.freebsd.org/changeset/base/158513[158513] -|May 13, 2006 -|7.0-CURRENT after removal of ip6fw. +|13 мая 2006 +|7.0-CURRENT после удаления ip6fw. |700018 |link:https://svnweb.freebsd.org/changeset/base/160386[160386] -|July 15, 2006 -|7.0-CURRENT after import of snd_emu10kx. +|15 июля 2006 +|7.0-CURRENT после импорта snd_emu10kx. |700019 |link:https://svnweb.freebsd.org/changeset/base/160821[160821] -|July 29, 2006 -|7.0-CURRENT after import of OpenSSL 0.9.8b. +|29 июля 2006 +|7.0-CURRENT после импорта OpenSSL 0.9.8b. |700020 |link:https://svnweb.freebsd.org/changeset/base/161931[161931] -|September 3, 2006 -|7.0-CURRENT after addition of bus_dma_get_tag function +|3 сентября 2006 +|7.0-CURRENT после добавления функции `bus_dma_get_tag` |700021 |link:https://svnweb.freebsd.org/changeset/base/162023[162023] -|September 4, 2006 -|7.0-CURRENT after libpcap 0.9.4 and tcpdump 3.9.4 import. +|4 сентября 2006 +|7.0-CURRENT после импорта libpcap 0.9.4 и tcpdump 3.9.4. |700022 |link:https://svnweb.freebsd.org/changeset/base/162170[162170] -|September 9, 2006 -|7.0-CURRENT after dlsym change to look for a requested symbol both in specified dso and its implicit dependencies. +|9 сентября 2006 +|7.0-CURRENT после изменения `dlsym`, чтобы искать запрошенный символ как в указанном DSO, так и в его неявных зависимостях. |700023 |link:https://svnweb.freebsd.org/changeset/base/162588[162588] -|September 23, 2006 -|7.0-CURRENT after adding new sound IOCTLs for the OSSv4 mixer API. +|23 сентября 2006 +|7.0-CURRENT после добавления новых звуковых IOCTL для API микшера OSSv4. |700024 |link:https://svnweb.freebsd.org/changeset/base/162919[162919] -|September 28, 2006 -|7.0-CURRENT after import of OpenSSL 0.9.8d. +|28 сентября 2006 +|7.0-CURRENT после импорта OpenSSL 0.9.8d. |700025 |link:https://svnweb.freebsd.org/changeset/base/164190[164190] -|November 11, 2006 -|7.0-CURRENT after the addition of libelf. +|11 ноября 2006 +|7.0-CURRENT после добавления libelf. |700026 |link:https://svnweb.freebsd.org/changeset/base/164614[164614] -|November 26, 2006 -|7.0-CURRENT after major changes on sound sysctls. +|26 ноября 2006 +|7.0-CURRENT после значительных изменений в звуковых sysctls. |700027 |link:https://svnweb.freebsd.org/changeset/base/164770[164770] -|November 30, 2006 -|7.0-CURRENT after the addition of Wi-Spy quirk. +|30 ноября 2006 +|7.0-CURRENT после добавления особенности Wi-Spy. |700028 |link:https://svnweb.freebsd.org/changeset/base/165242[165242] -|December 15, 2006 -|7.0-CURRENT after the addition of sctp calls to libc +|15 декабря 2006 +|7.0-CURRENT после добавления вызовов `sctp` в libc |700029 |link:https://svnweb.freebsd.org/changeset/base/166259[166259] -|January 26, 2007 -|7.0-CURRENT after the GNU man:gzip[1] implementation was replaced with a BSD licensed version ported from NetBSD. +|26 января 2007 +|7.0-CURRENT после того, как реализация GNU man:gzip[1] была заменена на версию с лицензией BSD, портированную из NetBSD. |700030 |link:https://svnweb.freebsd.org/changeset/base/166549[166549] -|February 7, 2007 -|7.0-CURRENT after the removal of IPIP tunnel encapsulation (VIFF_TUNNEL) from the IPv4 multicast forwarding code. +|7 февраля 2007 +|7.0-CURRENT после удаления инкапсуляции туннеля IPIP (VIFF_TUNNEL) из кода переадресации IPv4 multicast. |700031 |link:https://svnweb.freebsd.org/changeset/base/166907[166907] -|February 23, 2007 -|7.0-CURRENT after the modification of bus_setup_intr() (newbus). +|23 февраля 2007 +|7.0-CURRENT после изменения `bus_setup_intr()` (newbus). |700032 |link:https://svnweb.freebsd.org/changeset/base/167165[167165] -|March 2, 2007 -|7.0-CURRENT after the inclusion of man:ipw[4] and man:iwi[4] firmware. +|2 марта 2007 +|7.0-CURRENT после включения firmware для man:ipw[4] и man:iwi[4]. |700033 |link:https://svnweb.freebsd.org/changeset/base/167360[167360] -|March 9, 2007 -|7.0-CURRENT after the inclusion of ncurses wide character support. +|9 марта 2007 +|7.0-CURRENT после включения поддержки широких символов ncurses. |700034 |link:https://svnweb.freebsd.org/changeset/base/167684[167684] -|March 19, 2007 -|7.0-CURRENT after changes to how insmntque(), getnewvnode(), and vfs_hash_insert() work. +|19 марта 2007 +|7.0-CURRENT после изменений в работе `insmntque()`, `getnewvnode()` и `vfs_hash_insert()`. |700035 |link:https://svnweb.freebsd.org/changeset/base/167906[167906] -|March 26, 2007 -|7.0-CURRENT after addition of a notify mechanism for CPU frequency changes. +|26 марта 2007 +|7.0-CURRENT после добавления механизма уведомлений об изменениях частоты CPU. |700036 |link:https://svnweb.freebsd.org/changeset/base/168413[168413] -|April 6, 2007 -|7.0-CURRENT after import of the ZFS filesystem. +|6 апреля 2007 +|7.0-CURRENT после импорта файловой системы ZFS. |700037 |link:https://svnweb.freebsd.org/changeset/base/168504[168504] -|April 8, 2007 -|7.0-CURRENT after addition of CAM 'SG' peripheral device, which implements a subset of Linux SCSI SG passthrough device API. +|8 апреля 2007 +|7.0-CURRENT после добавления периферийного устройства CAM 'SG', реализующего подмножество API сквозного устройства SCSI SG в Linux. |700038 |link:https://svnweb.freebsd.org/changeset/base/169151[169151] -|April 30, 2007 -|7.0-CURRENT after changing man:getenv[3], man:putenv[3], man:setenv[3] and man:unsetenv[3] to be POSIX conformant. +|30 апреля 2007 +|7.0-CURRENT после изменения man:getenv[3], man:putenv[3], man:setenv[3] и man:unsetenv[3] для соответствия стандарту POSIX. |700039 |link:https://svnweb.freebsd.org/changeset/base/169190[169190] -|May 1, 2007 -|7.0-CURRENT after the changes in 700038 were backed out. +|1 мая 2007 +|7.0-CURRENT после отмены изменений в 700038. |700040 |link:https://svnweb.freebsd.org/changeset/base/169453[169453] -|May 10, 2007 -|7.0-CURRENT after the addition of man:flopen[3] to libutil. +|10 мая 2007 +|7.0-CURRENT после добавления man:flopen[3] в libutil. |700041 |link:https://svnweb.freebsd.org/changeset/base/169526[169526] -|May 13, 2007 -|7.0-CURRENT after enabling symbol versioning, and changing the default thread library to libthr. +|13 мая 2007 +|7.0-CURRENT после включения версионирования символов и изменения библиотеки потоков по умолчанию на libthr. |700042 |link:https://svnweb.freebsd.org/changeset/base/169758[169758] -|May 19, 2007 -|7.0-CURRENT after the import of gcc 4.2.0. +|19 мая 2007 +|7.0-CURRENT после импорта gcc 4.2.0. |700043 |link:https://svnweb.freebsd.org/changeset/base/169830[169830] -|May 21, 2007 -|7.0-CURRENT after bump of all shared library versions that had not been changed since RELENG_6. +|21 мая 2007 +|7.0-CURRENT после увеличения версий всех общих библиотек, которые не изменялись с RELENG_6. |700044 |link:https://svnweb.freebsd.org/changeset/base/170395[170395] -|June 7, 2007 -|7.0-CURRENT after changing the argument for vn_open()/VOP_OPEN() from file descriptor index to the struct file *. +|7 июня 2007 +|7.0-CURRENT после изменения аргумента для `vn_open()`/`VOP_OPEN()` с индекса файлового дескриптора на указатель на структуру file *. |700045 |link:https://svnweb.freebsd.org/changeset/base/170510[170510] -|June 10, 2007 -|7.0-CURRENT after changing man:pam_nologin[8] to provide an account management function instead of an authentication function to the PAM framework. +|10 июня 2007 +|7.0-CURRENT после изменения man:pam_nologin[8] для предоставления функции управления учетными записями вместо функции аутентификации в рамках PAM. |700046 |link:https://svnweb.freebsd.org/changeset/base/170530[170530] -|June 11, 2007 -|7.0-CURRENT after updated 802.11 wireless support. +|11 июня 2007 +|7.0-CURRENT после обновления поддержки беспроводных сетей 802.11. |700047 |link:https://svnweb.freebsd.org/changeset/base/170579[170579] -|June 11, 2007 -|7.0-CURRENT after adding TCP LRO interface capabilities. +|11 июня 2007 +|7.0-CURRENT после добавления возможностей интерфейса TCP LRO. |700048 |link:https://svnweb.freebsd.org/changeset/base/170613[170613] -|June 12, 2007 -|7.0-CURRENT after RFC 3678 API support added to the IPv4 stack. Legacy RFC 1724 behavior of the IP_MULTICAST_IF ioctl has now been removed; 0.0.0.0/8 may no longer be used to specify an interface index. Use struct ipmreqn instead. +|12 июня 2007 +|7.0-CURRENT после добавления поддержки API RFC 3678 в стек IPv4. Устаревшее поведение RFC 1724 для ioctl IP_MULTICAST_IF теперь удалено; 0.0.0.0/8 больше нельзя использовать для указания индекса интерфейса. Вместо этого используйте структуру `ipmreqn`. |700049 |link:https://svnweb.freebsd.org/changeset/base/171175[171175] -|July 3, 2007 -|7.0-CURRENT after importing pf from OpenBSD 4.1 +|3 июля 2007 +|7.0-CURRENT после импорта pf из OpenBSD 4.1 -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/171167[171167] -| -|7.0-CURRENT after adding IPv6 support for FAST_IPSEC, deleting KAME IPSEC, and renaming FAST_IPSEC to IPSEC. +| +|7.0-CURRENT после добавления поддержки IPv6 для FAST_IPSEC, удаления KAME IPSEC и переименования FAST_IPSEC в IPSEC. |700050 |link:https://svnweb.freebsd.org/changeset/base/171195[171195] -|July 4, 2007 -|7.0-CURRENT after converting setenv/putenv/etc. calls from traditional BSD to POSIX. +|4 июля 2007 +|7.0-CURRENT после преобразования вызовов setenv/putenv/etc. из традиционного BSD в POSIX. |700051 |link:https://svnweb.freebsd.org/changeset/base/171211[171211] -|July 4, 2007 -|7.0-CURRENT after adding new mmap/lseek/etc syscalls. +|4 июля 2007 +|7.0-CURRENT после добавления новых системных вызовов mmap/lseek и др. |700052 |link:https://svnweb.freebsd.org/changeset/base/171275[171275] -|July 6, 2007 -|7.0-CURRENT after moving I4B headers to include/i4b. +|6 июля 2007 +|7.0-CURRENT после перемещения заголовков I4B в include/i4b. |700053 |link:https://svnweb.freebsd.org/changeset/base/172394[172394] -|September 30, 2007 -|7.0-CURRENT after the addition of support for PCI domains +|30 сентября 2007 +|7.0-CURRENT после добавления поддержки доменов PCI |700054 |link:https://svnweb.freebsd.org/changeset/base/172988[172988] -|October 25, 2007 -|7.0-STABLE after MFC of wide and single byte ctype separation. +|25 октября 2007 +|7.0-STABLE после переноса изменений (MFC) разделения широких и однобайтовых ctype. |700055 |link:https://svnweb.freebsd.org/changeset/base/173104[173104] -|October 28, 2007 -|7.0-RELEASE, and 7.0-CURRENT after ABI backwards compatibility to the FreeBSD 4/5/6 versions of the PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs was MFCed, which required the ABI of the PCIOCGETCONF IOCTL to be broken again +|28 октября 2007 +|7.0-RELEASE и 7.0-CURRENT после того, как обратная совместимость ABI с версиями FreeBSD 4/5/6 для IOCTL PCIOCGETCONF, PCIOCREAD и PCIOCWRITE была перенесена в стабильную ветку (MFC), что потребовало снова нарушить ABI IOCTL PCIOCGETCONF |700100 |link:https://svnweb.freebsd.org/changeset/base/174864[174864] -|December 22, 2007 -|7.0-STABLE after 7.0-RELEASE +|22 декабря 2007 +|7.0-STABLE после 7.0-RELEASE |700101 |link:https://svnweb.freebsd.org/changeset/base/176111[176111] -|February 8, 2008 -|7.0-STABLE after the MFC of m_collapse(). +|8 февраля 2008 +|7.0-STABLE после MFC `m_collapse()`. |700102 |link:https://svnweb.freebsd.org/changeset/base/177735[177735] -|March 30, 2008 -|7.0-STABLE after the MFC of kdb_enter_why(). +|30 марта 2008 +|7.0-STABLE после MFC `kdb_enter_why()`. |700103 |link:https://svnweb.freebsd.org/changeset/base/178061[178061] -|April 10, 2008 -|7.0-STABLE after adding l_sysid to struct flock. +|10 апреля 2008 +|7.0-STABLE после добавления `l_sysid` в структуру flock. |700104 |link:https://svnweb.freebsd.org/changeset/base/178108[178108] -|April 11, 2008 -|7.0-STABLE after the MFC of man:procstat[1]. +|11 апреля 2008 +|7.0-STABLE после MFC man:procstat[1]. |700105 |link:https://svnweb.freebsd.org/changeset/base/178120[178120] -|April 11, 2008 -|7.0-STABLE after the MFC of umtx features. +|11 апреля 2008 +|7.0-STABLE после MFC функций `umtx`. |700106 |link:https://svnweb.freebsd.org/changeset/base/178225[178225] -|April 15, 2008 -|7.0-STABLE after the MFC of man:write[2] support to man:psm[4]. +|15 апреля 2008 +|7.0-STABLE после MFC поддержки man:write[2] в man:psm[4]. |700107 |link:https://svnweb.freebsd.org/changeset/base/178353[178353] -|April 20, 2008 -|7.0-STABLE after the MFC of F_DUP2FD command to man:fcntl[2]. +|20 апреля 2008 +|7.0-STABLE после MFC команды F_DUP2FD в man:fcntl[2]. |700108 |link:https://svnweb.freebsd.org/changeset/base/178783[178783] -|May 5, 2008 -|7.0-STABLE after some man:lockmgr[9] changes, which makes it necessary to include [.filename]#sys/lock.h# to use man:lockmgr[9]. +|5 мая 2008 +|7.0-STABLE после некоторых изменений в man:lockmgr[9], что делает необходимым включение [.filename]#sys/lock.h# для использования man:lockmgr[9]. |700109 |link:https://svnweb.freebsd.org/changeset/base/179367[179367] -|May 27, 2008 -|7.0-STABLE after MFC of the man:memrchr[3] function. +|27 мая 2008 +|7.0-STABLE после MFC функции man:memrchr[3]. |700110 |link:https://svnweb.freebsd.org/changeset/base/181328[181328] -|August 5, 2008 -|7.0-STABLE after MFC of kernel NFS lockd client. +|5 августа 2008 +|7.0-STABLE после MFC клиента `lockd` ядра NFS. |700111 |link:https://svnweb.freebsd.org/changeset/base/181940[181940] -|August 20, 2008 -|7.0-STABLE after addition of physically contiguous jumbo frame support. +|20 августа 2008 +|7.0-STABLE после добавления поддержки физически непрерывных больших кадров (jumbo frame). |700112 |link:https://svnweb.freebsd.org/changeset/base/182294[182294] -|August 27, 2008 -|7.0-STABLE after MFC of kernel DTrace support. +|27 августа 2008 +|7.0-STABLE после переноса изменений (MFC) поддержки DTrace в ядре. |701000 |link:https://svnweb.freebsd.org/changeset/base/185315[185315] -|November 25, 2008 +|25 ноября 2008 |7.1-RELEASE |701100 |link:https://svnweb.freebsd.org/changeset/base/185302[185302] -|November 25, 2008 -|7.1-STABLE after 7.1-RELEASE. +|25 ноября 2008 +|7.1-STABLE после 7.1-RELEASE. |701101 |link:https://svnweb.freebsd.org/changeset/base/187023[187023] -|January 10, 2009 -|7.1-STABLE after man:strndup[3] merge. +|10 января 2009 +|7.1-STABLE после слияния man:strndup[3]. |701102 |link:https://svnweb.freebsd.org/changeset/base/187370[187370] -|January 17, 2009 -|7.1-STABLE after man:cpuctl[4] support added. +|17 января 2009 +|7.1-STABLE после добавления поддержки man:cpuctl[4]. |701103 |link:https://svnweb.freebsd.org/changeset/base/188281[188281] -|February 7, 2009 -|7.1-STABLE after the merge of multi-/no-IPv4/v6 jails. +|7 февраля 2009 +|7.1-STABLE после объединения клеток с поддержкой multi-/no-IPv4/v6. |701104 |link:https://svnweb.freebsd.org/changeset/base/188625[188625] -|February 14, 2009 -|7.1-STABLE after the store of the suspension owner in the struct mount, and introduction of vfs_susp_clean method into the struct vfsops. +|14 февраля 2009 +|7.1-STABLE после сохранения владельца приостановки в структуре mount и добавления метода vfs_susp_clean в структуру vfsops. |701105 |link:https://svnweb.freebsd.org/changeset/base/189740[189740] -|March 12, 2009 -|7.1-STABLE after the incompatible change to the kern.ipc.shmsegs sysctl to allow allocating larger SysV shared memory segments on 64bit architectures. +|12 марта 2009 +|7.1-STABLE после несовместимого изменения sysctl kern.ipc.shmsegs для выделения больших сегментов разделяемой памяти SysV на 64-битных архитектурах. |701106 |link:https://svnweb.freebsd.org/changeset/base/189786[189786] -|March 14, 2009 -|7.1-STABLE after the merge of a fix for POSIX semaphore wait operations. +|14 марта 2009 +|7.1-STABLE после объединения исправления для операций ожидания семафоров POSIX. |702000 |link:https://svnweb.freebsd.org/changeset/base/191099[191099] -|April 15, 2009 +|15 апреля 2009 |7.2-RELEASE |702100 |link:https://svnweb.freebsd.org/changeset/base/191091[191091] -|April 15, 2009 -|7.2-STABLE after 7.2-RELEASE. +|15 апреля 2009 +|7.2-STABLE после 7.2-RELEASE. |702101 |link:https://svnweb.freebsd.org/changeset/base/192149[192149] -|May 15, 2009 -|7.2-STABLE after man:ichsmb[4] was changed to use left-adjusted slave addressing to match other SMBus controller drivers. +|15 мая 2009 +|7.2-STABLE после изменения man:ichsmb[4] для использования выравнивания по левому краю вторичной адресации, чтобы соответствовать другим драйверам контроллеров SMBus. |702102 |link:https://svnweb.freebsd.org/changeset/base/193020[193020] -|May 28, 2009 -|7.2-STABLE after MFC of the man:fdopendir[3] function. +|28 мая 2009 +|7.2-STABLE после слияния из ветки man функции fdopendir[3]. |702103 |link:https://svnweb.freebsd.org/changeset/base/193638[193638] -|June 6, 2009 -|7.2-STABLE after MFC of PmcTools. +|6 июня 2009 +|7.2-STABLE после MFC PmcTools. |702104 |link:https://svnweb.freebsd.org/changeset/base/195694[195694] -|July 14, 2009 -|7.2-STABLE after MFC of the man:closefrom[2] system call. +|14 июля 2009 +|7.2-STABLE после MFC системного вызова man:closefrom[2]. |702105 |link:https://svnweb.freebsd.org/changeset/base/196006[196006] -|July 31, 2009 -|7.2-STABLE after MFC of the SYSVIPC ABI change. +|31 июля 2009 +|7.2-STABLE после слияния изменения ABI SYSVIPC. |702106 |link:https://svnweb.freebsd.org/changeset/base/197198[197198] -|September 14, 2009 -|7.2-STABLE after MFC of the x86 PAT enhancements and addition of d_mmap_single() and the scatter/gather list VM object type. +|14 сентября 2009 +|7.2-STABLE после слияния изменений (MFC) улучшений PAT для x86 и добавления `d_mmap_single()` и типа объекта VM со списком scatter/gather. |703000 |link:https://svnweb.freebsd.org/changeset/base/203740[203740] -|February 9, 2010 +|9 февраля 2010 |7.3-RELEASE |703100 |link:https://svnweb.freebsd.org/changeset/base/203742[203742] -|February 9, 2010 -|7.3-STABLE after 7.3-RELEASE. +|9 февраля 2010 +|7.3-STABLE после 7.3-RELEASE. |704000 |link:https://svnweb.freebsd.org/changeset/base/216647[216647] -|December 22, 2010 +|22 декабря 2010 |7.4-RELEASE |704100 |link:https://svnweb.freebsd.org/changeset/base/216658[216658] -|December 22, 2010 -|7.4-STABLE after 7.4-RELEASE. +|22 декабря 2010 +|7.4-STABLE после 7.4-RELEASE. |704101 |link:https://svnweb.freebsd.org/changeset/base/221318[221318] -|May 2, 2011 -|7.4-STABLE after the gcc MFC in rev link:https://svnweb.freebsd.org/changeset/base/221317[221317]. +|2 мая 2011 +|7.4-STABLE после MFC gcc в ревизии link:https://svnweb.freebsd.org/changeset/base/221317[221317]. |=== [[versions-6]] -== FreeBSD 6 Versions +== Версии FreeBSD 6 [[freebsd-versions-table-6]] -.FreeBSD 6 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` в FreeBSD 6 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |600000 |link:https://svnweb.freebsd.org/changeset/base/133921[133921] -|August 18, 2004 +|18 августа 2004 |6.0-CURRENT |600001 |link:https://svnweb.freebsd.org/changeset/base/134396[134396] -|August 27, 2004 -|6.0-CURRENT after permanently enabling PFIL_HOOKS in the kernel. +|27 августа 2004 +|6.0-CURRENT после постоянного включения PFIL_HOOKS в ядре. |600002 |link:https://svnweb.freebsd.org/changeset/base/134514[134514] -|August 30, 2004 -|6.0-CURRENT after initial addition of ifi_epoch to struct if_data. Backed out after a few days. Do not use this value. +|30 августа 2004 +|6.0-CURRENT после первоначального добавления `ifi_epoch` в структуру `if_data`. Отменено через несколько дней. Не используйте это значение. |600003 |link:https://svnweb.freebsd.org/changeset/base/134933[134933] -|September 8, 2004 -|6.0-CURRENT after the re-addition of the ifi_epoch member of struct if_data. +|8 сентября 2004 +|6.0-CURRENT после повторного добавления члена `ifi_epoch` в структуру `if_data`. |600004 |link:https://svnweb.freebsd.org/changeset/base/135920[135920] -|September 29, 2004 -|6.0-CURRENT after addition of the struct inpcb argument to the pfil API. +|29 сентября 2004 +|6.0-CURRENT после добавления аргумента struct inpcb в API pfil. |600005 |link:https://svnweb.freebsd.org/changeset/base/136172[136172] -|October 5, 2004 -|6.0-CURRENT after addition of the "-d DESTDIR" argument to newsyslog. +|5 октября 2004 +|6.0-CURRENT после добавления аргумента "-d DESTDIR" в newsyslog. |600006 |link:https://svnweb.freebsd.org/changeset/base/137192[137192] -|November 4, 2004 -|6.0-CURRENT after addition of glibc style man:strftime[3] padding options. +|4 ноября 2004 +|6.0-CURRENT после добавления опций заполнения в стиле glibc для man:strftime[3]. |600007 |link:https://svnweb.freebsd.org/changeset/base/138760[138760] -|December 12, 2004 -|6.0-CURRENT after addition of 802.11 framework updates. +|12 декабря 2004 +|6.0-CURRENT после добавления обновлений для фреймворка 802.11. |600008 |link:https://svnweb.freebsd.org/changeset/base/140809[140809] -|January 25, 2005 -|6.0-CURRENT after changes to VOP_*VOBJECT() functions and introduction of MNTK_MPSAFE flag for Giantfree filesystems. +|25 января 2005 +|6.0-CURRENT после изменений в функциях `VOP_*VOBJECT()` и введения флага `MNTK_MPSAFE` для файловых систем, работающих без Giant. |600009 |link:https://svnweb.freebsd.org/changeset/base/141250[141250] -|February 4, 2005 -|6.0-CURRENT after addition of the cpufreq framework and drivers. +|4 февраля 2005 +|6.0-CURRENT после добавления фреймворка cpufreq и драйверов. |600010 |link:https://svnweb.freebsd.org/changeset/base/141394[141394] -|February 6, 2005 -|6.0-CURRENT after importing OpenBSD's man:nc[1]. +|6 февраля 2005 +|6.0-CURRENT после импорта man:nc[1] из OpenBSD. |600011 |link:https://svnweb.freebsd.org/changeset/base/141727[141727] -|February 12, 2005 -|6.0-CURRENT after removing semblance of SVID2 `matherr()` support. +|12 февраля 2005 +|6.0-CURRENT после удаления подобия поддержки `matherr()` из SVID2. |600012 |link:https://svnweb.freebsd.org/changeset/base/141940[141940] -|February 15, 2005 -|6.0-CURRENT after increase of default thread stacks' size. +|15 февраля 2005 +|6.0-CURRENT после увеличения размера стеков потоков по умолчанию. |600013 |link:https://svnweb.freebsd.org/changeset/base/142089[142089] -|February 19, 2005 -|6.0-CURRENT after fixes in [.filename]## and [.filename]## for using the GCC-compatibility of the Intel C/C++ compiler. +|19 февраля 2005 +|6.0-CURRENT после исправлений в [.filename]## и [.filename]## для обеспечения совместимости с GCC компилятора Intel C/C++. |600014 |link:https://svnweb.freebsd.org/changeset/base/142184[142184] -|February 21, 2005 -|6.0-CURRENT after EOVERFLOW checks in man:vswprintf[3] fixed. +|21 февраля 2005 +|6.0-CURRENT после исправления проверок EOVERFLOW в man:vswprintf[3]. |600015 |link:https://svnweb.freebsd.org/changeset/base/142501[142501] -|February 25, 2005 -|6.0-CURRENT after changing the struct if_data member, ifi_epoch, from wall clock time to uptime. +|25 февраля 2005 +|6.0-CURRENT после изменения члена структуры `if_data`, `ifi_epoch`, с времени настенных часов на время работы системы. |600016 |link:https://svnweb.freebsd.org/changeset/base/142582[142582] -|February 26, 2005 -|6.0-CURRENT after LC_CTYPE disk format changed. +|26 февраля 2005 +|6.0-CURRENT после изменения формата диска LC_CTYPE. |600017 |link:https://svnweb.freebsd.org/changeset/base/142683[142683] -|February 27, 2005 -|6.0-CURRENT after NLS catalogs disk format changed. +|27 февраля 2005 +|6.0-CURRENT после изменения формата диска каталогов NLS. |600018 |link:https://svnweb.freebsd.org/changeset/base/142686[142686] -|February 27, 2005 -|6.0-CURRENT after LC_COLLATE disk format changed. +|27 февраля 2005 +|6.0-CURRENT после изменения формата диска LC_COLLATE. |600019 |link:https://svnweb.freebsd.org/changeset/base/142752[142752] -|February 28, 2005 -|Installation of acpica includes into /usr/include. +|28 февраля 2005 +|Установка `acpica` включает файлы в /usr/include. |600020 |link:https://svnweb.freebsd.org/changeset/base/143308[143308] -|March 9, 2005 -|Addition of MSG_NOSIGNAL flag to man:send[2] API. +|9 марта 2005 +|Добавление флага MSG_NOSIGNAL в API man:send[2]. |600021 |link:https://svnweb.freebsd.org/changeset/base/143746[143746] -|March 17, 2005 -|Addition of fields to cdevsw +|17 марта 2005 +|Добавление полей в cdevsw |600022 |link:https://svnweb.freebsd.org/changeset/base/143901[143901] -|March 21, 2005 -|Removed gtar from base system. +|21 марта 2005 +|Удален gtar из базовой системы. |600023 |link:https://svnweb.freebsd.org/changeset/base/144980[144980] -|April 13, 2005 -|LOCAL_CREDS, LOCAL_CONNWAIT socket options added to man:unix[4]. +|13 апреля 2005 +|Добавлены параметры сокета LOCAL_CREDS, LOCAL_CONNWAIT в man:unix[4]. |600024 |link:https://svnweb.freebsd.org/changeset/base/145565[145565] -|April 19, 2005 -|man:hwpmc[4] and related tools added to 6.0-CURRENT. +|19 апреля 2005 +|man:hwpmc[4] и связанные инструменты добавлены в 6.0-CURRENT. |600025 |link:https://svnweb.freebsd.org/changeset/base/145565[145565] -|April 26, 2005 -|struct icmphdr added to 6.0-CURRENT. +|26 апреля 2005 +|Структура `icmphdr` добавлена в 6.0-CURRENT. |600026 |link:https://svnweb.freebsd.org/changeset/base/145843[145843] -|May 3, 2005 -|pf updated to 3.7. +|3 мая 2005 +|pf обновлен до версии 3.7. |600027 |link:https://svnweb.freebsd.org/changeset/base/145966[145966] -|May 6, 2005 -|Kernel libalias and ng_nat introduced. +|6 мая 2005 +|Добавлены libalias в ядре и `ng_nat`. |600028 |link:https://svnweb.freebsd.org/changeset/base/146191[146191] -|May 13, 2005 -|POSIX man:ttyname_r[3] made available through unistd.h and libc. +|13 мая 2005 +|POSIX man:ttyname_r[3], доступный через unistd.h и libc. |600029 |link:https://svnweb.freebsd.org/changeset/base/146780[146780] -|May 29, 2005 -|6.0-CURRENT after libpcap updated to v0.9.1 alpha 096. +|29 мая 2005 +|6.0-CURRENT после обновления libpcap до v0.9.1 alpha 096. |600030 |link:https://svnweb.freebsd.org/changeset/base/146988[146988] -|June 5, 2005 -|6.0-CURRENT after importing NetBSD's man:if_bridge[4]. +|5 июня 2005 +|6.0-CURRENT после импорта man:if_bridge[4] из NetBSD. |600031 |link:https://svnweb.freebsd.org/changeset/base/147256[147256] -|June 10, 2005 -|6.0-CURRENT after struct ifnet was broken out of the driver softcs. +|10 июня 2005 +|6.0-CURRENT после того, как структура ifnet была вынесена из `softcs` драйвера. |600032 |link:https://svnweb.freebsd.org/changeset/base/147898[147898] -|July 11, 2005 -|6.0-CURRENT after the import of libpcap v0.9.1. +|11 июля 2005 +|6.0-CURRENT после импорта libpcap v0.9.1. |600033 |link:https://svnweb.freebsd.org/changeset/base/148388[148388] -|July 25, 2005 -|6.0-STABLE after bump of all shared library versions that had not been changed since RELENG_5. +|25 июля 2005 +|6.0-STABLE после увеличения версий всех общих библиотек, которые не изменялись с RELENG_5. |600034 |link:https://svnweb.freebsd.org/changeset/base/149040[149040] -|August 13, 2005 -|6.0-STABLE after credential argument is added to dev_clone event handler. 6.0-RELEASE. +|13 августа 2005 +|6.0-STABLE после добавления аргумента credential в обработчик события `dev_clone`. 6.0-RELEASE. |600100 |link:https://svnweb.freebsd.org/changeset/base/151958[151958] -|November 1, 2005 -|6.0-STABLE after 6.0-RELEASE +|1 ноября 2005 +|6.0-STABLE после 6.0-RELEASE |600101 |link:https://svnweb.freebsd.org/changeset/base/153601[153601] -|December 21, 2005 -|6.0-STABLE after incorporating scripts from the local_startup directories into the base man:rcorder[8]. +|21 декабря 2005 +|6.0-STABLE после включения скриптов из каталогов `local_startup` в базовый man:rcorder[8]. |600102 |link:https://svnweb.freebsd.org/changeset/base/153912[153912] -|December 30, 2005 -|6.0-STABLE after updating the ELF types and constants. +|30 декабря 2005 +|6.0-STABLE после обновления типов и констант ELF. |600103 |link:https://svnweb.freebsd.org/changeset/base/154396[154396] -|January 15, 2006 -|6.0-STABLE after MFC of man:pidfile[3] API. +|15 января 2006 +|6.0-STABLE после переноса изменений (MFC) API man:pidfile[3]. |600104 |link:https://svnweb.freebsd.org/changeset/base/154453[154453] -|January 17, 2006 -|6.0-STABLE after MFC of ldconfig_local_dirs change. +|17 января 2006 +|6.0-STABLE после MFC изменений ldconfig_local_dirs. |600105 |link:https://svnweb.freebsd.org/changeset/base/156019[156019] -|February 26, 2006 -|6.0-STABLE after NLS catalog support of man:csh[1]. +|26 февраля 2006 +|6.0-STABLE после поддержки каталога NLS в man:csh[1]. |601000 |link:https://svnweb.freebsd.org/changeset/base/158330[158330] -|May 6, 2006 +|6 мая 2006 |6.1-RELEASE |601100 |link:https://svnweb.freebsd.org/changeset/base/158331[158331] -|May 6, 2006 -|6.1-STABLE after 6.1-RELEASE. +|6 мая 2006 +|6.1-STABLE после 6.1-RELEASE. |601101 |link:https://svnweb.freebsd.org/changeset/base/159861[159861] -|June 22, 2006 -|6.1-STABLE after the import of csup. +|22 июня 2006 +|6.1-STABLE после импорта `csup`. |601102 |link:https://svnweb.freebsd.org/changeset/base/160253[160253] -|July 11, 2006 -|6.1-STABLE after the man:iwi[4] update. +|11 июля 2006 +|6.1-STABLE после обновления man:iwi[4]. |601103 |link:https://svnweb.freebsd.org/changeset/base/160429[160429] -|July 17, 2006 -|6.1-STABLE after the resolver update to BIND9, and exposure of reentrant version of netdb functions. +|17 июля 2006 +|6.1-STABLE после обновления резолвера до BIND9 и добавления реентерабельной версии функций `netdb`. |601104 |link:https://svnweb.freebsd.org/changeset/base/161098[161098] -|August 8, 2006 -|6.1-STABLE after DSO (dynamic shared objects) support has been enabled in OpenSSL. +|8 августа 2006 +|6.1-STABLE после включения поддержки DSO (динамически разделяемых объектов) в OpenSSL. |601105 |link:https://svnweb.freebsd.org/changeset/base/161900[161900] -|September 2, 2006 -|6.1-STABLE after 802.11 fixups changed the api for the IEEE80211_IOC_STA_INFO ioctl. +|2 сентября 2006 +|6.1-STABLE после исправлений 802.11 изменил API для ioctl IEEE80211_IOC_STA_INFO. |602000 |link:https://svnweb.freebsd.org/changeset/base/164312[164312] -|November 15, 2006 +|15 ноября 2006 |6.2-RELEASE |602100 |link:https://svnweb.freebsd.org/changeset/base/162329[162329] -|September 15, 2006 -|6.2-STABLE after 6.2-RELEASE. +|15 сентября 2006 +|6.2-STABLE после 6.2-RELEASE. |602101 |link:https://svnweb.freebsd.org/changeset/base/165122[165122] -|December 12, 2006 -|6.2-STABLE after the addition of Wi-Spy quirk. +|12 декабря 2006 +|6.2-STABLE после добавления особенности Wi-Spy. |602102 |link:https://svnweb.freebsd.org/changeset/base/165596[165596] -|December 28, 2006 -|6.2-STABLE after pci_find_extcap() addition. +|28 декабря 2006 +|6.2-STABLE после добавления `pci_find_extcap()`. |602103 |link:https://svnweb.freebsd.org/changeset/base/166039[166039] -|January 16, 2007 -|6.2-STABLE after MFC of dlsym change to look for a requested symbol both in specified dso and its implicit dependencies. +|16 января 2007 +|6.2-STABLE после MFC изменения `dlsym` для поиска запрошенного символа как в указанном DSO, так и в его неявных зависимостях. |602104 |link:https://svnweb.freebsd.org/changeset/base/166314[166314] -|January 28, 2007 -|6.2-STABLE after MFC of man:ng_deflate[4] and man:ng_pred1[4] netgraph nodes and new compression and encryption modes for man:ng_ppp[4] node. +|28 января 2007 +|6.2-STABLE после слияния изменений (MFC) узлов netgraph man:ng_deflate[4] и man:ng_pred1[4], а также новых режимов сжатия и шифрования для узла man:ng_ppp[4]. |602105 |link:https://svnweb.freebsd.org/changeset/base/166840[166840] -|February 20, 2007 -|6.2-STABLE after MFC of BSD licensed version of man:gzip[1] ported from NetBSD. +|20 февраля 2007 +|6.2-STABLE после переноса (MFC) версии man:gzip[1] под лицензией BSD из NetBSD. |602106 |link:https://svnweb.freebsd.org/changeset/base/168133[168133] -|March 31, 2007 -|6.2-STABLE after MFC of PCI MSI and MSI-X support. +|31 марта 2007 +|6.2-STABLE после слияния изменений (MFC) поддержки PCI MSI и MSI-X. |602107 |link:https://svnweb.freebsd.org/changeset/base/168438[168438] -|April 6, 2007 -|6.2-STABLE after MFC of ncurses 5.6 and wide character support. +|6 апреля 2007 +|6.2-STABLE после слияния изменений (MFC) ncurses 5.6 с поддержкой широких символов. |602108 |link:https://svnweb.freebsd.org/changeset/base/168611[168611] -|April 11, 2007 -|6.2-STABLE after MFC of CAM 'SG' peripheral device, which implements a subset of Linux SCSI SG passthrough device API. +|11 апреля 2007 +|6.2-STABLE после слияния изменений (MFC) для периферийного устройства CAM 'SG', реализующего подмножество API сквозного устройства SCSI SG в Linux. |602109 |link:https://svnweb.freebsd.org/changeset/base/168805[168805] -|April 17, 2007 -|6.2-STABLE after MFC of readline 5.2 patchset 002. +|17 апреля 2007 +|6.2-STABLE после MFC набора исправлений readline 5.2 patch-set 002. |602110 |link:https://svnweb.freebsd.org/changeset/base/169222[169222] -|May 2, 2007 -|6.2-STABLE after MFC of pmap_invalidate_cache(), pmap_change_attr(), pmap_mapbios(), pmap_mapdev_attr(), and pmap_unmapbios() for amd64 and i386. +|2 мая 2007 +|6.2-STABLE после слияния изменений (MFC) функций `pmap_invalidate_cache()`, `pmap_change_attr()`, `pmap_mapbios()`, `pmap_mapdev_attr()` и `pmap_unmapbios()` для архитектур amd64 и i386. |602111 |link:https://svnweb.freebsd.org/changeset/base/170556[170556] -|June 11, 2007 -|6.2-STABLE after MFC of BOP_BDFLUSH and caused breakage of the filesystem modules KBI. +|11 июня 2007 +|6.2-STABLE после слияния изменений BOP_BDFLUSH, что привело к нарушению KBI модулей файловой системы. |602112 |link:https://svnweb.freebsd.org/changeset/base/172284[172284] -|September 21, 2007 -|6.2-STABLE after libutil(3) MFC's. +|21 сентября 2007 +|6.2-STABLE после man:libutil[3] MFC's. |602113 |link:https://svnweb.freebsd.org/changeset/base/172986[172986] -|October 25, 2007 -|6.2-STABLE after MFC of wide and single byte ctype separation. Newly compiled binary that references to ctype.h may require a new symbol, __mb_sb_limit, which is not available on older systems. +|25 октября 2007 +|6.2-STABLE после слияния изменений (MFC) разделения широких и однобайтовых символов ctype. Вновь скомпилированные двоичные файлы, ссылающиеся на ctype.h, могут требовать новый символ `__mb_sb_limit`, который недоступен в старых системах. |602114 |link:https://svnweb.freebsd.org/changeset/base/173170[173170] -|October 30, 2007 -|6.2-STABLE after ctype ABI forward compatibility restored. +|30 октября 2007 +|6.2-STABLE после восстановления прямой совместимости ABI ctype. |602115 |link:https://svnweb.freebsd.org/changeset/base/173794[173794] -|November 21, 2007 -|6.2-STABLE after back out of wide and single byte ctype separation. +|21 ноября 2007 +|6.2-STABLE после отмены разделения широких и однобайтовых символов ctype. |603000 |link:https://svnweb.freebsd.org/changeset/base/173897[173897] -|November 25, 2007 +|25 ноября 2007 |6.3-RELEASE |603100 |link:https://svnweb.freebsd.org/changeset/base/173891[173891] -|November 25, 2007 -|6.3-STABLE after 6.3-RELEASE. +|25 ноября 2007 +|6.3-STABLE после 6.3-RELEASE. -|(not changed) +|(не изменено) |link:https://svnweb.freebsd.org/changeset/base/174434[174434] -|December 7, 2007 -|6.3-STABLE after fixing multibyte type support in bit macro. +|7 декабря 2007 +|6.3-STABLE после исправления поддержки многобайтовых типов в макросе bit. |603102 |link:https://svnweb.freebsd.org/changeset/base/178459[178459] -|April 24, 2008 -|6.3-STABLE after adding l_sysid to struct flock. +|24 апреля 2008 +|6.3-STABLE после добавления `l_sysid` в структуру flock. |603103 |link:https://svnweb.freebsd.org/changeset/base/179367[179367] -|May 27, 2008 -|6.3-STABLE after MFC of the man:memrchr[3] function. +|27 мая 2008 +|6.3-STABLE после MFC функции man:memrchr[3]. |603104 |link:https://svnweb.freebsd.org/changeset/base/179810[179810] -|June 15, 2008 -|6.3-STABLE after MFC of support for `:u` variable modifier in man:make[1]. +|15 июня 2008 +|6.3-STABLE после MFC поддержки модификатора переменной `:u` в man:make[1]. |604000 |link:https://svnweb.freebsd.org/changeset/base/183583[183583] -|October 4, 2008 +|4 октября 2008 |6.4-RELEASE |604100 |link:https://svnweb.freebsd.org/changeset/base/183584[183584] -|October 4, 2008 -|6.4-STABLE after 6.4-RELEASE. +|4 октября 2008 +|6.4-STABLE после 6.4-RELEASE. |=== [[versions-5]] -== FreeBSD 5 Versions +== Версии FreeBSD 5 [[freebsd-versions-table-5]] -.FreeBSD 5 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` в FreeBSD 5 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |500000 |link:https://svnweb.freebsd.org/changeset/base/58009[58009] -|March 13, 2000 +|13 марта 2000 |5.0-CURRENT |500001 |link:https://svnweb.freebsd.org/changeset/base/59348[59348] -|April 18, 2000 -|5.0-CURRENT after adding addition ELF header fields, and changing our ELF binary branding method. +|18 апреля 2000 +|5.0-CURRENT после добавления дополнительных полей заголовка ELF и изменения метода маркировки ELF-бинарников. |500002 |link:https://svnweb.freebsd.org/changeset/base/59906[59906] -|May 2, 2000 -|5.0-CURRENT after kld metadata changes. +|2 мая 2000 +|5.0-CURRENT после изменений метаданных kld. |500003 |link:https://svnweb.freebsd.org/changeset/base/60688[60688] -|May 18, 2000 -|5.0-CURRENT after buf/bio changes. +|18 мая 2000 +|5.0-CURRENT после изменений в buf/bio. |500004 |link:https://svnweb.freebsd.org/changeset/base/60936[60936] -|May 26, 2000 -|5.0-CURRENT after binutils upgrade. +|26 мая 2000 +|5.0-CURRENT после обновления binutils. |500005 |link:https://svnweb.freebsd.org/changeset/base/61221[61221] -|June 3, 2000 -|5.0-CURRENT after merging libxpg4 code into libc and after TASKQ interface introduction. +|3 июня 2000 +|5.0-CURRENT после объединения кода libxpg4 с libc и после введения интерфейса TASKQ. |500006 |link:https://svnweb.freebsd.org/changeset/base/61500[61500] -|June 10, 2000 -|5.0-CURRENT after the addition of AGP interfaces. +|10 июня 2000 +|5.0-CURRENT после добавления интерфейсов AGP. |500007 |link:https://svnweb.freebsd.org/changeset/base/62235[62235] -|June 29, 2000 -|5.0-CURRENT after Perl upgrade to 5.6.0 +|29 июня 2000 +|5.0-CURRENT после обновления Perl до версии 5.6.0 |500008 |link:https://svnweb.freebsd.org/changeset/base/62764[62764] -|July 7, 2000 -|5.0-CURRENT after the update of KAME code to 2000/07 sources. +|7 июля 2000 +|5.0-CURRENT после обновления кода KAME до исходников от 2000/07. |500009 |link:https://svnweb.freebsd.org/changeset/base/63154[63154] -|July 14, 2000 -|5.0-CURRENT after ether_ifattach() and ether_ifdetach() changes. +|14 июля 2000 +|5.0-CURRENT после изменений в `ether_ifattach()` и `ether_ifdetach()`. |500010 |link:https://svnweb.freebsd.org/changeset/base/63265[63265] -|July 16, 2000 -|5.0-CURRENT after changing mtree defaults back to original variant, adding -L to follow symlinks. +|16 июля 2000 +|5.0-CURRENT после изменения настроек mtree обратно на исходный вариант, с добавлением -L для следования по символьным ссылкам. |500011 |link:https://svnweb.freebsd.org/changeset/base/63459[63459] -|July 18, 2000 -|5.0-CURRENT after kqueue API changed. +|18 июля 2000 +|5.0-CURRENT после изменения API kqueue. |500012 |link:https://svnweb.freebsd.org/changeset/base/65353[65353] -|September 2, 2000 -|5.0-CURRENT after man:setproctitle[3] moved from libutil to libc. +|2 сентября 2000 +|5.0-CURRENT после переноса man:setproctitle[3] из libutil в libc. |500013 |link:https://svnweb.freebsd.org/changeset/base/65671[65671] -|September 10, 2000 -|5.0-CURRENT after the first SMPng commit. +|10 сентября 2000 +|5.0-CURRENT после первого коммита SMPng. |500014 |link:https://svnweb.freebsd.org/changeset/base/70650[70650] -|January 4, 2001 -|5.0-CURRENT after moved to . +|4 января 2001 +|5.0-CURRENT после перемещения в . |500015 |link:https://svnweb.freebsd.org/changeset/base/70894[70894] -|January 10, 2001 -|5.0-CURRENT after combining libgcc.a and libgcc_r.a, and associated GCC linkage changes. +|10 января 2001 +|5.0-CURRENT после объединения libgcc.a и libgcc_r.a, а также связанных изменений в компоновке GCC. |500016 |link:https://svnweb.freebsd.org/changeset/base/71583[71583] -|January 24, 2001 -|5.0-CURRENT after change allowing libc and libc_r to be linked together, deprecating -pthread option. +|24 января 2001 +|5.0-CURRENT после изменения, разрешающего совместную линковку libc и libc_r, с объявлением устаревшим параметра -pthread. |500017 |link:https://svnweb.freebsd.org/changeset/base/72650[72650] -|February 18, 2001 -|5.0-CURRENT after switch from struct ucred to struct xucred to stabilize kernel-exported API for mountd et al. +|18 февраля 2001 +|5.0-CURRENT после перехода со структуры `ucred` на структуру `xucred` для стабилизации API, экспортируемого ядром, для mountd и других. |500018 |link:https://svnweb.freebsd.org/changeset/base/72975[72975] -|February 24, 2001 -|5.0-CURRENT after addition of CPUTYPE make variable for controlling CPU-specific optimizations. +|24 февраля 2001 +|5.0-CURRENT после добавления переменной сборки CPUTYPE для управления оптимизациями под конкретный процессор. |500019 |link:https://svnweb.freebsd.org/changeset/base/77937[77937] -|June 9, 2001 -|5.0-CURRENT after moving machine/ioctl_fd.h to sys/fdcio.h +|9 июня 2001 +|5.0-CURRENT после перемещения machine/ioctl_fd.h в sys/fdcio.h |500020 |link:https://svnweb.freebsd.org/changeset/base/78304[78304] -|June 15, 2001 -|5.0-CURRENT after locale names renaming. +|15 июня 2001 +|5.0-CURRENT после переименования названий локалей. |500021 |link:https://svnweb.freebsd.org/changeset/base/78632[78632] -|June 22, 2001 -|5.0-CURRENT after Bzip2 import. Also signifies removal of S/Key. +|22 июня 2001 +|5.0-CURRENT после импорта Bzip2. Также означает удаление S/Key. |500022 |link:https://svnweb.freebsd.org/changeset/base/83435[83435] -|July 12, 2001 -|5.0-CURRENT after SSE support. +|12 июля 2001 +|5.0-CURRENT после поддержки SSE. |500023 |link:https://svnweb.freebsd.org/changeset/base/83435[83435] -|September 14, 2001 -|5.0-CURRENT after KSE Milestone 2. +|14 сентября 2001 +|5.0-CURRENT после второго этапа KSE. |500024 |link:https://svnweb.freebsd.org/changeset/base/84324[84324] -|October 1, 2001 -|5.0-CURRENT after d_thread_t, and moving UUCP to ports. +|1 октября 2001 +|5.0-CURRENT после `d_thread_t` и перемещение UUCP в порты. |500025 |link:https://svnweb.freebsd.org/changeset/base/84481[84481] -|October 4, 2001 -|5.0-CURRENT after ABI change for descriptor and creds passing on 64 bit platforms. +|4 октября 2001 +|5.0-CURRENT после изменения ABI для передачи дескрипторов и `creds` на 64-битных платформах. |500026 |link:https://svnweb.freebsd.org/changeset/base/84710[84710] -|October 9, 2001 -|5.0-CURRENT after moving to XFree86 4 by default for package builds, and after the new libc strnstr() function was added. +|9 октября 2001 +|5.0-CURRENT после перехода на XFree86 4 по умолчанию для сборки пакетов и после добавления новой функции `strnstr()` в библиотеку libc. |500027 |link:https://svnweb.freebsd.org/changeset/base/84743[84743] -|October 10, 2001 -|5.0-CURRENT after the new libc strcasestr() function was added. +|10 октября 2001 +|5.0-CURRENT после добавления новой функции `strcasestr()` в библиотеку libc. |500028 |link:https://svnweb.freebsd.org/changeset/base/87879[87879] -|December 14, 2001 -|5.0-CURRENT after the userland components of smbfs were imported. +|14 декабря 2001 +|5.0-CURRENT после импорта компонентов пользовательского пространства smbfs. -|(not changed) -| -| -|5.0-CURRENT after the new C99 specific-width integer types were added. +|(не изменено) +| +| +|5.0-CURRENT после добавления новых целочисленных типов фиксированной ширины C99. |500029 |link:https://svnweb.freebsd.org/changeset/base/89938[89938] -|January 29, 2002 -|5.0-CURRENT after a change was made in the return value of man:sendfile[2]. +|29 января 2002 +|5.0-CURRENT после изменения возвращаемого значения man:sendfile[2]. |500030 |link:https://svnweb.freebsd.org/changeset/base/90711[90711] -|February 15, 2002 -|5.0-CURRENT after the introduction of the type `fflags_t`, which is the appropriate size for file flags. +|15 февраля 2002 +|5.0-CURRENT после введения типа `fflags_t`, который имеет подходящий размер для флагов файлов. |500031 |link:https://svnweb.freebsd.org/changeset/base/91203[91203] -|February 24, 2002 -|5.0-CURRENT after the usb structure element rename. +|24 февраля 2002 +|5.0-CURRENT после переименования элемента структуры usb. |500032 |link:https://svnweb.freebsd.org/changeset/base/92453[92453] -|March 16, 2002 -|5.0-CURRENT after the introduction of Perl 5.6.1. +|16 марта 2002 +|5.0-CURRENT после внедрения Perl 5.6.1. |500033 |link:https://svnweb.freebsd.org/changeset/base/93722[93722] -|April 3, 2002 -|5.0-CURRENT after the `sendmail_enable` man:rc.conf[5] variable was made to take the value `NONE`. +|3 апреля 2002 +|5.0-CURRENT после того, как переменная `sendmail_enable` из man:rc.conf[5] стала принимать значение `NONE`. |500034 |link:https://svnweb.freebsd.org/changeset/base/95831[95831] -|April 30, 2002 -|5.0-CURRENT after mtx_init() grew a third argument. +|30 апреля 2002 +|5.0-CURRENT после того, как `mtx_init()` получил третий аргумент. |500035 |link:https://svnweb.freebsd.org/changeset/base/96498[96498] -|May 13, 2002 -|5.0-CURRENT with Gcc 3.1. +|13 мая 2002 +|5.0-CURRENT с Gcc 3.1. |500036 |link:https://svnweb.freebsd.org/changeset/base/96781[96781] -|May 17, 2002 -|5.0-CURRENT without Perl in /usr/src +|17 мая 2002 +|5.0-CURRENT без Perl в /usr/src |500037 |link:https://svnweb.freebsd.org/changeset/base/97516[97516] -|May 29, 2002 -|5.0-CURRENT after the addition of man:dlfunc[3] +|29 мая 2002 +|5.0-CURRENT после добавления man:dlfunc[3] |500038 |link:https://svnweb.freebsd.org/changeset/base/100591[100591] -|July 24, 2002 -|5.0-CURRENT after the types of some struct sockbuf members were changed and the structure was reordered. +|24 июля 2002 +|5.0-CURRENT после изменения типов некоторых членов структуры `sockbuf` и её переупорядочивания. |500039 |link:https://svnweb.freebsd.org/changeset/base/102757[102757] -|September 1, 2002 -|5.0-CURRENT after GCC 3.2.1 import. Also after headers stopped using _BSD_FOO_T_ and started using _FOO_T_DECLARED. This value can also be used as a conservative estimate of the start of man:bzip2[1] package support. +|1 сентября 2002 +|5.0-CURRENT после импорта GCC 3.2.1. Также после того, как заголовки перестали использовать _BSD_FOO_T_ и начали использовать _FOO_T_DECLARED. Это значение также можно использовать как консервативную оценку начала поддержки пакета man:bzip2[1]. |500040 |link:https://svnweb.freebsd.org/changeset/base/103675[103675] -|September 20, 2002 -|5.0-CURRENT after various changes to disk functions were made in the name of removing dependency on disklabel structure internals. +|20 сентября 2002 +|5.0-CURRENT после внесения различных изменений в функции работы с дисками, направленных на устранение зависимости от внутренней структуры disklabel. |500041 |link:https://svnweb.freebsd.org/changeset/base/104250[104250] -|October 1, 2002 -|5.0-CURRENT after the addition of man:getopt_long[3] to libc. +|1 октября 2002 +|5.0-CURRENT после добавления man:getopt_long[3] в libc. |500042 |link:https://svnweb.freebsd.org/changeset/base/105178[105178] -|October 15, 2002 -|5.0-CURRENT after Binutils 2.13 upgrade, which included new FreeBSD emulation, vec, and output format. +|15 октября 2002 +|5.0-CURRENT после обновления Binutils 2.13, которое включило новую эмуляцию FreeBSD, `vec` и формат вывода. |500043 |link:https://svnweb.freebsd.org/changeset/base/106289[106289] -|November 1, 2002 -|5.0-CURRENT after adding weak pthread_XXX stubs to libc, obsoleting libXThrStub.so. 5.0-RELEASE. +|1 ноября 2002 +|5.0-CURRENT после добавления слабых заглушек pthread_XXX в libc, что сделало устаревшей libXThrStub.so. 5.0-RELEASE. |500100 |link:https://svnweb.freebsd.org/changeset/base/109405[109405] -|January 17, 2003 -|5.0-CURRENT after branching for RELENG_5_0 +|17 января 2003 +|5.0-CURRENT после ветвления для RELENG_5_0 |500101 |link:https://svnweb.freebsd.org/changeset/base/111120[111120] -|February 19, 2003 -| is empty. Do not include it. +|19 февраля 2003 +| пустой. Не включайте его. |500102 |link:https://svnweb.freebsd.org/changeset/base/111482[111482] -|February 25, 2003 -|5.0-CURRENT after the d_mmap_t interface change. +|25 февраля 2003 +|5.0-CURRENT после изменения интерфейса d_mmap_t. |500103 |link:https://svnweb.freebsd.org/changeset/base/111540[111540] -|February 26, 2003 -|5.0-CURRENT after taskqueue_swi changed to run without Giant, and taskqueue_swi_giant added to run with Giant. +|26 февраля 2003 +|5.0-CURRENT после изменения `taskqueue_swi` для работы без Giant и добавления `taskqueue_swi_giant` для работы с Giant. |500104 |link:https://svnweb.freebsd.org/changeset/base/111600[111600] -|February 27, 2003 -|cdevsw_add() and cdevsw_remove() no longer exists. Appearance of MAJOR_AUTO allocation facility. +|27 февраля 2003 +|`cdevsw_add()` и `cdevsw_remove()` больше не существуют. Появление средства выделения `MAJOR_AUTO`. |500105 |link:https://svnweb.freebsd.org/changeset/base/111864[111864] -|March 4, 2003 -|5.0-CURRENT after new cdevsw initialization method. +|4 марта 2003 +|5.0-CURRENT после новой инициализации метода cdevsw. |500106 |link:https://svnweb.freebsd.org/changeset/base/112007[112007] -|March 8, 2003 -|devstat_add_entry() has been replaced by devstat_new_entry() +|8 марта 2003 +|`devstat_add_entry()` был заменён на `devstat_new_entry()` |500107 |link:https://svnweb.freebsd.org/changeset/base/112288[112288] -|March 15, 2003 -|Devstat interface change; see sys/sys/param.h 1.149 +|15 марта 2003 +|Изменение интерфейса `devstat`; см. sys/sys/param.h 1.149 |500108 |link:https://svnweb.freebsd.org/changeset/base/112300[112300] -|March 15, 2003 -|Token-Ring interface changes. +|15 марта 2003 +|Изменения в интерфейсе Token-Ring. |500109 |link:https://svnweb.freebsd.org/changeset/base/112571[112571] -|March 25, 2003 -|Addition of vm_paddr_t. +|25 марта 2003 +|Добавление `vm_paddr_t`. |500110 |link:https://svnweb.freebsd.org/changeset/base/112741[112741] -|March 28, 2003 -|5.0-CURRENT after man:realpath[3] has been made thread-safe +|28 марта 2003 +|5.0-CURRENT после того, как man:realpath[3] стал потокобезопасным |500111 |link:https://svnweb.freebsd.org/changeset/base/113273[113273] -|April 9, 2003 -|5.0-CURRENT after man:usbhid[3] has been synced with NetBSD +|9 апреля 2003 +|5.0-CURRENT после синхронизации man:usbhid[3] с NetBSD |500112 |link:https://svnweb.freebsd.org/changeset/base/113597[113597] -|April 17, 2003 -|5.0-CURRENT after new NSS implementation and addition of POSIX.1 getpw*_r, getgr*_r functions +|17 апреля 2003 +|5.0-CURRENT после новой реализации NSS и добавления функций POSIX.1 getpw*_r, getgr*_r |500113 |link:https://svnweb.freebsd.org/changeset/base/114492[114492] -|May 2, 2003 -|5.0-CURRENT after removal of the old rc system. +|2 мая 2003 +|5.0-CURRENT после удаления старой системы rc. |501000 |link:https://svnweb.freebsd.org/changeset/base/115816[115816] -|June 4, 2003 +|4 июня 2003 |5.1-RELEASE. |501100 |link:https://svnweb.freebsd.org/changeset/base/115710[115710] -|June 2, 2003 -|5.1-CURRENT after branching for RELENG_5_1. +|2 июня 2003 +|5.1-CURRENT после ветвления для RELENG_5_1. |501101 |link:https://svnweb.freebsd.org/changeset/base/117025[117025] -|June 29, 2003 -|5.1-CURRENT after correcting the semantics of man:sigtimedwait[2] and man:sigwaitinfo[2]. +|29 июня 2003 +|5.1-CURRENT после исправления семантики man:sigtimedwait[2] и man:sigwaitinfo[2]. |501102 |link:https://svnweb.freebsd.org/changeset/base/117191[117191] -|July 3, 2003 -|5.1-CURRENT after adding the lockfunc and lockfuncarg fields to man:bus_dma_tag_create[9]. +|3 июля 2003 +|5.1-CURRENT после добавления полей `lockfunc` и `lockfuncarg` в man:bus_dma_tag_create[9]. |501103 |link:https://svnweb.freebsd.org/changeset/base/118241[118241] -|July 31, 2003 -|5.1-CURRENT after GCC 3.3.1-pre 20030711 snapshot integration. +|31 июля 2003 +|5.1-CURRENT после интеграции снимка GCC 3.3.1-pre 20030711. |501104 |link:https://svnweb.freebsd.org/changeset/base/118511[118511] -|August 5, 2003 -|5.1-CURRENT 3ware API changes to twe. +|5 августа 2003 +|5.1-CURRENT Изменения API 3ware в twe. |501105 |link:https://svnweb.freebsd.org/changeset/base/119021[119021] -|August 17, 2003 -|5.1-CURRENT dynamically-linked /bin and /sbin support and movement of libraries to /lib. +|17 августа 2003 +|5.1-CURRENT динамически связанные /bin и /sbin поддержка и перемещение библиотек в /lib. |501106 |link:https://svnweb.freebsd.org/changeset/base/119881[119881] -|September 8, 2003 -|5.1-CURRENT after adding kernel support for Coda 6.x. +|8 сентября 2003 +|5.1-CURRENT после добавления поддержки ядра для Coda 6.x. |501107 |link:https://svnweb.freebsd.org/changeset/base/120180[120180] -|September 17, 2003 -|5.1-CURRENT after 16550 UART constants moved from [.filename]## to [.filename]##. Also when libmap functionality was unconditionally supported by rtld. +|17 сентября 2003 +|5.1-CURRENT после того, как константы UART 16550 были перемещены из [.filename]## в [.filename]##. Также когда функциональность libmap стала безусловно поддерживаться rtld. |501108 |link:https://svnweb.freebsd.org/changeset/base/120386[120386] -|September 23, 2003 -|5.1-CURRENT after PFIL_HOOKS API update +|23 сентября 2003 +|5.1-CURRENT после обновления API PFIL_HOOKS |501109 |link:https://svnweb.freebsd.org/changeset/base/120503[120503] -|September 27, 2003 -|5.1-CURRENT after adding man:kiconv[3] +|27 сентября 2003 +|5.1-CURRENT после добавления man:kiconv[3] |501110 |link:https://svnweb.freebsd.org/changeset/base/120556[120556] -|September 28, 2003 -|5.1-CURRENT after changing default operations for open and close in cdevsw +|28 сентября 2003 +|5.1-CURRENT после изменения операций по умолчанию для open и close в cdevsw |501111 |link:https://svnweb.freebsd.org/changeset/base/121125[121125] -|October 16, 2003 -|5.1-CURRENT after changed layout of cdevsw +|16 октября 2003 +|5.1-CURRENT после изменения структуры cdevsw |501112 |link:https://svnweb.freebsd.org/changeset/base/121129[121129] -|October 16, 2003 -| 5.1-CURRENT after adding kobj multiple inheritance +|16 октября 2003 +| 5.1-CURRENT после добавления множественного наследования kobj |501113 |link:https://svnweb.freebsd.org/changeset/base/121816[121816] -|October 31, 2003 -| 5.1-CURRENT after the if_xname change in struct ifnet +|31 октября 2003 +| 5.1-CURRENT после изменения `if_xname` в структуре ifnet |501114 |link:https://svnweb.freebsd.org/changeset/base/122779[122779] -|November 16, 2003 -| 5.1-CURRENT after changing /bin and /sbin to be dynamically linked +|16 ноября 2003 +| 5.1-CURRENT после изменения /bin и /sbin на динамически линкуемые |502000 |link:https://svnweb.freebsd.org/changeset/base/123198[123198] -|December 7, 2003 +|7 декабря 2003 |5.2-RELEASE |502010 |link:https://svnweb.freebsd.org/changeset/base/126150[126150] -|February 23, 2004 +|23 февраля 2004 |5.2.1-RELEASE |502100 |link:https://svnweb.freebsd.org/changeset/base/123196[123196] -|December 7, 2003 -|5.2-CURRENT after branching for RELENG_5_2 +|7 декабря 2003 +|5.2-CURRENT после ветвления для RELENG_5_2 |502101 |link:https://svnweb.freebsd.org/changeset/base/123677[123677] -|December 19, 2003 -|5.2-CURRENT after __cxa_atexit/__cxa_finalize functions were added to libc. +|19 декабря 2003 +|5.2-CURRENT после добавления функций `__cxa_atexit`/`__cxa_finalize` в libc. |502102 |link:https://svnweb.freebsd.org/changeset/base/125236[125236] -|January 30, 2004 -|5.2-CURRENT after change of default thread library from libc_r to libpthread. +|30 января 2004 +|5.2-CURRENT после изменения стандартной библиотеки потоков с libc_r на libpthread. |502103 |link:https://svnweb.freebsd.org/changeset/base/126083[126083] -|February 21, 2004 -|5.2-CURRENT after device driver API megapatch. +|21 февраля 2004 +|5.2-CURRENT после масштабного патча API драйверов устройств. |502104 |link:https://svnweb.freebsd.org/changeset/base/126208[126208] -|February 25, 2004 -|5.2-CURRENT after getopt_long_only() addition. +|25 февраля 2004 +|5.2-CURRENT после добавления `getopt_long_only()`. |502105 |link:https://svnweb.freebsd.org/changeset/base/126644[126644] -|March 5, 2004 -|5.2-CURRENT after NULL is made into ((void *)0) for C, creating more warnings. +|5 марта 2004 +|5.2-CURRENT после того, как NULL заменён на ((void *)0) для C, что вызывает больше предупреждений. |502106 |link:https://svnweb.freebsd.org/changeset/base/126757[126757] -|March 8, 2004 -|5.2-CURRENT after pf is linked to the build and install. +|8 марта 2004 +|5.2-CURRENT после подключения pf к сборке и установке. |502107 |link:https://svnweb.freebsd.org/changeset/base/126819[126819] -|March 10, 2004 -|5.2-CURRENT after time_t is changed to a 64-bit value on sparc64. +|10 марта 2004 +|5.2-CURRENT после изменения `time_t` на 64-битное значение на sparc64. |502108 |link:https://svnweb.freebsd.org/changeset/base/126891[126891] -|March 12, 2004 -|5.2-CURRENT after Intel C/C++ compiler support in some headers and man:execve[2] changes to be more strictly conforming to POSIX. +|12 марта 2004 +|5.2-CURRENT после поддержки компилятора Intel C/C++ в некоторых заголовочных файлах и изменений в man:execve[2] для более строгого соответствия POSIX. |502109 |link:https://svnweb.freebsd.org/changeset/base/127312[127312] -|March 22, 2004 -|5.2-CURRENT after the introduction of the bus_alloc_resource_any API +|22 марта 2004 +|5.2-CURRENT после введения API `bus_alloc_resource_any` |502110 |link:https://svnweb.freebsd.org/changeset/base/127475[127475] -|March 27, 2004 -|5.2-CURRENT after the addition of UTF-8 locales +|27 марта 2004 +|5.2-CURRENT после добавления локалей UTF-8 |502111 |link:https://svnweb.freebsd.org/changeset/base/128144[128144] -|April 11, 2004 -|5.2-CURRENT after the removal of the man:getvfsent[3] API +|11 апреля 2004 +|5.2-CURRENT после удаления API man:getvfsent[3] |502112 |link:https://svnweb.freebsd.org/changeset/base/128182[128182] -|April 13, 2004 -|5.2-CURRENT after the addition of the .warning directive for make. +|13 апреля 2004 +|5.2-CURRENT после добавления директивы .warning для make. |502113 |link:https://svnweb.freebsd.org/changeset/base/130057[130057] -|June 4, 2004 -|5.2-CURRENT after ttyioctl() was made mandatory for serial drivers. +|4 июня 2004 +|5.2-CURRENT после того, как `ttyioctl()` стал обязательным для драйверов последовательных портов. |502114 |link:https://svnweb.freebsd.org/changeset/base/130418[130418] -|June 13, 2004 -|5.2-CURRENT after import of the ALTQ framework. +|13 июня 2004 +|5.2-CURRENT после импорта инфраструктуры ALTQ. |502115 |link:https://svnweb.freebsd.org/changeset/base/130481[130481] -|June 14, 2004 -|5.2-CURRENT after changing man:sema_timedwait[9] to return 0 on success and a non-zero error code on failure. +|14 июня 2004 +|5.2-CURRENT после изменения man:sema_timedwait[9] для возврата 0 при успехе и ненулевого кода ошибки при сбое. |502116 |link:https://svnweb.freebsd.org/changeset/base/130585[130585] -|June 16, 2004 -|5.2-CURRENT after changing kernel dev_t to be pointer to struct cdev *. +|16 июня 2004 +|5.2-CURRENT после изменения типа `dev_t` в ядре на указатель на структуру cdev *. |502117 |link:https://svnweb.freebsd.org/changeset/base/130640[130640] -|June 17, 2004 -|5.2-CURRENT after changing kernel udev_t to dev_t. +|17 июня 2004 +|5.2-CURRENT после изменения ядра `udev_t` на `dev_t`. |502118 |link:https://svnweb.freebsd.org/changeset/base/130656[130656] -|June 17, 2004 -|5.2-CURRENT after adding support for CLOCK_VIRTUAL and CLOCK_PROF to man:clock_gettime[2] and man:clock_getres[2]. +|17 июня 2004 +|5.2-CURRENT после добавления поддержки CLOCK_VIRTUAL и CLOCK_PROF в man:clock_gettime[2] и man:clock_getres[2]. |502119 |link:https://svnweb.freebsd.org/changeset/base/130934[130934] -|June 22, 2004 -|5.2-CURRENT after changing network interface cloning overhaul. +|22 июня 2004 +|5.2-CURRENT после изменения переработки клонирования сетевых интерфейсов. |502120 |link:https://svnweb.freebsd.org/changeset/base/131429[131429] -|July 2, 2004 -|5.2-CURRENT after the update of the package tools to revision 20040629. +|2 июля 2004 +|5.2-CURRENT после обновления инструментов пакетов до ревизии 20040629. |502121 |link:https://svnweb.freebsd.org/changeset/base/131883[131883] -|July 9, 2004 -|5.2-CURRENT after marking Bluetooth code as non-i386 specific. +|9 июля 2004 +|5.2-CURRENT после пометки кода Bluetooth как не специфичного для i386. |502122 |link:https://svnweb.freebsd.org/changeset/base/131971[131971] -|July 11, 2004 -|5.2-CURRENT after the introduction of the KDB debugger framework, the conversion of DDB into a backend and the introduction of the GDB backend. +|11 июля 2004 +|5.2-CURRENT после внедрения фреймворка отладчика KDB, преобразования DDB в бэкенд и добавления бэкенда GDB. |502123 |link:https://svnweb.freebsd.org/changeset/base/132025[132025] -|July 12, 2004 -|5.2-CURRENT after change to make VFS_ROOT take a struct thread argument as does vflush. Struct kinfo_proc now has a user data pointer. The switch of the default X implementation to `xorg` was also made at this time. +|12 июля 2004 +|5.2-CURRENT после изменения, чтобы VFS_ROOT принимал аргумент struct thread, как и vflush. Структура `kinfo_proc` теперь содержит указатель на пользовательские данные. Переключение реализации X по умолчанию на `xorg` также произошло в это время. |502124 |link:https://svnweb.freebsd.org/changeset/base/132597[132597] -|July 24, 2004 -|5.2-CURRENT after the change to separate the way ports rc.d and legacy scripts are started. +|24 июля 2004 +|5.2-CURRENT после изменения, разделяющего способ запуска rc.d портов и устаревших скриптов. |502125 |link:https://svnweb.freebsd.org/changeset/base/132726[132726] -|July 28, 2004 -|5.2-CURRENT after the backout of the previous change. +|28 июля 2004 +|5.2-CURRENT после отмены предыдущего изменения. |502126 |link:https://svnweb.freebsd.org/changeset/base/132914[132914] -|July 31, 2004 -|5.2-CURRENT after the removal of kmem_alloc_pageable() and the import of gcc 3.4.2. +|31 июля 2004 +|5.2-CURRENT после удаления `kmem_alloc_pageable()` и импорта gcc 3.4.2. |502127 |link:https://svnweb.freebsd.org/changeset/base/132991[132991] -|August 2, 2004 -|5.2-CURRENT after changing the UMA kernel API to allow ctors/inits to fail. +|2 августа 2004 +|5.2-CURRENT после изменения UMA API ядра для разрешения ошибок в ctors/inits. |502128 |link:https://svnweb.freebsd.org/changeset/base/133306[133306] -|August 8, 2004 -|5.2-CURRENT after the change of the vfs_mount signature as well as global replacement of PRISON_ROOT with SUSER_ALLOWJAIL for the man:suser[9] API. +|8 августа 2004 +|5.2-CURRENT после изменения сигнатуры vfs_mount, а также глобальной замены PRISON_ROOT на SUSER_ALLOWJAIL для API man:suser[9]. |503000 |link:https://svnweb.freebsd.org/changeset/base/134189[134189] -|August 23, 2004 -|5.3-BETA/RC before the pfil API change +|23 августа 2004 +|5.3-BETA/RC до изменения API pfil |503001 |link:https://svnweb.freebsd.org/changeset/base/135580[135580] -|September 22, 2004 +|22 сентября 2004 |5.3-RELEASE |503100 |link:https://svnweb.freebsd.org/changeset/base/136595[136595] -|October 16, 2004 -|5.3-STABLE after branching for RELENG_5_3 +|16 октября 2004 +|5.3-STABLE после ветвления для RELENG_5_3 |503101 |link:https://svnweb.freebsd.org/changeset/base/138459[138459] -|December 3, 2004 -|5.3-STABLE after addition of glibc style man:strftime[3] padding options. +|3 декабря 2004 +|5.3-STABLE после добавления опций заполнения man:strftime[3] в стиле glibc. |503102 |link:https://svnweb.freebsd.org/changeset/base/141788[141788] -|February 13, 2005 -|5.3-STABLE after OpenBSD's man:nc[1] import MFC. +|13 февраля 2005 +|5.3-STABLE после импорта man:nc[1] из OpenBSD MFC. |503103 |link:https://svnweb.freebsd.org/changeset/base/142639[142639] -|February 27, 2005 -|5.4-PRERELEASE after the MFC of the fixes in [.filename]## and [.filename]## for using the GCC-compatibility of the Intel C/C++ compiler. +|27 февраля 2005 +|5.4-PRERELEASE после MFC исправлений в [.filename]## и [.filename]## для обеспечения совместимости с GCC компилятора Intel C/C++. |503104 |link:https://svnweb.freebsd.org/changeset/base/142835[142835] -|February 28, 2005 -|5.4-PRERELEASE after the MFC of the change of ifi_epoch from wall clock time to uptime. +|28 февраля 2005 +|5.4-PRERELEASE после MFC изменения `ifi_epoch` с времени реального мира на время работы системы. |503105 |link:https://svnweb.freebsd.org/changeset/base/143029[143029] -|March 2, 2005 -|5.4-PRERELEASE after the MFC of the fix of EOVERFLOW check in man:vswprintf[3]. +|2 марта 2005 +|5.4-PRERELEASE после переноса исправления проверки EOVERFLOW в man:vswprintf[3]. |504000 |link:https://svnweb.freebsd.org/changeset/base/144575[144575] -|April 3, 2005 +|3 апреля 2005 |5.4-RELEASE. |504100 |link:https://svnweb.freebsd.org/changeset/base/144581[144581] -|April 3, 2005 -|5.4-STABLE after branching for RELENG_5_4 +|3 апреля 2005 +|5.4-STABLE после ветвления для RELENG_5_4 |504101 |link:https://svnweb.freebsd.org/changeset/base/146105[146105] -|May 11, 2005 -|5.4-STABLE after increasing the default thread stacksizes +|11 мая 2005 +|5.4-STABLE после увеличения размеров стеков потоков по умолчанию |504102 |link:https://svnweb.freebsd.org/changeset/base/504101[504101] -|June 24, 2005 -|5.4-STABLE after the addition of sha256 +|24 июня 2005 +|5.4-STABLE после добавления sha256 |504103 |link:https://svnweb.freebsd.org/changeset/base/150892[150892] -|October 3, 2005 -|5.4-STABLE after the MFC of if_bridge +|3 октября 2005 +|5.4-STABLE после слияния изменений (MFC) if_bridge |504104 |link:https://svnweb.freebsd.org/changeset/base/152370[152370] -|November 13, 2005 -|5.4-STABLE after the MFC of bsdiff and portsnap +|13 ноября 2005 +|5.4-STABLE после слияния изменений (MFC) bsdiff и portsnap |504105 |link:https://svnweb.freebsd.org/changeset/base/154464[154464] -|January 17, 2006 -|5.4-STABLE after MFC of ldconfig_local_dirs change. +|17 января 2006 +|5.4-STABLE после MFC изменений ldconfig_local_dirs. |505000 |link:https://svnweb.freebsd.org/changeset/base/158481[158481] -|May 12, 2006 +|12 мая 2006 |5.5-RELEASE. |505100 |link:https://svnweb.freebsd.org/changeset/base/158482[158482] -|May 12, 2006 -|5.5-STABLE after branching for RELENG_5_5 +|12 мая 2006 +|5.5-STABLE после ветвления для RELENG_5_5 |=== [[versions-4]] -== FreeBSD 4 Versions +== Версии FreeBSD 4 [[freebsd-versions-table-4]] -.FreeBSD 4 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` в FreeBSD 4 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |400000 |link:https://svnweb.freebsd.org/changeset/base/43041[43041] -|January 22, 1999 -|4.0-CURRENT after 3.4 branch +|22 января 1999 +|4.0-CURRENT после ветки 3.4 |400001 |link:https://svnweb.freebsd.org/changeset/base/44177[44177] -|February 20, 1999 -|4.0-CURRENT after change in dynamic linker handling +|20 февраля 1999 +|4.0-CURRENT после изменения в обработке динамического компоновщика |400002 |link:https://svnweb.freebsd.org/changeset/base/44699[44699] -|March 13, 1999 -|4.0-CURRENT after C++ constructor/destructor order change +|13 марта 1999 +|4.0-CURRENT после изменения порядка конструкторов/деструкторов C++ |400003 |link:https://svnweb.freebsd.org/changeset/base/45059[45059] -|March 27, 1999 -|4.0-CURRENT after functioning man:dladdr[3] +|27 марта 1999 +|4.0-CURRENT после функционирования man:dladdr[3] |400004 |link:https://svnweb.freebsd.org/changeset/base/45321[45321] -|April 5, 1999 -|4.0-CURRENT after __deregister_frame_info dynamic linker bug fix (also 4.0-CURRENT after EGCS 1.1.2 integration) +|5 апреля 1999 +|4.0-CURRENT после исправления ошибки динамического компоновщика `__deregister_frame_info` (также 4.0-CURRENT после интеграции EGCS 1.1.2) |400005 |link:https://svnweb.freebsd.org/changeset/base/46113[46113] -|April 27, 1999 -|4.0-CURRENT after man:suser[9] API change (also 4.0-CURRENT after newbus) +|27 апреля 1999 +|4.0-CURRENT после изменения API man:suser[9] (также 4.0-CURRENT после newbus) |400006 |link:https://svnweb.freebsd.org/changeset/base/47640[47640] -|May 31, 1999 -|4.0-CURRENT after cdevsw registration change +|31 мая 1999 +|4.0-CURRENT после изменения регистрации cdevsw |400007 |link:https://svnweb.freebsd.org/changeset/base/47992[47992] -|June 17, 1999 -|4.0-CURRENT after the addition of so_cred for socket level credentials +|17 июня 1999 +|4.0-CURRENT после добавления `so_cred` для учётных данных на уровне сокета |400008 |link:https://svnweb.freebsd.org/changeset/base/48048[48048] -|June 20, 1999 -|4.0-CURRENT after the addition of a poll syscall wrapper to libc_r +|20 июня 1999 +|4.0-CURRENT после добавления обёртки системного вызова poll в libc_r |400009 |link:https://svnweb.freebsd.org/changeset/base/48936[48936] -|July 20, 1999 -|4.0-CURRENT after the change of the kernel's `dev_t` type to `struct specinfo` pointer +|20 июля 1999 +|4.0-CURRENT после изменения типа `dev_t` ядра на указатель `struct specinfo` |400010 |link:https://svnweb.freebsd.org/changeset/base/51649[51649] -|September 25, 1999 -|4.0-CURRENT after fixing a hole in man:jail[2] +|25 сентября 1999 +|4.0-CURRENT после исправления уязвимости в man:jail[2] |400011 |link:https://svnweb.freebsd.org/changeset/base/51791[51791] -|September 29, 1999 -|4.0-CURRENT after the `sigset_t` datatype change +|29 сентября 1999 +|4.0-CURRENT после изменения типа данных `sigset_t` |400012 |link:https://svnweb.freebsd.org/changeset/base/53164[53164] -|November 15, 1999 -|4.0-CURRENT after the cutover to the GCC 2.95.2 compiler +|15 ноября 1999 +|4.0-CURRENT после перехода на компилятор GCC 2.95.2 |400013 |link:https://svnweb.freebsd.org/changeset/base/54123[54123] -|December 4, 1999 -|4.0-CURRENT after adding pluggable linux-mode ioctl handlers +|4 декабря 1999 +|4.0-CURRENT после добавления подключаемых обработчиков ioctl в режиме linux |400014 |link:https://svnweb.freebsd.org/changeset/base/56216[56216] -|January 18, 2000 -|4.0-CURRENT after importing OpenSSL +|18 января 2000 +|4.0-CURRENT после импорта OpenSSL |400015 |link:https://svnweb.freebsd.org/changeset/base/56700[56700] -|January 27, 2000 -|4.0-CURRENT after the C++ ABI change in GCC 2.95.2 from -fvtable-thunks to -fno-vtable-thunks by default +|27 января 2000 +|4.0-CURRENT после изменения ABI C++ в GCC 2.95.2 с -fvtable-thunks на -fno-vtable-thunks по умолчанию |400016 |link:https://svnweb.freebsd.org/changeset/base/57529[57529] -|February 27, 2000 -|4.0-CURRENT after importing OpenSSH +|27 февраля 2000 +|4.0-CURRENT после импорта OpenSSH |400017 |link:https://svnweb.freebsd.org/changeset/base/58005[58005] -|March 13, 2000 +|13 марта 2000 |4.0-RELEASE |400018 |link:https://svnweb.freebsd.org/changeset/base/58170[58170] -|March 17, 2000 -|4.0-STABLE after 4.0-RELEASE +|17 марта 2000 +|4.0-STABLE после 4.0-RELEASE |400019 |link:https://svnweb.freebsd.org/changeset/base/60047[60047] -|May 5, 2000 -|4.0-STABLE after the introduction of delayed checksums. +|5 мая 2000 +|4.0-STABLE после введения отложенных контрольных сумм. |400020 |link:https://svnweb.freebsd.org/changeset/base/61262[61262] -|June 4, 2000 -|4.0-STABLE after merging libxpg4 code into libc. +|4 июня 2000 +|4.0-STABLE после объединения кода libxpg4 в libc. |400021 |link:https://svnweb.freebsd.org/changeset/base/62820[62820] -|July 8, 2000 -|4.0-STABLE after upgrading Binutils to 2.10.0, ELF branding changes, and tcsh in the base system. +|8 июля 2000 +|4.0-STABLE после обновления Binutils до 2.10.0, изменения маркировки ELF и tcsh в базовой системе. |410000 |link:https://svnweb.freebsd.org/changeset/base/63095[63095] -|July 14, 2000 +|14 июля 2000 |4.1-RELEASE |410001 |link:https://svnweb.freebsd.org/changeset/base/64012[64012] -|July 29, 2000 -|4.1-STABLE after 4.1-RELEASE +|29 июля 2000 +|4.1-STABLE после 4.1-RELEASE |410002 |link:https://svnweb.freebsd.org/changeset/base/65962[65962] -|September 16, 2000 -|4.1-STABLE after man:setproctitle[3] moved from libutil to libc. +|16 сентября 2000 +|4.1-STABLE после перемещения man:setproctitle[3] из libutil в libc. |411000 |link:https://svnweb.freebsd.org/changeset/base/66336[66336] -|September 25, 2000 +|25 сентября 2000 |4.1.1-RELEASE |411001 -| -| -|4.1.1-STABLE after 4.1.1-RELEASE +| +| +|4.1.1-STABLE после 4.1.1-RELEASE |420000 |link:https://svnweb.freebsd.org/changeset/base/68066[68066] -|October 31, 2000 +|31 октября 2000 |4.2-RELEASE |420001 |link:https://svnweb.freebsd.org/changeset/base/70895[70895] -|January 10, 2001 -|4.2-STABLE after combining libgcc.a and libgcc_r.a, and associated GCC linkage changes. +|10 января 2001 +|4.2-STABLE после объединения libgcc.a и libgcc_r.a, а также связанных изменений в компоновке GCC. |430000 |link:https://svnweb.freebsd.org/changeset/base/73800[73800] -|March 6, 2001 +|6 марта 2001 |4.3-RELEASE |430001 |link:https://svnweb.freebsd.org/changeset/base/76779[76779] -|May 18, 2001 -|4.3-STABLE after wint_t introduction. +|18 мая 2001 +|4.3-STABLE после введения `wint_t`. |430002 |link:https://svnweb.freebsd.org/changeset/base/80157[80157] -|July 22, 2001 -|4.3-STABLE after PCI powerstate API merge. +|22 июля 2001 +|4.3-STABLE после объединения API управления состоянием питания PCI. |440000 |link:https://svnweb.freebsd.org/changeset/base/80923[80923] -|August 1, 2001 +|1 августа 2001 |4.4-RELEASE |440001 |link:https://svnweb.freebsd.org/changeset/base/85341[85341] -|October 23, 2001 -|4.4-STABLE after d_thread_t introduction. +|23 октября 2001 +|4.4-STABLE после введения `d_thread_t`. |440002 |link:https://svnweb.freebsd.org/changeset/base/86038[86038] -|November 4, 2001 -|4.4-STABLE after mount structure changes (affects filesystem klds). +|4 ноября 2001 +|4.4-STABLE после изменений в структуре монтирования (затрагивает модули файловых систем klds). |440003 |link:https://svnweb.freebsd.org/changeset/base/88130[88130] -|December 18, 2001 -|4.4-STABLE after the userland components of smbfs were imported. +|18 декабря 2001 +|4.4-STABLE после импорта компонентов пользовательского пространства smbfs. |450000 |link:https://svnweb.freebsd.org/changeset/base/88271[88271] -|December 20, 2001 +|20 декабря 2001 |4.5-RELEASE |450001 |link:https://svnweb.freebsd.org/changeset/base/91203[91203] -|February 24, 2002 -|4.5-STABLE after the usb structure element rename. +|24 февраля 2002 +|4.5-STABLE после переименования элемента структуры usb. |450002 |link:https://svnweb.freebsd.org/changeset/base/92151[92151] -|March 12, 2002 -|4.5-STABLE after locale changes. +|12 марта 2002 +|4.5-STABLE после изменений локали. |450003 -| -| -|(Never created) +| +| +|(Никогда не создавался) |450004 |link:https://svnweb.freebsd.org/changeset/base/94840[94840] -|April 16, 2002 -|4.5-STABLE after the `sendmail_enable` man:rc.conf[5] variable was made to take the value `NONE`. +|16 апреля 2002 +|4.5-STABLE после того, как переменная `sendmail_enable` из man:rc.conf[5] стала принимать значение `NONE`. |450005 |link:https://svnweb.freebsd.org/changeset/base/95555[95555] -|April 27, 2002 -|4.5-STABLE after moving to XFree86 4 by default for package builds. +|27 апреля 2002 +|4.5-STABLE после перехода на XFree86 4 по умолчанию для сборки пакетов. |450006 |link:https://svnweb.freebsd.org/changeset/base/95846[95846] -|May 1, 2002 -|4.5-STABLE after accept filtering was fixed so that is no longer susceptible to an easy DoS. +|1 мая 2002 +|4.5-STABLE после исправления фильтрации accept, чтобы он больше не был подвержен простой DoS-атаке. |460000 |link:https://svnweb.freebsd.org/changeset/base/97923[97923] -|June 21, 2002 +|21 июня 2002 |4.6-RELEASE |460001 |link:https://svnweb.freebsd.org/changeset/base/98730[98730] -|June 21, 2002 -|4.6-STABLE man:sendfile[2] fixed to comply with documentation, not to count any headers sent against the amount of data to be sent from the file. +|21 июня 2002 +|4.6-STABLE man:sendfile[2] исправлен для соответствия документации, чтобы не учитывать отправленные заголовки в объеме данных, отправляемых из файла. |460002 |link:https://svnweb.freebsd.org/changeset/base/100366[100366] -|July 19, 2002 +|19 июля 2002 |4.6.2-RELEASE |460100 |link:https://svnweb.freebsd.org/changeset/base/98857[98857] -|June 26, 2002 +|26 июня 2002 |4.6-STABLE |460101 |link:https://svnweb.freebsd.org/changeset/base/98880[98880] -|June 26, 2002 -|4.6-STABLE after MFC of `sed -i`. +|26 июня 2002 +|4.6-STABLE после MFC `sed -i`. |460102 |link:https://svnweb.freebsd.org/changeset/base/102759[102759] -|September 1, 2002 -|4.6-STABLE after MFC of many new pkg_install features from the HEAD. +|1 сентября 2002 +|4.6-STABLE после MFC множества новых функций pkg_install из HEAD. |470000 |link:https://svnweb.freebsd.org/changeset/base/104655[104655] -|October 8, 2002 +|8 октября 2002 |4.7-RELEASE |470100 |link:https://svnweb.freebsd.org/changeset/base/104717[104717] -|October 9, 2002 +|9 октября 2002 |4.7-STABLE |470101 |link:https://svnweb.freebsd.org/changeset/base/106732[106732] -|November 10, 2002 -|Start generated __std{in,out,err}p references rather than __sF. This changes std{in,out,err} from a compile time expression to a runtime one. +|10 ноября 2002 +|Начинать генерировать ссылки `__std{in,out,err}p` вместо `__sF`. Это изменяет `std{in,out,err}` с выражения времени компиляции на выражение времени выполнения. |470102 |link:https://svnweb.freebsd.org/changeset/base/109753[109753] -|January 23, 2003 -|4.7-STABLE after MFC of mbuf changes to replace m_aux mbufs by m_tag's +|23 января 2003 +|4.7-STABLE после MFC изменений mbuf для замены `m_aux` mbuf на `m_tag` |470103 |link:https://svnweb.freebsd.org/changeset/base/110887[110887] -|February 14, 2003 -|4.7-STABLE gets OpenSSL 0.9.7 +|14 февраля 2003 +|4.7-STABLE получает OpenSSL 0.9.7 |480000 |link:https://svnweb.freebsd.org/changeset/base/112852[112852] -|March 30, 2003 +|30 марта 2003 |4.8-RELEASE |480100 |link:https://svnweb.freebsd.org/changeset/base/113107[113107] -|April 5, 2003 +|5 апреля 2003 |4.8-STABLE |480101 |link:https://svnweb.freebsd.org/changeset/base/115232[115232] -|May 22, 2003 -|4.8-STABLE after man:realpath[3] has been made thread-safe +|22 мая 2003 +|4.8-STABLE после того, как man:realpath[3] стал потокобезопасным |480102 |link:https://svnweb.freebsd.org/changeset/base/118737[118737] -|August 10, 2003 -|4.8-STABLE 3ware API changes to twe. +|10 августа 2003 +|4.8-STABLE Изменения API 3ware в twe. |490000 |link:https://svnweb.freebsd.org/changeset/base/121592[121592] -|October 27, 2003 +|27 октября 2003 |4.9-RELEASE |490100 |link:https://svnweb.freebsd.org/changeset/base/121593[121593] -|October 27, 2003 +|27 октября 2003 |4.9-STABLE |490101 |link:https://svnweb.freebsd.org/changeset/base/124264[124264] -|January 8, 2004 -|4.9-STABLE after e_sid was added to struct kinfo_eproc. +|8 января 2004 +|4.9-STABLE после добавления `e_sid` в структуру `kinfo_eproc`. |490102 |link:https://svnweb.freebsd.org/changeset/base/125417[125417] -|February 4, 2004 -|4.9-STABLE after MFC of libmap functionality for rtld. +|4 февраля 2004 +|4.9-STABLE после MFC функциональности libmap для rtld. |491000 |link:https://svnweb.freebsd.org/changeset/base/129700[129700] -|May 25, 2004 +|25 мая 2004 |4.10-RELEASE |491100 |link:https://svnweb.freebsd.org/changeset/base/129918[129918] -|June 1, 2004 +|1 июня 2004 |4.10-STABLE |491101 |link:https://svnweb.freebsd.org/changeset/base/133506[133506] -|August 11, 2004 -|4.10-STABLE after MFC of revision 20040629 of the package tools +|11 августа 2004 +|4.10-STABLE после слияния изменения из ревизии 20040629 пакета tools |491102 |link:https://svnweb.freebsd.org/changeset/base/137786[137786] -|November 16, 2004 -|4.10-STABLE after VM fix dealing with unwiring of fictitious pages +|16 ноября 2004 +|4.10-STABLE после исправления VM, связанного с обработкой размонтирования фиктивных страниц |492000 |link:https://svnweb.freebsd.org/changeset/base/138960[138960] -|December 17, 2004 +|17 декабря 2004 |4.11-RELEASE |492100 |link:https://svnweb.freebsd.org/changeset/base/138959[138959] -|December 17, 2004 +|17 декабря 2004 |4.11-STABLE |492101 |link:https://svnweb.freebsd.org/changeset/base/157843[157843] -|April 18, 2006 -|4.11-STABLE after adding libdata/ldconfig directories to mtree files. +|18 апреля 2006 +|4.11-STABLE после добавления каталогов libdata/ldconfig в файлы mtree. |=== [[versions-3]] -== FreeBSD 3 Versions +== Версии FreeBSD 3 [[freebsd-versions-table-3]] -.FreeBSD 3 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` для FreeBSD 3 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |300000 |link:https://svnweb.freebsd.org/changeset/base/22917[22917] -|February 19, 1996 -|3.0-CURRENT before man:mount[2] change +|19 февраля 1996 +|3.0-CURRENT до изменения man:mount[2] |300001 |link:https://svnweb.freebsd.org/changeset/base/36283[36283] -|September 24, 1997 -|3.0-CURRENT after man:mount[2] change +|24 сентября 1997 +|3.0-CURRENT после изменения man:mount[2] |300002 |link:https://svnweb.freebsd.org/changeset/base/36592[36592] -|June 2, 1998 -|3.0-CURRENT after man:semctl[2] change +|2 июня 1998 +|3.0-CURRENT после изменения man:semctl[2] |300003 |link:https://svnweb.freebsd.org/changeset/base/36735[36735] -|June 7, 1998 -|3.0-CURRENT after ioctl arg changes +|7 июня 1998 +|3.0-CURRENT после изменений аргументов ioctl |300004 |link:https://svnweb.freebsd.org/changeset/base/38768[38768] -|September 3, 1998 -|3.0-CURRENT after ELF conversion +|3 сентября 1998 +|3.0-CURRENT после преобразования в ELF |300005 |link:https://svnweb.freebsd.org/changeset/base/40438[40438] -|October 16, 1998 +|16 октября 1998 |3.0-RELEASE |300006 |link:https://svnweb.freebsd.org/changeset/base/40445[40445] -|October 16, 1998 -|3.0-CURRENT after 3.0-RELEASE +|16 октября 1998 +|3.0-CURRENT после 3.0-RELEASE |300007 |link:https://svnweb.freebsd.org/changeset/base/43042[43042] -|January 22, 1999 -|3.0-STABLE after 3/4 branch +|22 января 1999 +|3.0-STABLE после ветвления 3/4 |310000 |link:https://svnweb.freebsd.org/changeset/base/43807[43807] -|February 9, 1999 +|9 февраля 1999 |3.1-RELEASE |310001 |link:https://svnweb.freebsd.org/changeset/base/45060[45060] -|March 27, 1999 -|3.1-STABLE after 3.1-RELEASE +|27 марта 1999 +|3.1-STABLE после 3.1-RELEASE |310002 |link:https://svnweb.freebsd.org/changeset/base/45689[45689] -|April 14, 1999 -|3.1-STABLE after C++ constructor/destructor order change +|14 апреля 1999 +|3.1-STABLE после изменения порядка конструкторов/деструкторов C++ |320000 -| -| +| +| |3.2-RELEASE |320001 |link:https://svnweb.freebsd.org/changeset/base/46742[46742] -|May 8, 1999 +|8 мая 1999 |3.2-STABLE |320002 |link:https://svnweb.freebsd.org/changeset/base/50563[50563] -|August 29, 1999 -|3.2-STABLE after binary-incompatible IPFW and socket changes +|29 августа 1999 +|3.2-STABLE после бинарно-несовместимых изменений в IPFW и сокетах |330000 |link:https://svnweb.freebsd.org/changeset/base/50813[50813] -|September 2, 1999 +|2 сентября 1999 |3.3-RELEASE |330001 |link:https://svnweb.freebsd.org/changeset/base/51328[51328] -|September 16, 1999 +|16 сентября 1999 |3.3-STABLE |330002 |link:https://svnweb.freebsd.org/changeset/base/53671[53671] -|November 24, 1999 -|3.3-STABLE after adding man:mkstemp[3] to libc +|24 ноября 1999 +|3.3-STABLE после добавления man:mkstemp[3] в libc |340000 |link:https://svnweb.freebsd.org/changeset/base/54166[54166] -|December 5, 1999 +|5 декабря 1999 |3.4-RELEASE |340001 |link:https://svnweb.freebsd.org/changeset/base/54730[54730] -|December 17, 1999 +|17 декабря 1999 |3.4-STABLE |350000 |link:https://svnweb.freebsd.org/changeset/base/61876[61876] -|June 20, 2000 +|20 июня 2000 |3.5-RELEASE |350001 |link:https://svnweb.freebsd.org/changeset/base/63043[63043] -|July 12, 2000 +|12 июля 2000 |3.5-STABLE |=== [[versions-2.2]] -== FreeBSD 2.2 Versions +== Версии FreeBSD 2.2 [[freebsd-versions-table-2.2]] -.FreeBSD 2.2 `__FreeBSD_version` Values +.Значения `__FreeBSD_version` в FreeBSD 2.2 [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |220000 |link:https://svnweb.freebsd.org/changeset/base/22918[22918] -|February 19, 1997 +|19 февраля 1997 |2.2-RELEASE -|(not changed) -| -| +|(не изменено) +| +| |2.2.1-RELEASE -|(not changed) -| -| -|2.2-STABLE after 2.2.1-RELEASE +|(не изменено) +| +| +|2.2-STABLE после 2.2.1-RELEASE |221001 |link:https://svnweb.freebsd.org/changeset/base/24941[24941] -|April 15, 1997 -|2.2-STABLE after texinfo-3.9 +|15 апреля 1997 +|2.2-STABLE после texinfo-3.9 |221002 |link:https://svnweb.freebsd.org/changeset/base/25325[25325] -|April 30, 1997 -|2.2-STABLE after top +|30 апреля 1997 +|2.2-STABLE после обновления |222000 |link:https://svnweb.freebsd.org/changeset/base/25851[25851] -|May 16, 1997 +|16 мая 1997 |2.2.2-RELEASE |222001 |link:https://svnweb.freebsd.org/changeset/base/25921[25921] -|May 19, 1997 -|2.2-STABLE after 2.2.2-RELEASE +|19 мая 1997 +|2.2-STABLE после 2.2.2-RELEASE |225000 |link:https://svnweb.freebsd.org/changeset/base/30053[30053] -|October 2, 1997 +|2 октября 1997 |2.2.5-RELEASE |225001 |link:https://svnweb.freebsd.org/changeset/base/31300[31300] -|November 20, 1997 -|2.2-STABLE after 2.2.5-RELEASE +|20 ноября 1997 +|2.2-STABLE после 2.2.5-RELEASE |225002 |link:https://svnweb.freebsd.org/changeset/base/32019[32019] -|December 27, 1997 -|2.2-STABLE after ldconfig -R merge +|27 декабря 1997 +|2.2-STABLE после слияния ldconfig -R |226000 |link:https://svnweb.freebsd.org/changeset/base/34445[34445] -|March 24, 1998 +|24 марта 1998 |2.2.6-RELEASE |227000 |link:https://svnweb.freebsd.org/changeset/base/37803[37803] -|July 21, 1998 +|21 июля 1998 |2.2.7-RELEASE |227001 |link:https://svnweb.freebsd.org/changeset/base/37809[37809] -|July 21, 1998 -|2.2-STABLE after 2.2.7-RELEASE +|21 июля 1998 +|2.2-STABLE после 2.2.7-RELEASE |227002 |link:https://svnweb.freebsd.org/changeset/base/39489[39489] -|September 19, 1998 -|2.2-STABLE after man:semctl[2] change +|19 сентября 1998 +|2.2-STABLE после изменения man:semctl[2] |228000 |link:https://svnweb.freebsd.org/changeset/base/41403[41403] -|November 29, 1998 +|29 ноября 1998 |2.2.8-RELEASE |228001 |link:https://svnweb.freebsd.org/changeset/base/41418[41418] -|November 29, 1998 -|2.2-STABLE after 2.2.8-RELEASE +|29 ноября 1998 +|2.2-STABLE после 2.2.8-RELEASE |=== [NOTE] ==== -Note that 2.2-STABLE sometimes identifies itself as "2.2.5-STABLE" after the 2.2.5-RELEASE. The pattern used to be year followed by the month, but we decided to change it to a more straightforward major/minor system starting from 2.2. This is because the parallel development on several branches made it infeasible to classify the releases merely by their real release dates. Do not worry about old -CURRENTs; they are listed here just for reference. +Обратите внимание, что 2.2-STABLE иногда идентифицирует себя как "2.2.5-STABLE" после выпуска 2.2.5-RELEASE. Ранее использовался шаблон "год-месяц", но сообщество решило изменить его на более простую систему "основной/второстепенный", начиная с версии 2.2. Это связано с тем, что параллельная разработка нескольких веток сделала невозможным классифицировать выпуски только по датам их фактического выхода. Не беспокойтесь о старых версиях -CURRENT; они приведены здесь только для справки. ==== [[versions-2]] -== FreeBSD 2 Before 2.2-RELEASE Versions +== FreeBSD 2 Версии до 2.2-RELEASE [[freebsd-versions-table-2]] -.FreeBSD 2 Before 2.2-RELEASE `__FreeBSD_version` Values +.FreeBSD 2 До версии 2.2-RELEASE Значения `__FreeBSD_version` [cols="1,1,1,1", frame="none", options="header"] |=== -| Value -| Revision -| Date -| Release +| Значение +| Версия +| Дата +| Релиз |119411 -| -| +| +| |2.0-RELEASE |199501 |link:https://svnweb.freebsd.org/changeset/base/7153[7153] -|March 19, 1995 +|19 марта 1995 |2.1-CURRENT |199503 |link:https://svnweb.freebsd.org/changeset/base/7310[7310] -|March 24, 1995 +|24 марта 1995 |2.1-CURRENT |199504 |link:https://svnweb.freebsd.org/changeset/base/7704[7704] -|April 9, 1995 +|9 апреля 1995 |2.0.5-RELEASE |199508 |link:https://svnweb.freebsd.org/changeset/base/10297[10297] -|August 26, 1995 -|2.2-CURRENT before 2.1 +|26 августа 1995 +|2.2-CURRENT до 2.1 |199511 |link:https://svnweb.freebsd.org/changeset/base/12189[12189] -|November 10, 1995 +|10 ноября 1995 |2.1.0-RELEASE |199512 |link:https://svnweb.freebsd.org/changeset/base/12196[12196] -|November 10, 1995 -|2.2-CURRENT before 2.1.5 +|10 ноября 1995 +|2.2-CURRENT до 2.1.5 |199607 |link:https://svnweb.freebsd.org/changeset/base/17067[17067] -|July 10, 1996 +|10 июля 1996 |2.1.5-RELEASE |199608 |link:https://svnweb.freebsd.org/changeset/base/17127[17127] -|July 12, 1996 -|2.2-CURRENT before 2.1.6 +|12 июля 1996 +|2.2-CURRENT до 2.1.6 |199612 |link:https://svnweb.freebsd.org/changeset/base/19358[19358] -|November 15, 1996 +|15 ноября 1996 |2.1.6-RELEASE |199612 -| -| +| +| |2.1.7-RELEASE |=== diff --git a/documentation/content/ru/books/porters-handbook/versions/_index.po b/documentation/content/ru/books/porters-handbook/versions/_index.po new file mode 100644 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/versions/_index.po @@ -0,0 +1,33889 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-08-20 20:38+0300\n" +"PO-Revision-Date: 2025-08-19 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1 +#, no-wrap +msgid "A list of changes to the sys/param.h file" +msgstr "Список изменений файла sys/param.h" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1 +#, no-wrap +msgid "Chapter 18. __FreeBSD_version Values" +msgstr "Глава 18. Значения __FreeBSD_version" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:13 +#, no-wrap +msgid "`__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:51 +msgid "" +"Here is a convenient list of `__FreeBSD_version` values as defined in " +"https://cgit.freebsd.org/src/tree/sys/sys/param.h[sys/param.h]:" +msgstr "" +"Здесь удобный список значений `__FreeBSD_version` как определено в https://" +"cgit.freebsd.org/src/tree/sys/sys/param.h[sys/param.h]:" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:53 +#, no-wrap +msgid "FreeBSD 15 Versions" +msgstr "Версии FreeBSD 15" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:56 +#, no-wrap +msgid "FreeBSD 15 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 15" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:60 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:264 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:807 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1825 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2633 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3616 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4304 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4747 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5520 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5988 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6366 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6994 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7352 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7470 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7568 +#, no-wrap +msgid "Value" +msgstr "Значение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:61 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:265 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:808 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1826 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2634 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3617 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4305 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4748 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5521 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5989 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6367 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6995 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7353 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7471 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7569 +#, no-wrap +msgid "Revision" +msgstr "Версия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:62 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:266 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:809 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1827 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2635 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3618 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4306 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4749 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5522 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5990 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6368 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6996 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7354 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7472 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7570 +#, no-wrap +msgid "Date" +msgstr "Дата" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:64 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:268 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:811 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1829 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2637 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3620 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4308 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4751 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5524 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5992 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6370 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6998 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7356 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7474 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7572 +#, no-wrap +msgid "Release" +msgstr "Релиз" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:65 +#, no-wrap +msgid "1500000" +msgstr "1500000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:66 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:675 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:680 +#, no-wrap +msgid "gitref:29a16ce065dbc28bc9e87c9bfadb08bb58b137e4[repository=\"src\",length=12]" +msgstr "gitref:29a16ce065dbc28bc9e87c9bfadb08bb58b137e4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:67 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:676 +#, no-wrap +msgid "August 24, 2023" +msgstr "24 августа 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:69 +#, no-wrap +msgid "15.0-CURRENT." +msgstr "15.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:70 +#, no-wrap +msgid "1500001" +msgstr "1500001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:71 +#, no-wrap +msgid "gitref:a6662c37b6ffee46e18be5f7570149edc64c1d0b[repository=\"src\",length=12]" +msgstr "gitref:a6662c37b6ffee46e18be5f7570149edc64c1d0b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:72 +#, no-wrap +msgid "September 17, 2023" +msgstr "17 сентября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:74 +#, no-wrap +msgid "15.0-CURRENT after implementing `fpu_kern_enter` and `fpu_kern_leave` for powerpc." +msgstr "15.0-CURRENT после реализации `fpu_kern_enter` и `fpu_kern_leave` для powerpc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:75 +#, no-wrap +msgid "1500002" +msgstr "1500002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:76 +#, no-wrap +msgid "gitref:17f5e2b904aff8e4863199a137ee21ef0939bcf4[repository=\"src\",length=12]" +msgstr "gitref:17f5e2b904aff8e4863199a137ee21ef0939bcf4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:77 +#, no-wrap +msgid "October 18, 2023" +msgstr "18 октября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:79 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:119 +#, no-wrap +msgid "15.0-CURRENT after changing the internal KAPI between the nfscommon and nfscl modules." +msgstr "15.0-CURRENT после изменения внутреннего KAPI между модулями nfscommon и nfscl." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:80 +#, no-wrap +msgid "1500003" +msgstr "1500003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:81 +#, no-wrap +msgid "gitref:ef85fd507e6e1784a726bccd485129e00bb63311[repository=\"src\",length=12]" +msgstr "gitref:ef85fd507e6e1784a726bccd485129e00bb63311[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:82 +#, no-wrap +msgid "November 1, 2023" +msgstr "1 ноября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:84 +#, no-wrap +msgid "15.0-CURRENT after removal of the forward compat code for the inode64 conversion." +msgstr "15.0-CURRENT после удаления кода обратной совместимости для преобразования inode64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:85 +#, no-wrap +msgid "1500004" +msgstr "1500004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:86 +#, no-wrap +msgid "gitref:7fabea328fed60d5207b262d2372e85a7f731eef[repository=\"src\",length=12]" +msgstr "gitref:7fabea328fed60d5207b262d2372e85a7f731eef[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:87 +#, no-wrap +msgid "November 23, 2023" +msgstr "23 ноября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:89 +#, no-wrap +msgid "15.0-CURRENT after adding a new VFS function called `vfs_exjail_clone()`, which will be used by the ZFS module." +msgstr "15.0-CURRENT после добавления новой функции VFS под названием `vfs_exjail_clone()`, которая будет использоваться модулем ZFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:90 +#, no-wrap +msgid "1500005" +msgstr "1500005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:91 +#, no-wrap +msgid "gitref:21fce617d1de231a30833cdd9819ef61277b08d8[repository=\"src\",length=12]" +msgstr "gitref:21fce617d1de231a30833cdd9819ef61277b08d8[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:92 +#, no-wrap +msgid "November 27, 2023" +msgstr "27 ноября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:94 +#, no-wrap +msgid "15.0-CURRENT after a string of mechanical changes to the tree: SCCS IDs removed, #if 0'd copyright strings removed, mechanical style fix after this churn and some macros removed from [.filename]#sys/cdefs.h#." +msgstr "15.0-CURRENT после серии механических изменений в дереве: идентификаторы SCCS удалены, закомментированные строки с авторскими правами удалены с помощью `#if 0`, механические исправления стиля после этих изменений и удаление некоторых макросов из [.filename]#sys/cdefs.h#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:95 +#, no-wrap +msgid "1500006" +msgstr "1500006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:96 +#, no-wrap +msgid "gitref:c711af7727824da79d87f375f3d6829feec3799a[repository=\"src\",length=12]" +msgstr "gitref:c711af7727824da79d87f375f3d6829feec3799a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:97 +#, no-wrap +msgid "December 8, 2023" +msgstr "8 декабря 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:99 +#, no-wrap +msgid "15.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-17.0.6-0-g6009708b4367, a.k.a. 17.0.6 release." +msgstr "15.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-17.0.6-0-g6009708b4367, также известного как релиз 17.0.6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:100 +#, no-wrap +msgid "1500007" +msgstr "1500007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:101 +#, no-wrap +msgid "gitref:8ccd0b876e67fda6249f294ff484798cc1e1569f[repository=\"src\",length=12]" +msgstr "gitref:8ccd0b876e67fda6249f294ff484798cc1e1569f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:102 +#, no-wrap +msgid "December 11, 2023" +msgstr "11 декабря 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:104 +#, no-wrap +msgid "15.0-CURRENT after exposing execvpe for Linux compat in libc." +msgstr "15.0-CURRENT после предоставления доступа к execvpe для совместимости с Linux в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:105 +#, no-wrap +msgid "1500008" +msgstr "1500008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:106 +#, no-wrap +msgid "gitref:9bf957fc9b378e0f9e65eb97e84c2166b450fccc[repository=\"src\",length=12]" +msgstr "gitref:9bf957fc9b378e0f9e65eb97e84c2166b450fccc[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:107 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:691 +#, no-wrap +msgid "December 24, 2023" +msgstr "24 декабря 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:109 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:174 +#, no-wrap +msgid "15.0-CURRENT after LinuxKPI changes." +msgstr "15.0-CURRENT после изменений в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:110 +#, no-wrap +msgid "1500009" +msgstr "1500009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:111 +#, no-wrap +msgid "gitref:b068bb09a1a82d9fef0e939ad6135443a959e290[repository=\"src\",length=12]" +msgstr "gitref:b068bb09a1a82d9fef0e939ad6135443a959e290[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:112 +#, no-wrap +msgid "January 11, 2024" +msgstr "11 января 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:114 +#, no-wrap +msgid "15.0-CURRENT after adding man:vnode_pager_clean_async[9] and man:vnode_pager_clean_sync[9]." +msgstr "15.0-CURRENT после добавления man:vnode_pager_clean_async[9] и man:vnode_pager_clean_sync[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:115 +#, no-wrap +msgid "1500010" +msgstr "1500010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:116 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:121 +#, no-wrap +msgid "gitref:a2da1bdb61bc2d9db0b4268f53281e7c0bbce0bc[repository=\"src\",length=12]" +msgstr "gitref:a2da1bdb61bc2d9db0b4268f53281e7c0bbce0bc[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:117 +#, no-wrap +msgid "January 12, 2024" +msgstr "12 января 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:120 +#, no-wrap +msgid "1500011" +msgstr "1500011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:122 +#, no-wrap +msgid "January 17, 2024" +msgstr "17 января 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:124 +#, no-wrap +msgid "15.0-CURRENT after adding zfs.dataset support to man:jail[8]." +msgstr "15.0-CURRENT после добавления поддержки zfs.dataset в man:jail[8]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:125 +#, no-wrap +msgid "1500012" +msgstr "1500012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:126 +#, no-wrap +msgid "gitref:120ceebab5d4947dfc80d7492effa034a925d43e[repository=\"src\",length=12]" +msgstr "gitref:120ceebab5d4947dfc80d7492effa034a925d43e[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:127 +#, no-wrap +msgid "January 24, 2024" +msgstr "24 января 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:129 +#, no-wrap +msgid "15.0-CURRENT after adding man:kern_openatfp[9] and man:kcmp[2]." +msgstr "15.0-CURRENT после добавления man:kern_openatfp[9] и man:kcmp[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:130 +#, no-wrap +msgid "1500013" +msgstr "1500013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:131 +#, no-wrap +msgid "gitref:d04abb05375d3525132f1e9f78090db3d0d27f14[repository=\"src\",length=12]" +msgstr "gitref:d04abb05375d3525132f1e9f78090db3d0d27f14[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:132 +#, no-wrap +msgid "February 7, 2024" +msgstr "7 февраля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:134 +#, no-wrap +msgid "15.0-CURRENT after adding libsys." +msgstr "15.0-CURRENT после добавления libsys." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:135 +#, no-wrap +msgid "1500014" +msgstr "1500014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:136 +#, no-wrap +msgid "gitref:ed27ae8df4b10f67289a32458d89d143e758f6d4[repository=\"src\",length=12]" +msgstr "gitref:ed27ae8df4b10f67289a32458d89d143e758f6d4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:137 +#, no-wrap +msgid "February 11, 2024" +msgstr "11 февраля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:139 +#, no-wrap +msgid "15.0-CURRENT after switching clang and other LLVM executables to build as PIE." +msgstr "15.0-CURRENT после переключения clang и других исполняемых файлов LLVM на сборку как PIE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:140 +#, no-wrap +msgid "1500015" +msgstr "1500015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:141 +#, no-wrap +msgid "gitref:a7b9f4d96e8bdc30db27ec7a193a8d8fdf7c652c[repository=\"src\",length=12]" +msgstr "gitref:a7b9f4d96e8bdc30db27ec7a193a8d8fdf7c652c[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:142 +#, no-wrap +msgid "March 13, 2024" +msgstr "13 марта 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:144 +#, no-wrap +msgid "15.0-CURRENT after removing redundant `type` and `rid` arguments from several functions in the new-bus resource API." +msgstr "15.0-CURRENT после удаления избыточных аргументов `type` и `rid` из нескольких функций в API ресурсов new-bus." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:145 +#, no-wrap +msgid "1500016" +msgstr "1500016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:146 +#, no-wrap +msgid "gitref:60bc9617e79e99bdf670304923f3baed4b749ad3[repository=\"src\",length=12]" +msgstr "gitref:60bc9617e79e99bdf670304923f3baed4b749ad3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:147 +#, no-wrap +msgid "March 18, 2024" +msgstr "18 марта 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:149 +#, no-wrap +msgid "15.0-CURRENT after introducing man:livedump_start_vnode[9]." +msgstr "15.0-CURRENT после введения man:livedump_start_vnode[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:150 +#, no-wrap +msgid "1500017" +msgstr "1500017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:151 +#, no-wrap +msgid "gitref:bcd401b5a39c6186bb1fe450286299f2a481244c[repository=\"src\",length=12]" +msgstr "gitref:bcd401b5a39c6186bb1fe450286299f2a481244c[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:152 +#, no-wrap +msgid "March 20, 2024" +msgstr "20 марта 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:154 +#, no-wrap +msgid "15.0-CURRENT after fixing a clang assertion or crash when building recent boost libraries." +msgstr "15.0-CURRENT после исправления утверждения или сбоя clang при сборке последних библиотек boost." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:155 +#, no-wrap +msgid "1500018" +msgstr "1500018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:156 +#, no-wrap +msgid "gitref:0192eda105b367d4670205547e8e830e3716bea3[repository=\"src\",length=12]" +msgstr "gitref:0192eda105b367d4670205547e8e830e3716bea3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:157 +#, no-wrap +msgid "April 6, 2024" +msgstr "6 апреля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:159 +#, no-wrap +msgid "15.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-18.1.3-0-gc13b7485b879, a.k.a. 18.1.3 release." +msgstr "15.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-18.1.3-0-gc13b7485b879, также известной как релиз 18.1.3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:160 +#, no-wrap +msgid "1500019" +msgstr "1500019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:161 +#, no-wrap +msgid "gitref:e03e8b07743385e5b199409074fb60b1a9ed1fac[repository=\"src\",length=12]" +msgstr "gitref:e03e8b07743385e5b199409074fb60b1a9ed1fac[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:162 +#, no-wrap +msgid "May 31, 2024" +msgstr "31 мая 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:164 +#, no-wrap +msgid "15.0-CURRENT after redefining `CLOCK_BOOTTIME` to alias `CLOCK_MONOTONIC` instead of `CLOCK_UPTIME`." +msgstr "15.0-CURRENT после переопределения `CLOCK_BOOTTIME` как псевдонима для `CLOCK_MONOTONIC` вместо `CLOCK_UPTIME`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:165 +#, no-wrap +msgid "1500020" +msgstr "1500020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:166 +#, no-wrap +msgid "gitref:7818c2d37c2c600fc9ad6f2a0951e50dd21b17c8[repository=\"src\",length=12]" +msgstr "gitref:7818c2d37c2c600fc9ad6f2a0951e50dd21b17c8[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:167 +#, no-wrap +msgid "July 12, 2024" +msgstr "12 июля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:169 +#, no-wrap +msgid "15.0-CURRENT after removing support for building armv6." +msgstr "15.0-CURRENT после удаления поддержки сборки armv6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:170 +#, no-wrap +msgid "1500021" +msgstr "1500021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:171 +#, no-wrap +msgid "gitref:24388fccd551f79f64e54099a7d78196535c0a29[repository=\"src\",length=12]" +msgstr "gitref:24388fccd551f79f64e54099a7d78196535c0a29[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:172 +#, no-wrap +msgid "July 21, 2024" +msgstr "21 июля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:175 +#, no-wrap +msgid "1500022" +msgstr "1500022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:176 +#, no-wrap +msgid "gitref:a1740cb93639648b41055958ad8c7f6083efdc96[repository=\"src\",length=12]" +msgstr "gitref:a1740cb93639648b41055958ad8c7f6083efdc96[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:177 +#, no-wrap +msgid "July 29, 2024" +msgstr "29 июля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:179 +#, no-wrap +msgid "15.0-CURRENT after removing kernel stack swapping support." +msgstr "15.0-CURRENT после удаления поддержки подкачки стека ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:180 +#, no-wrap +msgid "1500023" +msgstr "1500023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:181 +#, no-wrap +msgid "gitref:1206cf04a717a55bc15255ed043b066941cb43f2[repository=\"src\",length=12]" +msgstr "gitref:1206cf04a717a55bc15255ed043b066941cb43f2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:182 +#, no-wrap +msgid "July 30, 2024" +msgstr "30 июля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:184 +#, no-wrap +msgid "15.0-CURRENT after adding new flags to man:malloc[9]." +msgstr "15.0-CURRENT после добавления новых флагов в man:malloc[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:185 +#, no-wrap +msgid "1500024" +msgstr "1500024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:186 +#, no-wrap +msgid "gitref:e3953c036f9d66c85b8e19f99f0710b3288ce5fb[repository=\"src\",length=12]" +msgstr "gitref:e3953c036f9d66c85b8e19f99f0710b3288ce5fb[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:187 +#, no-wrap +msgid "October 2, 2024" +msgstr "2 октября 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:189 +#, no-wrap +msgid "15.0-CURRENT after bumping [.filename]#libmd.so.6# to [.filename]#libmd.so.7#." +msgstr "15.0-CURRENT после увеличения версии [.filename]#libmd.so.6# до [.filename]#libmd.so.7#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:190 +#, no-wrap +msgid "1500025" +msgstr "1500025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:191 +#, no-wrap +msgid "gitref:9d52823bf1dfac237e58b5208299aaa5e2df42e9[repository=\"src\",length=12]" +msgstr "gitref:9d52823bf1dfac237e58b5208299aaa5e2df42e9[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:192 +#, no-wrap +msgid "October 6, 2024" +msgstr "6 октября 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:194 +#, no-wrap +msgid "15.0-CURRENT after widening the `flags` field in `vm_object`." +msgstr "15.0-CURRENT после расширения поля `flags` в `vm_object`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:195 +#, no-wrap +msgid "1500026" +msgstr "1500026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:196 +#, no-wrap +msgid "gitref:f3dbef108212460489ae68b4c47e20b73984f433[repository=\"src\",length=12]" +msgstr "gitref:f3dbef108212460489ae68b4c47e20b73984f433[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:197 +#, no-wrap +msgid "October 23, 2024" +msgstr "23 октября 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:199 +#, no-wrap +msgid "15.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-19.1.2-0-g7ba7d8e2f7b6, a.k.a. 19.1.2 release." +msgstr "15.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-19.1.2-0-g7ba7d8e2f7b6, также известной как релиз 19.1.2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:200 +#, no-wrap +msgid "1500027" +msgstr "1500027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:201 +#, no-wrap +msgid "gitref:893d044346d5ae5fe10cc188b8b0762efd2a5b27[repository=\"src\",length=12]" +msgstr "gitref:893d044346d5ae5fe10cc188b8b0762efd2a5b27[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:202 +#, no-wrap +msgid "November 14, 2024" +msgstr "14 ноября 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:204 +#, no-wrap +msgid "15.0-CURRENT after hiding `struct ifnet` and changing man:sound[4]'s device registration KPI." +msgstr "15.0-CURRENT после скрытия `struct ifnet` и изменения KPI регистрации устройств man:sound[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:205 +#, no-wrap +msgid "1500028" +msgstr "1500028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:206 +#, no-wrap +msgid "gitref:cab31f5633c1ffdd8b24749a3c9dd22c59568503[repository=\"src\",length=12]" +msgstr "gitref:cab31f5633c1ffdd8b24749a3c9dd22c59568503[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:207 +#, no-wrap +msgid "November 25, 2024" +msgstr "25 ноября 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:209 +#, no-wrap +msgid "15.0-CURRENT after adding a `TDA_PSELECT` flag for early restoration of signal masks." +msgstr "15.0-CURRENT после добавления флага `TDA_PSELECT` для раннего восстановления масок сигналов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:210 +#, no-wrap +msgid "1500029" +msgstr "1500029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:211 +#, no-wrap +msgid "gitref:46297859a74563dde6fc5bff9f9ecded9fb61ba6[repository=\"src\",length=12]" +msgstr "gitref:46297859a74563dde6fc5bff9f9ecded9fb61ba6[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:212 +#, no-wrap +msgid "December 6, 2024" +msgstr "6 декабря 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:214 +#, no-wrap +msgid "15.0-CURRENT after adding `bus_attach_children`, `bus_detach_children`, and `bus_identify_children`." +msgstr "15.0-CURRENT после добавления `bus_attach_children`, `bus_detach_children` и `bus_identify_children`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:215 +#, no-wrap +msgid "1500030" +msgstr "1500030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:216 +#, no-wrap +msgid "gitref:b196276c20b577b364372f1aa1a646b9ce34bf5c[repository=\"src\",length=12]" +msgstr "gitref:b196276c20b577b364372f1aa1a646b9ce34bf5c[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:217 +#, no-wrap +msgid "January 2, 2025" +msgstr "2 января 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:219 +#, no-wrap +msgid "15.0-CURRENT after changing `bus_generic_detach` to delete child devices after detaching them." +msgstr "15.0-CURRENT после изменения `bus_generic_detach` для удаления дочерних устройств после их отключения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:220 +#, no-wrap +msgid "1500037" +msgstr "1500037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:221 +#, no-wrap +msgid "gitref:7acd5af48cf1870ec48d5910dff1a26466d98074[repository=\"src\",length=12]" +msgstr "gitref:7acd5af48cf1870ec48d5910dff1a26466d98074[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:222 +#, no-wrap +msgid "April 12, 2025" +msgstr "12 апреля 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:224 +#, no-wrap +msgid "15.0-CURRENT after changing alloc changes to LinuxKPI." +msgstr "15.0-CURRENT после внесения изменений в alloc в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:225 +#, no-wrap +msgid "1500038" +msgstr "1500038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:226 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:231 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:236 +#, no-wrap +msgid "gitref:[repository=\"src\",length=12]" +msgstr "gitref:[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:227 +#, no-wrap +msgid "April 19, 2025" +msgstr "19 апреля 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:229 +#, no-wrap +msgid "15.0-CURRENT after removal of vm_page_next() and _prev." +msgstr "15.0-CURRENT после удаления vm_page_next() и _prev." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:230 +#, no-wrap +msgid "1500039" +msgstr "1500039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:232 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:237 +#, no-wrap +msgid "May 4, 2025" +msgstr "4 мая 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:234 +#, no-wrap +msgid "15.0-CURRENT after introducing a properly typed jiffies." +msgstr "15.0-CURRENT после введения правильно типизированных jiffies." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:235 +#, no-wrap +msgid "1500040" +msgstr "1500040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:239 +#, no-wrap +msgid "15.0-CURRENT after the internal API between the nfscommon and nfscl modules changed." +msgstr "15.0-CURRENT после изменения внутреннего API между модулями nfscommon и nfscl." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:240 +#, no-wrap +msgid "1500045" +msgstr "1500045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:241 +#, no-wrap +msgid "gitref:a02180cf60a6a0102669b678e9c81ad9f1aa4d91[repository=\"src\",length=12]" +msgstr "gitref:a02180cf60a6a0102669b678e9c81ad9f1aa4d91[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:242 +#, no-wrap +msgid "June 3, 2025" +msgstr "3 июня 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:244 +#, no-wrap +msgid "15.0-CURRENT after pulling in dma-mapping.h changes from drm-kmod to LinuxKPI." +msgstr "15.0-CURRENT после внесения изменений dma-mapping.h из drm-kmod в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:245 +#, no-wrap +msgid "1500062" +msgstr "1500062" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:246 +#, no-wrap +msgid "gitref:567e6250c003eeb251b4bc8dbe60d2adabab2988[repository=\"src\",length=12]" +msgstr "gitref:567e6250c003eeb251b4bc8dbe60d2adabab2988[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:247 +#, no-wrap +msgid "August 17, 2025" +msgstr "17 августа 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:249 +#, no-wrap +msgid "15.0-CURRENT after introduction of VTYPE_ISDEV(), VN_ISDEV(), and VATTR_ISDEV()." +msgstr "15.0-CURRENT после добавления VTYPE_ISDEV(), VN_ISDEV() и VATTR_ISDEV()." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:250 +#, fuzzy, no-wrap +#| msgid "1500006" +msgid "1500063" +msgstr "1500006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:251 +#, fuzzy, no-wrap +#| msgid "gitref:ed27ae8df4b10f67289a32458d89d143e758f6d4[repository=\"src\",length=12]" +msgid "gitref:c340ef28fd384b567e35882d04ce17fa31b7384f[repository=\"src\",length=12]" +msgstr "gitref:ed27ae8df4b10f67289a32458d89d143e758f6d4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:252 +#, fuzzy, no-wrap +#| msgid "August 18, 2022" +msgid "August 18, 2025" +msgstr "18 августа 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:254 +#, fuzzy, no-wrap +#| msgid "11.0-CURRENT after rewrite of callout subsystem." +msgid "15.0-CURRENT after certctl rewrite, which now produces a bundle." +msgstr "11.0-CURRENT после переработки подсистемы вызовов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:257 +#, no-wrap +msgid "FreeBSD 14 Versions" +msgstr "Версии FreeBSD 14" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:260 +#, no-wrap +msgid "FreeBSD 14 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 14" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:269 +#, no-wrap +msgid "1400000" +msgstr "1400000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:270 +#, no-wrap +msgid "gitref:a53ce3fc4938e37d5ec89304846203d2083c61a2[repository=\"src\",length=12]" +msgstr "gitref:a53ce3fc4938e37d5ec89304846203d2083c61a2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:271 +#, no-wrap +msgid "January 22, 2021" +msgstr "22 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:273 +#, no-wrap +msgid "14.0-CURRENT." +msgstr "14.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:274 +#, no-wrap +msgid "1400001" +msgstr "1400001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:275 +#, no-wrap +msgid "gitref:739ecbcf1c4fd22b5f6ee0bb180a67644046a3e0[repository=\"src\",length=12]" +msgstr "gitref:739ecbcf1c4fd22b5f6ee0bb180a67644046a3e0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:276 +#, no-wrap +msgid "January 23, 2021" +msgstr "23 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:278 +#, no-wrap +msgid "14.0-CURRENT after adding symlink support to lockless lookup." +msgstr "14.0-CURRENT после добавления поддержки символьных ссылок к бесблокировочному поиску." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:279 +#, no-wrap +msgid "1400002" +msgstr "1400002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:280 +#, no-wrap +msgid "gitref:2cf84258922f306a3f84866685d2f5346f67db58[repository=\"src\",length=12]" +msgstr "gitref:2cf84258922f306a3f84866685d2f5346f67db58[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:281 +#, no-wrap +msgid "January 26, 2021" +msgstr "26 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:283 +#, no-wrap +msgid "14.0-CURRENT after fixing a clang assertion when building the package:devel/onetbb[] port." +msgstr "14.0-CURRENT после исправления утверждения clang при сборке порта package:devel/onetbb[]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:284 +#, no-wrap +msgid "1400003" +msgstr "1400003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:285 +#, no-wrap +msgid "gitref:d386f3a3c32f0396aa7995349dd65d6c59711393[repository=\"src\",length=12]" +msgstr "gitref:d386f3a3c32f0396aa7995349dd65d6c59711393[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:286 +#, no-wrap +msgid "January 28, 2021" +msgstr "28 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:288 +#, no-wrap +msgid "14.0-CURRENT after adding various LinuxKPI bits conflicting with drm-kmod." +msgstr "14.0-CURRENT после добавления различных компонентов LinuxKPI, конфликтующих с drm-kmod." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:289 +#, no-wrap +msgid "1400004" +msgstr "1400004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:290 +#, no-wrap +msgid "gitref:68f6800ce05c386ff045b4416d8595d09c4d8fdd[repository=\"src\",length=12]" +msgstr "gitref:68f6800ce05c386ff045b4416d8595d09c4d8fdd[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:291 +#, no-wrap +msgid "February 8, 2021" +msgstr "8 февраля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:293 +#, no-wrap +msgid "14.0-CURRENT after kernel interfaces for dispatching cryptographic operations were changed." +msgstr "14.0-CURRENT после изменения интерфейсов ядра для диспетчеризации криптографических операций." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:294 +#, no-wrap +msgid "1400005" +msgstr "1400005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:295 +#, no-wrap +msgid "gitref:45eabf5754ac1d291bd677fdf29f59ce4bbc2c8f[repository=\"src\",length=12]" +msgstr "gitref:45eabf5754ac1d291bd677fdf29f59ce4bbc2c8f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:296 +#, no-wrap +msgid "February 17, 2021" +msgstr "17 февраля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:298 +#, no-wrap +msgid "14.0-CURRENT after changing the API of man:ptrace[2] `PT_GETDBREGS`/`PT_SETDBREGS` on arm64." +msgstr "14.0-CURRENT после изменения API man:ptrace[2] `PT_GETDBREGS`/`PT_SETDBREGS` на arm64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:299 +#, no-wrap +msgid "1400006" +msgstr "1400006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:300 +#, no-wrap +msgid "gitref:c96151d33509655efb7fb26768cb56a041c176f1[repository=\"src\",length=12]" +msgstr "gitref:c96151d33509655efb7fb26768cb56a041c176f1[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:301 +#, no-wrap +msgid "March 17, 2021" +msgstr "17 марта 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:303 +#, no-wrap +msgid "14.0-CURRENT after adding man:sndstat[4] enumeration ioctls." +msgstr "14.0-CURRENT после добавления перечисляющих ioctl в man:sndstat[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:304 +#, no-wrap +msgid "1400007" +msgstr "1400007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:305 +#, no-wrap +msgid "gitref:d36d6816151705907393889d661cbfd25c630ca8[repository=\"src\",length=12]" +msgstr "gitref:d36d6816151705907393889d661cbfd25c630ca8[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:306 +#, no-wrap +msgid "April 6, 2021" +msgstr "6 апреля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:308 +#, no-wrap +msgid "14.0-CURRENT after fixing wrong `dlpi_tls_data`." +msgstr "14.0-CURRENT после исправления некорректного `dlpi_tls_data`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:309 +#, no-wrap +msgid "1400008" +msgstr "1400008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:310 +#, no-wrap +msgid "gitref:e152bbecb221a592e7dbcabe3d1170a60f0d0dfe[repository=\"src\",length=12]" +msgstr "gitref:e152bbecb221a592e7dbcabe3d1170a60f0d0dfe[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:311 +#, no-wrap +msgid "April 11, 2021" +msgstr "11 апреля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:313 +#, no-wrap +msgid "14.0-CURRENT after changing the internal KAPI between the `krpc` and NFS modules." +msgstr "14.0-CURRENT после изменения внутреннего KAPI между модулями `krpc` и NFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:314 +#, no-wrap +msgid "1400009" +msgstr "1400009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:315 +#, no-wrap +msgid "gitref:9ca874cf740ee68c5742df8b5f9e20910085c011[repository=\"src\",length=12]" +msgstr "gitref:9ca874cf740ee68c5742df8b5f9e20910085c011[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:316 +#, no-wrap +msgid "April 20, 2021" +msgstr "20 апреля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:318 +#, no-wrap +msgid "14.0-CURRENT after adding TCP LRO support for VLAN and VxLAN." +msgstr "14.0-CURRENT после добавления поддержки TCP LRO для VLAN и VxLAN." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:319 +#, no-wrap +msgid "1400010" +msgstr "1400010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:320 +#, no-wrap +msgid "gitref:a3a02acde1009f03dc78e979e051acee9f9247c2[repository=\"src\",length=12]" +msgstr "gitref:a3a02acde1009f03dc78e979e051acee9f9247c2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:321 +#, no-wrap +msgid "April 21, 2021" +msgstr "21 апреля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:323 +#, no-wrap +msgid "14.0-CURRENT after changing the man:sndstat[4] ioctls `nvlist` schema and definitions." +msgstr "14.0-CURRENT после изменения схемы и определений `nvlist` для ioctl man:sndstat[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:324 +#, no-wrap +msgid "1400015" +msgstr "1400015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:325 +#, no-wrap +msgid "gitref:d72cd275187c6399caf0ca4125292dc7e55fa478[repository=\"src\",length=12]" +msgstr "gitref:d72cd275187c6399caf0ca4125292dc7e55fa478[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:326 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:331 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:336 +#, no-wrap +msgid "May 25, 2021" +msgstr "25 мая 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:328 +#, no-wrap +msgid "14.0-CURRENT after adding more LinuxKPI changes needing adjustments to drm-kmod." +msgstr "14.0-CURRENT после добавления дополнительных изменений LinuxKPI, требующих корректировки drm-kmod." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:329 +#, no-wrap +msgid "1400016" +msgstr "1400016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:330 +#, no-wrap +msgid "gitref:21e3c1fbe2460f144f6d4dfd61c3346b2de59667[repository=\"src\",length=12]" +msgstr "gitref:21e3c1fbe2460f144f6d4dfd61c3346b2de59667[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:333 +#, no-wrap +msgid "14.0-CURRENT after removing support for KTLS software backends." +msgstr "14.0-CURRENT после удаления поддержки программных бэкендов KTLS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:334 +#, no-wrap +msgid "1400017" +msgstr "1400017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:335 +#, no-wrap +msgid "gitref:beb817edfe22cdea91e19a60c42caabd9404da48[repository=\"src\",length=12]" +msgstr "gitref:beb817edfe22cdea91e19a60c42caabd9404da48[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:338 +#, no-wrap +msgid "14.0-CURRENT after adding `crypto_cursor_segment()`." +msgstr "14.0-CURRENT после добавления `crypto_cursor_segment()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:339 +#, no-wrap +msgid "1400018" +msgstr "1400018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:340 +#, no-wrap +msgid "gitref:a4b07a2701f568c2c0f0c0426091f1489244a92d[repository=\"src\",length=12]" +msgstr "gitref:a4b07a2701f568c2c0f0c0426091f1489244a92d[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:341 +#, no-wrap +msgid "May 30, 2021" +msgstr "30 мая 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:343 +#, no-wrap +msgid "14.0-CURRENT after allowing the man:VFS_QUOTACTL[9] implementation to indicate busy state changes." +msgstr "14.0-CURRENT после разрешения реализации man:VFS_QUOTACTL[9] указывать изменения состояния занятости." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:344 +#, no-wrap +msgid "1400019" +msgstr "1400019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:345 +#, no-wrap +msgid "gitref:37d64dcdfa519157aff9711f1f226ad7bd778f46[repository=\"src\",length=12]" +msgstr "gitref:37d64dcdfa519157aff9711f1f226ad7bd778f46[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:346 +#, no-wrap +msgid "June 7, 2021" +msgstr "7 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:348 +#, no-wrap +msgid "14.0-CURRENT after including `pr_err_once()` in the LinuxKPI [.filename]#printk.h#." +msgstr "14.0-CURRENT после включения `pr_err_once()` в LinuxKPI [.filename]#printk.h#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:349 +#, no-wrap +msgid "1400020" +msgstr "1400020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:350 +#, no-wrap +msgid "gitref:8a1a42b2a7a428fb97fda9f19fd0d67a4eec7535[repository=\"src\",length=12]" +msgstr "gitref:8a1a42b2a7a428fb97fda9f19fd0d67a4eec7535[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:351 +#, no-wrap +msgid "June 9, 2021" +msgstr "9 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:353 +#, no-wrap +msgid "14.0-CURRENT after adding macros for `might_lock_nested()` and `lockdep_(re/un/)pin_lock()` to the LinuxKPI." +msgstr "14.0-CURRENT после добавления макросов для `might_lock_nested()` и `lockdep_(re/un/)pin_lock()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:354 +#, no-wrap +msgid "1400021" +msgstr "1400021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:355 +#, no-wrap +msgid "gitref:b47f461c8e67253fdb394968428b760e880baa08[repository=\"src\",length=12]" +msgstr "gitref:b47f461c8e67253fdb394968428b760e880baa08[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:356 +#, no-wrap +msgid "June 10, 2021" +msgstr "10 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:358 +#, no-wrap +msgid "14.0-CURRENT after adding a `list_for_each_entry_lockless()` macro to the LinuxKPI." +msgstr "14.0-CURRENT после добавления макроса `list_for_each_entry_lockless()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:359 +#, no-wrap +msgid "1400022" +msgstr "1400022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:360 +#, no-wrap +msgid "gitref:40cc9a3a6b81a65a03712dfd93bbed48552a97ad[repository=\"src\",length=12]" +msgstr "gitref:40cc9a3a6b81a65a03712dfd93bbed48552a97ad[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:361 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1574 +#, no-wrap +msgid "June 11, 2021" +msgstr "11 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:363 +#, no-wrap +msgid "14.0-CURRENT after commit gitref:e1a907a25cfa422c0d1acaf9f91352ada04f4bca[repository=\"src\",length=12] changed the internal KAPI between the `krpc` and nfsserver modules." +msgstr "14.0-CURRENT после коммита gitref:e1a907a25cfa422c0d1acaf9f91352ada04f4bca[repository=\"src\",length=12] изменил внутренний KAPI между модулями `krpc` и nfsserver." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:364 +#, no-wrap +msgid "1400023" +msgstr "1400023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:365 +#, no-wrap +msgid "gitref:d409305fa3838fb39b38c26fc085fb729b8766d5[repository=\"src\",length=12]" +msgstr "gitref:d409305fa3838fb39b38c26fc085fb729b8766d5[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:366 +#, no-wrap +msgid "June 13, 2021" +msgstr "13 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:368 +#, no-wrap +msgid "14.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release." +msgstr "14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-12.0.0-0-gd28af7c654d8, также известной как релиз 12.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:369 +#, no-wrap +msgid "1400024" +msgstr "1400024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:370 +#, no-wrap +msgid "gitref:41dfd8bd6466fd39957dee2614d88c81cdf420a7[repository=\"src\",length=12]" +msgstr "gitref:41dfd8bd6466fd39957dee2614d88c81cdf420a7[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:371 +#, no-wrap +msgid "June 18, 2021" +msgstr "18 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:373 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:378 +#, no-wrap +msgid "14.0-CURRENT after various additions to LinuxKPI." +msgstr "14.0-CURRENT после различных добавлений в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:374 +#, no-wrap +msgid "1400025" +msgstr "1400025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:375 +#, no-wrap +msgid "gitref:5fa1eb1cd927219070b5753b64114a9240d76bf8[repository=\"src\",length=12]" +msgstr "gitref:5fa1eb1cd927219070b5753b64114a9240d76bf8[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:376 +#, no-wrap +msgid "July 5, 2021" +msgstr "5 июля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:379 +#, no-wrap +msgid "1400026" +msgstr "1400026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:380 +#, no-wrap +msgid "gitref:fad3f322efb53d4924fdda34f9f23f881659c269[repository=\"src\",length=12]" +msgstr "gitref:fad3f322efb53d4924fdda34f9f23f881659c269[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:381 +#, no-wrap +msgid "July 16, 2021" +msgstr "16 июля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:383 +#, no-wrap +msgid "14.0-CURRENT after changing the internal KAPI between the nfscommon and nfsd modules." +msgstr "14.0-CURRENT после изменения внутреннего KAPI между модулями nfscommon и nfsd." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:384 +#, no-wrap +msgid "1400027" +msgstr "1400027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:385 +#, no-wrap +msgid "gitref:cc55ee8009a550810d38777fd6ace9abf3a2f6b4[repository=\"src\",length=12]" +msgstr "gitref:cc55ee8009a550810d38777fd6ace9abf3a2f6b4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:386 +#, no-wrap +msgid "July 28, 2021" +msgstr "28 июля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:388 +#, no-wrap +msgid "14.0-CURRENT after adding out-of-line LSE atomics helpers to [.filename]#libcompiler_rt.a# on aarch64." +msgstr "14.0-CURRENT после добавления вспомогательных функций LSE атомарных операций вне строки в [.filename]#libcompiler_rt.a# для архитектуры aarch64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:389 +#, no-wrap +msgid "1400028" +msgstr "1400028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:390 +#, no-wrap +msgid "gitref:792b602a337ddc5efaa5e5326d9433fe3da7f303[repository=\"src\",length=12]" +msgstr "gitref:792b602a337ddc5efaa5e5326d9433fe3da7f303[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:391 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1599 +#, no-wrap +msgid "July 31, 2021" +msgstr "31 июля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:393 +#, no-wrap +msgid "14.0-CURRENT after making FPU sections thread-safe in the LinuxKPI." +msgstr "14.0-CURRENT после обеспечения потокобезопасности разделов FPU в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:394 +#, no-wrap +msgid "1400029" +msgstr "1400029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:395 +#, no-wrap +msgid "gitref:245ec7651e4221043d1032fb3f82f335dc65fc7f[repository=\"src\",length=12]" +msgstr "gitref:245ec7651e4221043d1032fb3f82f335dc65fc7f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:396 +#, no-wrap +msgid "August 5, 2021" +msgstr "5 августа 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:398 +#, no-wrap +msgid "14.0-CURRENT after adding man:fspacectl[2], man:vn_deallocate[9] and man:VOP_DEALLOCATE[9]." +msgstr "14.0-CURRENT после добавления man:fspacectl[2], man:vn_deallocate[9] и man:VOP_DEALLOCATE[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:399 +#, no-wrap +msgid "1400030" +msgstr "1400030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:400 +#, no-wrap +msgid "gitref:95941b963606f6e03282cd6f866f3166dcedfa5b[repository=\"src\",length=12]" +msgstr "gitref:95941b963606f6e03282cd6f866f3166dcedfa5b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:401 +#, no-wrap +msgid "August 12, 2021" +msgstr "12 августа 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:403 +#, no-wrap +msgid "14.0-CURRENT after man:VOP_DEALLOCATE[9] parameter changes and addition of man:fspacectl[2] support to POSIX shared memory." +msgstr "14.0-CURRENT после изменений параметров man:VOP_DEALLOCATE[9] и добавления поддержки man:fspacectl[2] для POSIX разделяемой памяти." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:404 +#, no-wrap +msgid "1400031" +msgstr "1400031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:405 +#, no-wrap +msgid "gitref:1a4c5061fc5ba8f2eee41456a6873547915f268a[repository=\"src\",length=12]" +msgstr "gitref:1a4c5061fc5ba8f2eee41456a6873547915f268a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:406 +#, no-wrap +msgid "August 24, 2021" +msgstr "24 августа 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:408 +#, no-wrap +msgid "14.0-CURRENT after changing man:fspacectl[2], man:vn_deallocate[9] and man:VOP_DEALLOCATE[9] to update rmsr.r_offset to a meaningful value." +msgstr "14.0-CURRENT после изменения man:fspacectl[2], man:vn_deallocate[9] и man:VOP_DEALLOCATE[9] для обновления rmsr.r_offset до значимого значения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:409 +#, no-wrap +msgid "1400032" +msgstr "1400032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:410 +#, no-wrap +msgid "gitref:76321d2d432ed270d93b282e54e59b708c0cf3b4[repository=\"src\",length=12]" +msgstr "gitref:76321d2d432ed270d93b282e54e59b708c0cf3b4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:411 +#, no-wrap +msgid "August 25, 2021" +msgstr "25 августа 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:413 +#, no-wrap +msgid "14.0-CURRENT after changing man:fspacectl[2], man:vn_deallocate[9] and man:VOP_DEALLOCATE[9] to make calculating the number of bytes zeroed easier." +msgstr "14.0-CURRENT после изменения man:fspacectl[2], man:vn_deallocate[9] и man:VOP_DEALLOCATE[9] для упрощения подсчёта количества обнулённых байт." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:414 +#, no-wrap +msgid "1400033" +msgstr "1400033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:415 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:420 +#, no-wrap +msgid "gitref:c751d067c166db71ce8bf3a323c62ac3428bd32a[repository=\"src\",length=12]" +msgstr "gitref:c751d067c166db71ce8bf3a323c62ac3428bd32a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:416 +#, no-wrap +msgid "September 7, 2021" +msgstr "7 сентября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:418 +#, no-wrap +msgid "14.0-CURRENT after moving the socket buffer locks into the containing socket and renaming sb(un)lock to SOCK_IO_RECV_LOCK, SOCK_IO_RECV_UNLOCK, SOCK_IO_SEND_LOCK, and SOCK_IO_SEND_UNLOCK." +msgstr "14.0-CURRENT после перемещения блокировок буфера сокета в содержащий сокет и переименования sb(un)lock в SOCK_IO_RECV_LOCK, SOCK_IO_RECV_UNLOCK, SOCK_IO_SEND_LOCK и SOCK_IO_SEND_UNLOCK." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:419 +#, no-wrap +msgid "1400034" +msgstr "1400034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:421 +#, no-wrap +msgid "September 29, 2021" +msgstr "29 сентября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:423 +#, no-wrap +msgid "14.0-CURRENT after LinuxKPI changes." +msgstr "14.0-CURRENT после изменений в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:424 +#, no-wrap +msgid "1400035" +msgstr "1400035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:425 +#, no-wrap +msgid "gitref:16f1ee11e6574d7f8d8a9dc6ebc9be3036ff9fd0[repository=\"src\",length=12]" +msgstr "gitref:16f1ee11e6574d7f8d8a9dc6ebc9be3036ff9fd0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:426 +#, no-wrap +msgid "October 4, 2021" +msgstr "4 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:428 +#, no-wrap +msgid "14.0-CURRENT after splitting libtinfow from libncurses." +msgstr "14.0-CURRENT после разделения libtinfow и libncurses." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:429 +#, no-wrap +msgid "1400036" +msgstr "1400036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:430 +#, no-wrap +msgid "gitref:ac847dbf73685a5df9f70bbcdefa9fdeb559071d[repository=\"src\",length=12]" +msgstr "gitref:ac847dbf73685a5df9f70bbcdefa9fdeb559071d[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:431 +#, no-wrap +msgid "October 6, 2021" +msgstr "6 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:433 +#, no-wrap +msgid "14.0-CURRENT after extending the AES-CCM and Chacha20-Poly1305 ciphers in OCF to support multiple nonce lengths." +msgstr "14.0-CURRENT после расширения шифров AES-CCM и Chacha20-Poly1305 в OCF для поддержки нескольких длин одноразовых номеров." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:434 +#, no-wrap +msgid "1400037" +msgstr "1400037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:435 +#, no-wrap +msgid "gitref:2b68eb8e1dbbdaf6a0df1c83b26f5403ca52d4c3[repository=\"src\",length=12]" +msgstr "gitref:2b68eb8e1dbbdaf6a0df1c83b26f5403ca52d4c3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:436 +#, no-wrap +msgid "October 11, 2021" +msgstr "11 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:438 +#, no-wrap +msgid "14.0-CURRENT after removal of thread argument from man:VOP_STAT[9] and `fo_stat`." +msgstr "14.0-CURRENT после удаления аргумента thread из man:VOP_STAT[9] и `fo_stat`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:439 +#, no-wrap +msgid "1400038" +msgstr "1400038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:440 +#, no-wrap +msgid "gitref:0d6516b453469ce1d92ec903c4c4df9ee08be0f9[repository=\"src\",length=12]" +msgstr "gitref:0d6516b453469ce1d92ec903c4c4df9ee08be0f9[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:441 +#, no-wrap +msgid "October 17, 2021" +msgstr "17 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:443 +#, no-wrap +msgid "14.0-CURRENT after LinuxKPI gained support of lazy BAR allocation." +msgstr "14.0-CURRENT после того, как LinuxKPI получил поддержку отложенного выделения BAR." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:444 +#, no-wrap +msgid "1400039" +msgstr "1400039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:445 +#, no-wrap +msgid "gitref:bd49c454ca62170506a98959c1acab7ad50c3276[repository=\"src\",length=12]" +msgstr "gitref:bd49c454ca62170506a98959c1acab7ad50c3276[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:446 +#, no-wrap +msgid "October 19, 2021" +msgstr "19 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:448 +#, no-wrap +msgid "14.0-CURRENT after page allocator changes." +msgstr "14.0-CURRENT после изменений в аллокаторе страниц." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:449 +#, no-wrap +msgid "1400040" +msgstr "1400040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:450 +#, no-wrap +msgid "gitref:f38bef2ce417d6270f32b4ed17cec84bfd95d548[repository=\"src\",length=12]" +msgstr "gitref:f38bef2ce417d6270f32b4ed17cec84bfd95d548[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:451 +#, no-wrap +msgid "October 30, 2021" +msgstr "30 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:453 +#, no-wrap +msgid "14.0-CURRENT after libdialog shared library version number bump." +msgstr "14.0-CURRENT после увеличения номера версии разделяемой библиотеки libdialog." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:454 +#, no-wrap +msgid "1400041" +msgstr "1400041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:455 +#, no-wrap +msgid "gitref:0c276dee030b241e12e1ceb1b2ab619004f08ce1[repository=\"src\",length=12]" +msgstr "gitref:0c276dee030b241e12e1ceb1b2ab619004f08ce1[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:456 +#, no-wrap +msgid "November 6, 2021" +msgstr "6 ноября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:458 +#, no-wrap +msgid "14.0-CURRENT after changing the arguments for man:VOP_ALLOCATE[9]." +msgstr "14.0-CURRENT после изменения аргументов для man:VOP_ALLOCATE[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:459 +#, no-wrap +msgid "1400042" +msgstr "1400042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:460 +#, no-wrap +msgid "gitref:20aa359773befc8182f6b5dcb5aad7390cab6c26[repository=\"src\",length=12]" +msgstr "gitref:20aa359773befc8182f6b5dcb5aad7390cab6c26[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:461 +#, no-wrap +msgid "November 13, 2021" +msgstr "13 ноября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:463 +#, no-wrap +msgid "14.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-13.0.0-0-gd7b669b3a303, a.k.a. 13.0.0 release." +msgstr "14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-13.0.0-0-gd7b669b3a303, также известного как релиз 13.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:464 +#, no-wrap +msgid "1400043" +msgstr "1400043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:465 +#, no-wrap +msgid "gitref:7e1d3eefd410ca0fbae5a217422821244c3eeee4[repository=\"src\",length=12]" +msgstr "gitref:7e1d3eefd410ca0fbae5a217422821244c3eeee4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:466 +#, no-wrap +msgid "November 25, 2021" +msgstr "25 ноября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:468 +#, no-wrap +msgid "14.0-CURRENT after removing the unused thread argument from man:NDINIT[9]*." +msgstr "14.0-CURRENT после удаления неиспользуемого аргумента потока из man:NDINIT[9]*." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:469 +#, no-wrap +msgid "1400044" +msgstr "1400044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:470 +#, no-wrap +msgid "gitref:ec434c85b46dd715da1940e2a8911bf476b0e477[repository=\"src\",length=12]" +msgstr "gitref:ec434c85b46dd715da1940e2a8911bf476b0e477[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:471 +#, no-wrap +msgid "December 9, 2021" +msgstr "9 декабря 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:473 +#, no-wrap +msgid "14.0-CURRENT after changing in-kernel software crypto ciphers transforms to support AEAD ciphers and changing the Blake-2S/B auth transforms to support Init before Setkey like other auth transforms." +msgstr "14.0-CURRENT после изменения встроенных программных криптографических преобразований для поддержки AEAD-шифров и изменения аутентификационных преобразований Blake-2S/B для поддержки Init перед Setkey, как в других аутентификационных преобразованиях." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:474 +#, no-wrap +msgid "1400045" +msgstr "1400045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:475 +#, no-wrap +msgid "gitref:b214fcceacad6b842545150664bd2695c1c2b34f[repository=\"src\",length=12]" +msgstr "gitref:b214fcceacad6b842545150664bd2695c1c2b34f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:476 +#, no-wrap +msgid "December 15, 2021" +msgstr "15 декабря 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:478 +#, no-wrap +msgid "14.0-CURRENT after changing man:VOP_READDIR[9]'s cookies argument to a `**uint64_t`." +msgstr "14.0-CURRENT после изменения аргумента cookies в man:VOP_READDIR[9] на `**uint64_t`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:479 +#, no-wrap +msgid "1400046" +msgstr "1400046" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:480 +#, no-wrap +msgid "gitref:e2650af157bc7489deaf2c9054995f0f88a6e5da[repository=\"src\",length=12]" +msgstr "gitref:e2650af157bc7489deaf2c9054995f0f88a6e5da[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:481 +#, no-wrap +msgid "December 30, 2021" +msgstr "30 декабря 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:483 +#, no-wrap +msgid "14.0-CURRENT after making the CPU_SET macros compatible with glibc." +msgstr "14.0-CURRENT после приведения макросов CPU_SET в соответствие с glibc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:484 +#, no-wrap +msgid "1400047" +msgstr "1400047" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:485 +#, no-wrap +msgid "gitref:ed6417cd8d0bb5a2c175fce9d8e4a495fae9e9f4[repository=\"src\",length=12]" +msgstr "gitref:ed6417cd8d0bb5a2c175fce9d8e4a495fae9e9f4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:486 +#, no-wrap +msgid "January 17, 2022" +msgstr "January 17, 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:488 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:568 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:578 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:583 +#, no-wrap +msgid "14.0-CURRENT after multiple LinuxKPI changes required by drm-kmod." +msgstr "14.0-CURRENT после множества изменений LinuxKPI, необходимых для drm-kmod." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:489 +#, no-wrap +msgid "1400048" +msgstr "1400048" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:490 +#, no-wrap +msgid "gitref:dd2f7a4b45eb1285e710cfce60cb77f7c11f8075[repository=\"src\",length=12]" +msgstr "gitref:dd2f7a4b45eb1285e710cfce60cb77f7c11f8075[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:491 +#, no-wrap +msgid "January 18, 2022" +msgstr "18 января 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:493 +#, no-wrap +msgid "14.0-CURRENT after adding ." +msgstr "14.0-CURRENT после добавления ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:494 +#, no-wrap +msgid "1400049" +msgstr "1400049" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:495 +#, no-wrap +msgid "gitref:2c4b65cc3d227f31864e183c15f6c42e2c596cd9[repository=\"src\",length=12]" +msgstr "gitref:2c4b65cc3d227f31864e183c15f6c42e2c596cd9[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:496 +#, no-wrap +msgid "January 24, 2022" +msgstr "January 24, 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:498 +#, no-wrap +msgid "14.0-CURRENT after adding ." +msgstr "14.0-CURRENT after adding ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:499 +#, no-wrap +msgid "1400050" +msgstr "1400050" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:500 +#, no-wrap +msgid "gitref:213e91399b7998554d787bb290109ebe602aa279[repository=\"src\",length=12]" +msgstr "gitref:213e91399b7998554d787bb290109ebe602aa279[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:501 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:506 +#, no-wrap +msgid "January 25, 2022" +msgstr "25 января 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:503 +#, no-wrap +msgid "14.0-CURRENT after iflib adds the feature that a driver can set its own TX queue selection function as `ift_txq_select` in struct `if_txrx`." +msgstr "14.0-CURRENT после iflib добавляет возможность, при которой драйвер может установить свою собственную функцию выбора TX-очереди как `ift_txq_select` в структуре `if_txrx`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:504 +#, no-wrap +msgid "1400051" +msgstr "1400051" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:505 +#, no-wrap +msgid "gitref:59d465e200bb7058dfdb183c061730c10dd5bc03[repository=\"src\",length=12]" +msgstr "gitref:59d465e200bb7058dfdb183c061730c10dd5bc03[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:508 +#, no-wrap +msgid "14.0-CURRENT after adding i2c support for LinuxKPI." +msgstr "14.0-CURRENT после добавления поддержки i2c для LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:509 +#, no-wrap +msgid "1400052" +msgstr "1400052" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:510 +#, no-wrap +msgid "gitref:05f0b24bfb3416606c8ea02bc1bdb9bcee7aee0c[repository=\"src\",length=12]" +msgstr "gitref:05f0b24bfb3416606c8ea02bc1bdb9bcee7aee0c[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:511 +#, no-wrap +msgid "February 14, 2022" +msgstr "February 14, 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:513 +#, no-wrap +msgid "14.0-CURRENT after adding GUID_INIT and pm_qos.h support for LinuxKPI." +msgstr "14.0-CURRENT после добавления поддержки GUID_INIT и pm_qos.h для LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:514 +#, no-wrap +msgid "1400053" +msgstr "1400053" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:515 +#, no-wrap +msgid "gitref:ba87e9bf74202b08b8e3b0a297b9b88f6869fbfb[repository=\"src\",length=12]" +msgstr "gitref:ba87e9bf74202b08b8e3b0a297b9b88f6869fbfb[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:516 +#, no-wrap +msgid "February 17, 2022" +msgstr "February 17, 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:518 +#, no-wrap +msgid "14.0-CURRENT after adding mmap_lock.h to LinuxKPI." +msgstr "14.0-CURRENT после добавления mmap_lock.h в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:519 +#, no-wrap +msgid "1400054" +msgstr "1400054" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:520 +#, no-wrap +msgid "gitref:50bb3a33d879536e86e8a23365f070ef00b5cb32[repository=\"src\",length=12]" +msgstr "gitref:50bb3a33d879536e86e8a23365f070ef00b5cb32[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:521 +#, no-wrap +msgid "March 28, 2022" +msgstr "28 марта 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:523 +#, no-wrap +msgid "14.0-CURRENT after changing `irq_work_queue` to return a bool in LinuxKPI to match 5.10 API." +msgstr "14.0-CURRENT после изменения `irq_work_queue` для возврата типа bool в LinuxKPI в соответствии с API 5.10." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:524 +#, no-wrap +msgid "1400055" +msgstr "1400055" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:525 +#, no-wrap +msgid "gitref:d69af4758be912625ec08656ba64eb90a98c9a7f[repository=\"src\",length=12]" +msgstr "gitref:d69af4758be912625ec08656ba64eb90a98c9a7f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:526 +#, no-wrap +msgid "March 29, 2022" +msgstr "29 марта 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:528 +#, no-wrap +msgid "14.0-CURRENT after adding `for_each_sgtable_dma_sg` and `for_each_sgtable_dma_page` to LinuxKPI" +msgstr "14.0-CURRENT после добавления `for_each_sgtable_dma_sg` и `for_each_sgtable_dma_page` в LinuxKPI" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:529 +#, no-wrap +msgid "1400056" +msgstr "1400056" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:530 +#, no-wrap +msgid "gitref:ab8ac4c28574a42a2891b2e2341f802949c1fb57[repository=\"src\",length=12]" +msgstr "gitref:ab8ac4c28574a42a2891b2e2341f802949c1fb57[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:531 +#, no-wrap +msgid "March 31, 2022" +msgstr "31 марта 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:533 +#, no-wrap +msgid "14.0-CURRENT after zlib upgrade to 1.2.12" +msgstr "14.0-CURRENT после обновления zlib до версии 1.2.12" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:534 +#, no-wrap +msgid "1400057" +msgstr "1400057" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:535 +#, no-wrap +msgid "gitref:e68b35e40881a1bd858e1b4b5003123a484fd7cd[repository=\"src\",length=12]" +msgstr "gitref:e68b35e40881a1bd858e1b4b5003123a484fd7cd[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:536 +#, no-wrap +msgid "April 22, 2022" +msgstr "22 апреля 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:538 +#, no-wrap +msgid "14.0-CURRENT after changing udp_tun_func_t() prototype." +msgstr "14.0-CURRENT после изменения прототипа udp_tun_func_t()." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:539 +#, no-wrap +msgid "1400058" +msgstr "1400058" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:540 +#, no-wrap +msgid "gitref:2e32d4e41d205d6f14834f87306a77ff77b9c0bd[repository=\"src\",length=12]" +msgstr "gitref:2e32d4e41d205d6f14834f87306a77ff77b9c0bd[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:541 +#, no-wrap +msgid "May 7, 2022" +msgstr "7 мая 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:543 +#, no-wrap +msgid "14.0-CURRENT after newbus changes to remove devclass arguments." +msgstr "14.0-CURRENT после изменений в newbus для удаления аргументов devclass." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:544 +#, no-wrap +msgid "1400059" +msgstr "1400059" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:545 +#, no-wrap +msgid "gitref:3a9a9c0ca44ec535dcf73fe8462bee458e54814b[repository=\"src\",length=12]" +msgstr "gitref:3a9a9c0ca44ec535dcf73fe8462bee458e54814b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:546 +#, no-wrap +msgid "May 14, 2022" +msgstr "14 мая 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:548 +#, no-wrap +msgid "14.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14.0.3-0-g1f9140064dfb, a.k.a. 14.0.3 release." +msgstr "14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-14.0.3-0-g1f9140064dfb, также известной как релиз 14.0.3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:549 +#, no-wrap +msgid "1400060" +msgstr "1400060" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:550 +#, no-wrap +msgid "gitref:85d7875d42913c2cb10a007a1be05b210dc6aab2[repository=\"src\",length=12]" +msgstr "gitref:85d7875d42913c2cb10a007a1be05b210dc6aab2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:551 +#, no-wrap +msgid "June 6, 2022" +msgstr "6 июня 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:553 +#, no-wrap +msgid "14.0-CURRENT after LinuxKPI dmi_matches() fixes." +msgstr "14.0-CURRENT после исправлений LinuxKPI dmi_matches()." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:554 +#, no-wrap +msgid "1400061" +msgstr "1400061" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:555 +#, no-wrap +msgid "gitref:c4c5981c14d5bd69e9df9ae691069ec4c2e92174[repository=\"src\",length=12]" +msgstr "gitref:c4c5981c14d5bd69e9df9ae691069ec4c2e92174[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:556 +#, no-wrap +msgid "June 8, 2022" +msgstr "8 июня 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:558 +#, no-wrap +msgid "14.0-CURRENT after man:mbuf[9] structure changes." +msgstr "14.0-CURRENT после изменений структуры man:mbuf[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:559 +#, no-wrap +msgid "1400062" +msgstr "1400062" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:560 +#, no-wrap +msgid "gitref:8c309d48aabf1cb469334c7716033f177a2715c0[repository=\"src\",length=12]" +msgstr "gitref:8c309d48aabf1cb469334c7716033f177a2715c0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:561 +#, no-wrap +msgid "June 18, 2022" +msgstr "18 июня 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:563 +#, no-wrap +msgid "14.0-CURRENT after struct `kinfo_file` changes." +msgstr "14.0-CURRENT после изменений структуры `kinfo_file`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:564 +#, no-wrap +msgid "1400063" +msgstr "1400063" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:565 +#, no-wrap +msgid "gitref:8cff8e6e13a6d3ccff40fc0d8d97f5aef22a8f4d[repository=\"src\",length=12]" +msgstr "gitref:8cff8e6e13a6d3ccff40fc0d8d97f5aef22a8f4d[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:566 +#, no-wrap +msgid "June 29, 2022" +msgstr "29 июня 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:569 +#, no-wrap +msgid "1400064" +msgstr "1400064" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:570 +#, no-wrap +msgid "gitref:ddd9004e7a5dbf02c34ef0effcef90f7d5df357d[repository=\"src\",length=12]" +msgstr "gitref:ddd9004e7a5dbf02c34ef0effcef90f7d5df357d[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:571 +#, no-wrap +msgid "July 18, 2022" +msgstr "18 июля 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:573 +#, no-wrap +msgid "14.0-CURRENT after the removal of OBJT_DEFAULT." +msgstr "14.0-CURRENT после удаления OBJT_DEFAULT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:574 +#, no-wrap +msgid "1400065" +msgstr "1400065" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:575 +#, no-wrap +msgid "gitref:b273f93657cf0e6f2c6ee4d0f40a43656233c6d0[repository=\"src\",length=12]" +msgstr "gitref:b273f93657cf0e6f2c6ee4d0f40a43656233c6d0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:576 +#, no-wrap +msgid "August 8, 2022" +msgstr "8 августа 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:579 +#, no-wrap +msgid "1400066" +msgstr "1400066" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:580 +#, no-wrap +msgid "gitref:ff7812ee7d444b738a454064f9639c3feb5743e8[repository=\"src\",length=12]" +msgstr "gitref:ff7812ee7d444b738a454064f9639c3feb5743e8[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:581 +#, no-wrap +msgid "August 18, 2022" +msgstr "18 августа 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:584 +#, no-wrap +msgid "1400069" +msgstr "1400069" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:585 +#, no-wrap +msgid "gitref:f95c0bc89ea4fcde04b0990d57e842ef387ea896[repository=\"src\",length=12]" +msgstr "gitref:f95c0bc89ea4fcde04b0990d57e842ef387ea896[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:586 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:591 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:601 +#, no-wrap +msgid "September 22, 2022" +msgstr "22 сентября 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:588 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:633 +#, no-wrap +msgid "14.0-CURRENT after multiple LinuxKPI changes." +msgstr "14.0-CURRENT после нескольких изменений в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:589 +#, no-wrap +msgid "1400070" +msgstr "1400070" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:590 +#, no-wrap +msgid "gitref:6bddde307e21eba297ac3f3e534b4cf3be81dfe2[repository=\"src\",length=12]" +msgstr "gitref:6bddde307e21eba297ac3f3e534b4cf3be81dfe2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:593 +#, no-wrap +msgid "14.0-CURRENT after KPI changes to pmap_unmapdev() and kmem_*()." +msgstr "14.0-CURRENT после изменений KPI в pmap_unmapdev() и kmem_*()." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:594 +#, no-wrap +msgid "1400071" +msgstr "1400071" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:595 +#, no-wrap +msgid "gitref:d3f96f661050e9bd21fe29931992a8b9e67ff189[repository=\"src\",length=12]" +msgstr "gitref:d3f96f661050e9bd21fe29931992a8b9e67ff189[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:596 +#, no-wrap +msgid "September 26, 2022" +msgstr "26 сентября 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:598 +#, no-wrap +msgid "14.0-CURRENT after KPI changes that sysctl OIDs lists converted to RB trees." +msgstr "14.0-CURRENT после изменений KPI, когда списки OID sysctl были преобразованы в RB-деревья." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:599 +#, no-wrap +msgid "1400072" +msgstr "1400072" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:600 +#, no-wrap +msgid "gitref:8a96874eeeee5195b0b0952b77227bef6a26d1a6[repository=\"src\",length=12]" +msgstr "gitref:8a96874eeeee5195b0b0952b77227bef6a26d1a6[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:603 +#, no-wrap +msgid "14.0-CURRENT after `qsort_r` prototype modified to match POSIX." +msgstr "14.0-CURRENT после изменения прототипа `qsort_r` для соответствия POSIX." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:604 +#, no-wrap +msgid "1400073" +msgstr "1400073" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:605 +#, no-wrap +msgid "gitref:9c950139051298831ce19d01ea5fb33ec6ea7f89[repository=\"src\",length=12]" +msgstr "gitref:9c950139051298831ce19d01ea5fb33ec6ea7f89[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:606 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1704 +#, no-wrap +msgid "October 17, 2022" +msgstr "17 октября 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:608 +#, no-wrap +msgid "14.0-CURRENT after introduction of v2 of TX Queue Select Functionality." +msgstr "14.0-CURRENT after introduction of v2 of TX Queue Select Functionality." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:609 +#, no-wrap +msgid "1400074" +msgstr "1400074" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:610 +#, no-wrap +msgid "gitref:e28932c643e891294a49f386ba65322cf8410225[repository=\"src\",length=12]" +msgstr "gitref:e28932c643e891294a49f386ba65322cf8410225[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:611 +#, no-wrap +msgid "December 9, 2022" +msgstr "9 декабря 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:613 +#, no-wrap +msgid "14.0-CURRENT after adding spare fops slots in fileops." +msgstr "14.0-CURRENT после добавления запасных слотов fops в fileops." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:614 +#, no-wrap +msgid "1400078" +msgstr "1400078" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:615 +#, no-wrap +msgid "gitref:4b56afaf7bf4fa37bae5b26fd93ee1ff5969c1bb[repository=\"src\",length=12]" +msgstr "gitref:4b56afaf7bf4fa37bae5b26fd93ee1ff5969c1bb[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:616 +#, no-wrap +msgid "January 13, 2023" +msgstr "13 января 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:618 +#, no-wrap +msgid "14.0-CURRENT after changing LinuxKPI pci.h." +msgstr "14.0-CURRENT после изменения LinuxKPI pci.h." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:619 +#, no-wrap +msgid "1400079" +msgstr "1400079" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:620 +#, no-wrap +msgid "gitref:3264f6b88fce7c5437d205685863617d8f6a22dd[repository=\"src\",length=12]" +msgstr "gitref:3264f6b88fce7c5437d205685863617d8f6a22dd[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:621 +#, no-wrap +msgid "February 8, 2023" +msgstr "8 февраля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:623 +#, no-wrap +msgid "14.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15.0.7-0-g8dfdcc7b7bf6, a.k.a. 15.0.7 release." +msgstr "14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-15.0.7-0-g8dfdcc7b7bf6, также известного как релиз 15.0.7." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:624 +#, no-wrap +msgid "1400084" +msgstr "1400084" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:625 +#, no-wrap +msgid "gitref:ea3061526e9ce5d3b65932c1d3e4437abd556d65[repository=\"src\",length=12]" +msgstr "gitref:ea3061526e9ce5d3b65932c1d3e4437abd556d65[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:626 +#, no-wrap +msgid "March 23, 2023" +msgstr "23 марта 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:628 +#, no-wrap +msgid "14.0-CURRENT after changing the arm64 struct reg, struct gpreg, struct trapframe, and struct pcb." +msgstr "14.0-CURRENT после изменения структур reg, gpreg, trapframe и pcb для архитектуры arm64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:629 +#, no-wrap +msgid "1400085" +msgstr "1400085" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:630 +#, no-wrap +msgid "gitref:1cebc9298cf2272da46c3c574d06a80ce59854aa[repository=\"src\",length=12]" +msgstr "gitref:1cebc9298cf2272da46c3c574d06a80ce59854aa[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:631 +#, no-wrap +msgid "March 28, 2023" +msgstr "28 марта 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:634 +#, no-wrap +msgid "1400086" +msgstr "1400086" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:635 +#, no-wrap +msgid "gitref:c17eb99a66e7d1e8a64458a969eeb7649f827493[repository=\"src\",length=12]" +msgstr "gitref:c17eb99a66e7d1e8a64458a969eeb7649f827493[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:636 +#, no-wrap +msgid "April 8, 2023" +msgstr "8 апреля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:638 +#, no-wrap +msgid "14.0-CURRENT after vn_lock_pair() argument changes." +msgstr "14.0-CURRENT после изменений аргументов vn_lock_pair()." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:639 +#, no-wrap +msgid "1400087" +msgstr "1400087" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:640 +#, no-wrap +msgid "gitref:af22da75a035e25cb47cd3f2eabe5a84d8a5cb34[repository=\"src\",length=12]" +msgstr "gitref:af22da75a035e25cb47cd3f2eabe5a84d8a5cb34[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:641 +#, no-wrap +msgid "April 22, 2023" +msgstr "22 апреля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:643 +#, no-wrap +msgid "14.0-CURRENT after LinuxKPI updates." +msgstr "14.0-CURRENT после обновлений LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:644 +#, no-wrap +msgid "1400088" +msgstr "1400088" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:645 +#, no-wrap +msgid "gitref:97583aa2567589cb83540d2d9de1980b76db9a99[repository=\"src\",length=12]" +msgstr "gitref:97583aa2567589cb83540d2d9de1980b76db9a99[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:646 +#, no-wrap +msgid "April 24, 2023" +msgstr "24 апреля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:648 +#, no-wrap +msgid "14.0-CURRENT after migrating the LinuxKPI to IfAPI." +msgstr "14.0-CURRENT после миграции LinuxKPI на IfAPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:649 +#, no-wrap +msgid "1400089" +msgstr "1400089" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:650 +#, no-wrap +msgid "gitref:9fb6718d1b180c341373b25c03dbfc221ddee311[repository=\"src\",length=12]" +msgstr "gitref:9fb6718d1b180c341373b25c03dbfc221ddee311[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:651 +#, no-wrap +msgid "April 25, 2023" +msgstr "25 апреля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:653 +#, no-wrap +msgid "14.0-CURRENT after dynamically allocating the stoppcbs array in smp." +msgstr "14.0-CURRENT после динамического выделения массива stoppcbs в smp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:654 +#, no-wrap +msgid "1400090" +msgstr "1400090" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:655 +#, no-wrap +msgid "gitref:653738e895ba022be1179a95a85089e7bc66dbbe[repository=\"src\",length=12]" +msgstr "gitref:653738e895ba022be1179a95a85089e7bc66dbbe[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:656 +#, no-wrap +msgid "June 7, 2023" +msgstr "7 июня 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:658 +#, no-wrap +msgid "14.0-CURRENT after ptrace started clearing TDB_BORN during PT_DETACH." +msgstr "14.0-CURRENT после того, как ptrace начал очищать TDB_BORN во время PT_DETACH." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:659 +#, no-wrap +msgid "1400091" +msgstr "1400091" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:660 +#, no-wrap +msgid "gitref:a681cba16d8967651a2146385ce44a2bfeb1c4c3[repository=\"src\",length=12]" +msgstr "gitref:a681cba16d8967651a2146385ce44a2bfeb1c4c3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:661 +#, no-wrap +msgid "June 22, 2023" +msgstr "22 июня 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:663 +#, no-wrap +msgid "14.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-16.0.6-0-g7cbf1a259152, a.k.a. 16.0.6 release." +msgstr "14.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-16.0.6-0-g7cbf1a259152, также известного как релиз 16.0.6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:664 +#, no-wrap +msgid "1400092" +msgstr "1400092" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:665 +#, no-wrap +msgid "gitref:9ead001d5b42ef9cba04757c9e7ee74c06037139[repository=\"src\",length=12]" +msgstr "gitref:9ead001d5b42ef9cba04757c9e7ee74c06037139[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:666 +#, no-wrap +msgid "June 24, 2023" +msgstr "24 июня 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:668 +#, no-wrap +msgid "14.0-CURRENT after importing OpenSSL 3.0.9 into base." +msgstr "14.0-CURRENT после импорта OpenSSL 3.0.9 в базовую систему." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:669 +#, no-wrap +msgid "1400093" +msgstr "1400093" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:670 +#, no-wrap +msgid "gitref:ba8cc6d7271a50fec978a1d3a088aec7985fae48[repository=\"src\",length=12]" +msgstr "gitref:ba8cc6d7271a50fec978a1d3a088aec7985fae48[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:671 +#, no-wrap +msgid "July 5, 2023" +msgstr "5 июля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:673 +#, no-wrap +msgid "14.0-CURRENT after using __enum_uint8 for vtype and vstate in VFS" +msgstr "14.0-CURRENT после использования __enum_uint8 для vtype и vstate в VFS" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:674 +#, no-wrap +msgid "1400097" +msgstr "1400097" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:678 +#, no-wrap +msgid "14.0-STABLE after branching stable/14" +msgstr "14.0-STABLE после ветвления stable/14" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:679 +#, no-wrap +msgid "1400500" +msgstr "1400500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:681 +#, no-wrap +msgid "September 8, 2023" +msgstr "8 сентября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:683 +#, no-wrap +msgid "14.0-STABLE after branching releng/14.0" +msgstr "14.0-STABLE после ветвления releng/14.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:684 +#, no-wrap +msgid "1400501" +msgstr "1400501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:685 +#, no-wrap +msgid "gitref:91e53779b4fc39e755a03190f785ce0cf3f83eb7[repository=\"src\",length=12]" +msgstr "gitref:91e53779b4fc39e755a03190f785ce0cf3f83eb7[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:686 +#, no-wrap +msgid "November 19, 2023" +msgstr "19 ноября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:688 +#, no-wrap +msgid "14.0-STABLE after implementing `fpu_kern_enter` and `fpu_kern_leave` for powerpc." +msgstr "14.0-STABLE после реализации `fpu_kern_enter` и `fpu_kern_leave` для powerpc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:689 +#, no-wrap +msgid "1400502" +msgstr "1400502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:690 +#, no-wrap +msgid "gitref:092abb839d1d2826533bb9c4c93d713f8b5043f9[repository=\"src\",length=12]" +msgstr "gitref:092abb839d1d2826533bb9c4c93d713f8b5043f9[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:693 +#, no-wrap +msgid "14.0-STABLE after modifying the internal API between the kgssapi and krpc modules." +msgstr "14.0-STABLE после изменения внутреннего API между модулями kgssapi и krpc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:694 +#, no-wrap +msgid "1400503" +msgstr "1400503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:695 +#, no-wrap +msgid "gitref:ba99d960884d50eb7d36146914206644ee132aa4[repository=\"src\",length=12]" +msgstr "gitref:ba99d960884d50eb7d36146914206644ee132aa4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:696 +#, no-wrap +msgid "December 29, 2023" +msgstr "29 декабря 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:698 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:713 +#, no-wrap +msgid "14.0-STABLE after changing the internal KAPI between the nfscommon and nfscl modules." +msgstr "14.0-STABLE после изменения внутреннего KAPI между модулями nfscommon и nfscl." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:699 +#, no-wrap +msgid "1400504" +msgstr "1400504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:700 +#, no-wrap +msgid "gitref:68584c97ecfb3046de7fb1b16c2caa785392237c[repository=\"src\",length=12]" +msgstr "gitref:68584c97ecfb3046de7fb1b16c2caa785392237c[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:701 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:706 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1774 +#, no-wrap +msgid "January 7, 2024" +msgstr "7 января 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:703 +#, no-wrap +msgid "14.0-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-17.0.6-0-g6009708b4367, a.k.a. 17.0.6 release." +msgstr "14.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-17.0.6-0-g6009708b4367, также известного как релиз 17.0.6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:704 +#, no-wrap +msgid "1400505" +msgstr "1400505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:705 +#, no-wrap +msgid "gitref:64e869e9b93c8ce47f874b770df696c06bcba0d3[repository=\"src\",length=12]" +msgstr "gitref:64e869e9b93c8ce47f874b770df696c06bcba0d3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:708 +#, no-wrap +msgid "14.0-STABLE after adding man:vnode_pager_clean_async[9] and man:vnode_pager_clean_sync[9]." +msgstr "14.0-STABLE после добавления man:vnode_pager_clean_async[9] и man:vnode_pager_clean_sync[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:709 +#, no-wrap +msgid "1400506" +msgstr "1400506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:710 +#, no-wrap +msgid "gitref:d9041710958227194c5e34b169ae73d7ad411017[repository=\"src\",length=12]" +msgstr "gitref:d9041710958227194c5e34b169ae73d7ad411017[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:711 +#, no-wrap +msgid "January 19, 2024" +msgstr "19 января 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:714 +#, no-wrap +msgid "1400507" +msgstr "1400507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:715 +#, no-wrap +msgid "gitref:b566e44b2b88eb9f1b3b658998c7418cccab9e2f[repository=\"src\",length=12]" +msgstr "gitref:b566e44b2b88eb9f1b3b658998c7418cccab9e2f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:716 +#, no-wrap +msgid "January 31, 2024" +msgstr "31 января 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:718 +#, no-wrap +msgid "14.0-STABLE after adding man:kern_openatfp[9] and man:kcmp[2]." +msgstr "14.0-STABLE после добавления man:kern_openatfp[9] и man:kcmp[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:719 +#, no-wrap +msgid "1400508" +msgstr "1400508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:720 +#, no-wrap +msgid "gitref:2d120981e26dfef5c9cb9eb9936bb46cb6918136[repository=\"src\",length=12]" +msgstr "gitref:2d120981e26dfef5c9cb9eb9936bb46cb6918136[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:721 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:726 +#, no-wrap +msgid "February 18, 2024" +msgstr "18 февраля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:723 +#, no-wrap +msgid "14.0-STABLE after LinuxKPI updates." +msgstr "14.0-STABLE после обновлений LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:724 +#, no-wrap +msgid "1400509" +msgstr "1400509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:725 +#, no-wrap +msgid "gitref:b392b36d3776b696601ce0253256803276d24ea2[repository=\"src\",length=12]" +msgstr "gitref:b392b36d3776b696601ce0253256803276d24ea2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:728 +#, no-wrap +msgid "14.0-STABLE after changing net80211 `struct ieee80211vap` internals." +msgstr "14.0-STABLE после изменения внутренней структуры `struct ieee80211vap` в net80211." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:729 +#, no-wrap +msgid "1400510" +msgstr "1400510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:730 +#, no-wrap +msgid "gitref:69da6e0879831f1ccc5c60135ed43fcea10a933b[repository=\"src\",length=12]" +msgstr "gitref:69da6e0879831f1ccc5c60135ed43fcea10a933b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:731 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1789 +#, no-wrap +msgid "March 23, 2024" +msgstr "23 марта 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:733 +#, no-wrap +msgid "14.0-STABLE after fixing a clang assertion or crash when building recent boost libraries." +msgstr "14.0-STABLE после исправления утверждения или падения clang при сборке последних библиотек boost." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:734 +#, no-wrap +msgid "1400511" +msgstr "1400511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:735 +#, no-wrap +msgid "gitref:7c41358a2b0a2e70a2b61ec347354f3452e4d2f3[repository=\"src\",length=12]" +msgstr "gitref:7c41358a2b0a2e70a2b61ec347354f3452e4d2f3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:736 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1794 +#, no-wrap +msgid "April 20, 2024" +msgstr "20 апреля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:738 +#, no-wrap +msgid "14.0-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-18.1.3-0-gc13b7485b879, a.k.a. 18.1.3 release." +msgstr "14.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-18.1.3-0-gc13b7485b879, также известной как релиз 18.1.3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:739 +#, no-wrap +msgid "1401500" +msgstr "1401500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:740 +#, no-wrap +msgid "gitref:7b082bdf72e65f94b9b17d9fa1d0c1c202e4eb49[repository=\"src\",length=12]" +msgstr "gitref:7b082bdf72e65f94b9b17d9fa1d0c1c202e4eb49[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:741 +#, no-wrap +msgid "May 2, 2024" +msgstr "2 мая 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:743 +#, no-wrap +msgid "14.1-STABLE after it was renamed from 14.1-PRERELEASE." +msgstr "14.1-STABLE после переименования из 14.1-PRERELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:744 +#, no-wrap +msgid "1401501" +msgstr "1401501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:745 +#, no-wrap +msgid "gitref:f285eabc89ce8ccf3aaf563401df942e406c2b5f[repository=\"src\",length=12]" +msgstr "gitref:f285eabc89ce8ccf3aaf563401df942e406c2b5f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:746 +#, no-wrap +msgid "June 6, 2024" +msgstr "6 июня 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:748 +#, no-wrap +msgid "14.1-STABLE after adding the linuxkpi_video module." +msgstr "14.1-STABLE после добавления модуля linuxkpi_video." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:749 +#, no-wrap +msgid "1401502" +msgstr "1401502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:750 +#, no-wrap +msgid "gitref:b37a6d41a046dbb46ee1d6bf00c710c03c944a24[repository=\"src\",length=12]" +msgstr "gitref:b37a6d41a046dbb46ee1d6bf00c710c03c944a24[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:751 +#, no-wrap +msgid "August 2, 2024" +msgstr "2 августа 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:753 +#, no-wrap +msgid "14.1-STABLE after LinuxKPI changes." +msgstr "14.1-STABLE после изменений в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:754 +#, no-wrap +msgid "1401503" +msgstr "1401503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:755 +#, no-wrap +msgid "gitref:8a5a9dbf389e86d278764ababf2f1eb8ee276680[repository=\"src\",length=12]" +msgstr "gitref:8a5a9dbf389e86d278764ababf2f1eb8ee276680[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:756 +#, no-wrap +msgid "October 15, 2024" +msgstr "15 октября 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:758 +#, no-wrap +msgid "14.1-STABLE after widening the `flags` field in `vm_object`." +msgstr "14.1-STABLE после расширения поля `flags` в `vm_object`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:759 +#, no-wrap +msgid "1402500" +msgstr "1402500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:760 +#, no-wrap +msgid "gitref:4e8444d5750a5d9da9c812e8f6caf6d62862be0a[repository=\"src\",length=12]" +msgstr "gitref:4e8444d5750a5d9da9c812e8f6caf6d62862be0a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:761 +#, no-wrap +msgid "October 31, 2024" +msgstr "31 октября 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:763 +#, no-wrap +msgid "14.2-STABLE after it was renamed from 14.2-PRERELEASE." +msgstr "14.2-STABLE после переименования из 14.2-PRERELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:764 +#, no-wrap +msgid "1402501" +msgstr "1402501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:765 +#, no-wrap +msgid "gitref:35d2f335e855af816d0a7fe5baf6a3facba84562[repository=\"src\",length=12]" +msgstr "gitref:35d2f335e855af816d0a7fe5baf6a3facba84562[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:766 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1804 +#, no-wrap +msgid "December 1, 2024" +msgstr "1 декабря 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:768 +#, no-wrap +msgid "14.2-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-19.1.4-0-gaadaa00de76e, a.k.a. 19.1.4 release." +msgstr "14.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-19.1.4-0-gaadaa00de76e, также известного как релиз 19.1.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:769 +#, no-wrap +msgid "1402502" +msgstr "1402502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:770 +#, no-wrap +msgid "gitref:d172f42e4ba7ba8542ae0866aaba56e329b4ea2c[repository=\"src\",length=12]" +msgstr "gitref:d172f42e4ba7ba8542ae0866aaba56e329b4ea2c[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:771 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:776 +#, no-wrap +msgid "February 27, 2025" +msgstr "27 февраля 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:773 +#, no-wrap +msgid "14.2-STABLE after removing redundant `type` and `rid` arguments from several functions in the new-bus resource API." +msgstr "14.2-STABLE после удаления избыточных аргументов `type` и `rid` из нескольких функций в API ресурсов new-bus." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:774 +#, no-wrap +msgid "1402503" +msgstr "1402503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:775 +#, no-wrap +msgid "gitref:4aed8b3b613c5e1499336e4d7ec7e9a3ac3d9a12[repository=\"src\",length=12]" +msgstr "gitref:4aed8b3b613c5e1499336e4d7ec7e9a3ac3d9a12[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:778 +#, no-wrap +msgid "14.2-STABLE after adding `bus_attach_children`, `bus_detach_children`, and `bus_identify_children`." +msgstr "14.2-STABLE после добавления `bus_attach_children`, `bus_detach_children` и `bus_identify_children`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:779 +#, no-wrap +msgid "1402505" +msgstr "1402505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:780 +#, no-wrap +msgid "gitref:a3b2d8e360c37853035f9cede6064c4602312bfc[repository=\"src\",length=12]" +msgstr "gitref:a3b2d8e360c37853035f9cede6064c4602312bfc[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:781 +#, no-wrap +msgid "April 18, 2025" +msgstr "18 апреля 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:783 +#, no-wrap +msgid "14.2-STABLE after changing alloc changes to LinuxKPI and removing iwlwifi firmware." +msgstr "14.2-STABLE после изменения аллокации в LinuxKPI и удаления микропрограммы iwlwifi." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:784 +#, no-wrap +msgid "1403503" +msgstr "1403503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:785 +#, no-wrap +msgid "gitref:6cdcf08c9c5eda6dc3b8395cefd9d30a4f5e2f1a[repository=\"src\",length=12]" +msgstr "gitref:6cdcf08c9c5eda6dc3b8395cefd9d30a4f5e2f1a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:786 +#, no-wrap +msgid "July 13, 2025" +msgstr "13 июля 2025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:788 +#, no-wrap +msgid "14.3-STABLE after LinuxKPI dma-mapping.h and acpi changes." +msgstr "14.3-STABLE после изменений в LinuxKPI dma-mapping.h and acpi." + +#. Template: +#. |14XXXXX +#. |gitref:XXXXXXXX[repository="src",length=12] +#. |October 30, 2021 +#. |14.0-CURRENT after XXXXXX. +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:800 +#, no-wrap +msgid "FreeBSD 13 Versions" +msgstr "FreeBSD 13 Версии" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:803 +#, no-wrap +msgid "FreeBSD 13 `__FreeBSD_version` Values" +msgstr "FreeBSD 13 Значения `__FreeBSD_version`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:812 +#, no-wrap +msgid "1300000" +msgstr "1300000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:813 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/339436[339436]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/339436[339436]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:814 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2262 +#, no-wrap +msgid "October 19, 2018" +msgstr "19 октября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:816 +#, no-wrap +msgid "13.0-CURRENT." +msgstr "13.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:817 +#, no-wrap +msgid "1300001" +msgstr "1300001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:818 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/339730[339730]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/339730[339730]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:819 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:824 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2267 +#, no-wrap +msgid "October 25, 2018" +msgstr "25 октября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:821 +#, no-wrap +msgid "13.0-CURRENT after bumping OpenSSL shared library version numbers." +msgstr "13.0-CURRENT после увеличения номеров версий разделяемых библиотек OpenSSL." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:822 +#, no-wrap +msgid "1300002" +msgstr "1300002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:823 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/339765[339765]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/339765[339765]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:826 +#, no-wrap +msgid "13.0-CURRENT after restoration of [.filename]#sys/joystick.h#." +msgstr "13.0-CURRENT после восстановления [.filename]#sys/joystick.h#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:827 +#, no-wrap +msgid "1300003" +msgstr "1300003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:828 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/340055[340055]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/340055[340055]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:829 +#, no-wrap +msgid "November 2, 2018" +msgstr "2 ноября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:831 +#, no-wrap +msgid "13.0-CURRENT after `vop_symlink` API change (`a_target` is now `const`.)" +msgstr "13.0-CURRENT после изменения API `vop_symlink` (параметр `a_target` теперь объявлен как `const`.)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:832 +#, no-wrap +msgid "1300004" +msgstr "1300004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:833 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/340841[340841]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/340841[340841]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:834 +#, no-wrap +msgid "November 23, 2018" +msgstr "23 ноября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:836 +#, no-wrap +msgid "13.0-CURRENT after enabling crtbegin and crtend code." +msgstr "13.0-CURRENT после включения кода crtbegin и crtend." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:837 +#, no-wrap +msgid "1300005" +msgstr "1300005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:838 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/341836[341836]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/341836[341836]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:839 +#, no-wrap +msgid "December 11, 2018" +msgstr "11 декабря 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:841 +#, no-wrap +msgid "13.0-CURRENT after enabling UFS inode checksums." +msgstr "13.0-CURRENT после включения контрольных сумм inode в UFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:842 +#, no-wrap +msgid "1300006" +msgstr "1300006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:843 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/342398[342398]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/342398[342398]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:844 +#, no-wrap +msgid "December 24, 2018" +msgstr "24 декабря 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:846 +#, no-wrap +msgid "13.0-CURRENT after fixing [.filename]#sys/random.h# include to be usable from C++." +msgstr "13.0-CURRENT после исправления включения [.filename]#sys/random.h# для использования из C++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:847 +#, no-wrap +msgid "1300007" +msgstr "1300007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:848 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/342629[342629]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/342629[342629]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:849 +#, no-wrap +msgid "December 30, 2018" +msgstr "30 декабря 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:851 +#, no-wrap +msgid "13.0-CURRENT after changing the size of `struct linux_cdev` on 32-bit platforms." +msgstr "13.0-CURRENT после изменения размера `struct linux_cdev` на 32-битных платформах." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:852 +#, no-wrap +msgid "1300008" +msgstr "1300008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:853 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/342772[342772]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/342772[342772]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:854 +#, no-wrap +msgid "January 4, 2019" +msgstr "4 января 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:856 +#, no-wrap +msgid "13.0-CURRENT after adding `kern.smp.threads_per_core` and `kern.smp.cores` sysctls." +msgstr "13.0-CURRENT после добавления системных переменных `kern.smp.threads_per_core` и `kern.smp.cores`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:857 +#, no-wrap +msgid "1300009" +msgstr "1300009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:858 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/343213[343213]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/343213[343213]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:859 +#, no-wrap +msgid "January 20, 2019" +msgstr "20 января 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:861 +#, no-wrap +msgid "13.0-CURRENT after `struct ieee80211vap` structure change to resolve ioctl/detach race for ieee80211com structure." +msgstr "13.0-CURRENT после изменения структуры `struct ieee80211vap` для устранения состояния гонки между ioctl и detach в структуре ieee80211com." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:862 +#, no-wrap +msgid "1300010" +msgstr "1300010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:863 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/343485[343485]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/343485[343485]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:864 +#, no-wrap +msgid "January 27, 2019" +msgstr "27 января 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:866 +#, no-wrap +msgid "13.0-CURRENT after increasing `SPECNAMELEN` from 63 to `MAXNAMELEN` (255)." +msgstr "13.0-CURRENT после увеличения `SPECNAMELEN` с 63 до `MAXNAMELEN` (255)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:867 +#, no-wrap +msgid "1300011" +msgstr "1300011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:868 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/344041[344041]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/344041[344041]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:869 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:874 +#, no-wrap +msgid "February 12, 2019" +msgstr "12 февраля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:871 +#, no-wrap +msgid "13.0-CURRENT after man:renameat[2] has been corrected to work with kernels built with the `CAPABILITIES` option." +msgstr "13.0-CURRENT после исправления man:renameat[2] для работы с ядрами, собранными с опцией `CAPABILITIES`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:872 +#, no-wrap +msgid "1300012" +msgstr "1300012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:873 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/344062[344062]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/344062[344062]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:876 +#, no-wrap +msgid "13.0-CURRENT after `taskqgroup_attach()` and `taskqgroup_attach_cpu()` take a `device_t` and a struct resource pointer as arguments for denoting device interrupts." +msgstr "13.0-CURRENT после того, как `taskqgroup_attach()` и `taskqgroup_attach_cpu()` принимают аргументы `device_t` и указатель на структуру resource для обозначения прерываний устройства." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:877 +#, no-wrap +msgid "1300013" +msgstr "1300013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:878 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/344300[344300]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/344300[344300]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:879 +#, no-wrap +msgid "February 19, 2019" +msgstr "19 февраля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:881 +#, no-wrap +msgid "13.0-CURRENT after the removal of drm and drm2." +msgstr "13.0-CURRENT после удаления drm и drm2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:882 +#, no-wrap +msgid "1300014" +msgstr "1300014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:883 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/344779[344779]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/344779[344779]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:884 +#, no-wrap +msgid "March 4, 2019" +msgstr "4 марта 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:886 +#, no-wrap +msgid "13.0-CURRENT after upgrading clang, llvm, lld, lldb, compiler-rt and libc++ to 8.0.0 rc3." +msgstr "13.0-CURRENT после обновления clang, llvm, lld, lldb, compiler-rt и libc++ до версии 8.0.0 rc3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:887 +#, no-wrap +msgid "1300015" +msgstr "1300015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:888 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/345196[345196]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/345196[345196]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:889 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2292 +#, no-wrap +msgid "March 15, 2019" +msgstr "15 марта 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:891 +#, no-wrap +msgid "13.0-CURRENT after deanonymizing thread and proc state enums, so userland applications can use them without redefining the value names." +msgstr "13.0-CURRENT после деанонимизации перечислений состояний потоков и процессов, что позволяет приложениям пользовательского пространства использовать их без переопределения имен значений." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:892 +#, no-wrap +msgid "1300016" +msgstr "1300016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:893 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/345236[345236]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/345236[345236]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:894 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:904 +#, no-wrap +msgid "March 16, 2019" +msgstr "16 марта 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:896 +#, no-wrap +msgid "13.0-CURRENT after enabling LLVM OpenMP 8.0.0 rc5 on amd64 by default." +msgstr "13.0-CURRENT после включения LLVM OpenMP 8.0.0 rc5 на amd64 по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:897 +#, no-wrap +msgid "1300017" +msgstr "1300017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:898 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/345305[345305]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/345305[345305]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:899 +#, no-wrap +msgid "March 19, 2019" +msgstr "19 марта 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:901 +#, no-wrap +msgid "13.0-CURRENT after exposing the Rx mbuf buffer size to drivers in iflib." +msgstr "13.0-CURRENT после раскрытия размера буфера Rx mbuf для драйверов в iflib." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:902 +#, no-wrap +msgid "1300018" +msgstr "1300018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:903 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346012[346012]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346012[346012]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:906 +#, no-wrap +msgid "13.0-CURRENT after introduction of `funlinkat` syscall in link:https://svnweb.freebsd.org/changeset/base/345982[345982]." +msgstr "13.0-CURRENT после введения системного вызова `funlinkat` в link:https://svnweb.freebsd.org/changeset/base/345982[345982]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:907 +#, no-wrap +msgid "1300019" +msgstr "1300019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:908 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346282[346282]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346282[346282]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:909 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3460 +#, no-wrap +msgid "April 16, 2019" +msgstr "16 апреля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:911 +#, no-wrap +msgid "13.0-CURRENT after addition of man:is_random_seeded[9] to man:random[4]." +msgstr "13.0-CURRENT после добавления man:is_random_seeded[9] в man:random[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:912 +#, no-wrap +msgid "1300020" +msgstr "1300020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:913 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346358[346358]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346358[346358]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:914 +#, no-wrap +msgid "April 18, 2019" +msgstr "18 апреля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:916 +#, no-wrap +msgid "13.0-CURRENT after restoring man:random[4] availability tradeoff prior to link:https://svnweb.freebsd.org/changeset/base/346250[346250] and adding new tunables and diagnostic sysctls for programmatically discovering early seeding problems after boot." +msgstr "13.0-CURRENT после восстановления доступности man:random[4] с учетом компромиссов до link:https://svnweb.freebsd.org/changeset/base/346250[346250] и добавления новых настроек и диагностических sysctl для программного обнаружения проблем с ранней инициализацией семени после загрузки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:917 +#, no-wrap +msgid "1300021" +msgstr "1300021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:918 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346645[346645]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346645[346645]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:919 +#, no-wrap +msgid "April 24, 2019" +msgstr "24 апреля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:921 +#, no-wrap +msgid "13.0-CURRENT after LinuxKPI uses man:bus_dma[9] to be compatible with an IOMMU." +msgstr "13.0-CURRENT после того, как LinuxKPI использует man:bus_dma[9] для совместимости с IOMMU." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:922 +#, no-wrap +msgid "1300022" +msgstr "1300022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:923 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347089[347089]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347089[347089]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:924 +#, no-wrap +msgid "May 4, 2019" +msgstr "4 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:926 +#, no-wrap +msgid "13.0-CURRENT after fixing regression issue after link:https://svnweb.freebsd.org/changeset/base/346645[346645] in the LinuxKPI." +msgstr "13.0-CURRENT после исправления регрессии, возникшей после link:https://svnweb.freebsd.org/changeset/base/346645[346645] в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:927 +#, no-wrap +msgid "1300023" +msgstr "1300023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:928 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347192[347192]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347192[347192]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:929 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3470 +#, no-wrap +msgid "May 6, 2019" +msgstr "6 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:931 +#, no-wrap +msgid "13.0-CURRENT after list-ifying kernel dump device configuration." +msgstr "13.0-CURRENT после преобразования конфигурации устройства дампа ядра в список." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:932 +#, no-wrap +msgid "1300024" +msgstr "1300024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:933 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347325[347325]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347325[347325]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:934 +#, no-wrap +msgid "May 8, 2019" +msgstr "8 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:936 +#, no-wrap +msgid "13.0-CURRENT after bumping the Mellanox driver version numbers (man:mlx4en[4]; man:mlx5en[4])." +msgstr "13.0-CURRENT после увеличения номеров версий драйверов Mellanox (man:mlx4en[4]; man:mlx5en[4])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:937 +#, no-wrap +msgid "1300025" +msgstr "1300025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:938 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347532[347532]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347532[347532]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:939 +#, no-wrap +msgid "May 13, 2019" +msgstr "13 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:941 +#, no-wrap +msgid "13.0-CURRENT after renaming `vm.max_wired` to `vm.max_user_wired` and changing its type." +msgstr "13.0-CURRENT после переименования `vm.max_wired` в `vm.max_user_wired` и изменения его типа." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:942 +#, no-wrap +msgid "1300026" +msgstr "1300026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:943 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347596[347596]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347596[347596]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:944 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:949 +#, no-wrap +msgid "May 14, 2019" +msgstr "14 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:946 +#, no-wrap +msgid "13.0-CURRENT after adding context member to ww_mutex in LinuxKPI." +msgstr "13.0-CURRENT после добавления члена контекста к ww_mutex в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:947 +#, no-wrap +msgid "1300027" +msgstr "1300027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:948 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347601[347601]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347601[347601]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:951 +#, no-wrap +msgid "13.0-CURRENT after adding prepare to `pm_ops` in LinuxKPI." +msgstr "13.0-CURRENT после добавления prepare в `pm_ops` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:952 +#, no-wrap +msgid "1300028" +msgstr "1300028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:953 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347925[347925]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347925[347925]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:954 +#, no-wrap +msgid "May 17, 2019" +msgstr "17 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:956 +#, no-wrap +msgid "13.0-CURRENT after removal of `bm`, `cs`, de, ed, `ep`, ex, `fe`, `pcn`, sf, `sn`, `tl`, `tx`, `txp`, `vx`, `wb`, and xe drivers." +msgstr "13.0-CURRENT после удаления драйверов `bm`, `cs`, de, ed, `ep`, ex, `fe`, `pcn`, sf, `sn`, `tl`, `tx`, `txp`, `vx`, `wb` и xe." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:957 +#, no-wrap +msgid "1300029" +msgstr "1300029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:958 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347984[347984]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347984[347984]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:959 +#, no-wrap +msgid "May 20, 2019" +msgstr "20 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:961 +#, no-wrap +msgid "13.0-CURRENT after removing some header pollution due to [.filename]#sys/eventhandler.h#. Affected files may now need to explicitly include one or more of [.filename]#sys/eventhandler.h#, [.filename]#sys/ktr.h#, [.filename]#sys/lock.h#, or [.filename]#sys/mutex.h#, when the missing header may have been included implicitly prior to 1300029." +msgstr "13.0-CURRENT после удаления некоторых загрязнений заголовков из-за [.filename]#sys/eventhandler.h#. Затронутые файлы теперь могут требовать явного включения одного или нескольких заголовков: [.filename]#sys/eventhandler.h#, [.filename]#sys/ktr.h#, [.filename]#sys/lock.h# или [.filename]#sys/mutex.h#, тогда как ранее они могли включаться неявно до версии 1300029." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:962 +#, no-wrap +msgid "1300030" +msgstr "1300030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:963 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/348350[348350]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/348350[348350]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:964 +#, no-wrap +msgid "May 29, 2019" +msgstr "29 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:966 +#, no-wrap +msgid "13.0-CURRENT after adding relocation support to libdwarf on powerpc64 to fix handling of DWARF information on unlinked objects. Original commit in link:https://svnweb.freebsd.org/changeset/base/348347[348347]." +msgstr "13.0-CURRENT после добавления поддержки перемещения в libdwarf на powerpc64 для исправления обработки DWARF-информации в несвязанных объектах. Оригинальный коммит в ссылке:https://svnweb.freebsd.org/changeset/base/348347[348347]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:967 +#, no-wrap +msgid "1300031" +msgstr "1300031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:968 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/348808[348808]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/348808[348808]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:969 +#, no-wrap +msgid "June 8, 2019" +msgstr "8 июня 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:971 +#, no-wrap +msgid "13.0-CURRENT after adding dpcpu and vnet section fixes to i386 kernel modules to avoid panics in certain conditions. i386 kernel modules need to be recompiled with the linker script magic in place or they will refuse to load." +msgstr "13.0-CURRENT после добавления исправлений разделов dpcpu и vnet в модули ядра i386 для предотвращения паники в определённых условиях. Модули ядра i386 необходимо перекомпилировать с включёнными изменениями в скрипт компоновщика, иначе они откажутся загружаться." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:972 +#, no-wrap +msgid "1300032" +msgstr "1300032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:973 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349151[349151]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349151[349151]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:974 +#, no-wrap +msgid "June 17, 2019" +msgstr "17 июня 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:976 +#, no-wrap +msgid "13.0-CURRENT after separating kernel `crc32()` implementation to its own header ([.filename]#gsb_crc32.h#) and renaming the source to [.filename]#gsb_crc32.c#." +msgstr "13.0-CURRENT после выделения реализации `crc32()` ядра в отдельный заголовочный файл ([.filename]#gsb_crc32.h#) и переименования исходного файла в [.filename]#gsb_crc32.c#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:977 +#, no-wrap +msgid "1300033" +msgstr "1300033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:978 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349277[349277]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349277[349277]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:979 +#, no-wrap +msgid "June 21, 2019" +msgstr "June 21, 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:981 +#, no-wrap +msgid "13.0-CURRENT after additions to LinuxKPI's `rcu` list." +msgstr "13.0-CURRENT после добавлений в список `rcu` LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:982 +#, no-wrap +msgid "1300034" +msgstr "1300034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:983 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349352[349352]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349352[349352]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:984 +#, no-wrap +msgid "June 24, 2019" +msgstr "24 июня 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:986 +#, no-wrap +msgid "13.0-CURRENT after NAND and NANDFS removal." +msgstr "13.0-CURRENT после удаления NAND и NANDFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:987 +#, no-wrap +msgid "1300035" +msgstr "1300035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:988 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349846[349846]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349846[349846]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:989 +#, no-wrap +msgid "July 8, 2019" +msgstr "8 июля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:991 +#, no-wrap +msgid "13.0-CURRENT after merging the `vm_page` hold and wire mechanisms." +msgstr "13.0-CURRENT после объединения механизмов удержания и фиксации `vm_page`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:992 +#, no-wrap +msgid "1300036" +msgstr "1300036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:993 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349972[349972]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349972[349972]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:994 +#, no-wrap +msgid "July 13, 2019" +msgstr "13 июля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:996 +#, no-wrap +msgid "13.0-CURRENT after adding `arm_drain_writebuf()` and `arm_sync_icache()` for compatibility with NetBSD and OpenBSD." +msgstr "13.0-CURRENT после добавления `arm_drain_writebuf()` и `arm_sync_icache()` для совместимости с NetBSD и OpenBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:997 +#, no-wrap +msgid "1300037" +msgstr "1300037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:998 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/350307[350307]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/350307[350307]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:999 +#, no-wrap +msgid "July 24, 2019" +msgstr "24 июля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1001 +#, no-wrap +msgid "13.0-CURRENT after removal of man:libcap_random[3]." +msgstr "13.0-CURRENT после удаления man:libcap_random[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1002 +#, no-wrap +msgid "1300038" +msgstr "1300038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1003 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/350437[350437]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/350437[350437]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1004 +#, no-wrap +msgid "July 30, 2019" +msgstr "30 июля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1006 +#, no-wrap +msgid "13.0-CURRENT after removal of gzip'ed a.out support." +msgstr "13.0-CURRENT после удаления поддержки gzip'ed a.out." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1007 +#, no-wrap +msgid "1300039" +msgstr "1300039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1008 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/350665[350665]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/350665[350665]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1009 +#, no-wrap +msgid "August 7, 2019" +msgstr "7 августа 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1011 +#, no-wrap +msgid "13.0-CURRENT after merge of fusefs from projects/fuse2." +msgstr "13.0-CURRENT после объединения fusefs из projects/fuse2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1012 +#, no-wrap +msgid "1300040" +msgstr "1300040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1013 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351140[351140]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351140[351140]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1014 +#, no-wrap +msgid "August 16, 2019" +msgstr "16 августа 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1016 +#, no-wrap +msgid "13.0-CURRENT after deletion of [.filename]#sys/dir.h# which has been deprecated since 1997." +msgstr "13.0-CURRENT после удаления [.filename]#sys/dir.h#, который был устаревшим с 1997 года." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1017 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1202 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1372 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1632 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1945 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3701 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5242 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5775 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6328 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6516 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7480 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7485 +#, no-wrap +msgid "(not changed)" +msgstr "(не изменено)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1018 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351423[351423]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351423[351423]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1019 +#, no-wrap +msgid "August 23, 2019" +msgstr "23 августа 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1021 +#, no-wrap +msgid "13.0-CURRENT after changing most arguments to man:ping6[8]." +msgstr "13.0-CURRENT после изменения большинства аргументов в man:ping6[8]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1022 +#, no-wrap +msgid "1300041" +msgstr "1300041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1023 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351480[351480]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351480[351480]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1024 +#, no-wrap +msgid "August 25, 2019" +msgstr "25 августа 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1026 +#, no-wrap +msgid "13.0-CURRENT after removal of zlib 1.0.4 after the completion of kernel zlib unification." +msgstr "13.0-CURRENT после удаления zlib 1.0.4 по завершении унификации zlib в ядре." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1027 +#, no-wrap +msgid "1300042" +msgstr "1300042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1028 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351522[351522]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351522[351522]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1029 +#, no-wrap +msgid "August 27, 2019" +msgstr "27 августа 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1031 +#, no-wrap +msgid "13.0-CURRENT after addition of kernel-side support for in-kernel TLS." +msgstr "13.0-CURRENT после добавления поддержки TLS внутри ядра на уровне ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1032 +#, no-wrap +msgid "1300043" +msgstr "1300043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1033 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351698[351698]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351698[351698]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1034 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1039 +#, no-wrap +msgid "September 2, 2019" +msgstr "2 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1036 +#, no-wrap +msgid "13.0-CURRENT after removal of man:gets[3]." +msgstr "13.0-CURRENT после удаления man:gets[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1037 +#, no-wrap +msgid "1300044" +msgstr "1300044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1038 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351701[351701]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351701[351701]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1041 +#, no-wrap +msgid "13.0-CURRENT after adding sysfs create/remove functions that handles multiple files in one call to the LinuxKPI." +msgstr "13.0-CURRENT после добавления функций создания/удаления sysfs, обрабатывающих несколько файлов за один вызов, в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1042 +#, no-wrap +msgid "1300045" +msgstr "1300045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1043 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351729[351729]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351729[351729]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1044 +#, no-wrap +msgid "September 3, 2019" +msgstr "3 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1046 +#, no-wrap +msgid "13.0-CURRENT after adding man:sysctlbyname[3] system call." +msgstr "13.0-CURRENT после добавления системного вызова man:sysctlbyname[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1047 +#, no-wrap +msgid "1300046" +msgstr "1300046" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1048 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351937[351937]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351937[351937]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1049 +#, no-wrap +msgid "September 6, 2019" +msgstr "6 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1051 +#, no-wrap +msgid "13.0-CURRENT after LinuxKPI sysfs improvements." +msgstr "13.0-CURRENT после улучшений LinuxKPI sysfs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1052 +#, no-wrap +msgid "1300047" +msgstr "1300047" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1053 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/352110[352110]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/352110[352110]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1054 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2357 +#, no-wrap +msgid "September 9, 2019" +msgstr "9 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1056 +#, no-wrap +msgid "13.0-CURRENT after changing the synchronization rules for `vm_page` reference counting.." +msgstr "13.0-CURRENT после изменения правил синхронизации для подсчета ссылок `vm_page`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1057 +#, no-wrap +msgid "1300048" +msgstr "1300048" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1058 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/352700[352700]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/352700[352700]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1059 +#, no-wrap +msgid "September 25, 2019" +msgstr "25 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1061 +#, no-wrap +msgid "13.0-CURRENT after adding a shm_open2 syscall to support the upcoming man:memfd_create[2] syscall." +msgstr "13.0-CURRENT после добавления системного вызова shm_open2 для поддержки готовящегося системного вызова man:memfd_create[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1062 +#, no-wrap +msgid "1300049" +msgstr "1300049" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1063 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/353274[353274]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/353274[353274]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1064 +#, no-wrap +msgid "October 7, 2019" +msgstr "7 октября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1066 +#, no-wrap +msgid "13.0-CURRENT after factoring out the VNET shutdown check into an own vnet structure field." +msgstr "13.0-CURRENT после вынесения проверки отключения VNET в отдельное поле структуры vnet." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1067 +#, no-wrap +msgid "1300050" +msgstr "1300050" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1068 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/353358[353358]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/353358[353358]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1069 +#, no-wrap +msgid "October 9, 2019" +msgstr "9 октября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1071 +#, no-wrap +msgid "13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 9.0.0 final release r372316." +msgstr "13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до финального релиза 9.0.0 r372316." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1072 +#, no-wrap +msgid "1300051" +msgstr "1300051" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1073 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/353685[353685]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/353685[353685]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1074 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1079 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1084 +#, no-wrap +msgid "October 17, 2019" +msgstr "17 октября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1076 +#, no-wrap +msgid "13.0-CURRENT after splitting out a more generic man:debugnet[4] from man:netdump[4]." +msgstr "13.0-CURRENT после выделения более универсального man:debugnet[4] из man:netdump[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1077 +#, no-wrap +msgid "1300052" +msgstr "1300052" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1078 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/353698[353698]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/353698[353698]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1081 +#, no-wrap +msgid "13.0-CURRENT after promoting the page busy field to a first class lock that no longer requires the object lock for consistency." +msgstr "13.0-CURRENT после преобразования поля busy page в полноценную блокировку, которая больше не требует блокировки объекта для обеспечения согласованности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1082 +#, no-wrap +msgid "1300053" +msgstr "1300053" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1083 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/353700[353700]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/353700[353700]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1086 +#, no-wrap +msgid "13.0-CURRENT after implementing NetGDB." +msgstr "13.0-CURRENT после реализации NetGDB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1087 +#, no-wrap +msgid "1300054" +msgstr "1300054" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1088 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/353868[353868]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/353868[353868]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1089 +#, no-wrap +msgid "October 21, 2019" +msgstr "21 октября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1091 +#, no-wrap +msgid "13.0-CURRENT after removing obsoleted KPIs that were used to access interface address lists." +msgstr "13.0-CURRENT после удаления устаревших KPIs, которые использовались для доступа к спискам адресов интерфейсов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1092 +#, no-wrap +msgid "1300055" +msgstr "1300055" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1093 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354335[354335]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354335[354335]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1094 +#, no-wrap +msgid "November 4, 2019" +msgstr "4 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1096 +#, no-wrap +msgid "13.0-CURRENT after enabling device class group attributes in the LinuxKPI." +msgstr "13.0-CURRENT после включения атрибутов группы классов устройств в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1097 +#, no-wrap +msgid "1300056" +msgstr "1300056" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1098 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354460[354460]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354460[354460]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1099 +#, no-wrap +msgid "November 7, 2019" +msgstr "7 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1101 +#, no-wrap +msgid "13.0-CURRENT after fixing a potential OOB read security issue in libc++." +msgstr "13.0-CURRENT после исправления потенциальной проблемы безопасности с чтением за границами в libc++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1102 +#, no-wrap +msgid "1300057" +msgstr "1300057" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1103 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354694[354694]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354694[354694]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1104 +#, no-wrap +msgid "November 13, 2019" +msgstr "13 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1106 +#, no-wrap +msgid "13.0-CURRENT after adding support for `AT_EXECPATH` to man:elf_aux_info[3]." +msgstr "13.0-CURRENT после добавления поддержки `AT_EXECPATH` в man:elf_aux_info[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1107 +#, no-wrap +msgid "1300058" +msgstr "1300058" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1108 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354820[354820]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354820[354820]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1109 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1114 +#, no-wrap +msgid "November 18, 2019" +msgstr "18 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1111 +#, no-wrap +msgid "13.0-CURRENT after widening the `vm_page` `aflags` field to 16 bits." +msgstr "13.0-CURRENT после расширения поля `aflags` в `vm_page` до 16 бит." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1112 +#, no-wrap +msgid "1300059" +msgstr "1300059" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1113 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354835[354835]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354835[354835]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1116 +#, no-wrap +msgid "13.0-CURRENT after converting the in-tree `sysent` targets to use the new [.filename]#makesyscalls.lua#." +msgstr "13.0-CURRENT после преобразования встроенных целей `sysent` для использования нового [.filename]#makesyscalls.lua#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1117 +#, no-wrap +msgid "1300060" +msgstr "1300060" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1118 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354922[354922]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354922[354922]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1119 +#, no-wrap +msgid "November 20, 2019" +msgstr "20 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1121 +#, no-wrap +msgid "13.0-CURRENT after adding [.filename]#/etc/os-release# as a symbolic link to [.filename]#/var/run/os-release#." +msgstr "13.0-CURRENT после добавления символической ссылки [.filename]#/etc/os-release# на [.filename]#/var/run/os-release#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1122 +#, no-wrap +msgid "1300061" +msgstr "1300061" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1123 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354977[354977]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354977[354977]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1124 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2392 +#, no-wrap +msgid "November 21, 2019" +msgstr "21 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1126 +#, no-wrap +msgid "13.0-CURRENT after adding functions to man:bitstring[3] to find contiguous sequences of set or unset bits." +msgstr "13.0-CURRENT после добавления функций в man:bitstring[3] для поиска непрерывных последовательностей установленных или сброшенных битов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1127 +#, no-wrap +msgid "1300062" +msgstr "1300062" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1128 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355309[355309]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355309[355309]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1129 +#, no-wrap +msgid "December 2, 2019" +msgstr "2 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1131 +#, no-wrap +msgid "13.0-CURRENT after adding TCP_STATS support." +msgstr "13.0-CURRENT после добавления поддержки TCP_STATS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1132 +#, no-wrap +msgid "1300063" +msgstr "1300063" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1133 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355537[355537]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355537[355537]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1134 +#, no-wrap +msgid "December 8, 2019" +msgstr "8 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1136 +#, no-wrap +msgid "13.0-CURRENT after removal of VI_DOOMED (use VN_IS_DOOMED instead)." +msgstr "13.0-CURRENT после удаления VI_DOOMED (используйте VN_IS_DOOMED вместо этого)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1137 +#, no-wrap +msgid "1300064" +msgstr "1300064" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1138 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2396 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355658[355658]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355658[355658]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1139 +#, no-wrap +msgid "December 9, 2019" +msgstr "9 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1141 +#, no-wrap +msgid "13.0-CURRENT after correcting the C++ version check for declaring man:timespec_get[3]." +msgstr "13.0-CURRENT после исправления проверки версии C++ для объявления man:timespec_get[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1142 +#, no-wrap +msgid "1300065" +msgstr "1300065" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1143 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355643[355643]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355643[355643]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1144 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1149 +#, no-wrap +msgid "December 12, 2019" +msgstr "12 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1146 +#, no-wrap +msgid "13.0-CURRENT after adding `sigsetop` extensions commonly found in musl libc and glibc." +msgstr "13.0-CURRENT после добавления расширений `sigsetop`, которые обычно встречаются в musl libc и glibc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1147 +#, no-wrap +msgid "1300066" +msgstr "1300066" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1148 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355679[355679]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355679[355679]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1151 +#, no-wrap +msgid "13.0-CURRENT after changing the internal interface between the NFS modules as part of the introduction of NFS 4.2." +msgstr "13.0-CURRENT после изменения внутреннего интерфейса между модулями NFS в рамках внедрения NFS 4.2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1152 +#, no-wrap +msgid "1300067" +msgstr "1300067" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1153 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355732[355732]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355732[355732]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1154 +#, no-wrap +msgid "December 13, 2019" +msgstr "13 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1156 +#, no-wrap +msgid "13.0-CURRENT after removing the deprecated `callout_handle_init`, `timeout`, and `untimeout` functions." +msgstr "13.0-CURRENT после удаления устаревших функций `callout_handle_init`, `timeout` и `untimeout`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1157 +#, no-wrap +msgid "1300068" +msgstr "1300068" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1158 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355828[355828]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355828[355828]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1159 +#, no-wrap +msgid "December 16, 2019" +msgstr "16 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1161 +#, no-wrap +msgid "13.0-CURRENT after doubling the value of `ARG_MAX`, for 64 bit platforms." +msgstr "13.0-CURRENT после удвоения значения `ARG_MAX` для 64-битных платформ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1162 +#, no-wrap +msgid "1300069" +msgstr "1300069" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1163 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356051[356051]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356051[356051]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1164 +#, no-wrap +msgid "December 24, 2019" +msgstr "24 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1166 +#, no-wrap +msgid "13.0-CURRENT after the addition of busdma templates." +msgstr "13.0-CURRENT после добавления шаблонов busdma." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1167 +#, no-wrap +msgid "1300070" +msgstr "1300070" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1168 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356113[356113]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356113[356113]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1169 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1174 +#, no-wrap +msgid "December 27, 2019" +msgstr "27 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1171 +#, no-wrap +msgid "13.0-CURRENT after eliminating the last MI difference in AT_* definitions (for powerpc)." +msgstr "13.0-CURRENT после устранения последнего различия MI в определениях AT_* (для powerpc)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1172 +#, no-wrap +msgid "1300071" +msgstr "1300071" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1173 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356135[356135]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356135[356135]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1176 +#, no-wrap +msgid "13.0-CURRENT after making USB statistics be per-device instead of per bus." +msgstr "13.0-CURRENT после изменения статистики USB для каждого устройства вместо каждой шины." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1177 +#, no-wrap +msgid "1300072" +msgstr "1300072" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1178 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356185[356185]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356185[356185]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1179 +#, no-wrap +msgid "December 29, 2019" +msgstr "29 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1181 +#, no-wrap +msgid "13.0-CURRENT after removal of `GEOM_SCHED` class and `gsched` tool." +msgstr "13.0-CURRENT после удаления класса `GEOM_SCHED` и утилиты `gsched`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1182 +#, no-wrap +msgid "1300073" +msgstr "1300073" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1183 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356263[356263]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356263[356263]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1184 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2412 +#, no-wrap +msgid "January 2, 2020" +msgstr "2 января 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1186 +#, no-wrap +msgid "13.0-CURRENT after removing arm/arm as a valid target." +msgstr "13.0-CURRENT после удаления arm/arm как допустимой цели." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1187 +#, no-wrap +msgid "1300074" +msgstr "1300074" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1188 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356337[356337]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356337[356337]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1189 +#, no-wrap +msgid "January 3, 2020" +msgstr "3 января 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1191 +#, no-wrap +msgid "13.0-CURRENT after removing flags argument from `VOP_UNLOCK`." +msgstr "13.0-CURRENT после удаления аргумента flags из `VOP_UNLOCK`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1192 +#, no-wrap +msgid "1300075" +msgstr "1300075" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1193 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356409[356409]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356409[356409]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1194 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2417 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3515 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4288 +#, no-wrap +msgid "January 6, 2020" +msgstr "6 января 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1196 +#, no-wrap +msgid "13.0-CURRENT after adding own counter for cancelled USB transfers." +msgstr "13.0-CURRENT после добавления собственного счетчика отмененных USB-передач." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1197 +#, no-wrap +msgid "1300076" +msgstr "1300076" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1198 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356511[356511]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356511[356511]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1199 +#, no-wrap +msgid "January 8, 2020" +msgstr "8 января 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1201 +#, no-wrap +msgid "13.0-CURRENT after pushing `vnop` implementation into the `fileop` layer in man:posix_fallocate[2]." +msgstr "13.0-CURRENT после внедрения реализации `vnop` в слой `fileop` в man:posix_fallocate[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1203 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/357396[357396]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/357396[357396]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1204 +#, no-wrap +msgid "February 2, 2020" +msgstr "2 февраля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1206 +#, no-wrap +msgid "13.0-CURRENT after removal of armv5 architecture code from the src tree." +msgstr "13.0-CURRENT после удаления кода архитектуры armv5 из дерева src." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1207 +#, no-wrap +msgid "1300077" +msgstr "1300077" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1208 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/357455[357455]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/357455[357455]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1209 +#, no-wrap +msgid "February 3, 2020" +msgstr "3 февраля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1211 +#, no-wrap +msgid "13.0-CURRENT after removal of sparc64 architecture code from the src tree." +msgstr "13.0-CURRENT после удаления кода архитектуры sparc64 из дерева src." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1212 +#, no-wrap +msgid "1300078" +msgstr "1300078" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1213 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/358020[358020]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/358020[358020]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1214 +#, no-wrap +msgid "February 17, 2020" +msgstr "17 февраля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1216 +#, no-wrap +msgid "13.0-CURRENT after changing `struct vnet` and the VNET magic cookie." +msgstr "13.0-CURRENT после изменения `struct vnet` и волшебного cookie VNET." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1217 +#, no-wrap +msgid "1300079" +msgstr "1300079" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1218 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/358164[358164]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/358164[358164]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1219 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1224 +#, no-wrap +msgid "February 20, 2020" +msgstr "20 февраля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1221 +#, no-wrap +msgid "13.0-CURRENT after upgrading ncurses to 6.2.x" +msgstr "13.0-CURRENT после обновления ncurses до версии 6.2.x" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1222 +#, no-wrap +msgid "1300080" +msgstr "1300080" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1223 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/358172[358172]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/358172[358172]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1226 +#, no-wrap +msgid "13.0-CURRENT after adding `realpathat` syscall to VFS." +msgstr "13.0-CURRENT после добавления системного вызова `realpathat` в VFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1227 +#, no-wrap +msgid "1300081" +msgstr "1300081" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1228 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/358218[358218]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/358218[358218]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1229 +#, no-wrap +msgid "February 21, 2020" +msgstr "21 февраля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1231 +#, no-wrap +msgid "13.0-CURRENT after recent linuxkpi changes." +msgstr "13.0-CURRENT после недавних изменений в linuxkpi." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1232 +#, no-wrap +msgid "1300082" +msgstr "1300082" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1233 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/358497[358497]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/358497[358497]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1234 +#, no-wrap +msgid "March 1, 2020" +msgstr "1 марта 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1236 +#, no-wrap +msgid "13.0-CURRENT after removal of man:bktr[4]." +msgstr "13.0-CURRENT после удаления man:bktr[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1237 +#, no-wrap +msgid "1300083" +msgstr "1300083" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1238 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/358834[358834]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/358834[358834]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1239 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1244 +#, no-wrap +msgid "March 10, 2020" +msgstr "10 марта 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1241 +#, no-wrap +msgid "13.0-CURRENT after removal of man:amd[8], r358821." +msgstr "13.0-CURRENT после удаления man:amd[8], r358821." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1242 +#, no-wrap +msgid "1300084" +msgstr "1300084" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1243 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/358851[358851]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/358851[358851]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1246 +#, no-wrap +msgid "13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0-rc3 c290cb61fdc." +msgstr "13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0-rc3 c290cb61fdc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1247 +#, no-wrap +msgid "1300085" +msgstr "1300085" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1248 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359261[359261]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359261[359261]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1249 +#, no-wrap +msgid "March 23, 2020" +msgstr "23 марта 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1251 +#, no-wrap +msgid "13.0-CURRENT after the import of the kyua test framework." +msgstr "13.0-CURRENT после импорта тестового фреймворка kyua." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1252 +#, no-wrap +msgid "1300086" +msgstr "1300086" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1253 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359347[359347]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359347[359347]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1254 +#, no-wrap +msgid "March 26, 2020" +msgstr "26 марта 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1256 +#, no-wrap +msgid "13.0-CURRENT after switching powerpc and powerpcspe to the lld linker." +msgstr "13.0-CURRENT после переключения powerpc и powerpcspe на компоновщик lld." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1257 +#, no-wrap +msgid "1300087" +msgstr "1300087" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1258 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359374[359374]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359374[359374]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1259 +#, no-wrap +msgid "March 27, 2020" +msgstr "27 марта 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1261 +#, no-wrap +msgid "13.0-CURRENT after refactoring the driver and consumer interfaces for in-kernel cryptography." +msgstr "13.0-CURRENT после рефакторинга интерфейсов драйвера и потребителя для внутриядерного шифрования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1262 +#, no-wrap +msgid "1300088" +msgstr "1300088" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1263 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359530[359530]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359530[359530]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1264 +#, no-wrap +msgid "April 1, 2020" +msgstr "1 апреля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1266 +#, no-wrap +msgid "13.0-CURRENT after removing support for procfs process debugging." +msgstr "13.0-CURRENT после удаления поддержки отладки процессов через procfs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1267 +#, no-wrap +msgid "1300089" +msgstr "1300089" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1268 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359727[359727]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359727[359727]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1269 +#, no-wrap +msgid "April 8, 2020" +msgstr "8 апреля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1271 +#, no-wrap +msgid "13.0-CURRENT after cloning the RCU interface into a sleepable and a non-sleepable part in the LinuxKPI." +msgstr "13.0-CURRENT после разделения интерфейса RCU на части с возможностью ожидания и без неё в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1272 +#, no-wrap +msgid "1300090" +msgstr "1300090" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1273 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359747[359747]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359747[359747]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1274 +#, no-wrap +msgid "April 9, 2020" +msgstr "9 апреля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1276 +#, no-wrap +msgid "13.0-CURRENT after removing the old NFS lock device driver that uses Giant." +msgstr "13.0-CURRENT после удаления старого драйвера устройства блокировки NFS, использующего Giant." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1277 +#, no-wrap +msgid "1300091" +msgstr "1300091" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1278 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359839[359839]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359839[359839]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1279 +#, no-wrap +msgid "April 12, 2020" +msgstr "12 апреля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1281 +#, no-wrap +msgid "13.0-CURRENT after implementing a man:close_range[2] syscall." +msgstr "13.0-CURRENT после реализации системного вызова man:close_range[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1282 +#, no-wrap +msgid "1300092" +msgstr "1300092" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1283 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359920[359920]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359920[359920]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1284 +#, no-wrap +msgid "April 14, 2020" +msgstr "14 апреля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1286 +#, no-wrap +msgid "13.0-CURRENT after reworking unmapped mbufs in KTLS to carry `ext_pgs` in the mbuf itself." +msgstr "13.0-CURRENT после переработки немэппированных mbuf в KTLS для хранения `ext_pgs` в самом mbuf." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1287 +#, no-wrap +msgid "1300093" +msgstr "1300093" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1288 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360418[360418]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360418[360418]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1289 +#, no-wrap +msgid "April 27, 2020" +msgstr "27 апреля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1291 +#, no-wrap +msgid "13.0-CURRENT after adding support for kernel TLS receive offload." +msgstr "13.0-CURRENT после добавления поддержки выгрузки приема TLS в ядре." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1292 +#, no-wrap +msgid "1300094" +msgstr "1300094" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1293 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360796[360796]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360796[360796]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1294 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3540 +#, no-wrap +msgid "May 7, 2020" +msgstr "7 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1296 +#, no-wrap +msgid "13.0-CURRENT after linuxkpi changes." +msgstr "13.0-CURRENT после изменений в linuxkpi." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1297 +#, no-wrap +msgid "1300095" +msgstr "1300095" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1298 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/361275[361275]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/361275[361275]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1299 +#, no-wrap +msgid "May 20, 2020" +msgstr "20 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1301 +#, no-wrap +msgid "13.0-CURRENT after adding HyperV socket support for FreeBSD guests." +msgstr "13.0-CURRENT после добавления поддержки сокетов HyperV для гостевых систем FreeBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1302 +#, no-wrap +msgid "1300096" +msgstr "1300096" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1303 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/361410[361410]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/361410[361410]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1304 +#, no-wrap +msgid "May 23, 2020" +msgstr "23 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1306 +#, no-wrap +msgid "13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.1 rc1 f79cd71e145." +msgstr "13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.1 rc1 f79cd71e145." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1307 +#, no-wrap +msgid "1300097" +msgstr "1300097" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1308 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/361724[361724]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/361724[361724]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1309 +#, no-wrap +msgid "June 2, 2020" +msgstr "2 июня 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1311 +#, no-wrap +msgid "13.0-CURRENT after implementing `__is_constexpr()` function macro in the LinuxKPI." +msgstr "13.0-CURRENT после реализации макроса функции `__is_constexpr()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1312 +#, no-wrap +msgid "1300098" +msgstr "1300098" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1313 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/362159[362159]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/362159[362159]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1314 +#, no-wrap +msgid "June 14, 2020" +msgstr "14 июня 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1316 +#, no-wrap +msgid "13.0-CURRENT after changing the `export_args ex_flags` field so that is 64bits." +msgstr "13.0-CURRENT после изменения поля `export_args ex_flags`, чтобы оно было 64-битным." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1317 +#, no-wrap +msgid "1300099" +msgstr "1300099" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1318 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/362453[362453]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/362453[362453]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1319 +#, no-wrap +msgid "June 20, 2020" +msgstr "20 июня 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1321 +#, no-wrap +msgid "13.0-CURRENT after making liblzma use libmd implementation of SHA256." +msgstr "13.0-CURRENT после перевода liblzma на использование реализации SHA256 из libmd." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1322 +#, no-wrap +msgid "1300100" +msgstr "1300100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1323 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/362640[362640]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/362640[362640]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1324 +#, no-wrap +msgid "June 26, 2020" +msgstr "June 26, 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1326 +#, no-wrap +msgid "13.0-CURRENT after changing the internal API between the NFS kernel modules." +msgstr "13.0-CURRENT после изменения внутреннего API между модулями ядра NFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1327 +#, no-wrap +msgid "1300101" +msgstr "1300101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1328 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363077[363077]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363077[363077]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1329 +#, no-wrap +msgid "July 10, 2020" +msgstr "10 июля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1331 +#, no-wrap +msgid "13.0-CURRENT after implementing the `array_size()` function in the LinuxKPI." +msgstr "13.0-CURRENT после реализации функции `array_size()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1332 +#, no-wrap +msgid "1300102" +msgstr "1300102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1333 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363562[363562]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363562[363562]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1334 +#, no-wrap +msgid "July 26, 2020" +msgstr "26 июля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1336 +#, no-wrap +msgid "13.0-CURRENT after implementing lockless lookup in the VFS layer." +msgstr "13.0-CURRENT после реализации бесблокировочного поиска в слое VFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1337 +#, no-wrap +msgid "1300103" +msgstr "1300103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1338 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363757[363757]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363757[363757]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1339 +#, no-wrap +msgid "August 1, 2020" +msgstr "1 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1341 +#, no-wrap +msgid "13.0-CURRENT after making rights mandatory for NDINIT_ALL." +msgstr "13.0-CURRENT после того, как права для NDINIT_ALL стали обязательными." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1342 +#, no-wrap +msgid "1300104" +msgstr "1300104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1343 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363783[363783]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363783[363783]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1344 +#, no-wrap +msgid "August 2, 2020" +msgstr "2 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1346 +#, no-wrap +msgid "13.0-CURRENT after vnode layout changes." +msgstr "13.0-CURRENT после изменений в структуре vnode." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1347 +#, no-wrap +msgid "1300105" +msgstr "1300105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1348 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363894[363894]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363894[363894]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1349 +#, no-wrap +msgid "August 5, 2020" +msgstr "5 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1351 +#, no-wrap +msgid "13.0-CURRENT after `vaccess()` change." +msgstr "13.0-CURRENT после изменения `vaccess()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1352 +#, no-wrap +msgid "1300106" +msgstr "1300106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1353 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364092[364092]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364092[364092]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1354 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1359 +#, no-wrap +msgid "August 11, 2020" +msgstr "11 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1356 +#, no-wrap +msgid "13.0-CURRENT after adding an argument to `newnfs_connect()` that indicates use TLS for the connection." +msgstr "13.0-CURRENT после добавления аргумента в `newnfs_connect()`, указывающего на использование TLS для соединения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1357 +#, no-wrap +msgid "1300107" +msgstr "1300107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1358 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364109[364109]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364109[364109]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1361 +#, no-wrap +msgid "13.0-CURRENT after change to clone the task struct fields related to RCU." +msgstr "13.0-CURRENT после изменения для клонирования полей структуры задачи, связанных с RCU." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1362 +#, no-wrap +msgid "1300108" +msgstr "1300108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1363 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364233[364233]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364233[364233]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1364 +#, no-wrap +msgid "August 14, 2020" +msgstr "14 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1366 +#, no-wrap +msgid "13.0-CURRENT after adding a few `wait_bit` functions to the linuxkpi, which are needed for DRM from Linux v5.4." +msgstr "13.0-CURRENT после добавления нескольких функций `wait_bit` в linuxkpi, которые необходимы для DRM из Linux v5.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1367 +#, no-wrap +msgid "1300109" +msgstr "1300109" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1368 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364274[364274]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364274[364274]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1369 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1374 +#, no-wrap +msgid "August 16, 2020" +msgstr "16 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1371 +#, no-wrap +msgid "13.0-CURRENT after `vget()` argument removal and `namei` flags renumbering." +msgstr "13.0-CURRENT после удаления аргумента `vget()` и перенумерации флагов `namei`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1373 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364284[364284]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364284[364284]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1376 +#, no-wrap +msgid "13.0-CURRENT after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to release/11.x llvmorg-11.0.0-rc1-47-gff47911ddfc." +msgstr "13.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии release/11.x llvmorg-11.0.0-rc1-47-gff47911ddfc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1377 +#, no-wrap +msgid "1300110" +msgstr "1300110" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1378 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364331[364331]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364331[364331]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1379 +#, no-wrap +msgid "August 18, 2020" +msgstr "18 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1381 +#, no-wrap +msgid "13.0-CURRENT after deleting the unused `use_ext` argument to `nfscl_reqstart()`." +msgstr "13.0-CURRENT после удаления неиспользуемого аргумента `use_ext` в `nfscl_reqstart()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1382 +#, no-wrap +msgid "1300111" +msgstr "1300111" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1383 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364476[364476]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364476[364476]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1384 +#, no-wrap +msgid "August 22, 2020" +msgstr "22 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1386 +#, no-wrap +msgid "13.0-CURRENT after adding TLS support to the kernel RPC." +msgstr "13.0-CURRENT после добавления поддержки TLS в RPC ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1387 +#, no-wrap +msgid "1300112" +msgstr "1300112" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1388 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364747[364747]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364747[364747]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1389 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1394 +#, no-wrap +msgid "August 25, 2020" +msgstr "August 25, 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1391 +#, no-wrap +msgid "13.0-CURRENT after merging OpenZFS support." +msgstr "13.0-CURRENT после объединения поддержки OpenZFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1392 +#, no-wrap +msgid "1300113" +msgstr "1300113" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1393 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364753[364753]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364753[364753]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1396 +#, no-wrap +msgid "13.0-CURRENT after adding atomic and `bswap` functions to libcompiler_rt." +msgstr "13.0-CURRENT после добавления атомарных функций и функций `bswap` в libcompiler_rt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1397 +#, no-wrap +msgid "1300114" +msgstr "1300114" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1398 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365459[365459]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365459[365459]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1399 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2502 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3585 +#, no-wrap +msgid "September 8, 2020" +msgstr "8 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1401 +#, no-wrap +msgid "13.0-CURRENT after changing arm64 AT_HWCAP definitions for man:elf_aux_info[3]." +msgstr "13.0-CURRENT после изменения определений AT_HWCAP для arm64 в man:elf_aux_info[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1402 +#, no-wrap +msgid "1300115" +msgstr "1300115" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1403 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365705[365705]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365705[365705]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1404 +#, no-wrap +msgid "September 14, 2020" +msgstr "14 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1406 +#, no-wrap +msgid "13.0-CURRENT after fixing man:crunchgen[1] application build with `WARNS=6`." +msgstr "13.0-CURRENT после исправления сборки приложения man:crunchgen[1] с `WARNS=6`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1407 +#, no-wrap +msgid "1300116" +msgstr "1300116" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1408 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366062[366062]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366062[366062]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1409 +#, no-wrap +msgid "September 22, 2020" +msgstr "22 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1411 +#, no-wrap +msgid "13.0-CURRENT after the introduction of the powerpc64le ARCH." +msgstr "13.0-CURRENT после введения архитектуры powerpc64le." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1412 +#, no-wrap +msgid "1300117" +msgstr "1300117" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1413 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366070[366070]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366070[366070]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1414 +#, no-wrap +msgid "September 23, 2020" +msgstr "23 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1416 +#, no-wrap +msgid "13.0-CURRENT after reimplementing `purgevfs` to iterate vnodes instead of the entire hash." +msgstr "13.0-CURRENT после перереализации `purgevfs` для итерации по vnodes вместо всего хэша." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1417 +#, no-wrap +msgid "1300118" +msgstr "1300118" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1418 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366374[366374]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366374[366374]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1419 +#, no-wrap +msgid "October 2, 2020" +msgstr "2 октября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1421 +#, no-wrap +msgid "13.0-CURRENT after adding backlight support and `dmi_*` functions to the linuxkpi." +msgstr "13.0-CURRENT после добавления поддержки подсветки и функций `dmi_*` в linuxkpi." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1422 +#, no-wrap +msgid "1300119" +msgstr "1300119" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1423 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366432[366432]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366432[366432]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1424 +#, no-wrap +msgid "October 6, 2020" +msgstr "6 октября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1426 +#, no-wrap +msgid "13.0-CURRENT after populating the acquire context field of a `ww_mutex` in the LinuxKPI." +msgstr "13.0-CURRENT после заполнения поля контекста получения `ww_mutex` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1427 +#, no-wrap +msgid "1300120" +msgstr "1300120" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1428 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366666[366666]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366666[366666]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1429 +#, no-wrap +msgid "October 13, 2020" +msgstr "13 октября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1431 +#, no-wrap +msgid "13.0-CURRENT after the fix to arm64 write-only mappings." +msgstr "13.0-CURRENT после исправления отображений только для записи на arm64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1432 +#, no-wrap +msgid "1300121" +msgstr "1300121" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1433 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366719[366719]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366719[366719]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1434 +#, no-wrap +msgid "October 15, 2020" +msgstr "15 октября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1436 +#, no-wrap +msgid "13.0-CURRENT after the addition of `VOP_EAGAIN`." +msgstr "13.0-CURRENT после добавления `VOP_EAGAIN`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1437 +#, no-wrap +msgid "1300122" +msgstr "1300122" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1438 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366782[366782]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366782[366782]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1439 +#, no-wrap +msgid "October 17, 2020" +msgstr "17 октября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1441 +#, no-wrap +msgid "13.0-CURRENT after the addition of `ptsname_r`." +msgstr "13.0-CURRENT после добавления `ptsname_r`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1442 +#, no-wrap +msgid "1300123" +msgstr "1300123" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1443 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366871[366871]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366871[366871]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1444 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2532 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3595 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3600 +#, no-wrap +msgid "October 20, 2020" +msgstr "20 октября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1446 +#, no-wrap +msgid "13.0-CURRENT after `VOP`, `VPTOCNP`, and `INACTIVE` changes." +msgstr "13.0-CURRENT после изменений `VOP`, `VPTOCNP` и `INACTIVE`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1447 +#, no-wrap +msgid "1300124" +msgstr "1300124" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1448 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367162[367162]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367162[367162]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1449 +#, no-wrap +msgid "October 30, 2020" +msgstr "30 октября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1451 +#, no-wrap +msgid "13.0-CURRENT after adding `cache_vop_mkdir` and renaming `cache_rename` to `cache_vop_rename`." +msgstr "13.0-CURRENT после добавления `cache_vop_mkdir` и переименования `cache_rename` в `cache_vop_rename`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1452 +#, no-wrap +msgid "1300125" +msgstr "1300125" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1453 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367347[367347]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367347[367347]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1454 +#, no-wrap +msgid "November 4, 2020" +msgstr "4 ноября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1456 +#, no-wrap +msgid "13.0-CURRENT after using a `rms` lock for teardown handling in `zfs`." +msgstr "13.0-CURRENT после использования блокировки `rms` для обработки демонтажа в `zfs`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1457 +#, no-wrap +msgid "1300126" +msgstr "1300126" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1458 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367384[367384]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367384[367384]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1459 +#, no-wrap +msgid "November 5, 2020" +msgstr "5 ноября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1461 +#, no-wrap +msgid "13.0-CURRENT after rationalizing per-cpu zones." +msgstr "13.0-CURRENT после оптимизации зон на каждый процессор." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1462 +#, no-wrap +msgid "1300127" +msgstr "1300127" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1463 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367432[367432]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367432[367432]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1464 +#, no-wrap +msgid "November 6, 2020" +msgstr "6 ноября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1466 +#, no-wrap +msgid "13.0-CURRENT after moving `malloc_type_internal` into `malloc_type`." +msgstr "13.0-CURRENT после перемещения `malloc_type_internal` в `malloc_type`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1467 +#, no-wrap +msgid "1300128" +msgstr "1300128" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1468 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367522[367522]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367522[367522]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1469 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2537 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3605 +#, no-wrap +msgid "November 9, 2020" +msgstr "9 ноября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1471 +#, no-wrap +msgid "13.0-CURRENT after LinuxKPI additions to implement ACPI bits required by `drm-kmod` in the base system." +msgstr "13.0-CURRENT после добавлений LinuxKPI для реализации частей ACPI, необходимых `drm-kmod` в базовой системе." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1472 +#, no-wrap +msgid "1300129" +msgstr "1300129" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1473 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367627[367627]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367627[367627]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1474 +#, no-wrap +msgid "November 12, 2020" +msgstr "12 ноября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1476 +#, no-wrap +msgid "13.0-CURRENT after retiring `malloc_last_fail`." +msgstr "13.0-CURRENT после удаления `malloc_last_fail`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1477 +#, no-wrap +msgid "1300130" +msgstr "1300130" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1478 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367777[367777]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367777[367777]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1479 +#, no-wrap +msgid "November 17, 2020" +msgstr "17 ноября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1481 +#, no-wrap +msgid "13.0-CURRENT after `p_pd` / `pwddesc` split from `p_fd` / filedesc." +msgstr "13.0-CURRENT после разделения `p_pd` / `pwddesc` и `p_fd` / filedesc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1482 +#, no-wrap +msgid "1300131" +msgstr "1300131" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1483 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/368417[368417]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/368417[368417]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1484 +#, no-wrap +msgid "December 7, 2020" +msgstr "7 декабря 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1486 +#, no-wrap +msgid "13.0-CURRENT after removal of crypto file descriptors." +msgstr "13.0-CURRENT после удаления криптографических файловых дескрипторов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1487 +#, no-wrap +msgid "1300132" +msgstr "1300132" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1488 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/368659[368659]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/368659[368659]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1489 +#, no-wrap +msgid "December 15, 2020" +msgstr "15 декабря 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1491 +#, no-wrap +msgid "13.0-CURRENT after improving handling of alternate settings in the USB stack." +msgstr "13.0-CURRENT после улучшения обработки альтернативных настроек в стеке USB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1492 +#, no-wrap +msgid "1300133" +msgstr "1300133" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1493 +#, no-wrap +msgid "gitref:2ed0c8d801f5f72dbde7a7d30135c1cc361a1e90[repository=\"src\",length=12]" +msgstr "gitref:2ed0c8d801f5f72dbde7a7d30135c1cc361a1e90[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1494 +#, no-wrap +msgid "December 23, 2020" +msgstr "23 декабря 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1496 +#, no-wrap +msgid "13.0-CURRENT after changing the internal API between the NFS and kernel RPC modules." +msgstr "13.0-CURRENT после изменения внутреннего API между модулями NFS и RPC ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1497 +#, no-wrap +msgid "1300134" +msgstr "1300134" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1498 +#, no-wrap +msgid "gitref:a84b0e94cdbf1a17a798ab7f77375aacb4d400ff[repository=\"src\",length=12]" +msgstr "gitref:a84b0e94cdbf1a17a798ab7f77375aacb4d400ff[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1499 +#, no-wrap +msgid "January 7, 2021" +msgstr "7 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1501 +#, no-wrap +msgid "13.0-CURRENT after factoring out the hardware-independent part of USB HID support to a new module." +msgstr "13.0-CURRENT после выделения аппаратно-независимой части поддержки USB HID в новый модуль." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1502 +#, no-wrap +msgid "1300135" +msgstr "1300135" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1503 +#, no-wrap +msgid "gitref:35a39dc5b34962081eeda8dbcf0b99a31585499b[repository=\"src\",length=12]" +msgstr "gitref:35a39dc5b34962081eeda8dbcf0b99a31585499b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1504 +#, no-wrap +msgid "January 12, 2021" +msgstr "12 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1506 +#, no-wrap +msgid "13.0-CURRENT after adding `kernel_fpu_begin`/`kernel_fpu_end` to the LinuxKPI." +msgstr "13.0-CURRENT после добавления `kernel_fpu_begin`/`kernel_fpu_end` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1507 +#, no-wrap +msgid "1300136" +msgstr "1300136" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1508 +#, no-wrap +msgid "gitref:72c551930be195b5ea982c1b16767f54388424f2[repository=\"src\",length=12]" +msgstr "gitref:72c551930be195b5ea982c1b16767f54388424f2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1509 +#, no-wrap +msgid "January 17, 2021" +msgstr "17 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1511 +#, no-wrap +msgid "13.0-CURRENT after reimplementing LinuxKPI's `irq_work` queue on top of fast `taskqueue`." +msgstr "13.0-CURRENT после переработки очереди `irq_work` в LinuxKPI на основе быстрой `taskqueue`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1512 +#, no-wrap +msgid "1300137" +msgstr "1300137" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1513 +#, no-wrap +msgid "gitref:010196adcfaf2bb610725394d40691874b4ff2af[repository=\"src\",length=12]" +msgstr "gitref:010196adcfaf2bb610725394d40691874b4ff2af[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1514 +#, no-wrap +msgid "January 30, 2021" +msgstr "30 января 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1516 +#, no-wrap +msgid "13.0-CURRENT after fixing a clang assertion when building the package:devel/onetbb[] port." +msgstr "13.0-CURRENT после исправления утверждения clang при сборке порта package:devel/onetbb[]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1517 +#, no-wrap +msgid "1300138" +msgstr "1300138" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1518 +#, no-wrap +msgid "gitref:dcee9964238b12a8e55917f292139f074b1a80b2[repository=\"src\",length=12]" +msgstr "gitref:dcee9964238b12a8e55917f292139f074b1a80b2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1519 +#, no-wrap +msgid "February 1, 2021" +msgstr "1 февраля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1521 +#, no-wrap +msgid "13.0-ALPHA3 after adding lockless symlink lookup to vfs cache." +msgstr "13.0-ALPHA3 после добавления блокировки при поиске символьных ссылок в кэше VFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1522 +#, no-wrap +msgid "1300139" +msgstr "1300139" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1523 +#, no-wrap +msgid "gitref:91a07ed50ffca4dfada3e7f1f050ea746c1bac66[repository=\"src\",length=12]" +msgstr "gitref:91a07ed50ffca4dfada3e7f1f050ea746c1bac66[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1524 +#, no-wrap +msgid "February 2, 2021" +msgstr "2 февраля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1526 +#, no-wrap +msgid "13.0-ALPHA3 after adding various LinuxKPI bits conflicting with drm-kmod." +msgstr "13.0-ALPHA3 после добавления различных компонентов LinuxKPI, конфликтующих с drm-kmod." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1527 +#, no-wrap +msgid "1300500" +msgstr "1300500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1528 +#, no-wrap +msgid "gitref:3c6a89748a01869c18955d5e3bfcdf35f6705d26[repository=\"src\",length=12]" +msgstr "gitref:3c6a89748a01869c18955d5e3bfcdf35f6705d26[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1529 +#, no-wrap +msgid "February 5, 2021" +msgstr "5 февраля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1531 +#, no-wrap +msgid "13.0-STABLE after releng/13.0 was branched." +msgstr "13.0-STABLE после ветвления releng/13.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1532 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1537 +#, no-wrap +msgid "1300501" +msgstr "1300501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1533 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1538 +#, no-wrap +msgid "gitref:c3f97dd75a1c294c4f60f42b604ee8bcda17be09[repository=\"src\",length=12]" +msgstr "gitref:c3f97dd75a1c294c4f60f42b604ee8bcda17be09[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1534 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1539 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1544 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1549 +#, no-wrap +msgid "April 23, 2021" +msgstr "23 апреля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1536 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1541 +#, no-wrap +msgid "13.0-STABLE after fixing rtld's `dl_iterate_phdr()`." +msgstr "13.0-STABLE после исправления `dl_iterate_phdr()` в rtld." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1542 +#, no-wrap +msgid "1300502" +msgstr "1300502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1543 +#, no-wrap +msgid "gitref:da6a8ccfa293c3c831fdde51169754fcb9587657[repository=\"src\",length=12]" +msgstr "gitref:da6a8ccfa293c3c831fdde51169754fcb9587657[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1546 +#, no-wrap +msgid "13.0-STABLE after implementing `atomic_dec_and_lock_irqsave()` in the LinuxKPI." +msgstr "13.0-STABLE после реализации `atomic_dec_and_lock_irqsave()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1547 +#, no-wrap +msgid "1300503" +msgstr "1300503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1548 +#, no-wrap +msgid "gitref:d60c6dc8f69b1264c7af5e2479ea94f000fd2c6d[repository=\"src\",length=12]" +msgstr "gitref:d60c6dc8f69b1264c7af5e2479ea94f000fd2c6d[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1551 +#, no-wrap +msgid "13.0-STABLE after changing the internal KAPI between the krpc and NFS." +msgstr "13.0-STABLE после изменения внутреннего KAPI между krpc и NFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1552 +#, no-wrap +msgid "1300504" +msgstr "1300504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1553 +#, no-wrap +msgid "gitref:fb34817c686cc130449325499870e36979899801[repository=\"src\",length=12]" +msgstr "gitref:fb34817c686cc130449325499870e36979899801[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1554 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2547 +#, no-wrap +msgid "April 30, 2021" +msgstr "30 апреля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1556 +#, no-wrap +msgid "13.0-STABLE after updating the LinuxKPI to accommodate the drm-kmod 5.5 update." +msgstr "13.0-STABLE после обновления LinuxKPI для поддержки обновления drm-kmod 5.5." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1557 +#, no-wrap +msgid "1300505" +msgstr "1300505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1558 +#, no-wrap +msgid "gitref:8f81f190a640e211dd814bdde7811982b9491fb0[repository=\"src\",length=12]" +msgstr "gitref:8f81f190a640e211dd814bdde7811982b9491fb0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1559 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2552 +#, no-wrap +msgid "May 10, 2021" +msgstr "10 мая 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1561 +#, no-wrap +msgid "13.0-STABLE after changing the internal KAPI between the nscl.ko and nfscommon.ko modules." +msgstr "13.0-STABLE после изменения внутреннего KAPI между модулями nscl.ko и nfscommon.ko." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1562 +#, no-wrap +msgid "1300506" +msgstr "1300506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1563 +#, no-wrap +msgid "gitref:e31579b8558db508dfc3f8fc276611a7c3c93aa1[repository=\"src\",length=12]" +msgstr "gitref:e31579b8558db508dfc3f8fc276611a7c3c93aa1[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1564 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1569 +#, no-wrap +msgid "June 2, 2021" +msgstr "2 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1566 +#, no-wrap +msgid "13.0-STABLE after adding TCP LRO support for VLAN and VxLAN." +msgstr "13.0-STABLE после добавления поддержки TCP LRO для VLAN и VxLAN." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1567 +#, no-wrap +msgid "1300507" +msgstr "1300507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1568 +#, no-wrap +msgid "gitref:c64d1bd7145b5d30c97d1cd99e584da529d95100[repository=\"src\",length=12]" +msgstr "gitref:c64d1bd7145b5d30c97d1cd99e584da529d95100[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1571 +#, no-wrap +msgid "13.0-STABLE after adding a new member to the man:EPOCH[9] tracker structure." +msgstr "13.0-STABLE после добавления нового элемента в структуру отслеживания man:EPOCH[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1572 +#, no-wrap +msgid "1300508" +msgstr "1300508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1573 +#, no-wrap +msgid "gitref:658f5eed38c35f3f7d6695110b7dae8dc94d12c7[repository=\"src\",length=12]" +msgstr "gitref:658f5eed38c35f3f7d6695110b7dae8dc94d12c7[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1576 +#, no-wrap +msgid "13.0-STABLE after adding macros for `might_lock_nested()` and `lockdep_(re/un/)pin_lock()` to the LinuxKPI." +msgstr "13.0-STABLE после добавления макросов для `might_lock_nested()` и `lockdep_(re/un/)pin_lock()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1577 +#, no-wrap +msgid "1300509" +msgstr "1300509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1578 +#, no-wrap +msgid "gitref:210349325af9920d1535ad76fa3b92847684f6e0[repository=\"src\",length=12]" +msgstr "gitref:210349325af9920d1535ad76fa3b92847684f6e0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1579 +#, no-wrap +msgid "June 14, 2021" +msgstr "14 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1581 +#, no-wrap +msgid "13.0-STABLE after adding a macro for `list_for_each_entry_lockless()` to the LinuxKPI." +msgstr "13.0-STABLE после добавления макроса `list_for_each_entry_lockless()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1582 +#, no-wrap +msgid "1300510" +msgstr "1300510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1583 +#, no-wrap +msgid "gitref:eb3397588e1b48043e166587ea454f60efea88d0[repository=\"src\",length=12]" +msgstr "gitref:eb3397588e1b48043e166587ea454f60efea88d0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1584 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2557 +#, no-wrap +msgid "June 26, 2021" +msgstr "26 июня 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1586 +#, no-wrap +msgid "13.0-STABLE after changing the internal KAPI between the krpc and nfsd modules." +msgstr "13.0-STABLE после изменения внутреннего KAPI между модулями krpc и nfsd." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1587 +#, no-wrap +msgid "1300511" +msgstr "1300511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1588 +#, no-wrap +msgid "gitref:2622570aeb3d162812d72f7ef192c322cd8b73ef[repository=\"src\",length=12]" +msgstr "gitref:2622570aeb3d162812d72f7ef192c322cd8b73ef[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1589 +#, no-wrap +msgid "July 7, 2021" +msgstr "7 июля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1591 +#, no-wrap +msgid "13.0-STABLE after changing `softdep_prelink()` to only do sync if another thread changed the vnode metadata since previous `prelink`." +msgstr "13.0-STABLE после изменения `softdep_prelink()` для выполнения синхронизации только в случае, если другой поток изменил метаданные vnode с момента предыдущего `prelink`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1592 +#, no-wrap +msgid "1300512" +msgstr "1300512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1593 +#, no-wrap +msgid "gitref:f72db34d2295080f57a283858125aa906c0d409e[repository=\"src\",length=12]" +msgstr "gitref:f72db34d2295080f57a283858125aa906c0d409e[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1594 +#, no-wrap +msgid "July 18, 2021" +msgstr "18 июля 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1596 +#, no-wrap +msgid "13.0-STABLE after various merges to LinuxKPI, OFED, net80211, and drivers." +msgstr "13.0-STABLE после различных слияний LinuxKPI, OFED, net80211 и драйверов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1597 +#, no-wrap +msgid "1300513" +msgstr "1300513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1598 +#, no-wrap +msgid "gitref:af732203b8f7f006927528db5497f5cbc4c4742a[repository=\"src\",length=12]" +msgstr "gitref:af732203b8f7f006927528db5497f5cbc4c4742a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1601 +#, no-wrap +msgid "13.0-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-12.0.1-0-gfed41342a82f, a.k.a. 12.0.1 release." +msgstr "13.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-12.0.1-0-gfed41342a82f, также известной как релиз 12.0.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1602 +#, no-wrap +msgid "1300514" +msgstr "1300514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1603 +#, no-wrap +msgid "gitref:53d162819c20e5cf267cb91f7a19940e96e8bec4[repository=\"src\",length=12]" +msgstr "gitref:53d162819c20e5cf267cb91f7a19940e96e8bec4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1604 +#, no-wrap +msgid "August 3, 2021" +msgstr "3 августа 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1606 +#, no-wrap +msgid "Incompatible changes to the KBI of internal interfaces between NFS requires rebuilding modules." +msgstr "Несовместимые изменения в KBI внутренних интерфейсов между NFS требуют пересборки модулей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1607 +#, no-wrap +msgid "1300515" +msgstr "1300515" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1608 +#, no-wrap +msgid "gitref:0437d10e359ea1cbefff8d17cd18ca491dbbd5d7[repository=\"src\",length=12]" +msgstr "gitref:0437d10e359ea1cbefff8d17cd18ca491dbbd5d7[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1609 +#, no-wrap +msgid "September 22, 2021" +msgstr "22 сентября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1611 +#, no-wrap +msgid "13.0-STABLE returning to 13.0 KBI for linuxkpi." +msgstr "13.0-STABLE возвращается к KBI 13.0 для linuxkpi." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1612 +#, no-wrap +msgid "1300518" +msgstr "1300518" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1613 +#, no-wrap +msgid "gitref:a017868e281874261a560ba1e3069b4e14b7483e[repository=\"src\",length=12]" +msgstr "gitref:a017868e281874261a560ba1e3069b4e14b7483e[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1614 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1619 +#, no-wrap +msgid "October 21, 2021" +msgstr "21 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1616 +#, no-wrap +msgid "13.0-STABLE after adding `crypto_cursor_segment()`." +msgstr "13.0-STABLE после добавления `crypto_cursor_segment()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1617 +#, no-wrap +msgid "1300519" +msgstr "1300519" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1618 +#, no-wrap +msgid "gitref:fe2827f1678b8ff0baf62a1529b2cc121a25b090[repository=\"src\",length=12]" +msgstr "gitref:fe2827f1678b8ff0baf62a1529b2cc121a25b090[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1621 +#, no-wrap +msgid "13.0-STABLE after extending the AES-CCM and Chacha20-Poly1305 ciphers in OCF to support multiple nonce lengths." +msgstr "13.0-STABLE после расширения шифров AES-CCM и Chacha20-Poly1305 в OCF для поддержки нескольких длин одноразовых номеров." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1622 +#, no-wrap +msgid "1300521" +msgstr "1300521" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1623 +#, no-wrap +msgid "gitref:29745cf91cfc22afa94da0ce43e07a6dc377f631[repository=\"src\",length=12]" +msgstr "gitref:29745cf91cfc22afa94da0ce43e07a6dc377f631[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1624 +#, no-wrap +msgid "November 19, 2021" +msgstr "19 ноября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1626 +#, no-wrap +msgid "13.0-STABLE after various merges to LinuxKPI and net80211." +msgstr "13.0-STABLE после различных слияний с LinuxKPI и net80211." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1627 +#, no-wrap +msgid "1300522" +msgstr "1300522" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1628 +#, no-wrap +msgid "gitref:0c8684ae20019b63c6672cc9fa40e1426708b007[repository=\"src\",length=12]" +msgstr "gitref:0c8684ae20019b63c6672cc9fa40e1426708b007[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1629 +#, no-wrap +msgid "November 24, 2021" +msgstr "24 ноября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1631 +#, no-wrap +msgid "13.0-STABLE after changing the internal KAPI between the NFS modules." +msgstr "13.0-STABLE после изменения внутреннего KAPI между модулями NFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1633 +#, no-wrap +msgid "gitref:7224d4125ab57bc1c4c799a6c286be42f8d37a83[repository=\"src\",length=12]" +msgstr "gitref:7224d4125ab57bc1c4c799a6c286be42f8d37a83[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1634 +#, no-wrap +msgid "December 6, 2021" +msgstr "6 декабря 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1636 +#, no-wrap +msgid "13.0-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-13.0.0-0-gd7b669b3a303, a.k.a. 13.0.0 release." +msgstr "13.0-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-13.0.0-0-gd7b669b3a303, также известной как релиз 13.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1637 +#, no-wrap +msgid "1300523" +msgstr "1300523" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1638 +#, no-wrap +msgid "gitref:690bcf605d84283c1f9d254885a3cac69c5e80a6[repository=\"src\",length=12]" +msgstr "gitref:690bcf605d84283c1f9d254885a3cac69c5e80a6[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1639 +#, no-wrap +msgid "December 18, 2021" +msgstr "18 декабря 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1641 +#, no-wrap +msgid "13.0-STABLE after adding two arguments to man:VOP_ALLOCATE[9]." +msgstr "13.0-STABLE после добавления двух аргументов в man:VOP_ALLOCATE[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1642 +#, no-wrap +msgid "1300524" +msgstr "1300524" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1643 +#, no-wrap +msgid "gitref:dc4114875ef10618002d3eeb46f09dc42da56b30[repository=\"src\",length=12]" +msgstr "gitref:dc4114875ef10618002d3eeb46f09dc42da56b30[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1644 +#, no-wrap +msgid "January 14, 2022" +msgstr "14 января 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1646 +#, no-wrap +msgid "13.0-STABLE after making the CPU_SET macros compatible with glibc." +msgstr "13.0-STABLE после обеспечения совместимости макросов CPU_SET с glibc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1647 +#, no-wrap +msgid "1300525" +msgstr "1300525" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1648 +#, no-wrap +msgid "gitref:dee0854a009cde7dcdb16ba39754237737022c8a[repository=\"src\",length=12]" +msgstr "gitref:dee0854a009cde7dcdb16ba39754237737022c8a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1649 +#, no-wrap +msgid "January 22, 2022" +msgstr "22 января 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1651 +#, no-wrap +msgid "13.0-STABLE after multiple LinuxKPI changes required by drm-kmod." +msgstr "13.0-STABLE после множества изменений LinuxKPI, необходимых для drm-kmod." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1652 +#, no-wrap +msgid "1300526" +msgstr "1300526" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1653 +#, no-wrap +msgid "gitref:c39ff2415cb965b729fd16f9eae91e712313877b[repository=\"src\",length=12]" +msgstr "gitref:c39ff2415cb965b729fd16f9eae91e712313877b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1654 +#, no-wrap +msgid "February 20, 2022" +msgstr "20 февраля 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1656 +#, no-wrap +msgid "13.0-STABLE after multiple LinuxKPI changes overlapping but not conflicting with drm-kmod." +msgstr "13.0-STABLE после нескольких изменений LinuxKPI, пересекающихся, но не конфликтующих с drm-kmod." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1657 +#, no-wrap +msgid "1301000" +msgstr "1301000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1658 +#, no-wrap +msgid "gitref:ad329796bdb29c69bce610ad332d08257d7157ac[repository=\"src\",length=12]" +msgstr "gitref:ad329796bdb29c69bce610ad332d08257d7157ac[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1659 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1664 +#, no-wrap +msgid "March 10, 2022" +msgstr "10 марта 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1661 +#, no-wrap +msgid "releng/13.1 branched." +msgstr "Ветка releng/13.1 создана." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1662 +#, no-wrap +msgid "1301500" +msgstr "1301500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1663 +#, no-wrap +msgid "gitref:08523c8c63bbcdcd3f0d36787a544817cb5b8282[repository=\"src\",length=12]" +msgstr "gitref:08523c8c63bbcdcd3f0d36787a544817cb5b8282[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1666 +#, no-wrap +msgid "13.1-STABLE after releng/13.1 branched." +msgstr "13.1-STABLE после ветвления releng/13.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1667 +#, no-wrap +msgid "1301501" +msgstr "1301501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1668 +#, no-wrap +msgid "gitref:6663718bb49635deac3f5dc55fa6f0f7cba593ba[repository=\"src\",length=12]" +msgstr "gitref:6663718bb49635deac3f5dc55fa6f0f7cba593ba[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1669 +#, no-wrap +msgid "March 27, 2022" +msgstr "27 марта 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1671 +#, no-wrap +msgid "13.1-STABLE after various merges to LinuxKPI and net80211." +msgstr "13.1-STABLE после различных слияний с LinuxKPI и net80211." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1672 +#, no-wrap +msgid "1301502" +msgstr "1301502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1673 +#, no-wrap +msgid "gitref:2278cf4e48e7679b0a60008a83c764fe852174b2[repository=\"src\",length=12]" +msgstr "gitref:2278cf4e48e7679b0a60008a83c764fe852174b2[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1674 +#, no-wrap +msgid "April 27, 2022" +msgstr "27 апреля 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1676 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1691 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1701 +#, no-wrap +msgid "13.1-STABLE after various merges to LinuxKPI." +msgstr "13.1-STABLE после различных слияний с LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1677 +#, no-wrap +msgid "1301503" +msgstr "1301503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1678 +#, no-wrap +msgid "gitref:b2aa64d05bd8b04a1bdb63f2a5f9de39c600b463[repository=\"src\",length=12]" +msgstr "gitref:b2aa64d05bd8b04a1bdb63f2a5f9de39c600b463[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1679 +#, no-wrap +msgid "May 19, 2022" +msgstr "19 мая 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1681 +#, no-wrap +msgid "13.1-STABLE after adding alternate DRIVER_MODULE macros without a devclass argument." +msgstr "13.1-STABLE после добавления альтернативных макросов DRIVER_MODULE без аргумента devclass." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1682 +#, no-wrap +msgid "1301504" +msgstr "1301504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1683 +#, no-wrap +msgid "gitref:a13b6fc61908fd6afa460b88f94e4a67be74bb9a[repository=\"src\",length=12]" +msgstr "gitref:a13b6fc61908fd6afa460b88f94e4a67be74bb9a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1684 +#, no-wrap +msgid "June 4, 2022" +msgstr "4 июня 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1686 +#, no-wrap +msgid "13.1-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14.0.3-0-g1f9140064dfb, a.k.a. 14.0.3 release." +msgstr "13.1-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии llvmorg-14.0.3-0-g1f9140064dfb, также известной как релиз 14.0.3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1687 +#, no-wrap +msgid "1301505" +msgstr "1301505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1688 +#, no-wrap +msgid "gitref:6f93a76ffeabf7d4488edc73a0cca01436c2903b[repository=\"src\",length=12]" +msgstr "gitref:6f93a76ffeabf7d4488edc73a0cca01436c2903b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1689 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1699 +#, no-wrap +msgid "June 21, 2022" +msgstr "21 июня 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1692 +#, no-wrap +msgid "1301506" +msgstr "1301506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1693 +#, no-wrap +msgid "gitref:8e6cfc632cf6f9fc906df9d825649443939b55c6[repository=\"src\",length=12]" +msgstr "gitref:8e6cfc632cf6f9fc906df9d825649443939b55c6[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1694 +#, no-wrap +msgid "July 13, 2022" +msgstr "13 июля 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1696 +#, no-wrap +msgid "13.1-STABLE after adding and ." +msgstr "13.1-STABLE после добавления и ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1697 +#, no-wrap +msgid "1301507" +msgstr "1301507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1698 +#, no-wrap +msgid "gitref:9cbba5950123f3afedcc5f24c43956e7a26f22f4[repository=\"src\",length=12]" +msgstr "gitref:9cbba5950123f3afedcc5f24c43956e7a26f22f4[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1702 +#, no-wrap +msgid "1301508" +msgstr "1301508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1703 +#, no-wrap +msgid "gitref:83ac15a799e348c391951f5877feecd4089bab80[repository=\"src\",length=12]" +msgstr "gitref:83ac15a799e348c391951f5877feecd4089bab80[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1706 +#, no-wrap +msgid "13.1-STABLE after various merges to LinuxKPI, and for de-macrofying pause()." +msgstr "13.1-STABLE после различных слияний в LinuxKPI и для удаления макросов из pause()." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1707 +#, no-wrap +msgid "1301509" +msgstr "1301509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1708 +#, no-wrap +msgid "gitref:baa97013121a915057ee54dfcb2cb87e541f7d7f[repository=\"src\",length=12]" +msgstr "gitref:baa97013121a915057ee54dfcb2cb87e541f7d7f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1709 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2602 +#, no-wrap +msgid "October 19, 2022" +msgstr "19 октября 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1711 +#, no-wrap +msgid "13.1-STABLE after introduction of v2 of TX Queue Select Functionality." +msgstr "13.1-STABLE после введения версии 2 функциональности выбора очереди TX." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1712 +#, no-wrap +msgid "1301510" +msgstr "1301510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1713 +#, no-wrap +msgid "gitref:6820a0512fa6616ee1da46cb0075da80478776f0[repository=\"src\",length=12]" +msgstr "gitref:6820a0512fa6616ee1da46cb0075da80478776f0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1714 +#, no-wrap +msgid "December 8, 2022" +msgstr "8 декабря 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1716 +#, no-wrap +msgid "13.1-STABLE after LinuxKPI dmi_matches() fixes." +msgstr "13.1-STABLE после исправлений LinuxKPI dmi_matches()." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1717 +#, no-wrap +msgid "1301511" +msgstr "1301511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1718 +#, no-wrap +msgid "gitref:17333d92643d998d1c6a2dc5f6b1508b6507ad31[repository=\"src\",length=12]" +msgstr "gitref:17333d92643d998d1c6a2dc5f6b1508b6507ad31[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1719 +#, no-wrap +msgid "December 17, 2022" +msgstr "17 декабря 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1721 +#, no-wrap +msgid "13.1-STABLE after adding a new rc: `machine_id` to generate `/etc/machine-id`." +msgstr "13.1-STABLE после добавления нового rc: `machine_id` для генерации `/etc/machine-id`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1722 +#, no-wrap +msgid "1302500" +msgstr "1302500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1723 +#, no-wrap +msgid "gitref:c243de11cf7c4bb3d67bbc1655b149037e5b04f1[repository=\"src\",length=12]" +msgstr "gitref:c243de11cf7c4bb3d67bbc1655b149037e5b04f1[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1724 +#, no-wrap +msgid "February 9, 2023" +msgstr "9 февраля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1726 +#, no-wrap +msgid "13.2-STABLE after releng/13.2 was branched." +msgstr "13.2-STABLE после ветвления releng/13.2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1727 +#, no-wrap +msgid "1302501" +msgstr "1302501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1728 +#, no-wrap +msgid "gitref:e3068d2655e2aea3e0b462a7298a68d344769ec6[repository=\"src\",length=12]" +msgstr "gitref:e3068d2655e2aea3e0b462a7298a68d344769ec6[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1729 +#, no-wrap +msgid "February 16, 2023" +msgstr "16 февраля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1731 +#, no-wrap +msgid "13.2-STABLE after adding `totalram_pages()` to the LinuxKPI." +msgstr "13.2-STABLE после добавления `totalram_pages()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1732 +#, no-wrap +msgid "1302502" +msgstr "1302502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1733 +#, no-wrap +msgid "gitref:5ca371f4f536f9ee9d6c9fb178bf1f7f6de33216[repository=\"src\",length=12]" +msgstr "gitref:5ca371f4f536f9ee9d6c9fb178bf1f7f6de33216[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1734 +#, no-wrap +msgid "February 17, 2023" +msgstr "17 февраля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1736 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1741 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1756 +#, no-wrap +msgid "13.2-STABLE after various merges to LinuxKPI." +msgstr "13.2-STABLE после различных слияний с LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1737 +#, no-wrap +msgid "1302503" +msgstr "1302503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1738 +#, no-wrap +msgid "gitref:aaca677fee21f202db4bb974fc5056f4dcbbb598[repository=\"src\",length=12]" +msgstr "gitref:aaca677fee21f202db4bb974fc5056f4dcbbb598[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1739 +#, no-wrap +msgid "February 21, 2023" +msgstr "21 февраля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1742 +#, no-wrap +msgid "1302504" +msgstr "1302504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1743 +#, no-wrap +msgid "gitref:d6852eed98ed32ad51120a22aa1ebdf0601917b3[repository=\"src\",length=12]" +msgstr "gitref:d6852eed98ed32ad51120a22aa1ebdf0601917b3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1744 +#, no-wrap +msgid "March 12, 2023" +msgstr "12 марта 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1746 +#, no-wrap +msgid "13.2-STABLE after merging machine-id into `hostid_save`." +msgstr "13.2-STABLE после объединения machine-id в `hostid_save`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1747 +#, no-wrap +msgid "1302505" +msgstr "1302505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1748 +#, no-wrap +msgid "gitref:85e32e957fcca01d50e29e543584909795c1acef[repository=\"src\",length=12]" +msgstr "gitref:85e32e957fcca01d50e29e543584909795c1acef[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1749 +#, no-wrap +msgid "April 9, 2023" +msgstr "9 апреля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1751 +#, no-wrap +msgid "13.2-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15.0.7-0-g8dfdcc7b7bf6, a.k.a. 15.0.7 release." +msgstr "13.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-15.0.7-0-g8dfdcc7b7bf6, также известного как релиз 15.0.7." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1752 +#, no-wrap +msgid "1302506" +msgstr "1302506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1753 +#, no-wrap +msgid "gitref:e982b1cf1fe1dc0b84dc24f03d1c21e3fe6bdef3[repository=\"src\",length=12]" +msgstr "gitref:e982b1cf1fe1dc0b84dc24f03d1c21e3fe6bdef3[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1754 +#, no-wrap +msgid "June 26, 2023" +msgstr "26 июня 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1757 +#, no-wrap +msgid "1302507" +msgstr "1302507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1758 +#, no-wrap +msgid "gitref:b2acc21dfbd6fab28b1715c775b43d4914b75e0c[repository=\"src\",length=12]" +msgstr "gitref:b2acc21dfbd6fab28b1715c775b43d4914b75e0c[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1759 +#, no-wrap +msgid "July 23, 2023" +msgstr "23 июля 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1761 +#, no-wrap +msgid "13.2-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-16.0.6-0-g7cbf1a259152, a.k.a. 16.0.6 release." +msgstr "13.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-16.0.6-0-g7cbf1a259152, также известного как релиз 16.0.6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1762 +#, no-wrap +msgid "1302508" +msgstr "1302508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1763 +#, no-wrap +msgid "gitref:21ccba43f511cc4089899619b5a85e6d83a200dc[repository=\"src\",length=12]" +msgstr "gitref:21ccba43f511cc4089899619b5a85e6d83a200dc[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1764 +#, no-wrap +msgid "September 6, 2023" +msgstr "6 сентября 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1766 +#, no-wrap +msgid "13.2-STABLE after ptrace started clearing TDB_BORN during PT_DETACH." +msgstr "13.2-STABLE после того, как ptrace начал очищать TDB_BORN во время PT_DETACH." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1767 +#, no-wrap +msgid "1302509" +msgstr "1302509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1768 +#, no-wrap +msgid "gitref:faedeaf7377ba7253c281cf3315b17e0cb979075[repository=\"src\",length=12]" +msgstr "gitref:faedeaf7377ba7253c281cf3315b17e0cb979075[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1769 +#, no-wrap +msgid "December 2, 2023" +msgstr "2 декабря 2023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1771 +#, no-wrap +msgid "13.2-STABLE after adding a new VFS function called `vfs_exjail_clone()`, which will be used by the ZFS module." +msgstr "13.2-STABLE после добавления новой функции VFS под названием `vfs_exjail_clone()`, которая будет использоваться модулем ZFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1772 +#, no-wrap +msgid "1302510" +msgstr "1302510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1773 +#, no-wrap +msgid "gitref:45758665781dd63dfa38bcb646d4f36b0a6a104f[repository=\"src\",length=12]" +msgstr "gitref:45758665781dd63dfa38bcb646d4f36b0a6a104f[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1776 +#, no-wrap +msgid "13.2-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-17.0.6-0-g6009708b4367, a.k.a. 17.0.6 release." +msgstr "13.2-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-17.0.6-0-g6009708b4367, также известного как релиз 17.0.6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1777 +#, no-wrap +msgid "1303001" +msgstr "1303001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1778 +#, no-wrap +msgid "gitref:a75a3d7afcc88dc0bc9b2797cce983056acadf10[repository=\"src\",length=12]" +msgstr "gitref:a75a3d7afcc88dc0bc9b2797cce983056acadf10[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1779 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1784 +#, no-wrap +msgid "February 19, 2024" +msgstr "19 февраля 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1781 +#, no-wrap +msgid "13.3-BETA3 after changing net80211 `struct ieee80211vap` internals." +msgstr "13.3-BETA3 после изменения внутренней структуры `struct ieee80211vap` в net80211." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1782 +#, no-wrap +msgid "1303501" +msgstr "1303501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1783 +#, no-wrap +msgid "gitref:a7e1fc7f620d3341549c1380f550aaafbdb45622[repository=\"src\",length=12]" +msgstr "gitref:a7e1fc7f620d3341549c1380f550aaafbdb45622[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1786 +#, no-wrap +msgid "13.3-STABLE after changing net80211 `struct ieee80211vap` internals." +msgstr "13.3-STABLE после изменения внутренней структуры `struct ieee80211vap` в net80211." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1787 +#, no-wrap +msgid "1303502" +msgstr "1303502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1788 +#, no-wrap +msgid "gitref:07839ae99c06fcbebd5da6ead49c160c32046542[repository=\"src\",length=12]" +msgstr "gitref:07839ae99c06fcbebd5da6ead49c160c32046542[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1791 +#, no-wrap +msgid "13.3-STABLE after fixing a clang assertion or crash when building recent boost libraries." +msgstr "13.3-STABLE после исправления утверждения или падения clang при сборке последних библиотек boost." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1792 +#, no-wrap +msgid "1303503" +msgstr "1303503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1793 +#, no-wrap +msgid "gitref:055e875e6077ed1eb2256c3ab5de59a3f6fbce18[repository=\"src\",length=12]" +msgstr "gitref:055e875e6077ed1eb2256c3ab5de59a3f6fbce18[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1796 +#, no-wrap +msgid "13.3-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-18.1.3-0-gc13b7485b879, a.k.a. 18.1.3 release." +msgstr "13.3-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-18.1.3-0-gc13b7485b879, также известного как релиз 18.1.3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1797 +#, no-wrap +msgid "1304500" +msgstr "1304500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1798 +#, no-wrap +msgid "gitref:77064cddb94875dc8d9693a93ac25019b7f62c59[repository=\"src\",length=12]" +msgstr "gitref:77064cddb94875dc8d9693a93ac25019b7f62c59[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1799 +#, no-wrap +msgid "August 1, 2024" +msgstr "1 августа 2024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1801 +#, no-wrap +msgid "13.4-STABLE after it was renamed from 13.4-PRERELEASE." +msgstr "13.4-STABLE после переименования из 13.4-PRERELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1802 +#, no-wrap +msgid "1304501" +msgstr "1304501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1803 +#, no-wrap +msgid "gitref:b802ab153dd24f468b9bfe33a96c61408e0d0565[repository=\"src\",length=12]" +msgstr "gitref:b802ab153dd24f468b9bfe33a96c61408e0d0565[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1806 +#, no-wrap +msgid "13.4-STABLE after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-19.1.4-0-gaadaa00de76e, a.k.a. 19.1.4 release." +msgstr "13.4-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-19.1.4-0-gaadaa00de76e, также известного как релиз 19.1.4." + +#. Template: +#. |13XXXXX +#. |gitref:XXXXXXXX[repository="src",length=12] +#. |October 30, 2021 +#. |13.0-STABLE after XXXXXX. +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1818 +#, no-wrap +msgid "FreeBSD 12 Versions" +msgstr "Версии FreeBSD 12" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1821 +#, no-wrap +msgid "FreeBSD 12 `__FreeBSD_version` Values" +msgstr "FreeBSD 12 Значения `__FreeBSD_version`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1830 +#, no-wrap +msgid "1200000" +msgstr "1200000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1831 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/302409[302409]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/302409[302409]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1832 +#, no-wrap +msgid "July 7, 2016" +msgstr "7 июля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1834 +#, no-wrap +msgid "12.0-CURRENT." +msgstr "12.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1835 +#, no-wrap +msgid "1200001" +msgstr "1200001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1836 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/302628[302628]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/302628[302628]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1837 +#, no-wrap +msgid "July 12, 2016" +msgstr "12 июля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1839 +#, no-wrap +msgid "12.0-CURRENT after removing collation from `[a-z]`-type ranges." +msgstr "12.0-CURRENT после удаления правил сортировки из диапазонов типа `[a-z]`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1840 +#, no-wrap +msgid "1200002" +msgstr "1200002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1841 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304395[304395]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304395[304395]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1842 +#, no-wrap +msgid "August 18, 2016" +msgstr "18 августа 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1844 +#, no-wrap +msgid "12.0-CURRENT after removing unused and obsolete `openbsd_poll` system call." +msgstr "12.0-CURRENT после удаления неиспользуемого и устаревшего системного вызова `openbsd_poll`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1845 +#, no-wrap +msgid "1200003" +msgstr "1200003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1846 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304608[304608]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304608[304608]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1847 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3255 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4218 +#, no-wrap +msgid "August 22, 2016" +msgstr "22 августа 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1849 +#, no-wrap +msgid "12.0-CURRENT after adding C++11 `thread_local` support in rev link:https://svnweb.freebsd.org/changeset/base/303795[303795]." +msgstr "12.0-CURRENT после добавления поддержки `thread_local` из C++11 в ревизии link:https://svnweb.freebsd.org/changeset/base/303795[303795]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1850 +#, no-wrap +msgid "1200004" +msgstr "1200004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1851 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304752[304752]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304752[304752]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1852 +#, no-wrap +msgid "August 24, 2016" +msgstr "24 августа 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1854 +#, no-wrap +msgid "12.0-CURRENT after fixing LC*MASK for man:newlocale[3] and man:querylocale[3] (rev link:https://svnweb.freebsd.org/changeset/base/304703[304703])." +msgstr "12.0-CURRENT после исправления LC*MASK для man:newlocale[3] и man:querylocale[3] (rev link:https://svnweb.freebsd.org/changeset/base/304703[304703])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1855 +#, no-wrap +msgid "1200005" +msgstr "1200005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1856 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304789[304789]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304789[304789]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1857 +#, no-wrap +msgid "August 25, 2016" +msgstr "25 августа 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1859 +#, no-wrap +msgid "12.0-CURRENT after changing some ioctl interfaces in rev link:https://svnweb.freebsd.org/changeset/base/304787[304787] between the iSCSI userspace programs and the kernel." +msgstr "12.0-CURRENT после изменения некоторых интерфейсов ioctl в ревизии link:https://svnweb.freebsd.org/changeset/base/304787[304787] между пользовательскими программами iSCSI и ядром." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1860 +#, no-wrap +msgid "1200006" +msgstr "1200006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1861 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/305256[305256]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/305256[305256]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1862 +#, no-wrap +msgid "September 1, 2016" +msgstr "1 сентября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1864 +#, no-wrap +msgid "12.0-CURRENT after man:crunchgen[1] META_MODE fix in link:https://svnweb.freebsd.org/changeset/base/305254[305254]." +msgstr "12.0-CURRENT после исправления META_MODE в man:crunchgen[1] в link:https://svnweb.freebsd.org/changeset/base/305254[305254]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1865 +#, no-wrap +msgid "1200007" +msgstr "1200007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1866 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/305421[305421]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/305421[305421]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1867 +#, no-wrap +msgid "September 5, 2016" +msgstr "5 сентября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1869 +#, no-wrap +msgid "12.0-CURRENT after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]." +msgstr "12.0-CURRENT после разрешения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1870 +#, no-wrap +msgid "1200008" +msgstr "1200008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1871 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/305833[305833]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/305833[305833]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1872 +#, no-wrap +msgid "September 15, 2016" +msgstr "15 сентября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1874 +#, no-wrap +msgid "12.0-CURRENT after removing the 4.3BSD compatible macro `m_copy()` in link:https://svnweb.freebsd.org/changeset/base/305824[305824]." +msgstr "12.0-CURRENT после удаления совместимого с 4.3BSD макроса `m_copy()` в link:https://svnweb.freebsd.org/changeset/base/305824[305824]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1875 +#, no-wrap +msgid "1200009" +msgstr "1200009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1876 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/306077[306077]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/306077[306077]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1877 +#, no-wrap +msgid "September 21, 2016" +msgstr "21 сентября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1879 +#, no-wrap +msgid "12.0-CURRENT after removing `bio_taskqueue()` in link:https://svnweb.freebsd.org/changeset/base/305988[305988]." +msgstr "12.0-CURRENT после удаления `bio_taskqueue()` в link:https://svnweb.freebsd.org/changeset/base/305988[305988]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1880 +#, no-wrap +msgid "1200010" +msgstr "1200010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1881 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/306276[306276]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/306276[306276]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1882 +#, no-wrap +msgid "September 23, 2016" +msgstr "23 сентября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1884 +#, no-wrap +msgid "12.0-CURRENT after mounting man:msdosfs[5] with `longnames` support by default." +msgstr "12.0-CURRENT после монтирования man:msdosfs[5] с поддержкой `longnames` по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1885 +#, no-wrap +msgid "1200011" +msgstr "1200011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1886 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/306556[306556]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/306556[306556]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1887 +#, no-wrap +msgid "October 1, 2016" +msgstr "1 октября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1889 +#, no-wrap +msgid "12.0-CURRENT after adding `fb_memattr` field to `fb_info` in link:https://svnweb.freebsd.org/changeset/base/306555[306555]." +msgstr "12.0-CURRENT после добавления поля `fb_memattr` в `fb_info` в link:https://svnweb.freebsd.org/changeset/base/306555[306555]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1890 +#, no-wrap +msgid "1200012" +msgstr "1200012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1891 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/306592[306592]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/306592[306592]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1892 +#, no-wrap +msgid "October 2, 2016" +msgstr "2 октября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1894 +#, no-wrap +msgid "12.0-CURRENT after man:net80211[4] changes (rev link:https://svnweb.freebsd.org/changeset/base/306590[306590], link:https://svnweb.freebsd.org/changeset/base/306591[306591])." +msgstr "12.0-CURRENT после изменений в man:net80211[4] (rev link:https://svnweb.freebsd.org/changeset/base/306590[306590], link:https://svnweb.freebsd.org/changeset/base/306591[306591])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1895 +#, no-wrap +msgid "1200013" +msgstr "1200013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1896 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/307140[307140]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/307140[307140]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1897 +#, no-wrap +msgid "October 12, 2016" +msgstr "12 октября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1899 +#, no-wrap +msgid "12.0-CURRENT after installing header files required development with `libzfs_core`." +msgstr "12.0-CURRENT после установки заголовочных файлов, необходимых для разработки с `libzfs_core`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1900 +#, no-wrap +msgid "1200014" +msgstr "1200014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1901 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/307529[307529]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/307529[307529]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1902 +#, no-wrap +msgid "October 17, 2016" +msgstr "17 октября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1904 +#, no-wrap +msgid "12.0-CURRENT after merging common code in man:rtwn[4] and man:urtwn[4], and adding support for 802.11ac devices." +msgstr "12.0-CURRENT после объединения общего кода в man:rtwn[4] и man:urtwn[4], а также добавления поддержки устройств 802.11ac." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1905 +#, no-wrap +msgid "1200015" +msgstr "1200015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1906 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/308874[308874]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/308874[308874]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1907 +#, no-wrap +msgid "November 20, 2016" +msgstr "20 ноября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1909 +#, no-wrap +msgid "12.0-CURRENT after some ABI change for unbreaking powerpc." +msgstr "12.0-CURRENT после некоторого изменения ABI для исправления powerpc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1910 +#, no-wrap +msgid "1200016" +msgstr "1200016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1911 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/309017[309017]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/309017[309017]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1912 +#, no-wrap +msgid "November 22, 2016" +msgstr "22 ноября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1914 +#, no-wrap +msgid "12.0-CURRENT after removing `PG_CACHED`-related fields from `vmmeter`." +msgstr "12.0-CURRENT после удаления полей, связанных с `PG_CACHED`, из `vmmeter`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1915 +#, no-wrap +msgid "1200017" +msgstr "1200017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1916 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/309124[309124]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/309124[309124]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1917 +#, no-wrap +msgid "November 25, 2016" +msgstr "25 ноября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1919 +#, no-wrap +msgid "12.0-CURRENT after upgrading copies of clang, llvm, lldb, compiler-rt and libc++ to 3.9.0 release, and adding lld 3.9.0." +msgstr "12.0-CURRENT после обновления копий clang, llvm, lldb, compiler-rt и libc++ до версии 3.9.0 и добавления lld 3.9.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1920 +#, no-wrap +msgid "1200018" +msgstr "1200018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1921 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/309676[309676]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/309676[309676]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1922 +#, no-wrap +msgid "December 7, 2016" +msgstr "7 декабря 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1924 +#, no-wrap +msgid "12.0-CURRENT after adding the `ki_moretdname` member to `struct kinfo_proc` and `struct kinfo_proc32` to export the whole thread name to user-space utilities." +msgstr "12.0-CURRENT после добавления члена `ki_moretdname` в структуры `struct kinfo_proc` и `struct kinfo_proc32` для экспорта полного имени потока в пользовательские утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1925 +#, no-wrap +msgid "1200019" +msgstr "1200019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1926 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/310149[310149]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/310149[310149]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1927 +#, no-wrap +msgid "December 16, 2016" +msgstr "16 декабря 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1929 +#, no-wrap +msgid "12.0-CURRENT after starting to lay down the foundation for 11ac support." +msgstr "12.0-CURRENT после начала закладки основы для поддержки 11ac." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1930 +#, no-wrap +msgid "1200020" +msgstr "1200020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1931 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/312087[312087]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/312087[312087]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1932 +#, no-wrap +msgid "January 13, 2017" +msgstr "13 января 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1934 +#, no-wrap +msgid "12.0-CURRENT after removing `fgetsock` and `fputsock`." +msgstr "12.0-CURRENT после удаления `fgetsock` и `fputsock`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1935 +#, no-wrap +msgid "1200021" +msgstr "1200021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1936 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/313858[313858]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/313858[313858]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1937 +#, no-wrap +msgid "February 16, 2017" +msgstr "16 февраля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1939 +#, no-wrap +msgid "12.0-CURRENT after removing MCA and EISA support." +msgstr "12.0-CURRENT после удаления поддержки MCA и EISA." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1940 +#, no-wrap +msgid "1200022" +msgstr "1200022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1941 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/314040[314040]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/314040[314040]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1942 +#, no-wrap +msgid "February 21, 2017" +msgstr "21 февраля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1944 +#, no-wrap +msgid "12.0-CURRENT after making the LinuxKPI task struct persistent across system calls." +msgstr "12.0-CURRENT после обеспечения сохранности структуры задач LinuxKPI между системными вызовами." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1946 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/314373[314373]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/314373[314373]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1947 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1952 +#, no-wrap +msgid "March 2, 2017" +msgstr "2 марта 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1949 +#, no-wrap +msgid "12.0-CURRENT after removing System V Release 4 binary compatibility support." +msgstr "12.0-CURRENT после удаления поддержки бинарной совместимости с System V Release 4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1950 +#, no-wrap +msgid "1200023" +msgstr "1200023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1951 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/314564[314564]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/314564[314564]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1954 +#, no-wrap +msgid "12.0-CURRENT after upgrading copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0." +msgstr "12.0-CURRENT после обновления копий clang, llvm, lld, lldb, compiler-rt и libc++ до версии 4.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1955 +#, no-wrap +msgid "1200024" +msgstr "1200024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1956 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/314865[314865]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/314865[314865]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1957 +#, no-wrap +msgid "March 7, 2017" +msgstr "7 марта 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1959 +#, no-wrap +msgid "12.0-CURRENT after removal of [.filename]#pcap-int.h#" +msgstr "12.0-CURRENT после удаления [.filename]#pcap-int.h#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1960 +#, no-wrap +msgid "1200025" +msgstr "1200025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1961 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/315430[315430]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/315430[315430]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1962 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1967 +#, no-wrap +msgid "March 16, 2017" +msgstr "16 марта 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1964 +#, no-wrap +msgid "12.0-CURRENT after addition of the [.filename]## header." +msgstr "12.0-CURRENT после добавления заголовочного файла [.filename]##." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1965 +#, no-wrap +msgid "1200026" +msgstr "1200026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1966 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/315662[315662]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/315662[315662]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1969 +#, no-wrap +msgid "12.0-CURRENT after hiding `struct inpcb` and `struct tcpcb` from userland." +msgstr "12.0-CURRENT после скрытия `struct inpcb` и `struct tcpcb` от пользовательского пространства." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1970 +#, no-wrap +msgid "1200027" +msgstr "1200027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1971 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/315673[315673]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/315673[315673]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1972 +#, no-wrap +msgid "March 21, 2017" +msgstr "21 марта 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1974 +#, no-wrap +msgid "12.0-CURRENT after making CAM SIM lock optional." +msgstr "12.0-CURRENT после того, как блокировка CAM SIM стала опциональной." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1975 +#, no-wrap +msgid "1200028" +msgstr "1200028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1976 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/316683[316683]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/316683[316683]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1977 +#, no-wrap +msgid "April 10, 2017" +msgstr "10 апреля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1979 +#, no-wrap +msgid "12.0-CURRENT after renaming `smp_no_rendevous_barrier()` to `smp_no_rendezvous_barrier()` in link:https://svnweb.freebsd.org/changeset/base/316648[316648]." +msgstr "12.0-CURRENT после переименования `smp_no_rendevous_barrier()` в `smp_no_rendezvous_barrier()` в link:https://svnweb.freebsd.org/changeset/base/316648[316648]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1980 +#, no-wrap +msgid "1200029" +msgstr "1200029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1981 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/317176[317176]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/317176[317176]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1982 +#, no-wrap +msgid "April 19, 2017" +msgstr "April 19, 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1984 +#, no-wrap +msgid "12.0-CURRENT after the removal of `struct vmmeter` from `struct pcpu` from link:https://svnweb.freebsd.org/changeset/base/317061[317061]." +msgstr "12.0-CURRENT после удаления `struct vmmeter` из `struct pcpu` в link:https://svnweb.freebsd.org/changeset/base/317061[317061]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1985 +#, no-wrap +msgid "1200030" +msgstr "1200030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1986 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/317383[317383]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/317383[317383]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1987 +#, no-wrap +msgid "April 24, 2017" +msgstr "24 апреля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1989 +#, no-wrap +msgid "12.0-CURRENT after removing NATM support including man:en[4], man:fatm[4], man:hatm[4], and man:patm[4]." +msgstr "12.0-CURRENT после удаления поддержки NATM, включая man:en[4], man:fatm[4], man:hatm[4] и man:patm[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1990 +#, no-wrap +msgid "1200031" +msgstr "1200031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1991 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/318736[318736]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/318736[318736]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1992 +#, no-wrap +msgid "May 23, 2017" +msgstr "23 мая 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1994 +#, no-wrap +msgid "12.0-CURRENT after types `ino_t`, `dev_t`, `nlink_t` were extended to 64bit and `struct dirent` changed layout (also known as ino64)." +msgstr "12.0-CURRENT после расширения типов `ino_t`, `dev_t`, `nlink_t` до 64 бит и изменения структуры `struct dirent` (также известное как ino64)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1995 +#, no-wrap +msgid "1200032" +msgstr "1200032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1996 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/319664[319664]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/319664[319664]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1997 +#, no-wrap +msgid "June 8, 2017" +msgstr "8 июня 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:1999 +#, no-wrap +msgid "12.0-CURRENT after removal of `groff`." +msgstr "12.0-CURRENT после удаления `groff`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2000 +#, no-wrap +msgid "1200033" +msgstr "1200033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2001 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320043[320043]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320043[320043]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2002 +#, no-wrap +msgid "June 17, 2017" +msgstr "17 июня 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2004 +#, no-wrap +msgid "12.0-CURRENT after the type of the `struct event` member `data` was increased to 64bit, and ext structure members added." +msgstr "12.0-CURRENT после того, как тип члена `data` структуры `struct event` был увеличен до 64 бит, и добавлены члены расширенной структуры." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2005 +#, no-wrap +msgid "1200034" +msgstr "1200034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2006 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320085[320085]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320085[320085]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2007 +#, no-wrap +msgid "June 19, 2017" +msgstr "19 июня 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2009 +#, no-wrap +msgid "12.0-CURRENT after the NFS client and server were changed so that they actually use the 64bit `ino_t`." +msgstr "12.0-CURRENT после изменения клиента и сервера NFS для фактического использования 64-битного `ino_t`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2010 +#, no-wrap +msgid "1200035" +msgstr "1200035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2011 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320317[320317]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320317[320317]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2012 +#, no-wrap +msgid "June 24, 2017" +msgstr "June 24, 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2014 +#, no-wrap +msgid "12.0-CURRENT after the `MAP_GUARD` man:mmap[2] flag was added." +msgstr "12.0-CURRENT после добавления флага `MAP_GUARD` в man:mmap[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2015 +#, no-wrap +msgid "1200036" +msgstr "1200036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2016 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320347[320347]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320347[320347]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2017 +#, no-wrap +msgid "June 26, 2017" +msgstr "26 июня 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2019 +#, no-wrap +msgid "12.0-CURRENT after changing `time_t` to 64 bits on powerpc (32-bit version)." +msgstr "12.0-CURRENT после изменения `time_t` на 64 бита на powerpc (32-битная версия)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2020 +#, no-wrap +msgid "1200037" +msgstr "1200037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2021 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320545[320545]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320545[320545]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2022 +#, no-wrap +msgid "July 1, 2017" +msgstr "1 июля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2024 +#, no-wrap +msgid "12.0-CURRENT after the cleanup and inlining of `bus_dmamap*` functions (link:https://svnweb.freebsd.org/changeset/base/320528[320528])." +msgstr "12.0-CURRENT после очистки и встраивания функций `bus_dmamap*` (link:https://svnweb.freebsd.org/changeset/base/320528[320528])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2025 +#, no-wrap +msgid "1200038" +msgstr "1200038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2026 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320879[320879]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320879[320879]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2027 +#, no-wrap +msgid "July 10, 2017" +msgstr "10 июля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2029 +#, no-wrap +msgid "12.0-CURRENT after MMC CAM committed. (link:https://svnweb.freebsd.org/changeset/base/320844[320844])." +msgstr "12.0-CURRENT после коммита MMC CAM (link:https://svnweb.freebsd.org/changeset/base/320844[320844])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2030 +#, no-wrap +msgid "1200039" +msgstr "1200039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2031 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/321369[321369]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/321369[321369]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2032 +#, no-wrap +msgid "July 22, 2017" +msgstr "22 июля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2034 +#, no-wrap +msgid "12.0-CURRENT after upgrade of copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 5.0.0 (trunk r308421)." +msgstr "12.0-CURRENT после обновления копий clang, llvm, lld, lldb, compiler-rt и libc++ до версии 5.0.0 (trunk r308421)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2035 +#, no-wrap +msgid "1200040" +msgstr "1200040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2036 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3344 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/321688[321688]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/321688[321688]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2037 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3345 +#, no-wrap +msgid "July 29, 2017" +msgstr "29 июля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2039 +#, no-wrap +msgid "12.0-CURRENT after adding NFS client forced dismount support `umount -N`." +msgstr "12.0-CURRENT после добавления поддержки принудительного демонтирования клиента NFS `umount -N`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2040 +#, no-wrap +msgid "1200041" +msgstr "1200041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2041 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/322762[322762]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/322762[322762]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2042 +#, no-wrap +msgid "August 21, 2017" +msgstr "21 августа 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2044 +#, no-wrap +msgid "12.0-CURRENT after WRFSBASE instruction become operational on amd64." +msgstr "12.0-CURRENT после того, как инструкция WRFSBASE стала работоспособной на amd64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2045 +#, no-wrap +msgid "1200042" +msgstr "1200042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2046 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/322900[322900]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/322900[322900]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2047 +#, no-wrap +msgid "August 25, 2017" +msgstr "25 августа 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2049 +#, no-wrap +msgid "12.0-CURRENT after PLPMTUD counters were changed to use man:counter[9]." +msgstr "12.0-CURRENT после изменения счетчиков PLPMTUD для использования man:counter[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2050 +#, no-wrap +msgid "1200043" +msgstr "1200043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2051 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/322989[322989]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/322989[322989]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2052 +#, no-wrap +msgid "August 28, 2017" +msgstr "28 августа 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2054 +#, no-wrap +msgid "12.0-CURRENT after dropping x86 CACHE_LINE_SIZE down to 64 bytes." +msgstr "12.0-CURRENT после уменьшения CACHE_LINE_SIZE для x86 до 64 байт." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2055 +#, no-wrap +msgid "1200044" +msgstr "1200044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2056 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/323349[323349]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/323349[323349]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2057 +#, no-wrap +msgid "September 8, 2017" +msgstr "8 сентября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2059 +#, no-wrap +msgid "12.0-CURRENT after implementing `poll_wait()` in the LinuxKPI." +msgstr "12.0-CURRENT после реализации `poll_wait()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2060 +#, no-wrap +msgid "1200045" +msgstr "1200045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2061 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/323706[323706]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/323706[323706]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2062 +#, no-wrap +msgid "September 18, 2017" +msgstr "18 сентября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2064 +#, no-wrap +msgid "12.0-CURRENT after adding shared memory support to LinuxKPI. (link:https://svnweb.freebsd.org/changeset/base/323703[323703])." +msgstr "12.0-CURRENT после добавления поддержки разделяемой памяти в LinuxKPI. (link:https://svnweb.freebsd.org/changeset/base/323703[323703])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2065 +#, no-wrap +msgid "1200046" +msgstr "1200046" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2066 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/323910[323910]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/323910[323910]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2067 +#, no-wrap +msgid "September 22, 2017" +msgstr "22 сентября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2069 +#, no-wrap +msgid "12.0-CURRENT after adding support for 32-bit compatibility IOCTLs to LinuxKPI." +msgstr "12.0-CURRENT после добавления поддержки 32-битных совместимых IOCTL в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2070 +#, no-wrap +msgid "1200047" +msgstr "1200047" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2071 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/324053[324053]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/324053[324053]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2072 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3355 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3360 +#, no-wrap +msgid "September 26, 2017" +msgstr "26 сентября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2074 +#, no-wrap +msgid "12.0-CURRENT after removing M_HASHTYPE_RSS_UDP_IPV4_EX. (link:https://svnweb.freebsd.org/changeset/base/324052[324052])." +msgstr "12.0-CURRENT после удаления M_HASHTYPE_RSS_UDP_IPV4_EX. (link:https://svnweb.freebsd.org/changeset/base/324052[324052])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2075 +#, no-wrap +msgid "1200048" +msgstr "1200048" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2076 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/324227[324227]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/324227[324227]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2077 +#, no-wrap +msgid "October 2, 2017" +msgstr "2 октября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2079 +#, no-wrap +msgid "12.0-CURRENT after hiding `struct socket` and `struct unpcb` from userland." +msgstr "12.0-CURRENT после скрытия `struct socket` и `struct unpcb` из пользовательского пространства." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2080 +#, no-wrap +msgid "1200049" +msgstr "1200049" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2081 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/324281[324281]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/324281[324281]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2082 +#, no-wrap +msgid "October 4, 2017" +msgstr "4 октября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2084 +#, no-wrap +msgid "12.0-CURRENT after adding the `value.u16` field to `struct diocgattr_arg`." +msgstr "12.0-CURRENT после добавления поля `value.u16` в структуру `struct diocgattr_arg`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2085 +#, no-wrap +msgid "1200050" +msgstr "1200050" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2086 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/324342[324342]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/324342[324342]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2087 +#, no-wrap +msgid "October 5, 2017" +msgstr "5 октября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2089 +#, no-wrap +msgid "12.0-CURRENT after adding the `armv7 MACHINE_ARCH`. (link:https://svnweb.freebsd.org/changeset/base/324340[324340])." +msgstr "12.0-CURRENT после добавления `armv7 MACHINE_ARCH`. (link:https://svnweb.freebsd.org/changeset/base/324340[324340])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2090 +#, no-wrap +msgid "1200051" +msgstr "1200051" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2091 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/324455[324455]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/324455[324455]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2092 +#, no-wrap +msgid "October 9, 2017" +msgstr "9 октября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2094 +#, no-wrap +msgid "12.0-CURRENT after removing [.filename]#libstand.a# as a public interface. (link:https://svnweb.freebsd.org/changeset/base/324454[324454])." +msgstr "12.0-CURRENT после удаления [.filename]#libstand.a# как публичного интерфейса. (link:https://svnweb.freebsd.org/changeset/base/324454[324454])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2095 +#, no-wrap +msgid "1200052" +msgstr "1200052" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2096 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/325028[325028]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/325028[325028]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2097 +#, no-wrap +msgid "October 26, 2017" +msgstr "26 октября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2099 +#, no-wrap +msgid "12.0-CURRENT after fixing `ptrace()` to always clear the correct thread event when resuming." +msgstr "12.0-CURRENT после исправления `ptrace()`, чтобы всегда очищать правильное событие потока при возобновлении." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2100 +#, no-wrap +msgid "1200053" +msgstr "1200053" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2101 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/325506[325506]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/325506[325506]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2102 +#, no-wrap +msgid "November 7, 2017" +msgstr "7 ноября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2104 +#, no-wrap +msgid "12.0-CURRENT after changing `struct mbuf` layout to add optional hardware timestamps for receive packets." +msgstr "12.0-CURRENT после изменения структуры `struct mbuf` для добавления опциональных аппаратных меток времени для принимаемых пакетов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2105 +#, no-wrap +msgid "1200054" +msgstr "1200054" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2106 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/325852[325852]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/325852[325852]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2107 +#, no-wrap +msgid "November 15, 2017" +msgstr "15 ноября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2109 +#, no-wrap +msgid "12.0-CURRENT after changing the layout of `struct vmtotal` to allow for reporting large memory counters." +msgstr "12.0-CURRENT после изменения структуры `struct vmtotal` для поддержки отчёта больших счётчиков памяти." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2110 +#, no-wrap +msgid "1200055" +msgstr "1200055" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2111 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/327740[327740]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/327740[327740]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2112 +#, no-wrap +msgid "January 9, 2018" +msgstr "9 января 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2114 +#, no-wrap +msgid "12.0-CURRENT after adding `cpucontrol -e` support." +msgstr "12.0-CURRENT после добавления поддержки `cpucontrol -e`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2115 +#, no-wrap +msgid "1200056" +msgstr "1200056" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2116 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/327952[327952]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/327952[327952]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2117 +#, no-wrap +msgid "January 14, 2018" +msgstr "14 января 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2119 +#, no-wrap +msgid "12.0-CURRENT after upgrading clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r321788)." +msgstr "12.0-CURRENT после обновления clang, llvm, lld, lldb, compiler-rt и libc++ до версии 6.0.0 (ветки/release_60 r321788)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2120 +#, no-wrap +msgid "1200057" +msgstr "1200057" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2121 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/329033[329033]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/329033[329033]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2122 +#, no-wrap +msgid "February 8, 2018" +msgstr "8 февраля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2124 +#, no-wrap +msgid "12.0-CURRENT after applying a clang 6.0.0 fix to make the wine ports build correctly." +msgstr "12.0-CURRENT после применения исправления в clang 6.0.0 для корректной сборки портов wine." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2125 +#, no-wrap +msgid "1200058" +msgstr "1200058" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2126 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/329166[329166]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/329166[329166]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2127 +#, no-wrap +msgid "February 12, 2018" +msgstr "12 февраля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2129 +#, no-wrap +msgid "12.0-CURRENT after the Lua loader was committed." +msgstr "12.0-CURRENT после включения загрузчика Lua." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2130 +#, no-wrap +msgid "1200059" +msgstr "1200059" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2131 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/330299[330299]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/330299[330299]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2132 +#, no-wrap +msgid "March 2, 2018" +msgstr "2 марта 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2134 +#, no-wrap +msgid "12.0-CURRENT after removing the declaration of `union semun` unless `_WANT_SEMUN` is defined. Also the removal of `struct mymsg` and the renaming of kernel-only members of `struct semid_ds` and `struct msgid_ds`." +msgstr "12.0-CURRENT после удаления объявления `union semun`, если не определено `_WANT_SEMUN`. Также удаление `struct mymsg` и переименование членов `struct semid_ds` и `struct msgid_ds`, предназначенных только для ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2135 +#, no-wrap +msgid "1200060" +msgstr "1200060" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2136 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/330384[330384]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/330384[330384]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2137 +#, no-wrap +msgid "March 4, 2018" +msgstr "4 марта 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2139 +#, no-wrap +msgid "12.0-CURRENT after upgrading clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 release." +msgstr "12.0-CURRENT после обновления clang, llvm, lld, lldb, compiler-rt и libc++ до версии 6.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2140 +#, no-wrap +msgid "1200061" +msgstr "1200061" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2141 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/332100[332100]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/332100[332100]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2142 +#, no-wrap +msgid "April 6, 2018" +msgstr "6 апреля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2144 +#, no-wrap +msgid "12.0-CURRENT after changing man:syslog[3] to emit RFC 5424 formatted messages." +msgstr "12.0-CURRENT после изменения man:syslog[3] для генерации сообщений в формате RFC 5424." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2145 +#, no-wrap +msgid "1200062" +msgstr "1200062" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2146 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/332423[332423]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/332423[332423]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2147 +#, no-wrap +msgid "April 12, 2018" +msgstr "12 апреля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2149 +#, no-wrap +msgid "12.0-CURRENT after changing the Netmap API." +msgstr "12.0-CURRENT после изменения API Netmap." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2150 +#, no-wrap +msgid "1200063" +msgstr "1200063" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2151 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/333446[333446]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/333446[333446]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2152 +#, no-wrap +msgid "May 10, 2018" +msgstr "10 мая 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2154 +#, no-wrap +msgid "12.0-CURRENT after reworking CTL frontend and backend options to use man:nv[3], allow creating multiple ioctl frontend ports." +msgstr "12.0-CURRENT после переработки параметров интерфейса и внутренней части CTL для использования man:nv[3], разрешено создание нескольких портов ioctl интерфейса." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2155 +#, no-wrap +msgid "1200064" +msgstr "1200064" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2156 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334074[334074]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334074[334074]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2157 +#, no-wrap +msgid "May 22, 2018" +msgstr "22 мая 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2159 +#, no-wrap +msgid "12.0-CURRENT after changing the ifnet address and multicast address TAILQ to CK_STAILQ." +msgstr "12.0-CURRENT после изменения ifnet address и multicast address TAILQ на CK_STAILQ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2160 +#, no-wrap +msgid "1200065" +msgstr "1200065" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2161 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334290[334290]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334290[334290]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2162 +#, no-wrap +msgid "May 28, 2018" +msgstr "28 мая 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2164 +#, no-wrap +msgid "12.0-CURRENT after changing man:dwatch[1] to allow '-E code' to override profile EVENT_DETAILS." +msgstr "12.0-CURRENT после изменения man:dwatch[1] для разрешения использования '-E code' для переопределения EVENT_DETAILS в профиле." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2165 +#, no-wrap +msgid "1200066" +msgstr "1200066" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2166 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334466[334466]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334466[334466]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2167 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3420 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3425 +#, no-wrap +msgid "June 1, 2018" +msgstr "1 июня 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2169 +#, no-wrap +msgid "12.0-CURRENT after removal of in-kernel pmc tables for Intel." +msgstr "12.0-CURRENT после удаления внутриядерных таблиц pmc для Intel." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2170 +#, no-wrap +msgid "1200067" +msgstr "1200067" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2171 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334892[334892]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334892[334892]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2172 +#, no-wrap +msgid "June 9, 2018" +msgstr "9 июня 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2174 +#, no-wrap +msgid "12.0-CURRENT after adding DW_LANG constants to libdwarf." +msgstr "12.0-CURRENT после добавления констант DW_LANG в libdwarf." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2175 +#, no-wrap +msgid "1200068" +msgstr "1200068" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2176 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334930[334930]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334930[334930]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2177 +#, no-wrap +msgid "June 12, 2018" +msgstr "12 июня 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2179 +#, no-wrap +msgid "12.0-CURRENT after changing the interface between the NFS modules." +msgstr "12.0-CURRENT после изменения интерфейса между модулями NFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2180 +#, no-wrap +msgid "1200069" +msgstr "1200069" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2181 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/335237[335237]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/335237[335237]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2182 +#, no-wrap +msgid "June 15, 2018" +msgstr "15 июня 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2184 +#, no-wrap +msgid "12.0-CURRENT after changing `struct kerneldumpheader` to version 4 (similar to version 2 in 11-STABLE and previous)." +msgstr "12.0-CURRENT после изменения `struct kerneldumpheader` до версии 4 (аналогично версии 2 в 11-STABLE и более ранних)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2185 +#, no-wrap +msgid "1200070" +msgstr "1200070" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2186 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/335873[335873]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/335873[335873]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2187 +#, no-wrap +msgid "July 2, 2018" +msgstr "2 июля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2189 +#, no-wrap +msgid "12.0-CURRENT after inlining man:atomic[9] in modules on amd64 and i386 requiring all modules of consumers to be rebuilt for these architectures." +msgstr "12.0-CURRENT после встраивания man:atomic[9] в модули на amd64 и i386, что потребовало пересборки всех модулей потребителей для этих архитектур." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2190 +#, no-wrap +msgid "1200071" +msgstr "1200071" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2191 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/335930[335930]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/335930[335930]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2192 +#, no-wrap +msgid "July 4, 2018" +msgstr "4 июля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2194 +#, no-wrap +msgid "12.0-CURRENT after changing the ABI and API of man:epoch[9] (link:https://svnweb.freebsd.org/changeset/base/335924[335924]) requiring modules of consumers to be rebuilt." +msgstr "12.0-CURRENT после изменения ABI и API man:epoch[9] (link:https://svnweb.freebsd.org/changeset/base/335924[335924]), что потребовало пересборки модулей потребителей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2195 +#, no-wrap +msgid "1200072" +msgstr "1200072" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2196 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/335979[335979]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/335979[335979]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2197 +#, no-wrap +msgid "July 5, 2018" +msgstr "5 июля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2199 +#, no-wrap +msgid "12.0-CURRENT after changing the ABI and API of `struct xinpcb` and friends." +msgstr "12.0-CURRENT после изменения ABI и API `struct xinpcb` и связанных структур." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2200 +#, no-wrap +msgid "1200073" +msgstr "1200073" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2201 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/336313[336313]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/336313[336313]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2202 +#, no-wrap +msgid "July 15, 2018" +msgstr "15 июля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2204 +#, no-wrap +msgid "12.0-CURRENT after changing the ABI and API of `struct if_shared_ctx` and `struct if_softc_ctx` requiring modules of man:iflib[9] consumers to be rebuilt." +msgstr "12.0-CURRENT после изменения ABI и API структур `struct if_shared_ctx` и `struct if_softc_ctx`, что потребовало пересборки модулей потребителей man:iflib[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2205 +#, no-wrap +msgid "1200074" +msgstr "1200074" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2206 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/336360[336360]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/336360[336360]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2207 +#, no-wrap +msgid "July 16, 2018" +msgstr "16 июля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2209 +#, no-wrap +msgid "12.0-CURRENT after updating the configuration of libstdc++ to make use of C99 functions." +msgstr "12.0-CURRENT после обновления конфигурации libstdc++ для использования функций C99." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2210 +#, no-wrap +msgid "1200075" +msgstr "1200075" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2211 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/336538[336538]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/336538[336538]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2212 +#, no-wrap +msgid "July 19, 2018" +msgstr "19 июля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2214 +#, no-wrap +msgid "12.0-CURRENT after `zfsloader` being folded into loader, and after adding ntpd:ntpd as uid:gid 123:123, and after removing arm big-endian support (MACHINE_ARCH=armeb)." +msgstr "12.0-CURRENT после объединения `zfsloader` в `loader`, после добавления ntpd:ntpd как uid:gid 123:123 и после удаления поддержки big-endian для архитектуры arm (MACHINE_ARCH=armeb)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2215 +#, no-wrap +msgid "1200076" +msgstr "1200076" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2216 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/336914[336914]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/336914[336914]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2217 +#, no-wrap +msgid "July 30, 2018" +msgstr "30 июля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2219 +#, no-wrap +msgid "12.0-CURRENT after KPI changes to `timespecadd`." +msgstr "12.0-CURRENT после изменений KPI в `timespecadd`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2220 +#, no-wrap +msgid "1200077" +msgstr "1200077" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2221 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/337576[337576]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/337576[337576]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2222 +#, no-wrap +msgid "August 10, 2018" +msgstr "10 августа 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2224 +#, no-wrap +msgid "12.0-CURRENT after man:timespec_get[3] was added to the system." +msgstr "12.0-CURRENT после добавления в систему man:timespec_get[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2225 +#, no-wrap +msgid "1200078" +msgstr "1200078" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2226 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/337863[337863]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/337863[337863]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2227 +#, no-wrap +msgid "August 15, 2018" +msgstr "15 августа 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2229 +#, no-wrap +msgid "12.0-CURRENT after exec.created hook for jails." +msgstr "12.0-CURRENT после выполнения хука exec.created для клеток." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2230 +#, no-wrap +msgid "1200079" +msgstr "1200079" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2231 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338061[338061]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338061[338061]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2232 +#, no-wrap +msgid "August 19, 2018" +msgstr "19 августа 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2234 +#, no-wrap +msgid "12.0-CURRENT after converting `arc4random` to using the Chacha20 algorithm and deprecating `arc4random_stir` and `arc4random_addrandom`." +msgstr "12.0-CURRENT после перевода `arc4random` на использование алгоритма Chacha20 и устаревания `arc4random_stir` и `arc4random_addrandom`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2235 +#, no-wrap +msgid "1200080" +msgstr "1200080" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2236 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338172[338172]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338172[338172]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2237 +#, no-wrap +msgid "August 22, 2018" +msgstr "22 августа 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2239 +#, no-wrap +msgid "12.0-CURRENT after removing the drm drivers." +msgstr "12.0-CURRENT после удаления драйверов drm." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2240 +#, no-wrap +msgid "1200081" +msgstr "1200081" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2241 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338182[338182]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338182[338182]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2242 +#, no-wrap +msgid "August 21, 2018" +msgstr "21 августа 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2244 +#, no-wrap +msgid "12.0-CURRENT after KPI changes to NVMe." +msgstr "12.0-CURRENT после изменений KPI для NVMe." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2245 +#, no-wrap +msgid "1200082" +msgstr "1200082" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2246 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338285[338285]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338285[338285]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2247 +#, no-wrap +msgid "August 24, 2018" +msgstr "24 августа 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2249 +#, no-wrap +msgid "12.0-CURRENT after reverting the removal of the drm drivers." +msgstr "12.0-CURRENT после отмены удаления драйверов drm." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2250 +#, no-wrap +msgid "1200083" +msgstr "1200083" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2251 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338331[338331]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338331[338331]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2252 +#, no-wrap +msgid "August 26, 2018" +msgstr "26 августа 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2254 +#, no-wrap +msgid "12.0-CURRENT after removing `arc4random_stir` and `arc4random_addrandom`." +msgstr "12.0-CURRENT после удаления `arc4random_stir` и `arc4random_addrandom`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2255 +#, no-wrap +msgid "1200084" +msgstr "1200084" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2256 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338478[338478]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338478[338478]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2257 +#, no-wrap +msgid "September 5, 2018" +msgstr "5 сентября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2259 +#, no-wrap +msgid "12.0-CURRENT after updating man:objcopy[1] to properly handle little-endian MIPS64 object files." +msgstr "12.0-CURRENT после обновления man:objcopy[1] для корректной обработки little-endian MIPS64 объектных файлов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2260 +#, no-wrap +msgid "1200085" +msgstr "1200085" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2261 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/339270[339270]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/339270[339270]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2264 +#, no-wrap +msgid "12.0-STABLE after updating OpenSSL to version 1.1.1." +msgstr "12.0-STABLE после обновления OpenSSL до версии 1.1.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2265 +#, no-wrap +msgid "1200086" +msgstr "1200086" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2266 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/339732[339732]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/339732[339732]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2269 +#, no-wrap +msgid "12.0-STABLE after updating OpenSSL shared library version numbers." +msgstr "12.0-STABLE после обновления номеров версий разделяемых библиотек OpenSSL." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2270 +#, no-wrap +msgid "1200500" +msgstr "1200500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2271 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/340471[340471]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/340471[340471]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2272 +#, no-wrap +msgid "November 16, 2018" +msgstr "16 ноября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2274 +#, no-wrap +msgid "12-STABLE after releng/12.0 was branched." +msgstr "12-STABLE после ветвления releng/12.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2275 +#, no-wrap +msgid "1200501" +msgstr "1200501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2276 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/342801[342801]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/342801[342801]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2277 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3450 +#, no-wrap +msgid "January 6, 2019" +msgstr "6 января 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2279 +#, no-wrap +msgid "12-STABLE after merge of fixing `linux_destroy_dev()` behaviour when there are still files open from the destroying cdev." +msgstr "12-STABLE после слияния исправления поведения `linux_destroy_dev()`, когда остаются открытые файлы из уничтожаемого cdev." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2280 +#, no-wrap +msgid "1200502" +msgstr "1200502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2281 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/343126[343126]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/343126[343126]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2282 +#, no-wrap +msgid "January 17, 2019" +msgstr "January 17, 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2284 +#, no-wrap +msgid "12-STABLE after enabling sys/random.h #include from C++." +msgstr "12-STABLE после включения #include в C++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2285 +#, no-wrap +msgid "1200503" +msgstr "1200503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2286 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/344152[344152]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/344152[344152]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2287 +#, no-wrap +msgid "February 15, 2019" +msgstr "15 февраля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2289 +#, no-wrap +msgid "12-STABLE after merge of fixing man:renameat[2] for CAPABILITIES kernels." +msgstr "12-STABLE после слияния исправления man:renameat[2] для ядер с CAPABILITIES." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2290 +#, no-wrap +msgid "1200504" +msgstr "1200504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2291 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/345169[345169]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/345169[345169]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2294 +#, no-wrap +msgid "12-STABLE after merging CCM for the benefit of the ZoF port." +msgstr "12-STABLE после слияния CCM для работы с портом ZoF." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2295 +#, no-wrap +msgid "1200505" +msgstr "1200505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2296 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/345327[345327]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/345327[345327]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2297 +#, no-wrap +msgid "March 20, 2019" +msgstr "20 марта 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2299 +#, no-wrap +msgid "12-STABLE after merging support for selectively disabling ZFS without disabling loader." +msgstr "12-STABLE после объединения поддержки выборочного отключения ZFS без отключения загрузчика." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2300 +#, no-wrap +msgid "1200506" +msgstr "1200506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2301 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346168[346168]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346168[346168]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2302 +#, no-wrap +msgid "April 12, 2019" +msgstr "12 апреля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2304 +#, no-wrap +msgid "12-STABLE after merging llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365." +msgstr "12-STABLE после слияния llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp 8.0.0 финальный релиз r356365." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2305 +#, no-wrap +msgid "1200507" +msgstr "1200507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2306 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346337[346337]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346337[346337]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2307 +#, no-wrap +msgid "April 17, 2019" +msgstr "17 апреля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2309 +#, no-wrap +msgid "12-STABLE after MFC of iflib changes in link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] and partially of link:https://svnweb.freebsd.org/changeset/base/345305[345305]." +msgstr "12-STABLE после слияния изменений iflib из ревизий link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] и частично из link:https://svnweb.freebsd.org/changeset/base/345305[345305]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2310 +#, no-wrap +msgid "1200508" +msgstr "1200508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2311 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3464 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346784[346784]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346784[346784]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2312 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3465 +#, no-wrap +msgid "April 27, 2019" +msgstr "27 апреля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2314 +#, no-wrap +msgid "12-STABLE after `ether_gen_addr` availability." +msgstr "12-STABLE после появления `ether_gen_addr`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2315 +#, no-wrap +msgid "1200509" +msgstr "1200509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2316 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347790[347790]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347790[347790]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2317 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3475 +#, no-wrap +msgid "May 16, 2019" +msgstr "16 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2319 +#, no-wrap +msgid "12-STABLE after bumping the Mellanox driver version numbers (man:mlx4en[4]; man:mlx5en[4])." +msgstr "12-STABLE после обновления номеров версий драйверов Mellanox (man:mlx4en[4]; man:mlx5en[4])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2320 +#, no-wrap +msgid "1200510" +msgstr "1200510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2321 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/348036[348036]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/348036[348036]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2322 +#, no-wrap +msgid "May 21, 2019" +msgstr "21 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2324 +#, no-wrap +msgid "12-STABLE after change to struct in linuxkpi from link:https://svnweb.freebsd.org/changeset/base/348035[348035]." +msgstr "12-STABLE после изменения структуры в linuxkpi из link:https://svnweb.freebsd.org/changeset/base/348035[348035]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2325 +#, no-wrap +msgid "1200511" +msgstr "1200511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2326 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/348243[348243]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/348243[348243]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2327 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2332 +#, no-wrap +msgid "May 24, 2019" +msgstr "24 мая 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2329 +#, no-wrap +msgid "12-STABLE after MFC of link:https://svnweb.freebsd.org/changeset/base/347843[347843]: adding `group_leader` member to struct `task_struct` to the LinuxKPI." +msgstr "12-STABLE после MFC изменения link:https://svnweb.freebsd.org/changeset/base/347843[347843]: добавление элемента `group_leader` в структуру `task_struct` для LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2330 +#, no-wrap +msgid "1200512" +msgstr "1200512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2331 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/348245[348245]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/348245[348245]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2334 +#, no-wrap +msgid "12-STABLE after adding context member to ww_mutex in LinuxKPI." +msgstr "12-STABLE после добавления элемента контекста к ww_mutex в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2335 +#, no-wrap +msgid "1200513" +msgstr "1200513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2336 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349763[349763]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349763[349763]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2337 +#, no-wrap +msgid "July 5, 2019" +msgstr "5 июля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2339 +#, no-wrap +msgid "12-STABLE after MFC of man:epoch[9] changes: link:https://svnweb.freebsd.org/changeset/base/349763[349763], link:https://svnweb.freebsd.org/changeset/base/340404[340404], link:https://svnweb.freebsd.org/changeset/base/340415[340415], link:https://svnweb.freebsd.org/changeset/base/340417[340417], link:https://svnweb.freebsd.org/changeset/base/340419[340419], link:https://svnweb.freebsd.org/changeset/base/340420[340420]." +msgstr "12-STABLE после MFC man:epoch[9] изменил: link:https://svnweb.freebsd.org/changeset/base/349763[349763], link:https://svnweb.freebsd.org/changeset/base/340404[340404], link:https://svnweb.freebsd.org/changeset/base/340415[340415], link:https://svnweb.freebsd.org/changeset/base/340417[340417], link:https://svnweb.freebsd.org/changeset/base/340419[340419], link:https://svnweb.freebsd.org/changeset/base/340420[340420]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2340 +#, no-wrap +msgid "1200514" +msgstr "1200514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2341 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/350083[350083]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/350083[350083]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2342 +#, no-wrap +msgid "July 17, 2019" +msgstr "17 июля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2344 +#, no-wrap +msgid "12-STABLE after additions to LinuxKPI's rcu list." +msgstr "12-STABLE после добавлений в список rcu LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2345 +#, no-wrap +msgid "1200515" +msgstr "1200515" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2346 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/350877[350877]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/350877[350877]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2347 +#, no-wrap +msgid "August 11, 2019" +msgstr "11 августа 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2349 +#, no-wrap +msgid "12-STABLE after MFC of link:https://svnweb.freebsd.org/changeset/base/349891[349891] (reorganize the SRCS lists as one file per line, and then alphabetize them) and link:https://svnweb.freebsd.org/changeset/base/349972[349972] (add `arm_sync_icache()` and `arm_drain_writebuf()` sysarch syscall wrappers)." +msgstr "12-STABLE после слияния изменений link:https://svnweb.freebsd.org/changeset/base/349891[349891] (реорганизация списков SRCS в виде одного файла на строку с последующей сортировкой по алфавиту) и link:https://svnweb.freebsd.org/changeset/base/349972[349972] (добавление обёрток системных вызовов `arm_sync_icache()` и `arm_drain_writebuf()` для sysarch)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2350 +#, no-wrap +msgid "1200516" +msgstr "1200516" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2351 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/351276[351276]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/351276[351276]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2352 +#, no-wrap +msgid "August 20, 2019" +msgstr "20 августа 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2354 +#, no-wrap +msgid "12-STABLE after MFC of various changes to iflib link:https://svnweb.freebsd.org/changeset/base/351276[351276]." +msgstr "12-STABLE после слияния различных изменений в iflib (MFC) link:https://svnweb.freebsd.org/changeset/base/351276[351276]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2355 +#, no-wrap +msgid "1200517" +msgstr "1200517" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2356 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/352076[352076]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/352076[352076]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2359 +#, no-wrap +msgid "12-STABLE after adding sysfs create/remove functions that handles multiple files in one call to the LinuxKPI." +msgstr "12-STABLE после добавления функций создания/удаления sysfs, обрабатывающих несколько файлов за один вызов в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2360 +#, no-wrap +msgid "1200518" +msgstr "1200518" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2361 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/352114[352114]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/352114[352114]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2362 +#, no-wrap +msgid "September 10, 2019" +msgstr "10 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2364 +#, no-wrap +msgid "12-STABLE after additional updates to LinuxKPI's sysfs." +msgstr "12-STABLE после дополнительных обновлений LinuxKPI в sysfs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2365 +#, no-wrap +msgid "1200519" +msgstr "1200519" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2366 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/352351[352351]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/352351[352351]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2367 +#, no-wrap +msgid "September 15, 2019" +msgstr "15 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2369 +#, no-wrap +msgid "12-STABLE after MFC of the new fusefs driver." +msgstr "12-STABLE после переноса (MFC) нового драйвера fusefs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2370 +#, no-wrap +msgid "1201000" +msgstr "1201000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2371 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/352546[352546]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/352546[352546]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2372 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2377 +#, no-wrap +msgid "September 20, 2019" +msgstr "20 сентября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2374 +#, no-wrap +msgid "releng/12.1 branched from stable/12@r352480." +msgstr "releng/12.1 ответвился от stable/12@r352480." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2375 +#, no-wrap +msgid "1201500" +msgstr "1201500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2376 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/352547[352547]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/352547[352547]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2379 +#, no-wrap +msgid "12-STABLE after branching releng/12.1." +msgstr "12-STABLE после ветвления releng/12.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2380 +#, no-wrap +msgid "1201501" +msgstr "1201501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2381 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3489 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354598[354598]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354598[354598]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2382 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2397 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3490 +#, no-wrap +msgid "November 10, 2019" +msgstr "10 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2384 +#, no-wrap +msgid "12-STABLE after fixing a potential OOB read security issue in libc++." +msgstr "12-STABLE после исправления потенциальной проблемы безопасности OOB-чтения в libc++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2385 +#, no-wrap +msgid "1201502" +msgstr "1201502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2386 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354613[354613]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354613[354613]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2387 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3495 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3500 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3505 +#, no-wrap +msgid "November 11, 2019" +msgstr "11 ноября 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2389 +#, no-wrap +msgid "12-STABLE after enabling device class group attributes in the LinuxKPI." +msgstr "12-STABLE после включения атрибутов группы классов устройств в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2390 +#, no-wrap +msgid "1201503" +msgstr "1201503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2391 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354928[354928]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354928[354928]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2394 +#, no-wrap +msgid "12-STABLE after adding support for `AT_EXECPATH` to man:elf_aux_info[3]." +msgstr "12-STABLE после добавления поддержки `AT_EXECPATH` в man:elf_aux_info[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2395 +#, no-wrap +msgid "1201504" +msgstr "1201504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2399 +#, no-wrap +msgid "12-STABLE after correcting the C++ version check for declaring man:timespec_get[3]." +msgstr "12-STABLE после исправления проверки версии C++ для объявления man:timespec_get[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2400 +#, no-wrap +msgid "1201505" +msgstr "1201505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2401 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3509 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355899[355899]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355899[355899]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2402 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3510 +#, no-wrap +msgid "December 19, 2019" +msgstr "19 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2404 +#, no-wrap +msgid "12-STABLE after adding `sigsetop` extensions commonly found in musl libc and glibc." +msgstr "12-STABLE после добавления расширений `sigsetop`, которые часто встречаются в musl libc и glibc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2405 +#, no-wrap +msgid "1201506" +msgstr "1201506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2406 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/355968[355968]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/355968[355968]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2407 +#, no-wrap +msgid "December 21, 2019" +msgstr "21 декабря 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2409 +#, no-wrap +msgid "12-STABLE after doubling the value of `ARG_MAX`, for 64 bit platforms." +msgstr "12-STABLE после удвоения значения `ARG_MAX` для 64-битных платформ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2410 +#, no-wrap +msgid "1201507" +msgstr "1201507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2411 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356306[356306]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356306[356306]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2414 +#, no-wrap +msgid "12-STABLE after adding functions to man:bitstring[3] to find contiguous sequences of set or unset bits." +msgstr "12-STABLE после добавления функций в man:bitstring[3] для поиска непрерывных последовательностей установленных или сброшенных битов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2415 +#, no-wrap +msgid "1201508" +msgstr "1201508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2416 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356394[356394]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356394[356394]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2419 +#, no-wrap +msgid "12-STABLE after making USB statistics be per-device instead of per bus." +msgstr "12-STABLE после изменения статистики USB для каждого устройства вместо каждой шины." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2420 +#, no-wrap +msgid "1201509" +msgstr "1201509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2421 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356460[356460]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356460[356460]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2422 +#, no-wrap +msgid "January 7, 2020" +msgstr "7 января 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2424 +#, no-wrap +msgid "12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 9.0.0 final release r372316." +msgstr "12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до финального релиза 9.0.0 r372316." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2425 +#, no-wrap +msgid "1201510" +msgstr "1201510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2426 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356679[356679]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356679[356679]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2427 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3520 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4293 +#, no-wrap +msgid "January 13, 2020" +msgstr "13 января 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2429 +#, no-wrap +msgid "12-STABLE after adding own counter for cancelled USB transfers." +msgstr "12-STABLE после добавления собственного счётчика для отменённых USB-передач." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2430 +#, no-wrap +msgid "1201511" +msgstr "1201511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2431 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/357333[357333]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/357333[357333]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2432 +#, no-wrap +msgid "January 31, 2020" +msgstr "31 января 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2434 +#, no-wrap +msgid "12-STABLE after adding [.filename]#/etc/os-release# as a symbolic link to [.filename]#/var/run/os-release#." +msgstr "12-STABLE после добавления символической ссылки [.filename]#/etc/os-release# на [.filename]#/var/run/os-release#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2435 +#, no-wrap +msgid "1201512" +msgstr "1201512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2436 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/357612[357612]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/357612[357612]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2437 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3525 +#, no-wrap +msgid "February 6, 2020" +msgstr "6 февраля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2439 +#, no-wrap +msgid "12-STABLE after recent LinuxKPI changes." +msgstr "12-STABLE после недавних изменений в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2440 +#, no-wrap +msgid "1201513" +msgstr "1201513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2441 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359957[359957]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359957[359957]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2442 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3530 +#, no-wrap +msgid "April 15, 2020" +msgstr "15 апреля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2444 +#, no-wrap +msgid "12-STABLE after cloning the RCU interface into a sleepable and a non-sleepable part in the LinuxKPI." +msgstr "12-STABLE после разделения интерфейса RCU на допускающий и не допускающий сон части в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2445 +#, no-wrap +msgid "1201514" +msgstr "1201514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2446 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360525[360525]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360525[360525]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2447 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2452 +#, no-wrap +msgid "May 1, 2020" +msgstr "1 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2449 +#, no-wrap +msgid "12-STABLE after implementing full man:bus_dma[9] support in the LinuxKPI and pulling in all dependencies." +msgstr "12-STABLE после реализации полной поддержки man:bus_dma[9] в LinuxKPI и включения всех зависимостей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2450 +#, no-wrap +msgid "1201515" +msgstr "1201515" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2451 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360545[360545]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360545[360545]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2454 +#, no-wrap +msgid "12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0 release." +msgstr "12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2455 +#, no-wrap +msgid "1201516" +msgstr "1201516" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2456 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360620[360620]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360620[360620]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2457 +#, no-wrap +msgid "May 4, 2020" +msgstr "4 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2459 +#, no-wrap +msgid "12-STABLE after moving `id_mapped` to end of `bus_dma_impl` structure to preserve KPI." +msgstr "12-STABLE после перемещения `id_mapped` в конец структуры `bus_dma_impl` для сохранения KPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2460 +#, no-wrap +msgid "1201517" +msgstr "1201517" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2461 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/361350[361350]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/361350[361350]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2462 +#, no-wrap +msgid "May 21, 2020" +msgstr "21 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2464 +#, no-wrap +msgid "12-STABLE after renaming `vm.max_wired` to `vm.max_user_wired` and changing its type." +msgstr "12-STABLE после переименования `vm.max_wired` в `vm.max_user_wired` и изменения его типа." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2465 +#, no-wrap +msgid "1201518" +msgstr "1201518" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2466 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/362319[362319]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/362319[362319]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2467 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3560 +#, no-wrap +msgid "June 18, 2020" +msgstr "18 июня 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2469 +#, no-wrap +msgid "12-STABLE after implementing `__is_constexpr()` function macro in the LinuxKPI." +msgstr "12-STABLE после реализации макроса функции `__is_constexpr()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2470 +#, no-wrap +msgid "1201519" +msgstr "1201519" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2471 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/362916[362916]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/362916[362916]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2472 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3565 +#, no-wrap +msgid "July 4, 2020" +msgstr "4 июля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2474 +#, no-wrap +msgid "12-STABLE after making liblzma use libmd implementation of SHA256." +msgstr "12-STABLE после перевода liblzma на использование реализации SHA256 из libmd." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2475 +#, no-wrap +msgid "1201520" +msgstr "1201520" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2476 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363494[363494]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363494[363494]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2477 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3570 +#, no-wrap +msgid "July 24, 2020" +msgstr "24 июля 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2479 +#, no-wrap +msgid "12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.1 release." +msgstr "12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2480 +#, no-wrap +msgid "1201521" +msgstr "1201521" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2481 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363790[363790]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363790[363790]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2482 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3575 +#, no-wrap +msgid "August 3, 2020" +msgstr "3 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2484 +#, no-wrap +msgid "12-STABLE after implementing the `array_size()` function in the LinuxKPI." +msgstr "12-STABLE после реализации функции `array_size()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2485 +#, no-wrap +msgid "1201522" +msgstr "1201522" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2486 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363832[363832]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363832[363832]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2487 +#, no-wrap +msgid "August 4, 2020" +msgstr "4 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2489 +#, no-wrap +msgid "12-STABLE after adding sysctlbyname system call." +msgstr "12-STABLE после добавления системного вызова sysctlbyname." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2490 +#, no-wrap +msgid "1201523" +msgstr "1201523" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2491 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364390[364390]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364390[364390]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2492 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3580 +#, no-wrap +msgid "August 19, 2020" +msgstr "19 августа 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2494 +#, no-wrap +msgid "12-STABLE after change to clone the task struct fields related to RCU." +msgstr "12-STABLE после изменения для клонирования полей структуры задачи, связанных с RCU." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2495 +#, no-wrap +msgid "1201524" +msgstr "1201524" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2496 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365356[365356]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365356[365356]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2497 +#, no-wrap +msgid "September 5, 2020" +msgstr "5 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2499 +#, no-wrap +msgid "12-STABLE after splitting XDR off into a separate kernel module, to minimize ZFS dependencies." +msgstr "12-STABLE после выделения XDR в отдельный модуль ядра для минимизации зависимостей ZFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2500 +#, no-wrap +msgid "1201525" +msgstr "1201525" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2501 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3584 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365471[365471]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365471[365471]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2504 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2569 +#, no-wrap +msgid "12-STABLE after adding atomic and `bswap` functions to libcompiler_rt." +msgstr "12-STABLE после добавления атомарных функций и функций `bswap` в libcompiler_rt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2505 +#, no-wrap +msgid "1201526" +msgstr "1201526" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2506 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365608[365608]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365608[365608]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2507 +#, no-wrap +msgid "September 10, 2020" +msgstr "10 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2509 +#, no-wrap +msgid "12-STABLE after updating net80211 and kernel privilege checking API changes." +msgstr "12-STABLE после обновления net80211 и изменений API проверки привилегий ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2510 +#, no-wrap +msgid "1202000" +msgstr "1202000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2511 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365618[365618]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365618[365618]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2512 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2517 +#, no-wrap +msgid "September 11, 2020" +msgstr "11 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2514 +#, no-wrap +msgid "releng/12.2 branched from stable/12@r365618." +msgstr "releng/12.2 ответвился от stable/12@r365618." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2515 +#, no-wrap +msgid "1202500" +msgstr "1202500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2516 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365619[365619]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365619[365619]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2519 +#, no-wrap +msgid "12-STABLE after branching releng/12.2." +msgstr "12-STABLE после ветвления releng/12.2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2520 +#, no-wrap +msgid "1202501" +msgstr "1202501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2521 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3589 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365661[365661]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365661[365661]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2522 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3590 +#, no-wrap +msgid "September 12, 2020" +msgstr "12 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2524 +#, no-wrap +msgid "12-STABLE after followup commits to libcompiler_rt." +msgstr "12-STABLE после последующих коммитов в libcompiler_rt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2525 +#, no-wrap +msgid "1202502" +msgstr "1202502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2526 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/365816[365816]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/365816[365816]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2527 +#, no-wrap +msgid "September 16, 2020" +msgstr "16 сентября 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2529 +#, no-wrap +msgid "12-STABLE after fixing man:crunchgen[1] application build with `WARNS=6`." +msgstr "12-STABLE после исправления сборки приложения man:crunchgen[1] с `WARNS=6`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2530 +#, no-wrap +msgid "1202503" +msgstr "1202503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2531 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366878[366878]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366878[366878]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2534 +#, no-wrap +msgid "12-STABLE after populating the acquire context field of a `ww_mutex` in the LinuxKPI." +msgstr "12-STABLE после заполнения поля контекста захвата `ww_mutex` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2535 +#, no-wrap +msgid "1202504" +msgstr "1202504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2536 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367511[367511]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367511[367511]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2539 +#, no-wrap +msgid "12-STABLE after the addition of man:ptsname_r[3]." +msgstr "12-STABLE после добавления man:ptsname_r[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2540 +#, no-wrap +msgid "1202505" +msgstr "1202505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2541 +#, no-wrap +msgid "gitref:f3d75bed5475b15f21edf4052665b1212b548bd0[repository=\"src\",length=12]" +msgstr "gitref:f3d75bed5475b15f21edf4052665b1212b548bd0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2542 +#, no-wrap +msgid "December 28, 2020" +msgstr "28 декабря 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2544 +#, no-wrap +msgid "12-STABLE after improving handling of alternate settings in the USB stack." +msgstr "12-STABLE после улучшения обработки альтернативных настроек в стеке USB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2545 +#, no-wrap +msgid "1202506" +msgstr "1202506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2546 +#, no-wrap +msgid "gitref:d36cc12ddfe3335ec8306bd4b393f11069551fa0[repository=\"src\",length=12]" +msgstr "gitref:d36cc12ddfe3335ec8306bd4b393f11069551fa0[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2549 +#, no-wrap +msgid "12-STABLE after changing the internal KAPI between the krpc and NFS." +msgstr "12-STABLE после изменения внутреннего KAPI между krpc и NFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2550 +#, no-wrap +msgid "1202507" +msgstr "1202507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2551 +#, no-wrap +msgid "gitref:1e279fe9deaea1c5e3503117dd3077dcffb1276d[repository=\"src\",length=12]" +msgstr "gitref:1e279fe9deaea1c5e3503117dd3077dcffb1276d[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2554 +#, no-wrap +msgid "12-STABLE after changing the internal KAPI between the nscl.ko and nfscommon.ko modules." +msgstr "12-STABLE после изменения внутреннего KAPI между модулями nscl.ko и nfscommon.ko." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2555 +#, no-wrap +msgid "1202508" +msgstr "1202508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2556 +#, no-wrap +msgid "gitref:489236b0474857b0a7a2df77c302290e12be9e7b[repository=\"src\",length=12]" +msgstr "gitref:489236b0474857b0a7a2df77c302290e12be9e7b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2559 +#, no-wrap +msgid "12-STABLE after changing the internal KAPI between the krpc and nfsd modules." +msgstr "12-STABLE после изменения внутреннего KAPI между модулями krpc и nfsd." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2560 +#, no-wrap +msgid "1203500" +msgstr "1203500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2561 +#, no-wrap +msgid "gitref:f2900e784cb024e55ec0f5cd6834af5fadcb9f9a[repository=\"src\",length=12]" +msgstr "gitref:f2900e784cb024e55ec0f5cd6834af5fadcb9f9a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2562 +#, no-wrap +msgid "October 20, 2021" +msgstr "20 октября 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2564 +#, no-wrap +msgid "12-STABLE after branching releng/12.3." +msgstr "12-STABLE после ветвления releng/12.3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2565 +#, no-wrap +msgid "1203501" +msgstr "1203501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2566 +#, no-wrap +msgid "gitref:b148c7b87148b653fdbef9c5aa591b9abcd99e26[repository=\"src\",length=12]" +msgstr "gitref:b148c7b87148b653fdbef9c5aa591b9abcd99e26[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2567 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2572 +#, no-wrap +msgid "December 22, 2021" +msgstr "22 декабря 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2570 +#, no-wrap +msgid "1203502" +msgstr "1203502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2571 +#, no-wrap +msgid "gitref:4772e4135cb3fe7f25531894f3b02f35ec086bda[repository=\"src\",length=12]" +msgstr "gitref:4772e4135cb3fe7f25531894f3b02f35ec086bda[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2574 +#, no-wrap +msgid "12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 11.0.1." +msgstr "12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 11.0.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2575 +#, no-wrap +msgid "1203503" +msgstr "1203503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2576 +#, no-wrap +msgid "gitref:e405b2dc913c99189aa9b923ed686a790253cc7e[repository=\"src\",length=12]" +msgstr "gitref:e405b2dc913c99189aa9b923ed686a790253cc7e[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2577 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2582 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2587 +#, no-wrap +msgid "December 25, 2021" +msgstr "25 декабря 2021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2579 +#, no-wrap +msgid "12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 12.0.0." +msgstr "12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 12.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2580 +#, no-wrap +msgid "1203504" +msgstr "1203504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2581 +#, no-wrap +msgid "gitref:1a398266112e73f91a4f2e2701ceefd3f2948aac[repository=\"src\",length=12]" +msgstr "gitref:1a398266112e73f91a4f2e2701ceefd3f2948aac[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2584 +#, no-wrap +msgid "12-STABLE after adding out-of-line LSE atomics helpers to [.filename]#libcompiler_rt.a# on aarch64." +msgstr "12-STABLE после добавления вспомогательных функций LSE атомарных операций вне строки в [.filename]#libcompiler_rt.a# для архитектуры aarch64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2585 +#, no-wrap +msgid "1203505" +msgstr "1203505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2586 +#, no-wrap +msgid "gitref:0b7be89b329e0f862c25f34abfb13c75a4d45f2a[repository=\"src\",length=12]" +msgstr "gitref:0b7be89b329e0f862c25f34abfb13c75a4d45f2a[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2589 +#, no-wrap +msgid "12-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 13.0.0." +msgstr "12-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 13.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2590 +#, no-wrap +msgid "1203506" +msgstr "1203506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2591 +#, no-wrap +msgid "gitref:f591279d9c93bc2ea9cd1a447c2df11d437fbc7b[repository=\"src\",length=12]" +msgstr "gitref:f591279d9c93bc2ea9cd1a447c2df11d437fbc7b[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2592 +#, no-wrap +msgid "February 12, 2022" +msgstr "12 февраля 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2594 +#, no-wrap +msgid "12-STABLE after restoring availability tradeoff of random(4)." +msgstr "12-STABLE после восстановления компромисса доступности random(4)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2595 +#, no-wrap +msgid "1203507" +msgstr "1203507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2596 +#, no-wrap +msgid "gitref:180d95e04e938328de8f2a24d16fdb5049e15262[repository=\"src\",length=12]" +msgstr "gitref:180d95e04e938328de8f2a24d16fdb5049e15262[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2597 +#, no-wrap +msgid "April 9, 2022" +msgstr "9 апреля 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2599 +#, no-wrap +msgid "12-STABLE after zlib unification." +msgstr "12-STABLE после объединения zlib." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2600 +#, no-wrap +msgid "1203508" +msgstr "1203508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2601 +#, no-wrap +msgid "gitref:6c717a28505d3e77a0c3780ca1f65eb85b538eb9[repository=\"src\",length=12]" +msgstr "gitref:6c717a28505d3e77a0c3780ca1f65eb85b538eb9[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2604 +#, no-wrap +msgid "12-STABLE after iflib: Allow drivers to determine which queue to TX on." +msgstr "12-STABLE после iflib: Разрешить драйверам определять, в какую очередь передавать данные." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2605 +#, no-wrap +msgid "1204000" +msgstr "1204000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2606 +#, no-wrap +msgid "gitref:fce871fe35204527a2ce08e43e1572ae9295cc00[repository=\"src\",length=12]" +msgstr "gitref:fce871fe35204527a2ce08e43e1572ae9295cc00[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2607 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2612 +#, no-wrap +msgid "October 20, 2022" +msgstr "20 октября 2022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2609 +#, no-wrap +msgid "releng/12.4 branched from stable/12." +msgstr "releng/12.4 — ветка от stable/12." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2610 +#, no-wrap +msgid "1204500" +msgstr "1204500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2611 +#, no-wrap +msgid "gitref:6a9031c5e2ba5435aa4ea08ee05c351d5bef035d[repository=\"src\",length=12]" +msgstr "gitref:6a9031c5e2ba5435aa4ea08ee05c351d5bef035d[repository=\"src\",length=12]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2614 +#, no-wrap +msgid "12-STABLE after branching releng/12.4." +msgstr "12-STABLE после ветвления releng/12.4." + +#. Template: +#. |12XXXXX +#. |gitref:XXXXXXXX[repository="src",length=12] +#. |October 30, 2021 +#. |12-STABLE after XXXXXX. +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2626 +#, no-wrap +msgid "FreeBSD 11 Versions" +msgstr "FreeBSD 11 Версии" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2629 +#, no-wrap +msgid "FreeBSD 11 `__FreeBSD_version` Values" +msgstr "FreeBSD 11 Значения `__FreeBSD_version`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2638 +#, no-wrap +msgid "1100000" +msgstr "1100000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2639 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/256284[256284]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/256284[256284]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2640 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3913 +#, no-wrap +msgid "October 10, 2013" +msgstr "10 октября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2642 +#, no-wrap +msgid "11.0-CURRENT." +msgstr "11.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2643 +#, no-wrap +msgid "1100001" +msgstr "1100001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2644 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/256776[256776]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/256776[256776]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2645 +#, no-wrap +msgid "October 19, 2013" +msgstr "19 октября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2647 +#, no-wrap +msgid "11.0-CURRENT after addition of support for \"first boot\" [.filename]#rc.d# scripts, so ports can make use of this." +msgstr "11.0-CURRENT после добавления поддержки сценариев [.filename]#rc.d# для \"первой загрузки\", что позволяет портам использовать эту возможность." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2648 +#, no-wrap +msgid "1100002" +msgstr "1100002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2649 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/257696[257696]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/257696[257696]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2650 +#, no-wrap +msgid "November 5, 2013" +msgstr "5 ноября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2652 +#, no-wrap +msgid "11.0-CURRENT after dropping support for historic ioctls." +msgstr "11.0-CURRENT после прекращения поддержки устаревших ioctl." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2653 +#, no-wrap +msgid "1100003" +msgstr "1100003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2654 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/258284[258284]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/258284[258284]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2655 +#, no-wrap +msgid "November 17, 2013" +msgstr "17 ноября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2657 +#, no-wrap +msgid "11.0-CURRENT after iconv changes." +msgstr "11.0-CURRENT после изменений в iconv." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2658 +#, no-wrap +msgid "1100004" +msgstr "1100004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2659 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/259424[259424]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/259424[259424]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2660 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3938 +#, no-wrap +msgid "December 15, 2013" +msgstr "15 декабря 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2662 +#, no-wrap +msgid "11.0-CURRENT after the behavior change of `gss_pseudo_random` introduced in link:https://svnweb.freebsd.org/changeset/base/259286[259286]." +msgstr "11.0-CURRENT после изменения поведения `gss_pseudo_random`, внесённого в link:https://svnweb.freebsd.org/changeset/base/259286[259286]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2663 +#, no-wrap +msgid "1100005" +msgstr "1100005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2664 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/260010[260010]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/260010[260010]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2665 +#, no-wrap +msgid "December 28, 2013" +msgstr "28 декабря 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2667 +#, no-wrap +msgid "11.0-CURRENT after link:https://svnweb.freebsd.org/changeset/base/259951[259951] - Do not coalesce entries in man:vm_map_stack[9]." +msgstr "11.0-CURRENT после link:https://svnweb.freebsd.org/changeset/base/259951[259951] - Не объединять записи в man:vm_map_stack[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2668 +#, no-wrap +msgid "1100006" +msgstr "1100006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2669 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/261246[261246]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/261246[261246]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2670 +#, no-wrap +msgid "January 28, 2014" +msgstr "28 января 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2672 +#, no-wrap +msgid "11.0-CURRENT after upgrades of libelf and libdwarf." +msgstr "11.0-CURRENT после обновления libelf и libdwarf." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2673 +#, no-wrap +msgid "1100007" +msgstr "1100007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2674 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/261283[261283]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/261283[261283]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2675 +#, no-wrap +msgid "January 30, 2014" +msgstr "30 января 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2677 +#, no-wrap +msgid "11.0-CURRENT after upgrade of libc++ to 3.4 release." +msgstr "11.0-CURRENT после обновления libc++ до версии 3.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2678 +#, no-wrap +msgid "1100008" +msgstr "1100008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2679 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/261881[261881]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/261881[261881]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2680 +#, no-wrap +msgid "February 14, 2014" +msgstr "February 14, 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2682 +#, no-wrap +msgid "11.0-CURRENT after libc++ 3.4 ABI compatibility fix." +msgstr "11.0-CURRENT после исправления совместимости ABI в libc++ 3.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2683 +#, no-wrap +msgid "1100009" +msgstr "1100009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2684 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/261991[261991]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/261991[261991]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2685 +#, no-wrap +msgid "February 16, 2014" +msgstr "16 февраля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2687 +#, no-wrap +msgid "11.0-CURRENT after upgrade of llvm/clang to 3.4 release." +msgstr "11.0-CURRENT после обновления llvm/clang до версии 3.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2688 +#, no-wrap +msgid "1100010" +msgstr "1100010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2689 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/262630[262630]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/262630[262630]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2690 +#, no-wrap +msgid "February 28, 2014" +msgstr "28 февраля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2692 +#, no-wrap +msgid "11.0-CURRENT after upgrade of ncurses to 5.9 release (rev link:https://svnweb.freebsd.org/changeset/base/262629[262629])." +msgstr "11.0-CURRENT после обновления ncurses до версии 5.9 (ревизия link:https://svnweb.freebsd.org/changeset/base/262629[262629])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2693 +#, no-wrap +msgid "1100011" +msgstr "1100011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2694 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263102[263102]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263102[263102]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2695 +#, no-wrap +msgid "March 13, 2014" +msgstr "13 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2697 +#, no-wrap +msgid "11.0-CURRENT after ABI change in struct `if_data`." +msgstr "11.0-CURRENT после изменения ABI в структуре `if_data`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2698 +#, no-wrap +msgid "1100012" +msgstr "1100012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2699 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263140[263140]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263140[263140]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2700 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2705 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4651 +#, no-wrap +msgid "March 14, 2014" +msgstr "14 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2702 +#, no-wrap +msgid "11.0-CURRENT after removal of Novell IPX protocol support." +msgstr "11.0-CURRENT после удаления поддержки протокола Novell IPX." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2703 +#, no-wrap +msgid "1100013" +msgstr "1100013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2704 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263152[263152]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263152[263152]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2707 +#, no-wrap +msgid "11.0-CURRENT after removal of AppleTalk protocol support." +msgstr "11.0-CURRENT после удаления поддержки протокола AppleTalk." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2708 +#, no-wrap +msgid "1100014" +msgstr "1100014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2709 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263235[263235]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263235[263235]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2710 +#, no-wrap +msgid "March 16, 2014" +msgstr "March 16, 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2712 +#, no-wrap +msgid "11.0-CURRENT after renaming [.filename]## to [.filename]## to avoid a clash with similarly named headers in other operating systems. A compatibility header is left in place to limit build breakage, but will be deprecated in due course." +msgstr "11.0-CURRENT после переименования [.filename]## в [.filename]## во избежание конфликта с одноименными заголовочными файлами в других операционных системах. Совместимый заголовочный файл оставлен для уменьшения количества проблем при сборке, но в будущем будет устаревшим." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2713 +#, no-wrap +msgid "1100015" +msgstr "1100015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2714 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263620[263620]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263620[263620]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2715 +#, no-wrap +msgid "March 22, 2014" +msgstr "22 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2717 +#, no-wrap +msgid "11.0-CURRENT after `cnt` rename to `vm_cnt`." +msgstr "11.0-CURRENT после переименования `cnt` в `vm_cnt`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2718 +#, no-wrap +msgid "1100016" +msgstr "1100016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2719 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263660[263660]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263660[263660]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2720 +#, no-wrap +msgid "March 23, 2014" +msgstr "23 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2722 +#, no-wrap +msgid "11.0-CURRENT after addition of `armv6hf TARGET_ARCH`." +msgstr "11.0-CURRENT после добавления `armv6hf TARGET_ARCH`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2723 +#, no-wrap +msgid "1100017" +msgstr "1100017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2724 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/264121[264121]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/264121[264121]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2725 +#, no-wrap +msgid "April 4, 2014" +msgstr "4 апреля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2727 +#, no-wrap +msgid "11.0-CURRENT after GCC support for `__block` definition." +msgstr "11.0-CURRENT после удаления поддержки GCC для определения `__block`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2728 +#, no-wrap +msgid "1100018" +msgstr "1100018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2729 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/264212[264212]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/264212[264212]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2730 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3963 +#, no-wrap +msgid "April 6, 2014" +msgstr "6 апреля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2732 +#, no-wrap +msgid "11.0-CURRENT after support for UDP-Lite protocol (RFC 3828)." +msgstr "11.0-CURRENT после добавления поддержки протокола UDP-Lite (RFC 3828)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2733 +#, no-wrap +msgid "1100019" +msgstr "1100019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2734 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3967 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4665 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/264289[264289]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/264289[264289]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2735 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3968 +#, no-wrap +msgid "April 8, 2014" +msgstr "8 апреля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2737 +#, no-wrap +msgid "11.0-CURRENT after FreeBSD-SA-14:06.openssl (rev link:https://svnweb.freebsd.org/changeset/base/264265[264265])." +msgstr "11.0-CURRENT после FreeBSD-SA-14:06.openssl (ревизия link:https://svnweb.freebsd.org/changeset/base/264265[264265])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2738 +#, no-wrap +msgid "1100020" +msgstr "1100020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2739 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/265215[265215]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/265215[265215]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2740 +#, no-wrap +msgid "May 1, 2014" +msgstr "1 мая 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2742 +#, no-wrap +msgid "11.0-CURRENT after removing `lindev` in favor of having /dev/full by default (rev link:https://svnweb.freebsd.org/changeset/base/265212[265212])." +msgstr "11.0-CURRENT после удаления `lindev` в пользу наличия /dev/full по умолчанию (rev link:https://svnweb.freebsd.org/changeset/base/265212[265212])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2743 +#, no-wrap +msgid "1100021" +msgstr "1100021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2744 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/266151[266151]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/266151[266151]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2745 +#, no-wrap +msgid "May 6, 2014" +msgstr "6 мая 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2747 +#, no-wrap +msgid "11.0-CURRENT after [.filename]#src.opts.mk# changes, decoupling man:make.conf[5] from `buildworld` (rev link:https://svnweb.freebsd.org/changeset/base/265419[265419])." +msgstr "11.0-CURRENT после изменений в [.filename]#src.opts.mk#, отделяющих man:make.conf[5] от `buildworld` (rev link:https://svnweb.freebsd.org/changeset/base/265419[265419])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2748 +#, no-wrap +msgid "1100022" +msgstr "1100022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2749 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/266904[266904]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/266904[266904]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2750 +#, no-wrap +msgid "May 30, 2014" +msgstr "30 мая 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2752 +#, no-wrap +msgid "11.0-CURRENT after changes to man:strcasecmp[3], moving man:strcasecmp_l[3] and man:strncasecmp_l[3] from [.filename]## to [.filename]## for POSIX 2008 compliance (rev link:https://svnweb.freebsd.org/changeset/base/266865[266865])." +msgstr "11.0-CURRENT после изменений в man:strcasecmp[3], перемещении man:strcasecmp_l[3] и man:strncasecmp_l[3] из [.filename]## в [.filename]## для соответствия POSIX 2008 (rev link:https://svnweb.freebsd.org/changeset/base/266865[266865])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2753 +#, no-wrap +msgid "1100023" +msgstr "1100023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2754 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/267440[267440]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/267440[267440]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2755 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3983 +#, no-wrap +msgid "June 13, 2014" +msgstr "13 июня 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2757 +#, no-wrap +msgid "11.0-CURRENT after the CUSE library and kernel module have been attached to the build by default." +msgstr "11.0-CURRENT после подключения библиотеки CUSE и модуля ядра к сборке по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2758 +#, no-wrap +msgid "1100024" +msgstr "1100024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2759 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/267992[267992]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/267992[267992]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2760 +#, no-wrap +msgid "June 27, 2014" +msgstr "27 июня 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2762 +#, no-wrap +msgid "11.0-CURRENT after man:sysctl[3] API change." +msgstr "11.0-CURRENT после изменения API man:sysctl[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2763 +#, no-wrap +msgid "1100025" +msgstr "1100025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2764 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/268066[268066]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/268066[268066]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2765 +#, no-wrap +msgid "June 30, 2014" +msgstr "30 июня 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2767 +#, no-wrap +msgid "11.0-CURRENT after man:regex[3] library update to add \">\" and \"<\" delimiters." +msgstr "11.0-CURRENT после обновления библиотеки man:regex[3] для добавления разделителей \">\" и \"<\"." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2768 +#, no-wrap +msgid "1100026" +msgstr "1100026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2769 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/268118[268118]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/268118[268118]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2770 +#, no-wrap +msgid "July 1, 2014" +msgstr "1 июля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2772 +#, no-wrap +msgid "11.0-CURRENT after the internal interface between the NFS modules, including the krpc, was changed by (rev link:https://svnweb.freebsd.org/changeset/base/268115[268115])." +msgstr "11.0-CURRENT после изменения внутреннего интерфейса между модулями NFS, включая krpc, в (rev link:https://svnweb.freebsd.org/changeset/base/268115[268115])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2773 +#, no-wrap +msgid "1100027" +msgstr "1100027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2774 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/268441[268441]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/268441[268441]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2775 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3988 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4686 +#, no-wrap +msgid "July 8, 2014" +msgstr "8 июля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2777 +#, no-wrap +msgid "11.0-CURRENT after FreeBSD-SA-14:17.kmem (rev link:https://svnweb.freebsd.org/changeset/base/268431[268431])." +msgstr "11.0-CURRENT после FreeBSD-SA-14:17.kmem (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/268431[268431])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2778 +#, no-wrap +msgid "1100028" +msgstr "1100028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2779 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/268945[268945]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/268945[268945]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2780 +#, no-wrap +msgid "July 21, 2014" +msgstr "21 июля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2782 +#, no-wrap +msgid "11.0-CURRENT after man:hdestroy[3] compliance fix changed ABI." +msgstr "11.0-CURRENT после исправления соответствия man:hdestroy[3] изменился ABI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2783 +#, no-wrap +msgid "1100029" +msgstr "1100029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2784 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/270173[270173]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/270173[270173]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2785 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3998 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4003 +#, no-wrap +msgid "August 3, 2014" +msgstr "3 августа 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2787 +#, no-wrap +msgid "11.0-CURRENT after `SOCK_DGRAM` bug fix (rev link:https://svnweb.freebsd.org/changeset/base/269489[269489])." +msgstr "11.0-CURRENT после исправления ошибки `SOCK_DGRAM` (rev link:https://svnweb.freebsd.org/changeset/base/269489[269489])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2788 +#, no-wrap +msgid "1100030" +msgstr "1100030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2789 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/270929[270929]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/270929[270929]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2790 +#, no-wrap +msgid "September 1, 2014" +msgstr "1 сентября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2792 +#, no-wrap +msgid "11.0-CURRENT after `SOCK_RAW` sockets were changed to not modify packets at all." +msgstr "11.0-CURRENT после того, как сокеты `SOCK_RAW` были изменены так, чтобы вообще не модифицировать пакеты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2793 +#, no-wrap +msgid "1100031" +msgstr "1100031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2794 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4007 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4695 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5483 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/271341[271341]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/271341[271341]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2795 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2805 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4008 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4696 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5484 +#, no-wrap +msgid "September 9, 2014" +msgstr "9 сентября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2797 +#, no-wrap +msgid "11.0-CURRENT after FreeBSD-SA-14:18.openssl (rev link:https://svnweb.freebsd.org/changeset/base/269686[269686])." +msgstr "11.0-CURRENT после FreeBSD-SA-14:18.openssl (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/269686[269686])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2798 +#, no-wrap +msgid "1100032" +msgstr "1100032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2799 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/271438[271438]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/271438[271438]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2800 +#, no-wrap +msgid "September 11, 2014" +msgstr "11 сентября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2802 +#, no-wrap +msgid "11.0-CURRENT after API changes to `ifa_ifwithbroadaddr`, `ifa_ifwithdstaddr`, `ifa_ifwithnet`, and `ifa_ifwithroute`." +msgstr "11.0-CURRENT после изменений API в `ifa_ifwithbroadaddr`, `ifa_ifwithdstaddr`, `ifa_ifwithnet` и `ifa_ifwithroute`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2803 +#, no-wrap +msgid "1100033" +msgstr "1100033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2804 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/271657[271657]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/271657[271657]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2807 +#, no-wrap +msgid "11.0-CURRENT after changing `access`, `eaccess`, and `faccessat` to validate the mode argument." +msgstr "11.0-CURRENT после изменения `access`, `eaccess` и `faccessat` для проверки аргумента mode." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2808 +#, no-wrap +msgid "1100034" +msgstr "1100034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2809 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4012 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4700 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5488 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/271686[271686]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/271686[271686]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2810 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4013 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4701 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5489 +#, no-wrap +msgid "September 16, 2014" +msgstr "16 сентября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2812 +#, no-wrap +msgid "11.0-CURRENT after FreeBSD-SA-14:19.tcp (rev link:https://svnweb.freebsd.org/changeset/base/271666[271666])." +msgstr "11.0-CURRENT после FreeBSD-SA-14:19.tcp (rev link:https://svnweb.freebsd.org/changeset/base/271666[271666])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2813 +#, no-wrap +msgid "1100035" +msgstr "1100035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2814 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/271705[271705]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/271705[271705]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2815 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2820 +#, no-wrap +msgid "September 17, 2014" +msgstr "17 сентября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2817 +#, no-wrap +msgid "11.0-CURRENT after i915 HW context support." +msgstr "11.0-CURRENT после добавления поддержки аппаратного контекста i915." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2818 +#, no-wrap +msgid "1100036" +msgstr "1100036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2819 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/271724[271724]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/271724[271724]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2822 +#, no-wrap +msgid "Version bump to have ABI note distinguish binaries ready for strict man:mmap[2] flags checking (rev link:https://svnweb.freebsd.org/changeset/base/271724[271724])." +msgstr "Увеличение версии для различия в ABI-примечании бинарных файлов, готовых к строгой проверке флагов man:mmap[2] (изменение link:https://svnweb.freebsd.org/changeset/base/271724[271724])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2823 +#, no-wrap +msgid "1100037" +msgstr "1100037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2824 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/272674[272674]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/272674[272674]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2825 +#, no-wrap +msgid "October 6, 2014" +msgstr "6 октября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2827 +#, no-wrap +msgid "11.0-CURRENT after addition of man:explicit_bzero[3] (rev link:https://svnweb.freebsd.org/changeset/base/272673[272673])." +msgstr "11.0-CURRENT после добавления man:explicit_bzero[3] (изменение:https://svnweb.freebsd.org/changeset/base/272673[272673])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2828 +#, no-wrap +msgid "1100038" +msgstr "1100038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2829 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/272951[272951]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/272951[272951]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2830 +#, no-wrap +msgid "October 11, 2014" +msgstr "October 11, 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2832 +#, no-wrap +msgid "11.0-CURRENT after cleanup of TCP wrapper headers." +msgstr "11.0-CURRENT после очистки заголовков TCP wrapper." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2833 +#, no-wrap +msgid "1100039" +msgstr "1100039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2834 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/273250[273250]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/273250[273250]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2835 +#, no-wrap +msgid "October 18, 2014" +msgstr "18 октября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2837 +#, no-wrap +msgid "11.0-CURRENT after removal of `MAP_RENAME` and `MAP_NORESERVE`." +msgstr "11.0-CURRENT после удаления `MAP_RENAME` и `MAP_NORESERVE`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2838 +#, no-wrap +msgid "1100040" +msgstr "1100040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2839 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4032 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4705 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5493 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/273432[273432]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/273432[273432]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2840 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4033 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4706 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5494 +#, no-wrap +msgid "October 21, 2014" +msgstr "21 октября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2842 +#, no-wrap +msgid "11.0-CURRENT after FreeBSD-SA-14:23 (rev link:https://svnweb.freebsd.org/changeset/base/273146[273146])." +msgstr "11.0-CURRENT после FreeBSD-SA-14:23 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/273146[273146])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2843 +#, no-wrap +msgid "1100041" +msgstr "1100041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2844 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/273875[273875]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/273875[273875]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2845 +#, no-wrap +msgid "October 30, 2014" +msgstr "30 октября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2847 +#, no-wrap +msgid "11.0-CURRENT after API changes to `syscall_register`, `syscall32_register`, `syscall_register_helper` and `syscall32_register_helper` (rev link:https://svnweb.freebsd.org/changeset/base/273707[273707])." +msgstr "11.0-CURRENT после изменений API в `syscall_register`, `syscall32_register`, `syscall_register_helper` и `syscall32_register_helper` (rev link:https://svnweb.freebsd.org/changeset/base/273707[273707])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2848 +#, no-wrap +msgid "1100042" +msgstr "1100042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2849 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/274046[274046]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/274046[274046]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2850 +#, no-wrap +msgid "November 3, 2014" +msgstr "3 ноября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2852 +#, no-wrap +msgid "11.0-CURRENT after a change to `struct tcpcb`." +msgstr "11.0-CURRENT после изменения `struct tcpcb`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2853 +#, no-wrap +msgid "1100043" +msgstr "1100043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2854 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/274085[274085]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/274085[274085]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2855 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2860 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2865 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4038 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4711 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5499 +#, no-wrap +msgid "November 4, 2014" +msgstr "4 ноября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2857 +#, no-wrap +msgid "11.0-CURRENT after enabling man:vt[4] by default." +msgstr "11.0-CURRENT после включения man:vt[4] по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2858 +#, no-wrap +msgid "1100044" +msgstr "1100044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2859 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/274116[274116]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/274116[274116]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2862 +#, no-wrap +msgid "11.0-CURRENT after adding new libraries/utilities (`dpv` and `figpar`) for data throughput visualization." +msgstr "11.0-CURRENT после добавления новых библиотек/утилит (`dpv` и `figpar`) для визуализации пропускной способности данных." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2863 +#, no-wrap +msgid "1100045" +msgstr "1100045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2864 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4037 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4710 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5498 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/274162[274162]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/274162[274162]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2867 +#, no-wrap +msgid "11.0-CURRENT after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25." +msgstr "11.0-CURRENT после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2868 +#, no-wrap +msgid "1100046" +msgstr "1100046" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2869 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/274470[274470]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/274470[274470]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2870 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2875 +#, no-wrap +msgid "November 13, 2014" +msgstr "13 ноября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2872 +#, no-wrap +msgid "11.0-CURRENT after `kern_poll` signature change (rev link:https://svnweb.freebsd.org/changeset/base/274462[274462])." +msgstr "11.0-CURRENT после изменения сигнатуры `kern_poll` (rev link:https://svnweb.freebsd.org/changeset/base/274462[274462])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2873 +#, no-wrap +msgid "1100047" +msgstr "1100047" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2874 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/274476[274476]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/274476[274476]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2877 +#, no-wrap +msgid "11.0-CURRENT after removal of no-at version of VFS syscalls helpers, like `kern_open`." +msgstr "11.0-CURRENT после удаления no-at версий вспомогательных системных вызовов VFS, таких как `kern_open`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2878 +#, no-wrap +msgid "1100048" +msgstr "1100048" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2879 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/275358[275358]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/275358[275358]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2880 +#, no-wrap +msgid "December 1, 2014" +msgstr "1 декабря 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2882 +#, no-wrap +msgid "11.0-CURRENT after starting the process of removing the use of the deprecated \"M_FLOWID\" flag from the network code." +msgstr "11.0-CURRENT после начала процесса удаления использования устаревшего флага \"M_FLOWID\" из сетевого кода." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2883 +#, no-wrap +msgid "1100049" +msgstr "1100049" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2884 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/275633[275633]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/275633[275633]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2885 +#, no-wrap +msgid "December 9, 2014" +msgstr "9 декабря 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2887 +#, no-wrap +msgid "11.0-CURRENT after importing an important fix to the LLVM vectorizer, which could lead to buffer overruns in some cases." +msgstr "11.0-CURRENT после импорта важного исправления в векторизатор LLVM, которое в некоторых случаях могло приводить к переполнению буфера." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2888 +#, no-wrap +msgid "1100050" +msgstr "1100050" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2889 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/275732[275732]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/275732[275732]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2890 +#, no-wrap +msgid "December 12, 2014" +msgstr "12 декабря 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2892 +#, no-wrap +msgid "11.0-CURRENT after adding AES-ICM and AES-GCM to OpenCrypto." +msgstr "11.0-CURRENT после добавления AES-ICM и AES-GCM в OpenCrypto." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2893 +#, no-wrap +msgid "1100051" +msgstr "1100051" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2894 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/276096[276096]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/276096[276096]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2895 +#, no-wrap +msgid "December 23, 2014" +msgstr "December 23, 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2897 +#, no-wrap +msgid "11.0-CURRENT after removing old NFS client and server code from the kernel." +msgstr "11.0-CURRENT после удаления старого кода клиента и сервера NFS из ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2898 +#, no-wrap +msgid "1100052" +msgstr "1100052" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2899 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/276479[276479]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/276479[276479]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2900 +#, no-wrap +msgid "December 31, 2014" +msgstr "31 декабря 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2902 +#, no-wrap +msgid "11.0-CURRENT after upgrade of clang, llvm and lldb to 3.5.0 release." +msgstr "11.0-CURRENT после обновления clang, llvm и lldb до версии 3.5.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2903 +#, no-wrap +msgid "1100053" +msgstr "1100053" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2904 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/276781[276781]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/276781[276781]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2905 +#, no-wrap +msgid "January 7, 2015" +msgstr "7 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2907 +#, no-wrap +msgid "11.0-CURRENT after man:MCLGET[9] gained a return value (rev link:https://svnweb.freebsd.org/changeset/base/276750[276750])." +msgstr "11.0-CURRENT после того, как man:MCLGET[9] получил возвращаемое значение (rev link:https://svnweb.freebsd.org/changeset/base/276750[276750])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2908 +#, no-wrap +msgid "1100054" +msgstr "1100054" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2909 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/277213[277213]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/277213[277213]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2910 +#, no-wrap +msgid "January 15, 2015" +msgstr "15 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2912 +#, no-wrap +msgid "11.0-CURRENT after rewrite of callout subsystem." +msgstr "11.0-CURRENT после переработки подсистемы вызовов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2913 +#, no-wrap +msgid "1100055" +msgstr "1100055" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2914 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/277528[277528]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/277528[277528]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2915 +#, no-wrap +msgid "January 22, 2015" +msgstr "22 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2917 +#, no-wrap +msgid "11.0-CURRENT after reverting callout changes in link:https://svnweb.freebsd.org/changeset/base/277213[277213]." +msgstr "11.0-CURRENT после отмены изменений callout в link:https://svnweb.freebsd.org/changeset/base/277213[277213]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2918 +#, no-wrap +msgid "1100056" +msgstr "1100056" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2919 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/277610[277610]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/277610[277610]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2920 +#, no-wrap +msgid "January 23, 2015" +msgstr "23 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2922 +#, no-wrap +msgid "11.0-CURRENT after addition of `futimens` and `utimensat` system calls." +msgstr "11.0-CURRENT после добавления системных вызовов `futimens` и `utimensat`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2923 +#, no-wrap +msgid "1100057" +msgstr "1100057" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2924 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/277897[277897]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/277897[277897]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2925 +#, no-wrap +msgid "January 29, 2015" +msgstr "29 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2927 +#, no-wrap +msgid "11.0-CURRENT after removal of `d_thread_t`." +msgstr "11.0-CURRENT после удаления `d_thread_t`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2928 +#, no-wrap +msgid "1100058" +msgstr "1100058" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2929 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/278228[278228]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/278228[278228]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2930 +#, no-wrap +msgid "February 5, 2015" +msgstr "5 февраля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2932 +#, no-wrap +msgid "11.0-CURRENT after addition of support for probing the SCSI VPD Extended Inquiry page (0x86)." +msgstr "11.0-CURRENT после добавления поддержки запроса страницы расширенного запроса SCSI VPD (0x86)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2933 +#, no-wrap +msgid "1100059" +msgstr "1100059" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2934 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/278442[278442]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/278442[278442]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2935 +#, no-wrap +msgid "February 9, 2015" +msgstr "9 февраля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2937 +#, no-wrap +msgid "11.0-CURRENT after import of xz 5.2.0, which added multi-threaded compression and lzma gained libthr dependency (rev link:https://svnweb.freebsd.org/changeset/base/278433[278433])." +msgstr "11.0-CURRENT после импорта xz 5.2.0, который добавил многопоточное сжатие, и lzma получила зависимость от libthr (rev link:https://svnweb.freebsd.org/changeset/base/278433[278433])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2938 +#, no-wrap +msgid "1100060" +msgstr "1100060" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2939 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/278846[278846]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/278846[278846]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2940 +#, no-wrap +msgid "February 16, 2015" +msgstr "16 февраля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2942 +#, no-wrap +msgid "11.0-CURRENT after forwarding `FBIO_BLANK` to framebuffer clients." +msgstr "11.0-CURRENT после пересылки `FBIO_BLANK` клиентам фреймбуфера." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2943 +#, no-wrap +msgid "1100061" +msgstr "1100061" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2944 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/278964[278964]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/278964[278964]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2945 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4068 +#, no-wrap +msgid "February 18, 2015" +msgstr "18 февраля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2947 +#, no-wrap +msgid "11.0-CURRENT after `CDAI_FLAG_NONE` addition." +msgstr "11.0-CURRENT после добавления `CDAI_FLAG_NONE`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2948 +#, no-wrap +msgid "1100062" +msgstr "1100062" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2949 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/279221[279221]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/279221[279221]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2950 +#, no-wrap +msgid "February 23, 2015" +msgstr "23 февраля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2952 +#, no-wrap +msgid "11.0-CURRENT after man:mtio[4] and man:sa[4] API and man:ioctl[2] additions." +msgstr "11.0-CURRENT после добавлений API man:mtio[4] и man:sa[4], а также man:ioctl[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2953 +#, no-wrap +msgid "1100063" +msgstr "1100063" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2954 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/279728[279728]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/279728[279728]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2955 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2960 +#, no-wrap +msgid "March 7, 2015" +msgstr "7 марта 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2957 +#, no-wrap +msgid "11.0-CURRENT after adding mutex support to the `pps_ioctl()` API in the kernel." +msgstr "11.0-CURRENT после добавления поддержки мьютексов в API `pps_ioctl()` в ядре." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2958 +#, no-wrap +msgid "1100064" +msgstr "1100064" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2959 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/279729[279729]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/279729[279729]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2962 +#, no-wrap +msgid "11.0-CURRENT after adding PPS support to USB serial drivers." +msgstr "11.0-CURRENT после добавления поддержки PPS в драйверы USB-последовательных портов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2963 +#, no-wrap +msgid "1100065" +msgstr "1100065" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2964 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/280031[280031]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/280031[280031]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2965 +#, no-wrap +msgid "March 15, 2015" +msgstr "15 марта 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2967 +#, no-wrap +msgid "11.0-CURRENT after upgrading clang, llvm and lldb to 3.6.0." +msgstr "11.0-CURRENT после обновления clang, llvm и lldb до версии 3.6.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2968 +#, no-wrap +msgid "1100066" +msgstr "1100066" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2969 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/280306[280306]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/280306[280306]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2970 +#, no-wrap +msgid "March 20, 2015" +msgstr "20 марта 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2972 +#, no-wrap +msgid "11.0-CURRENT after removal of SSLv2 support from OpenSSL." +msgstr "11.0-CURRENT после удаления поддержки SSLv2 из OpenSSL." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2973 +#, no-wrap +msgid "1100067" +msgstr "1100067" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2974 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/280630[280630]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/280630[280630]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2975 +#, no-wrap +msgid "March 25, 2015" +msgstr "25 марта 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2977 +#, no-wrap +msgid "11.0-CURRENT after removal of SSLv2 support from man:fetch[1] and man:fetch[3]." +msgstr "11.0-CURRENT после удаления поддержки SSLv2 из man:fetch[1] и man:fetch[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2978 +#, no-wrap +msgid "1100068" +msgstr "1100068" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2979 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/281172[281172]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/281172[281172]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2980 +#, no-wrap +msgid "April 6, 2015" +msgstr "6 апреля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2982 +#, no-wrap +msgid "11.0-CURRENT after change to net.inet6.ip6.mif6table sysctl." +msgstr "11.0-CURRENT после изменения системной настройки net.inet6.ip6.mif6table." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2983 +#, no-wrap +msgid "1100069" +msgstr "1100069" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2984 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/281550[281550]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/281550[281550]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2985 +#, no-wrap +msgid "April 15, 2015" +msgstr "15 апреля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2987 +#, no-wrap +msgid "11.0-CURRENT after removal of const qualifier from man:iconv[3]." +msgstr "11.0-CURRENT после удаления квалификатора const из man:iconv[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2988 +#, no-wrap +msgid "1100070" +msgstr "1100070" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2989 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/281613[281613]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/281613[281613]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2990 +#, no-wrap +msgid "April 16, 2015" +msgstr "16 апреля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2992 +#, no-wrap +msgid "11.0-CURRENT after moving ALTQ from [.filename]#contrib# to [.filename]#net/altq#." +msgstr "11.0-CURRENT после перемещения ALTQ из [.filename]#contrib# в [.filename]#net/altq#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2993 +#, no-wrap +msgid "1100071" +msgstr "1100071" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2994 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/282256[282256]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/282256[282256]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2995 +#, no-wrap +msgid "April 29, 2015" +msgstr "29 апреля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2997 +#, no-wrap +msgid "11.0-CURRENT after API/ABI change to man:smb[4] (rev link:https://svnweb.freebsd.org/changeset/base/281985[281985])." +msgstr "11.0-CURRENT после изменения API/ABI в man:smb[4] (rev link:https://svnweb.freebsd.org/changeset/base/281985[281985])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2998 +#, no-wrap +msgid "1100072" +msgstr "1100072" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:2999 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/282319[282319]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/282319[282319]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3000 +#, no-wrap +msgid "May 1, 2015" +msgstr "1 мая 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3002 +#, no-wrap +msgid "11.0-CURRENT after adding man:reallocarray[3] in libc (rev link:https://svnweb.freebsd.org/changeset/base/282314[282314])." +msgstr "11.0-CURRENT после добавления man:reallocarray[3] в libc (изменение link:https://svnweb.freebsd.org/changeset/base/282314[282314])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3003 +#, no-wrap +msgid "1100073" +msgstr "1100073" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3004 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/282650[282650]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/282650[282650]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3005 +#, no-wrap +msgid "May 8, 2015" +msgstr "8 мая 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3007 +#, no-wrap +msgid "11.0-CURRENT after extending the maximum number of allowed PCM channels in a PCM stream to 127 and decreasing the maximum number of sub-channels to 1." +msgstr "11.0-CURRENT после увеличения максимального количества разрешённых PCM-каналов в PCM-потоке до 127 и уменьшения максимального количества подканалов до 1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3008 +#, no-wrap +msgid "1100074" +msgstr "1100074" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3009 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/283526[283526]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/283526[283526]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3010 +#, no-wrap +msgid "May 25, 2015" +msgstr "25 мая 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3012 +#, no-wrap +msgid "11.0-CURRENT after adding preliminary support for x86-64 Linux binaries (rev link:https://svnweb.freebsd.org/changeset/base/283424[283424]), and upgrading clang and llvm to 3.6.1." +msgstr "11.0-CURRENT после добавления предварительной поддержки бинарных файлов Linux для x86-64 (rev link:https://svnweb.freebsd.org/changeset/base/283424[283424]) и обновления clang и llvm до версии 3.6.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3013 +#, no-wrap +msgid "1100075" +msgstr "1100075" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3014 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/283623[283623]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/283623[283623]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3015 +#, no-wrap +msgid "May 27, 2015" +msgstr "27 мая 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3017 +#, no-wrap +msgid "11.0-CURRENT after `dounmount()` requiring a reference on the passed struct mount (rev link:https://svnweb.freebsd.org/changeset/base/283602[283602])." +msgstr "11.0-CURRENT после `dounmount()`, требующей ссылки на переданную структуру mount (изменение rev link:https://svnweb.freebsd.org/changeset/base/283602[283602])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3018 +#, no-wrap +msgid "1100076" +msgstr "1100076" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3019 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/283983[283983]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/283983[283983]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3020 +#, no-wrap +msgid "June 4, 2015" +msgstr "4 июня 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3022 +#, no-wrap +msgid "11.0-CURRENT after disabled generation of legacy formatted password databases entries by default." +msgstr "11.0-CURRENT после отключения генерации записей в устаревших форматах баз данных паролей по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3023 +#, no-wrap +msgid "1100077" +msgstr "1100077" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3024 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/284233[284233]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/284233[284233]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3025 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4118 +#, no-wrap +msgid "June 10, 2015" +msgstr "10 июня 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3027 +#, no-wrap +msgid "11.0-CURRENT after API changes to `lim_cur`, `lim_max`, and `lim_rlimit` (rev link:https://svnweb.freebsd.org/changeset/base/284215[284215])." +msgstr "11.0-CURRENT после изменений API в `lim_cur`, `lim_max` и `lim_rlimit` (rev link:https://svnweb.freebsd.org/changeset/base/284215[284215])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3028 +#, no-wrap +msgid "1100078" +msgstr "1100078" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3029 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/286672[286672]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/286672[286672]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3030 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3245 +#, no-wrap +msgid "August 12, 2015" +msgstr "12 августа 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3032 +#, no-wrap +msgid "11.0-CURRENT after man:crunchgen[1] changes from link:https://svnweb.freebsd.org/changeset/base/284356[284356] to link:https://svnweb.freebsd.org/changeset/base/285986[285986]." +msgstr "11.0-CURRENT после изменений man:crunchgen[1] в ревизиях link:https://svnweb.freebsd.org/changeset/base/284356[284356] до link:https://svnweb.freebsd.org/changeset/base/285986[285986]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3033 +#, no-wrap +msgid "1100079" +msgstr "1100079" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3034 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/286874[286874]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/286874[286874]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3035 +#, no-wrap +msgid "August 18, 2015" +msgstr "18 августа 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3037 +#, no-wrap +msgid "11.0-CURRENT after import of jemalloc 4.0.0 (rev link:https://svnweb.freebsd.org/changeset/base/286866[286866])." +msgstr "11.0-CURRENT после импорта jemalloc 4.0.0 (ревизия link:https://svnweb.freebsd.org/changeset/base/286866[286866])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3038 +#, no-wrap +msgid "1100080" +msgstr "1100080" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3039 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/288943[288943]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/288943[288943]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3040 +#, no-wrap +msgid "October 5, 2015" +msgstr "5 октября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3042 +#, no-wrap +msgid "11.0-CURRENT after upgrading clang, llvm, lldb, compiler-rt and libc++ to 3.7.0." +msgstr "11.0-CURRENT после обновления clang, llvm, lldb, compiler-rt и libc++ до версии 3.7.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3043 +#, no-wrap +msgid "1100081" +msgstr "1100081" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3044 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/289415[289415]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/289415[289415]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3045 +#, no-wrap +msgid "October 16, 2015" +msgstr "16 октября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3047 +#, no-wrap +msgid "11.0-CURRENT after `undating` ZFS to support resumable send/receive (rev link:https://svnweb.freebsd.org/changeset/base/289362[289362])." +msgstr "11.0-CURRENT после `обновления` ZFS для поддержки возобновляемой отправки/приёмки (rev link:https://svnweb.freebsd.org/changeset/base/289362[289362])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3048 +#, no-wrap +msgid "1100082" +msgstr "1100082" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3049 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/289594[289594]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/289594[289594]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3050 +#, no-wrap +msgid "October 19, 2015" +msgstr "19 октября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3052 +#, no-wrap +msgid "11.0-CURRENT after Linux KPI updates." +msgstr "11.0-CURRENT после обновлений Linux KPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3053 +#, no-wrap +msgid "1100083" +msgstr "1100083" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3054 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/289749[289749]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/289749[289749]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3055 +#, no-wrap +msgid "October 22, 2015" +msgstr "October 22, 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3057 +#, no-wrap +msgid "11.0-CURRENT after renaming [.filename]#linuxapi.ko# to [.filename]#linuxkpi.ko#." +msgstr "11.0-CURRENT после переименования [.filename]#linuxapi.ko# в [.filename]#linuxkpi.ko#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3058 +#, no-wrap +msgid "1100084" +msgstr "1100084" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3059 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/290135[290135]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/290135[290135]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3060 +#, no-wrap +msgid "October 29, 2015" +msgstr "29 октября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3062 +#, no-wrap +msgid "11.0-CURRENT after moving the LinuxKPI module into the default kernel build." +msgstr "11.0-CURRENT после перемещения модуля LinuxKPI в стандартную сборку ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3063 +#, no-wrap +msgid "1100085" +msgstr "1100085" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3064 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/290207[290207]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/290207[290207]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3065 +#, no-wrap +msgid "October 30, 2015" +msgstr "30 октября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3067 +#, no-wrap +msgid "11.0-CURRENT after import of OpenSSL 1.0.2d." +msgstr "11.0-CURRENT после импорта OpenSSL 1.0.2d." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3068 +#, no-wrap +msgid "1100086" +msgstr "1100086" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3069 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/290275[290275]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/290275[290275]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3070 +#, no-wrap +msgid "November 2, 2015" +msgstr "2 ноября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3072 +#, no-wrap +msgid "11.0-CURRENT after making man:figpar[3] macros more unique." +msgstr "11.0-CURRENT после изменения макросов man:figpar[3] для большей уникальности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3073 +#, no-wrap +msgid "1100087" +msgstr "1100087" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3074 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/290479[290479]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/290479[290479]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3075 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3080 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3085 +#, no-wrap +msgid "November 7, 2015" +msgstr "7 ноября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3077 +#, no-wrap +msgid "11.0-CURRENT after changing man:sysctl_add_oid[9]'s ABI." +msgstr "11.0-CURRENT после изменения ABI man:sysctl_add_oid[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3078 +#, no-wrap +msgid "1100088" +msgstr "1100088" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3079 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/290495[290495]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/290495[290495]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3082 +#, no-wrap +msgid "11.0-CURRENT after string collation and locales rework." +msgstr "11.0-CURRENT после переработки сортировки строк и локалей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3083 +#, no-wrap +msgid "1100089" +msgstr "1100089" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3084 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/290505[290505]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/290505[290505]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3087 +#, no-wrap +msgid "11.0-CURRENT after API change to man:sysctl_add_oid[9] (rev link:https://svnweb.freebsd.org/changeset/base/290475[290475])." +msgstr "11.0-CURRENT после изменения API в man:sysctl_add_oid[9] (rev link:https://svnweb.freebsd.org/changeset/base/290475[290475])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3088 +#, no-wrap +msgid "1100090" +msgstr "1100090" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3089 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/290715[290715]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/290715[290715]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3090 +#, no-wrap +msgid "November 10, 2015" +msgstr "10 ноября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3092 +#, no-wrap +msgid "11.0-CURRENT after API change to callout_stop macro; (rev link:https://svnweb.freebsd.org/changeset/base/290664[290664])." +msgstr "11.0-CURRENT после изменения API для макроса callout_stop; (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/290664[290664])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3093 +#, no-wrap +msgid "1100091" +msgstr "1100091" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3094 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/291537[291537]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/291537[291537]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3095 +#, no-wrap +msgid "November 30, 2015" +msgstr "30 ноября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3097 +#, no-wrap +msgid "11.0-CURRENT after changing the interface between the [.filename]#nfsd.ko# and [.filename]#nfscommon.ko# modules in link:https://svnweb.freebsd.org/changeset/base/291527[291527]." +msgstr "11.0-CURRENT после изменения интерфейса между модулями [.filename]#nfsd.ko# и [.filename]#nfscommon.ko# в link:https://svnweb.freebsd.org/changeset/base/291527[291527]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3098 +#, no-wrap +msgid "1100092" +msgstr "1100092" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3099 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/292499[292499]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/292499[292499]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3100 +#, no-wrap +msgid "December 19, 2015" +msgstr "19 декабря 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3102 +#, no-wrap +msgid "11.0-CURRENT after removal of `vm_pageout_grow_cache` (rev link:https://svnweb.freebsd.org/changeset/base/292469[292469])." +msgstr "11.0-CURRENT после удаления `vm_pageout_grow_cache` (изменение:https://svnweb.freebsd.org/changeset/base/292469[292469])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3103 +#, no-wrap +msgid "1100093" +msgstr "1100093" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3104 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/292966[292966]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/292966[292966]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3105 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4158 +#, no-wrap +msgid "December 30, 2015" +msgstr "30 декабря 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3107 +#, no-wrap +msgid "11.0-CURRENT after removal of sys/crypto/sha2.h (rev link:https://svnweb.freebsd.org/changeset/base/292782[292782])." +msgstr "11.0-CURRENT после удаления sys/crypto/sha2.h (изменение link:https://svnweb.freebsd.org/changeset/base/292782[292782])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3108 +#, no-wrap +msgid "1100094" +msgstr "1100094" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3109 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/294086[294086]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/294086[294086]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3110 +#, no-wrap +msgid "January 15, 2016" +msgstr "15 января 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3112 +#, no-wrap +msgid "11.0-CURRENT after LinuxKPI PCI changes (rev link:https://svnweb.freebsd.org/changeset/base/294086[294086])." +msgstr "11.0-CURRENT после изменений LinuxKPI PCI (rev link:https://svnweb.freebsd.org/changeset/base/294086[294086])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3113 +#, no-wrap +msgid "1100095" +msgstr "1100095" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3114 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/294327[294327]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/294327[294327]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3115 +#, no-wrap +msgid "January 19, 2016" +msgstr "19 января 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3117 +#, no-wrap +msgid "11.0-CURRENT after LRO optimizations." +msgstr "11.0-CURRENT после оптимизаций LRO." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3118 +#, no-wrap +msgid "1100096" +msgstr "1100096" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3119 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/294505[294505]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/294505[294505]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3120 +#, no-wrap +msgid "January 21, 2016" +msgstr "21 января 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3122 +#, no-wrap +msgid "11.0-CURRENT after LinuxKPI idr_* additions." +msgstr "11.0-CURRENT после добавления LinuxKPI idr_*." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3123 +#, no-wrap +msgid "1100097" +msgstr "1100097" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3124 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/294860[294860]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/294860[294860]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3125 +#, no-wrap +msgid "January 26, 2016" +msgstr "26 января 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3127 +#, no-wrap +msgid "11.0-CURRENT after API change to man:dpv[3]." +msgstr "11.0-CURRENT после изменения API в man:dpv[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3128 +#, no-wrap +msgid "1100098" +msgstr "1100098" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3129 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/295682[295682]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/295682[295682]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3130 +#, no-wrap +msgid "February 16, 2016" +msgstr "16 февраля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3132 +#, no-wrap +msgid "11.0-CURRENT after API change to `rman` (rev link:https://svnweb.freebsd.org/changeset/base/294883[294883])." +msgstr "11.0-CURRENT после изменения API в `rman` (rev link:https://svnweb.freebsd.org/changeset/base/294883[294883])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3133 +#, no-wrap +msgid "1100099" +msgstr "1100099" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3134 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/295739[295739]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/295739[295739]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3135 +#, no-wrap +msgid "February 18, 2016" +msgstr "18 февраля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3137 +#, no-wrap +msgid "11.0-CURRENT after allowing drivers to set the TCP ACK/data segment aggregation limit." +msgstr "11.0-CURRENT после разрешения драйверам устанавливать лимит агрегации сегментов TCP ACK/данных." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3138 +#, no-wrap +msgid "1100100" +msgstr "1100100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3139 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/296136[296136]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/296136[296136]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3140 +#, no-wrap +msgid "February 26, 2016" +msgstr "26 февраля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3142 +#, no-wrap +msgid "11.0-CURRENT after man:bus_alloc_resource_any[9] API addition." +msgstr "11.0-CURRENT после добавления API man:bus_alloc_resource_any[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3143 +#, no-wrap +msgid "1100101" +msgstr "1100101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3144 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/296417[296417]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/296417[296417]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3145 +#, no-wrap +msgid "March 5, 2016" +msgstr "5 марта 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3147 +#, no-wrap +msgid "11.0-CURRENT after upgrading copies of clang, llvm, lldb and compiler-rt to 3.8.0 release." +msgstr "11.0-CURRENT после обновления копий clang, llvm, lldb и compiler-rt до релиза 3.8.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3148 +#, no-wrap +msgid "1100102" +msgstr "1100102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3149 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/296749[296749]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/296749[296749]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3150 +#, no-wrap +msgid "March 12, 2016" +msgstr "12 марта 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3152 +#, no-wrap +msgid "11.0-CURRENT after libelf cross-endian fix in rev link:https://svnweb.freebsd.org/changeset/base/296685[296685]." +msgstr "11.0-CURRENT после исправления кросс-эндианности libelf в ревизии link:https://svnweb.freebsd.org/changeset/base/296685[296685]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3153 +#, no-wrap +msgid "1100103" +msgstr "1100103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3154 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/297000[297000]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/297000[297000]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3155 +#, no-wrap +msgid "March 18, 2016" +msgstr "18 марта 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3157 +#, no-wrap +msgid "11.0-CURRENT after using `uintmax_t` for `rman` ranges." +msgstr "11.0-CURRENT после использования `uintmax_t` для диапазонов `rman`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3158 +#, no-wrap +msgid "1100104" +msgstr "1100104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3159 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/297156[297156]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/297156[297156]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3160 +#, no-wrap +msgid "March 21, 2016" +msgstr "21 марта 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3162 +#, no-wrap +msgid "11.0-CURRENT after tracking `filemon` usage via a proc.p_filemon pointer rather than its own lists." +msgstr "11.0-CURRENT после отслеживания использования `filemon` через указатель proc.p_filemon вместо собственных списков." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3163 +#, no-wrap +msgid "1100105" +msgstr "1100105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3164 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/297602[297602]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/297602[297602]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3165 +#, no-wrap +msgid "April 6, 2016" +msgstr "6 апреля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3167 +#, no-wrap +msgid "11.0-CURRENT after fixing sed functions `i` and `a` from discarding leading space." +msgstr "11.0-CURRENT после исправления функций `i` и `a` в sed, которые отбрасывали начальные пробелы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3168 +#, no-wrap +msgid "1100106" +msgstr "1100106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3169 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/298486[298486]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/298486[298486]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3170 +#, no-wrap +msgid "April 22, 2016" +msgstr "22 апреля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3172 +#, no-wrap +msgid "11.0-CURRENT after fixes for using IPv6 addresses with RDMA." +msgstr "11.0-CURRENT после исправлений для использования IPv6-адресов с RDMA." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3173 +#, no-wrap +msgid "1100107" +msgstr "1100107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3174 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/299090[299090]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/299090[299090]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3175 +#, no-wrap +msgid "May 4, 2016" +msgstr "4 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3177 +#, no-wrap +msgid "11.0-CURRENT after improving performance and functionality of the man:bitstring[3] API." +msgstr "11.0-CURRENT после улучшения производительности и функциональности API man:bitstring[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3178 +#, no-wrap +msgid "1100108" +msgstr "1100108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3179 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/299530[299530]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/299530[299530]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3180 +#, no-wrap +msgid "May 12, 2016" +msgstr "12 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3182 +#, no-wrap +msgid "11.0-CURRENT after fixing handling of IOCTLs in the LinuxKPI." +msgstr "11.0-CURRENT после исправления обработки IOCTL в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3183 +#, no-wrap +msgid "1100109" +msgstr "1100109" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3184 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/299933[299933]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/299933[299933]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3185 +#, no-wrap +msgid "May 16, 2016" +msgstr "16 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3187 +#, no-wrap +msgid "11.0-CURRENT after implementing more Linux device related functions in the LinuxKPI." +msgstr "11.0-CURRENT после реализации дополнительных функций, связанных с устройствами Linux, в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3188 +#, no-wrap +msgid "1100110" +msgstr "1100110" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3189 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300207[300207]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300207[300207]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3190 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4731 +#, no-wrap +msgid "May 19, 2016" +msgstr "19 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3192 +#, no-wrap +msgid "11.0-CURRENT after adding support for managing Shingled Magnetic Recording (SMR) drives." +msgstr "11.0-CURRENT после добавления поддержки управления дисками с черепичной магнитной записью (Shingled Magnetic Recording, SMR)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3193 +#, no-wrap +msgid "1100111" +msgstr "1100111" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3194 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300303[300303]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300303[300303]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3195 +#, no-wrap +msgid "May 20, 2016" +msgstr "20 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3197 +#, no-wrap +msgid "11.0-CURRENT after removing `brk` and `sbrk` from arm64." +msgstr "11.0-CURRENT после удаления `brk` и `sbrk` из arm64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3198 +#, no-wrap +msgid "1100112" +msgstr "1100112" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3199 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300539[300539]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300539[300539]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3200 +#, no-wrap +msgid "May 23, 2016" +msgstr "23 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3202 +#, no-wrap +msgid "11.0-CURRENT after adding `bit_count` to the man:bitstring[3] API." +msgstr "11.0-CURRENT после добавления `bit_count` в man:bitstring[3] API." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3203 +#, no-wrap +msgid "1100113" +msgstr "1100113" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3204 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300701[300701]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300701[300701]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3205 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3210 +#, no-wrap +msgid "May 26, 2016" +msgstr "26 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3207 +#, no-wrap +msgid "11.0-CURRENT after disabling alignment faults on armv6." +msgstr "11.0-CURRENT после отключения ошибок выравнивания на armv6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3208 +#, no-wrap +msgid "1100114" +msgstr "1100114" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3209 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300806[300806]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300806[300806]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3212 +#, no-wrap +msgid "11.0-CURRENT after fixing man:crunchgen[1] usage with `MAKEOBJDIRPREFIX`." +msgstr "11.0-CURRENT после исправления использования man:crunchgen[1] с `MAKEOBJDIRPREFIX`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3213 +#, no-wrap +msgid "1100115" +msgstr "1100115" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3214 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300982[300982]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300982[300982]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3215 +#, no-wrap +msgid "May 30, 2016" +msgstr "30 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3217 +#, no-wrap +msgid "11.0-CURRENT after adding an mbuf flag for `M_HASHTYPE_`." +msgstr "11.0-CURRENT после добавления флага mbuf для `M_HASHTYPE_`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3218 +#, no-wrap +msgid "1100116" +msgstr "1100116" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3219 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/301011[301011]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/301011[301011]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3220 +#, no-wrap +msgid "May 31, 2016" +msgstr "31 мая 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3222 +#, no-wrap +msgid "11.0-CURRENT after SHA-512t256 (rev link:https://svnweb.freebsd.org/changeset/base/300903[300903]) and Skein (rev link:https://svnweb.freebsd.org/changeset/base/300966[300966]) where added to libmd, libcrypt, the kernel, and ZFS (rev link:https://svnweb.freebsd.org/changeset/base/301010[301010])." +msgstr "11.0-CURRENT после добавления SHA-512t256 (ревизия link:https://svnweb.freebsd.org/changeset/base/300903[300903]) и Skein (ревизия link:https://svnweb.freebsd.org/changeset/base/300966[300966]) в libmd, libcrypt, ядро и ZFS (ревизия link:https://svnweb.freebsd.org/changeset/base/301010[301010])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3223 +#, no-wrap +msgid "1100117" +msgstr "1100117" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3224 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/301892[301892]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/301892[301892]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3225 +#, no-wrap +msgid "June 6, 2016" +msgstr "6 июня 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3227 +#, no-wrap +msgid "11.0-CURRENT after libpam was synced with stock link:https://svnweb.freebsd.org/changeset/base/301602[301602], bumping library version." +msgstr "11.0-CURRENT после синхронизации libpam с основной версией link:https://svnweb.freebsd.org/changeset/base/301602[301602], что привело к увеличению версии библиотеки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3228 +#, no-wrap +msgid "1100118" +msgstr "1100118" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3229 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/302071[302071]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/302071[302071]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3230 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4208 +#, no-wrap +msgid "June 21, 2016" +msgstr "21 июня 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3232 +#, no-wrap +msgid "11.0-CURRENT after breaking binary compatibility of struct disk link:https://svnweb.freebsd.org/changeset/base/302069[302069]." +msgstr "11.0-CURRENT после нарушения бинарной совместимости структуры disk link:https://svnweb.freebsd.org/changeset/base/302069[302069]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3233 +#, no-wrap +msgid "1100119" +msgstr "1100119" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3234 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/302150[302150]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/302150[302150]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3235 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3240 +#, no-wrap +msgid "June 23, 2016" +msgstr "23 июня 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3237 +#, no-wrap +msgid "11.0-CURRENT after switching `geom_disk` to using a pool mutex." +msgstr "11.0-CURRENT после перевода `geom_disk` на использование мьютекса пула." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3238 +#, no-wrap +msgid "1100120" +msgstr "1100120" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3239 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/302153[302153]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/302153[302153]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3242 +#, no-wrap +msgid "11.0-CURRENT after adding spares to struct ifnet." +msgstr "11.0-CURRENT после добавления запасных элементов в struct ifnet." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3243 +#, no-wrap +msgid "1100121" +msgstr "1100121" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3244 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3249 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/303979[303979]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/303979[303979]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3247 +#, no-wrap +msgid "11-STABLE after `releng/11.0` branched from 11-STABLE (rev link:https://svnweb.freebsd.org/changeset/base/303975[303975])." +msgstr "11-STABLE после того, как ветка `releng/11.0` отделилась от 11-STABLE (изменение:https://svnweb.freebsd.org/changeset/base/303975[303975])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3248 +#, no-wrap +msgid "1100500" +msgstr "1100500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3250 +#, no-wrap +msgid "August 12, 2016" +msgstr "12 августа 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3252 +#, no-wrap +msgid "11.0-STABLE adding branched link:https://svnweb.freebsd.org/changeset/base/303976[303976]." +msgstr "11.0-STABLE добавлена ветвленная link: https://svnweb.freebsd.org/changeset/base/303976[303976]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3253 +#, no-wrap +msgid "1100501" +msgstr "1100501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3254 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304609[304609]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304609[304609]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3257 +#, no-wrap +msgid "11.0-STABLE after adding C++11 `thread_local` support." +msgstr "11.0-STABLE после добавления поддержки `thread_local` в C++11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3258 +#, no-wrap +msgid "1100502" +msgstr "1100502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3259 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304865[304865]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304865[304865]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3260 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4223 +#, no-wrap +msgid "August 26, 2016" +msgstr "26 августа 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3262 +#, no-wrap +msgid "11.0-STABLE after `LC_*_MASK` fix." +msgstr "11.0-STABLE после исправления `LC_*_MASK`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3263 +#, no-wrap +msgid "1100503" +msgstr "1100503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3264 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/305733[305733]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/305733[305733]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3265 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4228 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4736 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5509 +#, no-wrap +msgid "September 12, 2016" +msgstr "12 сентября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3267 +#, no-wrap +msgid "11.0-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]." +msgstr "11.0-STABLE после устранения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3268 +#, no-wrap +msgid "1100504" +msgstr "1100504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3269 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/307330[307330]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/307330[307330]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3270 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4233 +#, no-wrap +msgid "October 14, 2016" +msgstr "14 октября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3272 +#, no-wrap +msgid "11.0-STABLE after ZFS merges." +msgstr "11.0-STABLE после объединения ZFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3273 +#, no-wrap +msgid "1100505" +msgstr "1100505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3274 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/307590[307590]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/307590[307590]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3275 +#, no-wrap +msgid "October 19, 2016" +msgstr "19 октября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3277 +#, no-wrap +msgid "11.0-STABLE after `struct fb_info` change." +msgstr "11.0-STABLE после изменения `struct fb_info`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3278 +#, no-wrap +msgid "1100506" +msgstr "1100506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3279 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/308048[308048]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/308048[308048]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3280 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4238 +#, no-wrap +msgid "October 28, 2016" +msgstr "28 октября 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3282 +#, no-wrap +msgid "11.0-STABLE after installing header files required development with `libzfs_core`." +msgstr "11.0-STABLE после установки заголовочных файлов, необходимых для разработки с `libzfs_core`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3283 +#, no-wrap +msgid "1100507" +msgstr "1100507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3284 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/310120[310120]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/310120[310120]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3285 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4243 +#, no-wrap +msgid "December 15, 2016" +msgstr "15 декабря 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3287 +#, no-wrap +msgid "11.0-STABLE after adding the `ki_moretdname` member to `struct kinfo_proc` and `struct kinfo_proc32` to export the whole thread name to user-space utilities." +msgstr "11.0-STABLE после добавления члена `ki_moretdname` в структуры `struct kinfo_proc` и `struct kinfo_proc32` для экспорта полного имени потока в пользовательские утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3288 +#, no-wrap +msgid "1100508" +msgstr "1100508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3289 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/310618[310618]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/310618[310618]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3290 +#, no-wrap +msgid "December 26, 2016" +msgstr "26 декабря 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3292 +#, no-wrap +msgid "11.0-STABLE after upgrading copies of clang, llvm, lldb, compiler-rt and libc++ to 3.9.1 release, and adding lld 3.9.1." +msgstr "11.0-STABLE после обновления копий clang, llvm, lldb, compiler-rt и libc++ до версии 3.9.1, а также добавления lld 3.9.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3293 +#, no-wrap +msgid "1100509" +msgstr "1100509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3294 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/311186[311186]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/311186[311186]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3295 +#, no-wrap +msgid "January 3, 2017" +msgstr "3 января 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3297 +#, no-wrap +msgid "11.0-STABLE after man:crunchgen[1] META_MODE fix (rev link:https://svnweb.freebsd.org/changeset/base/311185[311185])." +msgstr "11.0-STABLE после исправления META_MODE в man:crunchgen[1] (изменение link:https://svnweb.freebsd.org/changeset/base/311185[311185])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3298 +#, no-wrap +msgid "1100510" +msgstr "1100510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3299 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/315312[315312]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/315312[315312]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3300 +#, no-wrap +msgid "March 15, 2017" +msgstr "15 марта 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3302 +#, no-wrap +msgid "11.0-STABLE after MFC of `fget_cap`, `getsock_cap`, and related changes." +msgstr "11.0-STABLE после MFC изменений, связанных с `fget_cap`, `getsock_cap` и другими." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3303 +#, no-wrap +msgid "1100511" +msgstr "1100511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3304 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/316423[316423]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/316423[316423]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3305 +#, no-wrap +msgid "April 2, 2017" +msgstr "2 апреля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3307 +#, no-wrap +msgid "11.0-STABLE after multiple MFCs updating clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0 release." +msgstr "11.0-STABLE после нескольких MFC, обновляющих clang, llvm, lld, lldb, compiler-rt и libc++ до версии 4.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3308 +#, no-wrap +msgid "1100512" +msgstr "1100512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3309 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/316498[316498]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/316498[316498]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3310 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4253 +#, no-wrap +msgid "April 4, 2017" +msgstr "4 апреля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3312 +#, no-wrap +msgid "11.0-STABLE after making CAM SIM lock optional (revs link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674])." +msgstr "11.0-STABLE после того, как блокировка CAM SIM стала опциональной (ревизии link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3313 +#, no-wrap +msgid "1100513" +msgstr "1100513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3314 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/318197[318197]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/318197[318197]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3315 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4258 +#, no-wrap +msgid "May 11, 2017" +msgstr "11 мая 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3317 +#, no-wrap +msgid "11.0-STABLE after merging the addition of the [.filename]## header." +msgstr "11.0-STABLE после объединения добавления заголовочного файла [.filename]##." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3318 +#, no-wrap +msgid "1100514" +msgstr "1100514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3319 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/319279[319279]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/319279[319279]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3320 +#, no-wrap +msgid "May 31, 2017" +msgstr "31 мая 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3322 +#, no-wrap +msgid "11.0-STABLE after multiple MFCs of `libpcap`, `WITHOUT_INET6`, and a few other minor changes." +msgstr "11.0-STABLE после нескольких MFC для `libpcap`, `WITHOUT_INET6` и нескольких других незначительных изменений." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3323 +#, no-wrap +msgid "1101000" +msgstr "1101000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3324 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320486[320486]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320486[320486]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3325 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3330 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3335 +#, no-wrap +msgid "June 30, 2017" +msgstr "June 30, 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3327 +#, no-wrap +msgid "`releng/11.1` branched from `stable/11`." +msgstr "`releng/11.1` отделился от `stable/11`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3328 +#, no-wrap +msgid "1101001" +msgstr "1101001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3329 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320763[320763]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320763[320763]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3332 +#, no-wrap +msgid "11.1-RC1 After merging the `MAP_GUARD` man:mmap[2] flag addition." +msgstr "11.1-RC1 После объединения добавления флага `MAP_GUARD` в man:mmap[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3333 +#, no-wrap +msgid "1101500" +msgstr "1101500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3334 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320487[320487]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320487[320487]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3337 +#, no-wrap +msgid "11-STABLE after `releng/11.1` branched." +msgstr "11-STABLE после ветвления `releng/11.1`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3338 +#, no-wrap +msgid "1101501" +msgstr "1101501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3339 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/320666[320666]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/320666[320666]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3340 +#, no-wrap +msgid "July 5, 2017" +msgstr "5 июля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3342 +#, no-wrap +msgid "11-STABLE after merging the `MAP_GUARD` man:mmap[2] flag addition." +msgstr "11-STABLE после объединения добавления флага `MAP_GUARD` в man:mmap[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3343 +#, no-wrap +msgid "1101502" +msgstr "1101502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3347 +#, no-wrap +msgid "11-STABLE after merging the NFS client forced dismount support `umount -N` addition." +msgstr "11-STABLE после объединения поддержки принудительного демонтирования клиента NFS с добавлением `umount -N`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3348 +#, no-wrap +msgid "1101503" +msgstr "1101503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3349 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/323431[323431]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/323431[323431]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3350 +#, no-wrap +msgid "September 11, 2017" +msgstr "11 сентября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3352 +#, no-wrap +msgid "11-STABLE after merging changes making the WRFSBASE instruction operational on amd64." +msgstr "11-STABLE после объединения изменений, сделавших инструкцию WRFSBASE работоспособной на amd64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3353 +#, no-wrap +msgid "1101504" +msgstr "1101504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3354 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/324006[324006]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/324006[324006]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3357 +#, no-wrap +msgid "11-STABLE after merging libm from head, which adds man:cacoshl[3], man:cacosl[3], man:casinhl[3], man:casinl[3], man:catanl[3], man:catanhl[3], man:sincos[3], man:sincosf[3], and man:sincosl[3]." +msgstr "11-STABLE после слияния libm из head, что добавляет man:cacoshl[3], man:cacosl[3], man:casinhl[3], man:casinl[3], man:catanl[3], man:catanhl[3], man:sincos[3], man:sincosf[3] и man:sincosl[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3358 +#, no-wrap +msgid "1101505" +msgstr "1101505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3359 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/324023[324023]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/324023[324023]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3362 +#, no-wrap +msgid "11-STABLE after merging clang, llvm, lld, lldb, compiler-rt and libc++ 5.0.0 release." +msgstr "11-STABLE после объединения clang, llvm, lld, lldb, compiler-rt и libc++ версии 5.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3363 +#, no-wrap +msgid "1101506" +msgstr "1101506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3364 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/325003[325003]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/325003[325003]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3365 +#, no-wrap +msgid "October 25, 2017" +msgstr "25 октября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3367 +#, no-wrap +msgid "11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/324281[324281], adding the `value.u16` field to `struct diocgattr_arg`." +msgstr "11-STABLE после слияния link:https://svnweb.freebsd.org/changeset/base/324281[324281], добавления поля `value.u16` в структуру `struct diocgattr_arg`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3368 +#, no-wrap +msgid "1101507" +msgstr "1101507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3369 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4282 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/328379[328379]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/328379[328379]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3370 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3375 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4283 +#, no-wrap +msgid "January 24, 2018" +msgstr "24 января 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3372 +#, no-wrap +msgid "11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/325028[325028], fixing `ptrace()` to always clear the correct thread event when resuming." +msgstr "11-STABLE после слияния с link:https://svnweb.freebsd.org/changeset/base/325028[325028], исправление `ptrace()` для корректной очистки события нужного потока при возобновлении." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3373 +#, no-wrap +msgid "1101508" +msgstr "1101508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3374 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/328386[328386]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/328386[328386]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3377 +#, no-wrap +msgid "11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/316648[316648], renaming `smp_no_rendevous_barrier()` to `smp_no_rendezvous_barrier()`." +msgstr "11-STABLE после объединения изменений link:https://svnweb.freebsd.org/changeset/base/316648[316648], переименование `smp_no_rendevous_barrier()` в `smp_no_rendezvous_barrier()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3378 +#, no-wrap +msgid "1101509" +msgstr "1101509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3379 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/328653[328653]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/328653[328653]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3380 +#, no-wrap +msgid "February 1, 2018" +msgstr "1 февраля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3382 +#, no-wrap +msgid "11-STABLE after an overwrite merge backport of the LinuxKPI from FreeBSD-head." +msgstr "11-STABLE после обратного переноса (overwrite merge) LinuxKPI из FreeBSD-head." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3383 +#, no-wrap +msgid "1101510" +msgstr "1101510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3384 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/329450[329450]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/329450[329450]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3385 +#, no-wrap +msgid "February 17, 2018" +msgstr "17 февраля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3387 +#, no-wrap +msgid "11-STABLE after the `cmpxchg()` macro is now fully functional in the LinuxKPI." +msgstr "11-STABLE после того, как макрос `cmpxchg()` стал полностью функциональным в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3388 +#, no-wrap +msgid "1101511" +msgstr "1101511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3389 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/329981[329981]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/329981[329981]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3390 +#, no-wrap +msgid "February 25, 2018" +msgstr "25 февраля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3392 +#, no-wrap +msgid "11-STABLE after concluding the recent LinuxKPI related updates." +msgstr "11-STABLE после завершения недавних обновлений, связанных с LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3393 +#, no-wrap +msgid "1101512" +msgstr "1101512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3394 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/331219[331219]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/331219[331219]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3395 +#, no-wrap +msgid "March 19, 2018" +msgstr "19 марта 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3397 +#, no-wrap +msgid "11-STABLE after merging `retpoline` support from the upstream llvm, clang and lld 5.0 branches." +msgstr "11-STABLE после объединения поддержки `retpoline` из вышестоящих веток llvm, clang и lld 5.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3398 +#, no-wrap +msgid "1101513" +msgstr "1101513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3399 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/331838[331838]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/331838[331838]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3400 +#, no-wrap +msgid "March 31, 2018" +msgstr "31 марта 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3402 +#, no-wrap +msgid "11-STABLE after merging clang, llvm, lld, lldb, compiler-rt and libc++ 6.0.0 release, and several follow-up fixes." +msgstr "11-STABLE после объединения clang, llvm, lld, lldb, compiler-rt и libc++ версии 6.0.0, а также нескольких последующих исправлений." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3403 +#, no-wrap +msgid "1101514" +msgstr "1101514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3404 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/332089[332089]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/332089[332089]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3405 +#, no-wrap +msgid "April 5, 2018" +msgstr "5 апреля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3407 +#, no-wrap +msgid "11-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/328331[328331], adding a new and incompatible interpretation of `${name}_limits` in rc scripts." +msgstr "11-STABLE после объединения изменений link:https://svnweb.freebsd.org/changeset/base/328331[328331], добавляющего новую и несовместимую интерпретацию `${name}_limits` в rc-скриптах." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3408 +#, no-wrap +msgid "1101515" +msgstr "1101515" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3409 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/332363[332363]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/332363[332363]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3410 +#, no-wrap +msgid "April 10, 2018" +msgstr "10 апреля 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3412 +#, no-wrap +msgid "11-STABLE after reverting link:https://svnweb.freebsd.org/changeset/base/331880[331880], removing the new and incompatible interpretation of `${name}_limits` in rc scripts." +msgstr "11-STABLE после отмены изменений из link:https://svnweb.freebsd.org/changeset/base/331880[331880], удаляющих новую и несовместимую интерпретацию `${name}_limits` в rc-скриптах." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3413 +#, no-wrap +msgid "1101516" +msgstr "1101516" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3414 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334392[334392]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334392[334392]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3415 +#, no-wrap +msgid "May 30, 2018" +msgstr "30 мая 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3417 +#, no-wrap +msgid "11-STABLE after man:dwatch[1] touch-ups." +msgstr "11-STABLE после доработок man:dwatch[1]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3418 +#, no-wrap +msgid "1102000" +msgstr "1102000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3419 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334459[334459]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334459[334459]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3422 +#, no-wrap +msgid "`releng/11.2` branched from `stable/11`." +msgstr "`releng/11.2` отделился от `stable/11`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3423 +#, no-wrap +msgid "1102500" +msgstr "1102500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3424 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/334461[334461]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/334461[334461]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3427 +#, no-wrap +msgid "11-STABLE after releng/11.2 branched." +msgstr "11-STABLE после ветвления releng/11.2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3428 +#, no-wrap +msgid "1102501" +msgstr "1102501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3429 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/335436[335436]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/335436[335436]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3430 +#, no-wrap +msgid "June 20, 2018" +msgstr "June 20, 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3432 +#, no-wrap +msgid "11-STABLE after LinuxKPI updates requiring recompilation of external kernel modules." +msgstr "11-STABLE после обновлений LinuxKPI, требующих перекомпиляции внешних модулей ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3433 +#, no-wrap +msgid "1102502" +msgstr "1102502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3434 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338617[338617]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338617[338617]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3435 +#, no-wrap +msgid "September 12, 2018" +msgstr "12 сентября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3437 +#, no-wrap +msgid "11-STABLE after adding a socket option SO_TS_CLOCK and fixing `recvmsg32()` system call to properly down-convert layout of the 64-bit structures to match what 32-bit app(s) expect." +msgstr "11-STABLE после добавления сокет-опции SO_TS_CLOCK и исправления системного вызова `recvmsg32()` для корректного преобразования структуры 64-битных данных в формат, ожидаемый 32-битными приложениями." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3438 +#, no-wrap +msgid "1102503" +msgstr "1102503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3439 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/338931[338931]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/338931[338931]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3440 +#, no-wrap +msgid "September 25, 2018" +msgstr "25 сентября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3442 +#, no-wrap +msgid "11-STABLE after merging a TCP checksum fix to man:iflib[9] and adding new media types to if_media.h" +msgstr "11-STABLE после объединения исправления контрольной суммы TCP в man:iflib[9] и добавления новых типов носителей в if_media.h" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3443 +#, no-wrap +msgid "1102504" +msgstr "1102504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3444 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/340309[340309]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/340309[340309]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3445 +#, no-wrap +msgid "November 9, 2018" +msgstr "9 ноября 2018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3447 +#, no-wrap +msgid "11-STABLE after several MFCs: updating man:objcopy[1] to properly handle little-endian MIPS64 object; correcting mips64el test to use ELF header; adding test for 64-bit ELF in _libelf_is_mips64el." +msgstr "11-STABLE после нескольких MFC: обновление man:objcopy[1] для корректной обработки little-endian MIPS64 объектов; исправление теста mips64el для использования заголовка ELF; добавление теста для 64-битного ELF в _libelf_is_mips64el." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3448 +#, no-wrap +msgid "1102505" +msgstr "1102505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3449 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/342804[342804]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/342804[342804]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3452 +#, no-wrap +msgid "11-STABLE after merge of fixing `linux_destroy_dev()` behaviour when there are still files open from the destroying cdev." +msgstr "11-STABLE после слияния исправления поведения `linux_destroy_dev()`, когда остаются открытые файлы из уничтожаемого cdev." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3453 +#, no-wrap +msgid "1102506" +msgstr "1102506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3454 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/344220[344220]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/344220[344220]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3455 +#, no-wrap +msgid "February 17, 2019" +msgstr "17 февраля 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3457 +#, no-wrap +msgid "11-STABLE after merging multiple commits to lualoader." +msgstr "11-STABLE после объединения нескольких коммитов в lualoader." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3458 +#, no-wrap +msgid "1102507" +msgstr "1102507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3459 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/346296[346296]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/346296[346296]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3462 +#, no-wrap +msgid "11-STABLE after merging llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365." +msgstr "11-STABLE после объединения llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp 8.0.0 финальный релиз r356365." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3463 +#, no-wrap +msgid "1102508" +msgstr "1102508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3467 +#, no-wrap +msgid "11-STABLE after `ether_gen_addr` availability." +msgstr "11-STABLE после появления `ether_gen_addr`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3468 +#, no-wrap +msgid "1102509" +msgstr "1102509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3469 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347212[347212]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347212[347212]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3472 +#, no-wrap +msgid "11-STABLE after MFC of link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] and partially of link:https://svnweb.freebsd.org/changeset/base/345305[345305]." +msgstr "11-STABLE после слияния изменений link:https://svnweb.freebsd.org/changeset/base/345303[345303], link:https://svnweb.freebsd.org/changeset/base/345658,[345658,] и частично link:https://svnweb.freebsd.org/changeset/base/345305[345305]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3473 +#, no-wrap +msgid "1102510" +msgstr "1102510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3474 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/347883[347883]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/347883[347883]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3477 +#, no-wrap +msgid "11-STABLE after bumping the Mellanox driver version numbers (man:mlx4en[4]; man:mlx5en[4])." +msgstr "11-STABLE после увеличения номеров версий драйверов Mellanox (man:mlx4en[4]; man:mlx5en[4])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3478 +#, no-wrap +msgid "1103000" +msgstr "1103000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3479 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349026[349026]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349026[349026]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3480 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3485 +#, no-wrap +msgid "June 14, 2019" +msgstr "14 июня 2019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3482 +#, no-wrap +msgid "`releng/11.3` branched from `stable/11`." +msgstr "`releng/11.3` отделился от `stable/11`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3483 +#, no-wrap +msgid "1103500" +msgstr "1103500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3484 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/349027[349027]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/349027[349027]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3487 +#, no-wrap +msgid "11-STABLE after releng/11.3 branched." +msgstr "11-STABLE после ветвления releng/11.3." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3488 +#, no-wrap +msgid "1103501" +msgstr "1103501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3492 +#, no-wrap +msgid "11-STABLE after fixing a potential OOB read security issue in libc++." +msgstr "11-STABLE после исправления потенциальной проблемы безопасности OOB-чтения в libc++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3493 +#, no-wrap +msgid "1103502" +msgstr "1103502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3494 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354614[354614]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354614[354614]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3497 +#, no-wrap +msgid "11-STABLE after adding sysfs create/remove functions that handles multiple files in one call to the LinuxKPI." +msgstr "11-STABLE после добавления функций создания/удаления sysfs, обрабатывающих несколько файлов за один вызов в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3498 +#, no-wrap +msgid "1103503" +msgstr "1103503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3499 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354615[354615]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354615[354615]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3502 +#, no-wrap +msgid "11-STABLE after LinuxKPI sysfs improvements." +msgstr "11-STABLE после улучшений LinuxKPI sysfs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3503 +#, no-wrap +msgid "1103504" +msgstr "1103504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3504 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/354616[354616]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/354616[354616]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3507 +#, no-wrap +msgid "11-STABLE after enabling device class group attributes in the LinuxKPI." +msgstr "11-STABLE после включения атрибутов группы классов устройств в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3508 +#, no-wrap +msgid "1103505" +msgstr "1103505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3512 +#, no-wrap +msgid "11-STABLE after adding `sigsetop` extensions commonly found in musl libc and glibc." +msgstr "11-STABLE после добавления расширений `sigsetop`, которые часто встречаются в musl libc и glibc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3513 +#, no-wrap +msgid "1103506" +msgstr "1103506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3514 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356395[356395]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356395[356395]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3517 +#, no-wrap +msgid "11-STABLE after making USB statistics be per-device instead of per bus." +msgstr "11-STABLE после изменения статистики USB для каждого устройства вместо каждой шины." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3518 +#, no-wrap +msgid "1103507" +msgstr "1103507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3519 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356680[356680]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356680[356680]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3522 +#, no-wrap +msgid "11-STABLE after adding own counter for cancelled USB transfers." +msgstr "11-STABLE после добавления собственного счетчика для отмененных USB-передач." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3523 +#, no-wrap +msgid "1103508" +msgstr "1103508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3524 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/357613[357613]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/357613[357613]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3527 +#, no-wrap +msgid "11-STABLE after recent LinuxKPI changes." +msgstr "11-STABLE после недавних изменений в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3528 +#, no-wrap +msgid "1103509" +msgstr "1103509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3529 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/359958[359958]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/359958[359958]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3532 +#, no-wrap +msgid "11-STABLE after moving `id_mapped` to end of `bus_dma_impl` structure to preserve KPI." +msgstr "11-STABLE после перемещения `id_mapped` в конец структуры `bus_dma_impl` для сохранения KPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3533 +#, no-wrap +msgid "1103510" +msgstr "1103510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3534 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360658[360658]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360658[360658]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3535 +#, no-wrap +msgid "May 5, 2020" +msgstr "5 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3537 +#, no-wrap +msgid "11-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 9.0.0 final release r372316." +msgstr "11-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до финального релиза 9.0.0 r372316." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3538 +#, no-wrap +msgid "1103511" +msgstr "1103511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3539 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360784[360784]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360784[360784]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3542 +#, no-wrap +msgid "11-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0 release." +msgstr "11-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3543 +#, no-wrap +msgid "1104000" +msgstr "1104000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3544 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360804[360804]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360804[360804]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3545 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3550 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3555 +#, no-wrap +msgid "May 8, 2020" +msgstr "8 мая 2020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3547 +#, no-wrap +msgid "`releng/11.4` branched from `stable/11`." +msgstr "`releng/11.4` ответвился от `stable/11`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3548 +#, no-wrap +msgid "1104001" +msgstr "1104001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3549 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360822[360822]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360822[360822]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3552 +#, no-wrap +msgid "11.4-BETA1 after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.0 release." +msgstr "11.4-BETA1 после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3553 +#, no-wrap +msgid "1104500" +msgstr "1104500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3554 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/360805[360805]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/360805[360805]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3557 +#, no-wrap +msgid "11-STABLE after releng/11.4 branched." +msgstr "11-STABLE после ветвления releng/11.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3558 +#, no-wrap +msgid "1104501" +msgstr "1104501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3559 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/362320[362320]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/362320[362320]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3562 +#, no-wrap +msgid "11-STABLE after implementing `__is_constexpr()` function macro in the LinuxKPI." +msgstr "11-STABLE после реализации макроса функции `__is_constexpr()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3563 +#, no-wrap +msgid "1104502" +msgstr "1104502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3564 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/362919[362919]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/362919[362919]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3567 +#, no-wrap +msgid "11-STABLE after making liblzma use libmd implementation of SHA256." +msgstr "11-STABLE после перевода liblzma на использование реализации SHA256 из libmd." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3568 +#, no-wrap +msgid "1104503" +msgstr "1104503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3569 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363496[363496]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363496[363496]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3572 +#, no-wrap +msgid "11-STABLE after updating llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to 10.0.1 release." +msgstr "11-STABLE после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до версии 10.0.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3573 +#, no-wrap +msgid "1104504" +msgstr "1104504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3574 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/363792[363792]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/363792[363792]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3577 +#, no-wrap +msgid "11-STABLE after implementing the `array_size()` function in the LinuxKPI." +msgstr "11-STABLE после реализации функции `array_size()` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3578 +#, no-wrap +msgid "1104505" +msgstr "1104505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3579 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/364391[364391]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/364391[364391]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3582 +#, no-wrap +msgid "11-STABLE after change to clone the task struct fields related to RCU." +msgstr "11-STABLE после изменения для клонирования полей структуры задачи, связанных с RCU." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3583 +#, no-wrap +msgid "1104506" +msgstr "1104506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3587 +#, no-wrap +msgid "11-STABLE after adding atomic and `bswap` functions to libcompiler_rt." +msgstr "11-STABLE после добавления атомарных функций и функций `bswap` в libcompiler_rt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3588 +#, no-wrap +msgid "1104507" +msgstr "1104507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3592 +#, no-wrap +msgid "11-STABLE after followup commits to libcompiler_rt." +msgstr "11-STABLE после последующих коммитов в libcompiler_rt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3593 +#, no-wrap +msgid "1104508" +msgstr "1104508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3594 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366879[366879]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366879[366879]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3597 +#, no-wrap +msgid "11-STABLE after populating the acquire context field of a `ww_mutex` in the LinuxKPI." +msgstr "11-STABLE после заполнения поля контекста получения в `ww_mutex` в LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3598 +#, no-wrap +msgid "1104509" +msgstr "1104509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3599 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/366889[366889]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/366889[366889]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3602 +#, no-wrap +msgid "11-STABLE after additions to LinuxKPI's `RCU` list." +msgstr "11-STABLE после добавлений в список `RCU` LinuxKPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3603 +#, no-wrap +msgid "1104510" +msgstr "1104510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3604 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/367513[367513]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/367513[367513]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3606 +#, no-wrap +msgid "11-STABLE after the addition of `ptsname_r`." +msgstr "11-STABLE после добавления `ptsname_r`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3609 +#, no-wrap +msgid "FreeBSD 10 Versions" +msgstr "Версии FreeBSD 10" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3612 +#, no-wrap +msgid "FreeBSD 10 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 10" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3621 +#, no-wrap +msgid "1000000" +msgstr "1000000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3622 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/225757[225757]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/225757[225757]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3623 +#, no-wrap +msgid "September 26, 2011" +msgstr "26 сентября 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3625 +#, no-wrap +msgid "10.0-CURRENT." +msgstr "10.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3626 +#, no-wrap +msgid "1000001" +msgstr "1000001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3627 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/227070[227070]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/227070[227070]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3628 +#, no-wrap +msgid "November 4, 2011" +msgstr "4 ноября 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3630 +#, no-wrap +msgid "10-CURRENT after addition of the man:posix_fadvise[2] system call." +msgstr "10-CURRENT после добавления системного вызова man:posix_fadvise[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3631 +#, no-wrap +msgid "1000002" +msgstr "1000002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3632 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/228444[228444]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/228444[228444]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3633 +#, no-wrap +msgid "December 12, 2011" +msgstr "12 декабря 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3635 +#, no-wrap +msgid "10-CURRENT after defining boolean true/false in sys/types.h, sizeof(bool) may have changed (rev link:https://svnweb.freebsd.org/changeset/base/228444[228444]). 10-CURRENT after xlocale.h was introduced (rev link:https://svnweb.freebsd.org/changeset/base/227753[227753])." +msgstr "10-CURRENT после определения булевых значений true/false в sys/types.h, размер sizeof(bool) мог измениться (ревизия link:https://svnweb.freebsd.org/changeset/base/228444[228444]). 10-CURRENT после введения xlocale.h (ревизия link:https://svnweb.freebsd.org/changeset/base/227753[227753])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3636 +#, no-wrap +msgid "1000003" +msgstr "1000003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3637 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/228571[228571]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/228571[228571]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3638 +#, no-wrap +msgid "December 16, 2011" +msgstr "16 декабря 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3640 +#, no-wrap +msgid "10-CURRENT after major changes to man:carp[4], changing size of struct `in_aliasreq`, struct in6_aliasreq (rev link:https://svnweb.freebsd.org/changeset/base/228571[228571]) and straitening arguments check of SIOCAIFADDR (rev link:https://svnweb.freebsd.org/changeset/base/228574[228574])." +msgstr "10-CURRENT после значительных изменений в man:carp[4], изменения размера структур `in_aliasreq`, `in6_aliasreq` (rev link:https://svnweb.freebsd.org/changeset/base/228571[228571]) и упрощения проверки аргументов SIOCAIFADDR (rev link:https://svnweb.freebsd.org/changeset/base/228574[228574])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3641 +#, no-wrap +msgid "1000004" +msgstr "1000004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3642 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/229204[229204]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/229204[229204]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3643 +#, no-wrap +msgid "January 1, 2012" +msgstr "1 января 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3645 +#, no-wrap +msgid "10-CURRENT after the removal of `skpc()` and the addition of man:memcchr[9] (rev link:https://svnweb.freebsd.org/changeset/base/229200[229200])." +msgstr "10-CURRENT после удаления `skpc()` и добавления man:memcchr[9] (изменение:https://svnweb.freebsd.org/changeset/base/229200[229200])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3646 +#, no-wrap +msgid "1000005" +msgstr "1000005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3647 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/230207[230207]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/230207[230207]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3648 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4551 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5434 +#, no-wrap +msgid "January 16, 2012" +msgstr "16 января 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3650 +#, no-wrap +msgid "10-CURRENT after the removal of support for SIOCSIFADDR, SIOCSIFNETMASK, SIOCSIFBRDADDR, SIOCSIFDSTADDR ioctls." +msgstr "10-CURRENT после удаления поддержки ioctls SIOCSIFADDR, SIOCSIFNETMASK, SIOCSIFBRDADDR, SIOCSIFDSTADDR." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3651 +#, no-wrap +msgid "1000006" +msgstr "1000006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3652 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/230590[230590]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/230590[230590]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3653 +#, no-wrap +msgid "January 26, 2012" +msgstr "26 января 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3655 +#, no-wrap +msgid "10-CURRENT after introduction of read capacity data asynchronous notification in the man:cam[4] layer." +msgstr "10-CURRENT после внедрения асинхронного уведомления о данных пропускной способности чтения в слое man:cam[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3656 +#, no-wrap +msgid "1000007" +msgstr "1000007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3657 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/231025[231025]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/231025[231025]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3658 +#, no-wrap +msgid "February 5, 2012" +msgstr "5 февраля 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3660 +#, no-wrap +msgid "10-CURRENT after introduction of new man:tcp[4] socket options: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT." +msgstr "10-CURRENT после введения новых параметров сокета man:tcp[4]: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL и TCP_KEEPCNT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3661 +#, no-wrap +msgid "1000008" +msgstr "1000008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3662 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/231505[231505]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/231505[231505]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3663 +#, no-wrap +msgid "February 11, 2012" +msgstr "11 февраля 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3665 +#, no-wrap +msgid "10-CURRENT after introduction of the new extensible man:sysctl[3] interface NET_RT_IFLISTL to query address lists." +msgstr "10-CURRENT после введения нового расширяемого интерфейса man:sysctl[3] NET_RT_IFLISTL для запроса списков адресов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3666 +#, no-wrap +msgid "1000009" +msgstr "1000009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3667 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/232154[232154]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/232154[232154]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3668 +#, no-wrap +msgid "February 25, 2012" +msgstr "25 февраля 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3670 +#, no-wrap +msgid "10-CURRENT after import of libarchive 3.0.3 (rev link:https://svnweb.freebsd.org/changeset/base/232153[232153])." +msgstr "10-CURRENT после импорта libarchive 3.0.3 (rev link:https://svnweb.freebsd.org/changeset/base/232153[232153])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3671 +#, no-wrap +msgid "1000010" +msgstr "1000010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3672 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/233757[233757]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/233757[233757]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3673 +#, no-wrap +msgid "March 31, 2012" +msgstr "31 марта 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3675 +#, no-wrap +msgid "10-CURRENT after `xlocale` cleanup." +msgstr "10-CURRENT после очистки `xlocale`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3676 +#, no-wrap +msgid "1000011" +msgstr "1000011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3677 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/234355[234355]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/234355[234355]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3678 +#, no-wrap +msgid "April 16, 2012" +msgstr "16 апреля 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3680 +#, no-wrap +msgid "10-CURRENT import of LLVM/Clang 3.1 trunk link:https://svnweb.freebsd.org/changeset/base/154661[154661] (rev link:https://svnweb.freebsd.org/changeset/base/234353[234353])." +msgstr "Импорт LLVM/Clang 3.1 из 10-CURRENT, ссылка на ревизию: link:https://svnweb.freebsd.org/changeset/base/154661[154661] (ревизия link:https://svnweb.freebsd.org/changeset/base/234353[234353])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3681 +#, no-wrap +msgid "1000012" +msgstr "1000012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3682 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/234924[234924]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/234924[234924]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3683 +#, no-wrap +msgid "May 2, 2012" +msgstr "2 мая 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3685 +#, no-wrap +msgid "10-CURRENT jemalloc import." +msgstr "10-CURRENT импорт jemalloc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3686 +#, no-wrap +msgid "1000013" +msgstr "1000013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3687 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/235788[235788]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/235788[235788]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3688 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4571 +#, no-wrap +msgid "May 22, 2012" +msgstr "22 мая 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3690 +#, no-wrap +msgid "10-CURRENT after `byacc` import." +msgstr "10-CURRENT после импорта `byacc`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3691 +#, no-wrap +msgid "1000014" +msgstr "1000014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3692 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/237631[237631]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/237631[237631]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3693 +#, no-wrap +msgid "June 27, 2012" +msgstr "27 июня 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3695 +#, no-wrap +msgid "10-CURRENT after BSD sort becoming the default sort (rev link:https://svnweb.freebsd.org/changeset/base/237629[237629])." +msgstr "10-CURRENT после того, как BSD sort стал сортировкой по умолчанию (rev link:https://svnweb.freebsd.org/changeset/base/237629[237629])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3696 +#, no-wrap +msgid "1000015" +msgstr "1000015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3697 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/238405[238405]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/238405[238405]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3698 +#, no-wrap +msgid "July 12, 2012" +msgstr "12 июля 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3700 +#, no-wrap +msgid "10-CURRENT after import of OpenSSL 1.0.1c." +msgstr "10-CURRENT после импорта OpenSSL 1.0.1c." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3702 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/238429[238429]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/238429[238429]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3703 +#, no-wrap +msgid "July 13, 2012" +msgstr "July 13, 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3705 +#, no-wrap +msgid "10-CURRENT after the fix for LLVM/Clang 3.1 regression." +msgstr "10-CURRENT после исправления регрессии в LLVM/Clang 3.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3706 +#, no-wrap +msgid "1000016" +msgstr "1000016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3707 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/239179[239179]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/239179[239179]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3708 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3713 +#, no-wrap +msgid "August 8, 2012" +msgstr "8 августа 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3710 +#, no-wrap +msgid "10-CURRENT after KBI change in man:ucom[4]." +msgstr "10-CURRENT после изменения KBI в man:ucom[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3711 +#, no-wrap +msgid "1000017" +msgstr "1000017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3712 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/239214[239214]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/239214[239214]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3715 +#, no-wrap +msgid "10-CURRENT after adding streams feature to the USB stack." +msgstr "10-CURRENT после добавления функции потоков в стек USB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3716 +#, no-wrap +msgid "1000018" +msgstr "1000018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3717 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/240233[240233]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/240233[240233]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3718 +#, no-wrap +msgid "September 8, 2012" +msgstr "8 сентября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3720 +#, no-wrap +msgid "10-CURRENT after major rewrite of man:pf[4]." +msgstr "10-CURRENT после значительной переработки man:pf[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3721 +#, no-wrap +msgid "1000019" +msgstr "1000019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3722 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/241245[241245]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/241245[241245]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3723 +#, no-wrap +msgid "October 6, 2012" +msgstr "6 октября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3725 +#, no-wrap +msgid "10-CURRENT after man:pfil[9] KBI/KPI changed to supply packets in net byte order to AF_INET filter hooks." +msgstr "10-CURRENT после изменения KBI/KPI в man:pfil[9] для передачи пакетов в порядке байтов сети к хукам фильтрации AF_INET." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3726 +#, no-wrap +msgid "1000020" +msgstr "1000020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3727 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/241610[241610]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/241610[241610]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3728 +#, no-wrap +msgid "October 16, 2012" +msgstr "16 октября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3730 +#, no-wrap +msgid "10-CURRENT after the network interface cloning KPI changed and struct `if_clone` becoming opaque." +msgstr "10-CURRENT после изменения KPI клонирования сетевых интерфейсов и структура `if_clone` стала непрозрачной." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3731 +#, no-wrap +msgid "1000021" +msgstr "1000021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3732 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/241897[241897]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/241897[241897]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3733 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3738 +#, no-wrap +msgid "October 22, 2012" +msgstr "22 октября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3735 +#, no-wrap +msgid "10-CURRENT after removal of support for non-MPSAFE filesystems and addition of support for FUSEFS (rev link:https://svnweb.freebsd.org/changeset/base/241519[241519])." +msgstr "10-CURRENT после удаления поддержки не-MPSAFE файловых систем и добавления поддержки FUSEFS (rev link:https://svnweb.freebsd.org/changeset/base/241519[241519])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3736 +#, no-wrap +msgid "1000022" +msgstr "1000022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3737 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/241913[241913]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/241913[241913]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3740 +#, no-wrap +msgid "10-CURRENT after the entire IPv4 stack switched to network byte order for IP packet header storage." +msgstr "10-CURRENT после перевода всего стека IPv4 на сетевой порядок байтов для хранения заголовков IP-пакетов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3741 +#, no-wrap +msgid "1000023" +msgstr "1000023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3742 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/242619[242619]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/242619[242619]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3743 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3748 +#, no-wrap +msgid "November 5, 2012" +msgstr "5 ноября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3745 +#, no-wrap +msgid "10-CURRENT after jitter buffer in the common USB serial driver code, to temporarily store characters if the TTY buffer is full. Add flow stop and start signals when this happens." +msgstr "10-CURRENT после буфера джиттера в общем коде драйвера USB-последовательного порта, для временного хранения символов, если буфер TTY заполнен. Добавлены сигналы остановки и возобновления потока при возникновении такой ситуации." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3746 +#, no-wrap +msgid "1000024" +msgstr "1000024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3747 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/242624[242624]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/242624[242624]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3750 +#, no-wrap +msgid "10-CURRENT after clang was made the default compiler on i386 and amd64." +msgstr "10-CURRENT после того, как clang стал компилятором по умолчанию для i386 и amd64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3751 +#, no-wrap +msgid "1000025" +msgstr "1000025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3752 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/243443[243443]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/243443[243443]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3753 +#, no-wrap +msgid "November 17, 2012" +msgstr "17 ноября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3755 +#, no-wrap +msgid "10-CURRENT after the sin6_scope_id member variable in struct sockaddr_in6 was changed to being filled by the kernel before passing the structure to the userland via sysctl or routing socket. This means the KAME-specific embedded scope id in sin6_addr.s6_addr[2] is always cleared in userland application." +msgstr "10-CURRENT после того, как переменная-член sin6_scope_id в структуре sockaddr_in6 была изменена таким образом, что ядро заполняет её перед передачей структуры в пользовательское пространство через sysctl или сокет маршрутизации. Это означает, что специфичный для KAME встроенный идентификатор области в sin6_addr.s6_addr[2] всегда очищается в пользовательских приложениях." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3756 +#, no-wrap +msgid "1000026" +msgstr "1000026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3757 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/245313[245313]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/245313[245313]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3758 +#, no-wrap +msgid "January 11, 2013" +msgstr "11 января 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3760 +#, no-wrap +msgid "10-CURRENT after install gained the -N flag. May also be used to indicate the presence of nmtree." +msgstr "10-CURRENT после установки получил флаг -N. Также может использоваться для указания наличия nmtree." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3761 +#, no-wrap +msgid "1000027" +msgstr "1000027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3762 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/246084[246084]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/246084[246084]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3763 +#, no-wrap +msgid "January 29, 2013" +msgstr "29 января 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3765 +#, no-wrap +msgid "10-CURRENT after cat gained the -l flag (rev link:https://svnweb.freebsd.org/changeset/base/246083[246083])." +msgstr "10-CURRENT после того, как команда `cat` получила флаг `-l` (rev link:https://svnweb.freebsd.org/changeset/base/246083[246083])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3766 +#, no-wrap +msgid "1000028" +msgstr "1000028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3767 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/246759[246759]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/246759[246759]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3768 +#, no-wrap +msgid "February 13, 2013" +msgstr "13 февраля 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3770 +#, no-wrap +msgid "10-CURRENT after USB moved to the driver structure requiring a rebuild of all USB modules." +msgstr "10-CURRENT после перемещения USB в структуру драйверов, требующую пересборки всех модулей USB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3771 +#, no-wrap +msgid "1000029" +msgstr "1000029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3772 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/247821[247821]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/247821[247821]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3773 +#, no-wrap +msgid "March 4, 2013" +msgstr "4 марта 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3775 +#, no-wrap +msgid "10-CURRENT after the introduction of tickless callout facility which also changed the layout of struct callout (rev link:https://svnweb.freebsd.org/changeset/base/247777[247777])." +msgstr "10-CURRENT после внедрения бестиковой системы отложенных вызовов, которая также изменила структуру struct callout (rev link:https://svnweb.freebsd.org/changeset/base/247777[247777])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3776 +#, no-wrap +msgid "1000030" +msgstr "1000030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3777 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/248210[248210]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/248210[248210]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3778 +#, no-wrap +msgid "March 12, 2013" +msgstr "12 марта 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3780 +#, no-wrap +msgid "10-CURRENT after KPI breakage introduced in the VM subsystem to support read/write locking (rev link:https://svnweb.freebsd.org/changeset/base/248084[248084])." +msgstr "10-CURRENT после нарушения KPI, внесённого в подсистему VM для поддержки блокировок чтения/записи (rev link:https://svnweb.freebsd.org/changeset/base/248084[248084])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3781 +#, no-wrap +msgid "1000031" +msgstr "1000031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3782 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/249943[249943]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/249943[249943]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3783 +#, no-wrap +msgid "April 26, 2013" +msgstr "26 апреля 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3785 +#, no-wrap +msgid "10-CURRENT after the `dst` parameter of the ifnet `if_output` method was changed to take const qualifier (rev link:https://svnweb.freebsd.org/changeset/base/249925[249925])." +msgstr "10-CURRENT после изменения параметра `dst` метода `if_output` в ifnet, чтобы он принимал квалификатор const (ревизия link:https://svnweb.freebsd.org/changeset/base/249925[249925])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3786 +#, no-wrap +msgid "1000032" +msgstr "1000032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3787 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/250163[250163]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/250163[250163]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3788 +#, no-wrap +msgid "May 1, 2013" +msgstr "1 мая 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3790 +#, no-wrap +msgid "10-CURRENT after the introduction of the man:accept4[2] (rev link:https://svnweb.freebsd.org/changeset/base/250154[250154]) and man:pipe2[2] (rev link:https://svnweb.freebsd.org/changeset/base/250159[250159]) system calls." +msgstr "10-CURRENT после введения системных вызовов man:accept4[2] (rev link:https://svnweb.freebsd.org/changeset/base/250154[250154]) и man:pipe2[2] (rev link:https://svnweb.freebsd.org/changeset/base/250159[250159])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3791 +#, no-wrap +msgid "1000033" +msgstr "1000033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3792 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/250881[250881]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/250881[250881]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3793 +#, no-wrap +msgid "May 21, 2013" +msgstr "21 мая 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3795 +#, no-wrap +msgid "10-CURRENT after flex 2.5.37 import." +msgstr "10-CURRENT после импорта flex 2.5.37." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3796 +#, no-wrap +msgid "1000034" +msgstr "1000034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3797 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/251294[251294]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/251294[251294]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3798 +#, no-wrap +msgid "June 3, 2013" +msgstr "3 июня 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3800 +#, no-wrap +msgid "10-CURRENT after the addition of these functions to libm: man:cacos[3], man:cacosf[3], man:cacosh[3], man:cacoshf[3], man:casin[3], man:casinf[3], man:casinh[3], man:casinhf[3], man:catan[3], man:catanf[3], man:catanh[3], man:catanhf[3], man:logl[3], man:log2l[3], man:log10l[3], man:log1pl[3], man:expm1l[3]." +msgstr "10-CURRENT после добавления следующих функций в libm: man:cacos[3], man:cacosf[3], man:cacosh[3], man:cacoshf[3], man:casin[3], man:casinf[3], man:casinh[3], man:casinhf[3], man:catan[3], man:catanf[3], man:catanh[3], man:catanhf[3], man:logl[3], man:log2l[3], man:log10l[3], man:log1pl[3], man:expm1l[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3801 +#, no-wrap +msgid "1000035" +msgstr "1000035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3802 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/251527[251527]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/251527[251527]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3803 +#, no-wrap +msgid "June 8, 2013" +msgstr "8 июня 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3805 +#, no-wrap +msgid "10-CURRENT after the introduction of the man:aio_mlock[2] system call (rev link:https://svnweb.freebsd.org/changeset/base/251526[251526])." +msgstr "10-CURRENT после введения системного вызова man:aio_mlock[2] (изменение link:https://svnweb.freebsd.org/changeset/base/251526[251526])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3806 +#, no-wrap +msgid "1000036" +msgstr "1000036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3807 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253049[253049]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253049[253049]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3808 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3813 +#, no-wrap +msgid "July 9, 2013" +msgstr "9 июля 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3810 +#, no-wrap +msgid "10-CURRENT after the addition of a new function to the kernel GSSAPI module's function call interface." +msgstr "10-CURRENT после добавления новой функции в интерфейс вызовов функций модуля ядра GSSAPI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3811 +#, no-wrap +msgid "1000037" +msgstr "1000037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3812 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253089[253089]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253089[253089]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3815 +#, no-wrap +msgid "10-CURRENT after the migration of statistics structures to PCPU counters. Changed structures include: `ahstat`, `arpstat`, `espstat`, `icmp6_ifstat`, `icmp6stat`, `in6_ifstat`, `ip6stat`, `ipcompstat`, `ipipstat`, `ipsecstat`, `mrt6stat`, `mrtstat`, `pfkeystat`, `pim6stat`, `pimstat`, `rip6stat`, `udpstat` (rev link:https://svnweb.freebsd.org/changeset/base/253081[253081])." +msgstr "10-CURRENT после миграции структур статистики на PCPU-счетчики. Измененные структуры включают: `ahstat`, `arpstat`, `espstat`, `icmp6_ifstat`, `icmp6stat`, `in6_ifstat`, `ip6stat`, `ipcompstat`, `ipipstat`, `ipsecstat`, `mrt6stat`, `mrtstat`, `pfkeystat`, `pim6stat`, `pimstat`, `rip6stat`, `udpstat` (rev link:https://svnweb.freebsd.org/changeset/base/253081[253081])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3816 +#, no-wrap +msgid "1000038" +msgstr "1000038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3817 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253396[253396]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253396[253396]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3818 +#, no-wrap +msgid "July 16, 2013" +msgstr "16 июля 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3820 +#, no-wrap +msgid "10-CURRENT after making `ARM EABI` the default ABI on arm, armeb, armv6, and armv6eb architectures." +msgstr "10-CURRENT после установки `ARM EABI` в качестве ABI по умолчанию для архитектур arm, armeb, armv6 и armv6eb." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3821 +#, no-wrap +msgid "1000039" +msgstr "1000039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3822 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253549[253549]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253549[253549]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3823 +#, no-wrap +msgid "July 22, 2013" +msgstr "22 июля 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3825 +#, no-wrap +msgid "10-CURRENT after `CAM` and man:mps[4] driver scanning changes." +msgstr "10-CURRENT после изменений в сканировании драйверов `CAM` и man:mps[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3826 +#, no-wrap +msgid "1000040" +msgstr "1000040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3827 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253638[253638]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253638[253638]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3828 +#, no-wrap +msgid "July 24, 2013" +msgstr "24 июля 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3830 +#, no-wrap +msgid "10-CURRENT after addition of libusb `pkgconf` files." +msgstr "10-CURRENT после добавления файлов `pkgconf` для libusb." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3831 +#, no-wrap +msgid "1000041" +msgstr "1000041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3832 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253970[253970]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253970[253970]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3833 +#, no-wrap +msgid "August 5, 2013" +msgstr "5 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3835 +#, no-wrap +msgid "10-CURRENT after change from `time_second` to `time_uptime` in `PF_INET6`." +msgstr "10-CURRENT после изменения с `time_second` на `time_uptime` в `PF_INET6`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3836 +#, no-wrap +msgid "1000042" +msgstr "1000042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3837 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254138[254138]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254138[254138]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3838 +#, no-wrap +msgid "August 9, 2013" +msgstr "9 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3840 +#, no-wrap +msgid "10-CURRENT after VM subsystem change to unify soft and hard busy mechanisms." +msgstr "10-CURRENT после изменения подсистемы VM для объединения механизмов мягкой и жесткой занятости." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3841 +#, no-wrap +msgid "1000043" +msgstr "1000043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3842 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254273[254273]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254273[254273]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3843 +#, no-wrap +msgid "August 13, 2013" +msgstr "13 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3845 +#, no-wrap +msgid "10-CURRENT after `WITH_ICONV` is enabled by default. A new man:src.conf[5] option, `WITH_LIBICONV_COMPAT` (disabled by default) adds `libiconv_open` to provide compatibility with the package:converters/libiconv[] port." +msgstr "10-CURRENT после того, как `WITH_ICONV` включён по умолчанию. Новая опция man:src.conf[5], `WITH_LIBICONV_COMPAT` (выключена по умолчанию), добавляет `libiconv_open` для обеспечения совместимости с портом package:converters/libiconv[]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3846 +#, no-wrap +msgid "1000044" +msgstr "1000044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3847 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254358[254358]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254358[254358]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3848 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3853 +#, no-wrap +msgid "August 15, 2013" +msgstr "15 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3850 +#, no-wrap +msgid "10-CURRENT after [.filename]#libc.so# conversion to an man:ld[1] script (rev link:https://svnweb.freebsd.org/changeset/base/251668[251668])." +msgstr "10-CURRENT после преобразования [.filename]#libc.so# в скрипт man:ld[1] (изменение rev link:https://svnweb.freebsd.org/changeset/base/251668[251668])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3851 +#, no-wrap +msgid "1000045" +msgstr "1000045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3852 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254389[254389]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254389[254389]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3855 +#, no-wrap +msgid "10-CURRENT after devfs programming interface change by replacing the cdevsw flag `D_UNMAPPED_IO` with the struct cdev flag `SI_UNMAPPED`." +msgstr "10-CURRENT после изменения программного интерфейса devfs путем замены флага `D_UNMAPPED_IO` в cdevsw на флаг `SI_UNMAPPED` в структуре cdev." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3856 +#, no-wrap +msgid "1000046" +msgstr "1000046" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3857 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254537[254537]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254537[254537]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3858 +#, no-wrap +msgid "August 19, 2013" +msgstr "19 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3858 +#, no-wrap +msgid "10-CURRENT after addition of `M_PROTO[9-12]` and removal of `M_FRAG\\" +msgstr "10-CURRENT после добавления `M_PROTO[9-12]` и удаления `M_FRAG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3858 +#, no-wrap +msgid "M_FIRSTFRAG\\" +msgstr "M_FIRSTFRAG\\" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3860 +#, no-wrap +msgid "M_LASTFRAG` mbuf flags (rev link:https://svnweb.freebsd.org/changeset/base/254524[254524], link:https://svnweb.freebsd.org/changeset/base/254526[254526])." +msgstr "M_LASTFRAG` флаги mbuf (версии link:https://svnweb.freebsd.org/changeset/base/254524[254524], link:https://svnweb.freebsd.org/changeset/base/254526[254526])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3861 +#, no-wrap +msgid "1000047" +msgstr "1000047" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3862 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254627[254627]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254627[254627]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3863 +#, no-wrap +msgid "August 21, 2013" +msgstr "21 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3865 +#, no-wrap +msgid "10-CURRENT after man:stat[2] update to allow storing some Windows/DOS and CIFS file attributes as man:stat[2] flags." +msgstr "10-CURRENT после обновления man:stat[2], позволяющего сохранять некоторые атрибуты файлов Windows/DOS и CIFS в виде флагов man:stat[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3866 +#, no-wrap +msgid "1000048" +msgstr "1000048" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3867 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254672[254672]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254672[254672]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3868 +#, no-wrap +msgid "August 22, 2013" +msgstr "August 22, 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3870 +#, no-wrap +msgid "10-CURRENT after modification of structure `xsctp_inpcb`." +msgstr "10-CURRENT после изменения структуры `xsctp_inpcb`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3871 +#, no-wrap +msgid "1000049" +msgstr "1000049" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3872 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254760[254760]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254760[254760]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3873 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3878 +#, no-wrap +msgid "August 24, 2013" +msgstr "24 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3875 +#, no-wrap +msgid "10-CURRENT after man:physio[9] support for devices that do not function properly with split I/O, such as man:sa[4]." +msgstr "10-CURRENT после поддержки man:physio[9] для устройств, которые работают некорректно с разделённым вводом-выводом, таких как man:sa[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3876 +#, no-wrap +msgid "1000050" +msgstr "1000050" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3877 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254844[254844]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254844[254844]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3880 +#, no-wrap +msgid "10-CURRENT after modifications of structure `mbuf` (rev link:https://svnweb.freebsd.org/changeset/base/254780[254780], link:https://svnweb.freebsd.org/changeset/base/254799[254799], link:https://svnweb.freebsd.org/changeset/base/254804[254804], link:https://svnweb.freebsd.org/changeset/base/254807[254807]link:https://svnweb.freebsd.org/changeset/base/254842[254842])." +msgstr "10-CURRENT после изменений структуры `mbuf` (rev link:https://svnweb.freebsd.org/changeset/base/254780[254780], link:https://svnweb.freebsd.org/changeset/base/254799[254799], link:https://svnweb.freebsd.org/changeset/base/254804[254804], link:https://svnweb.freebsd.org/changeset/base/254807[254807]link:https://svnweb.freebsd.org/changeset/base/254842[254842])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3881 +#, no-wrap +msgid "1000051" +msgstr "1000051" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3882 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254887[254887]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254887[254887]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3883 +#, no-wrap +msgid "August 25, 2013" +msgstr "25 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3885 +#, no-wrap +msgid "10-CURRENT after Radeon KMS driver import (rev link:https://svnweb.freebsd.org/changeset/base/254885[254885])." +msgstr "10-CURRENT после импорта драйвера Radeon KMS (ревизия link:https://svnweb.freebsd.org/changeset/base/254885[254885])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3886 +#, no-wrap +msgid "1000052" +msgstr "1000052" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3887 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/255180[255180]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/255180[255180]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3888 +#, no-wrap +msgid "September 3, 2013" +msgstr "3 сентября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3890 +#, no-wrap +msgid "10-CURRENT after import of NetBSD `libexecinfo` is connected to the build." +msgstr "10-CURRENT после импорта NetBSD `libexecinfo` подключен к сборке." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3891 +#, no-wrap +msgid "1000053" +msgstr "1000053" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3892 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/255305[255305]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/255305[255305]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3893 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3898 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3903 +#, no-wrap +msgid "September 6, 2013" +msgstr "6 сентября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3895 +#, no-wrap +msgid "10-CURRENT after API and ABI changes to the Capsicum framework." +msgstr "10-CURRENT после изменений API и ABI в рамках Capsicum." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3896 +#, no-wrap +msgid "1000054" +msgstr "1000054" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3897 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/255321[255321]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/255321[255321]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3900 +#, no-wrap +msgid "10-CURRENT after `gcc` and `libstdc++` are no longer built by default." +msgstr "10-CURRENT после того, как `gcc` и `libstdc++` больше не собираются по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3901 +#, no-wrap +msgid "1000055" +msgstr "1000055" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3902 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/255449[255449]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/255449[255449]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3905 +#, no-wrap +msgid "10-CURRENT after addition of `MMAP_32BIT` man:mmap[2] flag (rev link:https://svnweb.freebsd.org/changeset/base/255426[255426])." +msgstr "10-CURRENT после добавления флага `MMAP_32BIT` в man:mmap[2] (rev link:https://svnweb.freebsd.org/changeset/base/255426[255426])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3906 +#, no-wrap +msgid "1000100" +msgstr "1000100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3907 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/259065[259065]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/259065[259065]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3908 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3928 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3933 +#, no-wrap +msgid "December 7, 2013" +msgstr "December 7, 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3910 +#, no-wrap +msgid "`releng/10.0` branched from `stable/10`." +msgstr "`releng/10.0` ответвился от `stable/10`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3911 +#, no-wrap +msgid "1000500" +msgstr "1000500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3912 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/256283[256283]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/256283[256283]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3915 +#, no-wrap +msgid "10-STABLE after branch from `head/`." +msgstr "10-STABLE после ветвления от `head/`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3916 +#, no-wrap +msgid "1000501" +msgstr "1000501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3917 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/256916[256916]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/256916[256916]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3918 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4631 +#, no-wrap +msgid "October 22, 2013" +msgstr "22 октября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3920 +#, no-wrap +msgid "10-STABLE after addition of first-boot man:rc[8] support." +msgstr "10-STABLE после добавления поддержки man:rc[8] при первой загрузке." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3921 +#, no-wrap +msgid "1000502" +msgstr "1000502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3922 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/258398[258398]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/258398[258398]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3923 +#, no-wrap +msgid "November 20, 2013" +msgstr "20 ноября 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3925 +#, no-wrap +msgid "10-STABLE after removal of iconv symbols from `libc.so.7`." +msgstr "10-STABLE после удаления символов iconv из `libc.so.7`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3926 +#, no-wrap +msgid "1000510" +msgstr "1000510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3927 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/259067[259067]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/259067[259067]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3930 +#, no-wrap +msgid "`releng/10.0` __FreeBSD_version update to prevent the value from going backwards." +msgstr "`releng/10.0` __FreeBSD_version обновлён, чтобы предотвратить уменьшение значения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3931 +#, no-wrap +msgid "1000700" +msgstr "1000700" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3932 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/259069[259069]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/259069[259069]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3935 +#, no-wrap +msgid "10-STABLE after `releng/10.0` branch." +msgstr "10-STABLE после ветки `releng/10.0`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3936 +#, no-wrap +msgid "1000701" +msgstr "1000701" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3937 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/259447[259447]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/259447[259447]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3940 +#, no-wrap +msgid "10.0-STABLE after Heimdal encoding fix." +msgstr "10.0-STABLE после исправления кодирования Heimdal." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3941 +#, no-wrap +msgid "1000702" +msgstr "1000702" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3942 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/260135[260135]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/260135[260135]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3943 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4641 +#, no-wrap +msgid "December 31, 2013" +msgstr "31 декабря 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3945 +#, no-wrap +msgid "10-STABLE after MAP_STACK fixes." +msgstr "10-STABLE после исправлений MAP_STACK." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3946 +#, no-wrap +msgid "1000703" +msgstr "1000703" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3947 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4645 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/262801[262801]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/262801[262801]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3948 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4646 +#, no-wrap +msgid "March 5, 2014" +msgstr "5 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3950 +#, no-wrap +msgid "10-STABLE after upgrade of libc++ to 3.4 release." +msgstr "10-STABLE после обновления libc++ до версии 3.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3951 +#, no-wrap +msgid "1000704" +msgstr "1000704" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3952 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/262889[262889]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/262889[262889]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3953 +#, no-wrap +msgid "March 7, 2014" +msgstr "7 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3955 +#, no-wrap +msgid "10-STABLE after MFC of the man:vt[4] driver (rev link:https://svnweb.freebsd.org/changeset/base/262861[262861])." +msgstr "10-STABLE после слияния из ветки man:vt[4] драйвера (ревизия link:https://svnweb.freebsd.org/changeset/base/262861[262861])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3956 +#, no-wrap +msgid "1000705" +msgstr "1000705" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3957 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263508[263508]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263508[263508]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3958 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4656 +#, no-wrap +msgid "March 21, 2014" +msgstr "21 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3960 +#, no-wrap +msgid "10-STABLE after upgrade of llvm/clang to 3.4 release." +msgstr "10-STABLE после обновления llvm/clang до версии 3.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3961 +#, no-wrap +msgid "1000706" +msgstr "1000706" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3962 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/264214[264214]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/264214[264214]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3965 +#, no-wrap +msgid "10-STABLE after GCC support for `__block` definition." +msgstr "10-STABLE после удаления поддержки GCC для определения `__block`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3966 +#, no-wrap +msgid "1000707" +msgstr "1000707" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3970 +#, no-wrap +msgid "10-STABLE after FreeBSD-SA-14:06.openssl." +msgstr "10-STABLE после FreeBSD-SA-14:06.openssl." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3971 +#, no-wrap +msgid "1000708" +msgstr "1000708" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3972 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/265122[265122]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/265122[265122]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3973 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4671 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5474 +#, no-wrap +msgid "April 30, 2014" +msgstr "30 апреля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3975 +#, no-wrap +msgid "10-STABLE after FreeBSD-SA-14:07.devfs, FreeBSD-SA-14:08.tcp, and FreeBSD-SA-14:09.openssl." +msgstr "10-STABLE после FreeBSD-SA-14:07.devfs, FreeBSD-SA-14:08.tcp и FreeBSD-SA-14:09.openssl." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3976 +#, no-wrap +msgid "1000709" +msgstr "1000709" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3977 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/265946[265946]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/265946[265946]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3978 +#, no-wrap +msgid "May 13, 2014" +msgstr "13 мая 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3980 +#, no-wrap +msgid "10-STABLE after support for UDP-Lite protocol (RFC 3828)." +msgstr "10-STABLE после добавления поддержки протокола UDP-Lite (RFC 3828)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3981 +#, no-wrap +msgid "1000710" +msgstr "1000710" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3982 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/267465[267465]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/267465[267465]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3985 +#, no-wrap +msgid "10-STABLE after changes to man:strcasecmp[3], moving man:strcasecmp_l[3] and man:strncasecmp_l[3] from [.filename]## to [.filename]## for POSIX 2008 compliance." +msgstr "10-STABLE после изменений в man:strcasecmp[3], переноса man:strcasecmp_l[3] и man:strncasecmp_l[3] из [.filename]## в [.filename]## для соответствия POSIX 2008." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3986 +#, no-wrap +msgid "1000711" +msgstr "1000711" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3987 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/268442[268442]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/268442[268442]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3990 +#, no-wrap +msgid "10-STABLE after FreeBSD-SA-14:17.kmem (rev link:https://svnweb.freebsd.org/changeset/base/268432[268432])." +msgstr "10-STABLE после FreeBSD-SA-14:17.kmem (ревизия:https://svnweb.freebsd.org/changeset/base/268432[268432])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3991 +#, no-wrap +msgid "1000712" +msgstr "1000712" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3992 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/269400[269400]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/269400[269400]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3993 +#, no-wrap +msgid "August 1, 2014" +msgstr "1 августа 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3995 +#, no-wrap +msgid "10-STABLE after man:nfsd[8] 4.1 merge (rev link:https://svnweb.freebsd.org/changeset/base/269398[269398])." +msgstr "10-STABLE после слияния man:nfsd[8] 4.1 (rev link:https://svnweb.freebsd.org/changeset/base/269398[269398])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3996 +#, no-wrap +msgid "1000713" +msgstr "1000713" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:3997 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/269484[269484]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/269484[269484]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4000 +#, no-wrap +msgid "10-STABLE after man:regex[3] library update to add \">\" and \"<\" delimiters." +msgstr "10-STABLE после обновления библиотеки man:regex[3] для добавления разделителей \">\" и \"<\"." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4001 +#, no-wrap +msgid "1000714" +msgstr "1000714" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4002 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/270174[270174]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/270174[270174]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4005 +#, no-wrap +msgid "10-STABLE after `SOCK_DGRAM` bug fix (rev link:https://svnweb.freebsd.org/changeset/base/269490[269490])." +msgstr "10-STABLE после исправления ошибки `SOCK_DGRAM` (rev link:https://svnweb.freebsd.org/changeset/base/269490[269490])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4006 +#, no-wrap +msgid "1000715" +msgstr "1000715" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4010 +#, no-wrap +msgid "10-STABLE after FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/269686[269686])." +msgstr "10-STABLE после FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/269686[269686])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4011 +#, no-wrap +msgid "1000716" +msgstr "1000716" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4015 +#, no-wrap +msgid "10-STABLE after FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271667[271667])." +msgstr "10-STABLE после FreeBSD-SA-14:19 (ревизия link:https://svnweb.freebsd.org/changeset/base/271667[271667])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4016 +#, no-wrap +msgid "1000717" +msgstr "1000717" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4017 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/271816[271816]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/271816[271816]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4018 +#, no-wrap +msgid "September 18, 2014" +msgstr "18 сентября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4020 +#, no-wrap +msgid "10-STABLE after i915 HW context support." +msgstr "10-STABLE после добавления поддержки аппаратного контекста i915." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4021 +#, no-wrap +msgid "1001000" +msgstr "1001000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4022 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/272463[272463]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/272463[272463]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4023 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4028 +#, no-wrap +msgid "October 2, 2014" +msgstr "2 октября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4025 +#, no-wrap +msgid "10.1-RC1 after releng/10.1 branch." +msgstr "10.1-RC1 после ветки releng/10.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4026 +#, no-wrap +msgid "1001500" +msgstr "1001500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4027 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/272464[272464]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/272464[272464]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4030 +#, no-wrap +msgid "10-STABLE after releng/10.1 branch." +msgstr "10-STABLE после ветки releng/10.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4031 +#, no-wrap +msgid "1001501" +msgstr "1001501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4035 +#, no-wrap +msgid "10-STABLE after FreeBSD-SA-14:20, FreeBSD-SA-14:22, and FreeBSD-SA-14:23 (rev link:https://svnweb.freebsd.org/changeset/base/273411[273411])." +msgstr "10-STABLE после исправлений уязвимостей FreeBSD-SA-14:20, FreeBSD-SA-14:22 и FreeBSD-SA-14:23 (ссылка на ревизию: https://svnweb.freebsd.org/changeset/base/273411[273411])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4036 +#, no-wrap +msgid "1001502" +msgstr "1001502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4040 +#, no-wrap +msgid "10-STABLE after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25." +msgstr "10-STABLE после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4041 +#, no-wrap +msgid "1001503" +msgstr "1001503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4042 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/275040[275040]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/275040[275040]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4043 +#, no-wrap +msgid "November 25, 2014" +msgstr "25 ноября 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4045 +#, no-wrap +msgid "10-STABLE after merging new libraries/utilities (man:dpv[1] man:dpv[3], and man:figpar[3]) for data throughput visualization." +msgstr "10-STABLE после объединения новых библиотек/утилит (man:dpv[1], man:dpv[3] и man:figpar[3]) для визуализации пропускной способности данных." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4046 +#, no-wrap +msgid "1001504" +msgstr "1001504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4047 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4715 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/275742[275742]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/275742[275742]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4048 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4716 +#, no-wrap +msgid "December 13, 2014" +msgstr "13 декабря 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4050 +#, no-wrap +msgid "10-STABLE after merging an important fix to the LLVM vectorizer, which could lead to buffer overruns in some cases." +msgstr "10-STABLE после объединения важного исправления в векторизатор LLVM, которое в некоторых случаях могло приводить к переполнению буфера." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4051 +#, no-wrap +msgid "1001505" +msgstr "1001505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4052 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/276633[276633]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/276633[276633]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4053 +#, no-wrap +msgid "January 3, 2015" +msgstr "3 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4055 +#, no-wrap +msgid "10-STABLE after merging some arm constants in link:https://svnweb.freebsd.org/changeset/base/276312[276312]." +msgstr "10-STABLE после объединения некоторых констант ARM в link:https://svnweb.freebsd.org/changeset/base/276312[276312]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4056 +#, no-wrap +msgid "1001506" +msgstr "1001506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4057 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/277087[277087]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/277087[277087]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4058 +#, no-wrap +msgid "January 12, 2015" +msgstr "12 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4060 +#, no-wrap +msgid "10-STABLE after merging max table size update for yacc." +msgstr "10-STABLE после объединения обновления максимального размера таблицы для yacc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4061 +#, no-wrap +msgid "1001507" +msgstr "1001507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4062 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/277790[277790]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/277790[277790]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4063 +#, no-wrap +msgid "January 27, 2015" +msgstr "27 января 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4065 +#, no-wrap +msgid "10-STABLE after changes to the UDP tunneling callback to provide a context pointer and the source `sockaddr`." +msgstr "10-STABLE после изменений в обратном вызове туннелирования UDP для предоставления указателя контекста и исходного `sockaddr`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4066 +#, no-wrap +msgid "1001508" +msgstr "1001508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4067 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/278974[278974]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/278974[278974]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4070 +#, no-wrap +msgid "10-STABLE after addition of the `CDAI_TYPE_EXT_INQ` request type." +msgstr "10-STABLE после добавления типа запроса `CDAI_TYPE_EXT_INQ`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4071 +#, no-wrap +msgid "1001509" +msgstr "1001509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4072 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4720 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5503 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/279287[279287]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/279287[279287]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4073 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4721 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5504 +#, no-wrap +msgid "February 25, 2015" +msgstr "25 февраля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4075 +#, no-wrap +msgid "10-STABLE after FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp, and FreeBSD-SA-15:05.bind." +msgstr "10-STABLE после FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp и FreeBSD-SA-15:05.bind." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4076 +#, no-wrap +msgid "1001510" +msgstr "1001510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4077 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/279329[279329]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/279329[279329]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4078 +#, no-wrap +msgid "February 26, 2015" +msgstr "26 февраля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4080 +#, no-wrap +msgid "10-STABLE after MFC of rev link:https://svnweb.freebsd.org/changeset/base/278964[278964]." +msgstr "10-STABLE после MFC ревизии link:https://svnweb.freebsd.org/changeset/base/278964[278964]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4081 +#, no-wrap +msgid "1001511" +msgstr "1001511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4082 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/280246[280246]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/280246[280246]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4083 +#, no-wrap +msgid "March 19, 2015" +msgstr "19 марта 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4085 +#, no-wrap +msgid "10-STABLE after [.filename]#sys/capability.h# is renamed to [.filename]#sys/capsicum.h# (rev link:https://svnweb.freebsd.org/changeset/base/280224/[280224/])." +msgstr "10-STABLE после переименования [.filename]#sys/capability.h# в [.filename]#sys/capsicum.h# (изменение:https://svnweb.freebsd.org/changeset/base/280224/[280224/])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4086 +#, no-wrap +msgid "1001512" +msgstr "1001512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4087 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/280438[280438]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/280438[280438]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4088 +#, no-wrap +msgid "March 24, 2015" +msgstr "24 марта 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4090 +#, no-wrap +msgid "10-STABLE after addition of new man:mtio[4], man:sa[4] ioctls." +msgstr "10-STABLE после добавления новых ioctl в man:mtio[4] и man:sa[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4091 +#, no-wrap +msgid "1001513" +msgstr "1001513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4092 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/281955[281955]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/281955[281955]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4093 +#, no-wrap +msgid "April 24, 2015" +msgstr "24 апреля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4095 +#, no-wrap +msgid "10-STABLE after starting the process of removing the use of the deprecated \"M_FLOWID\" flag from the network code." +msgstr "10-STABLE после начала процесса удаления использования устаревшего флага \"M_FLOWID\" из сетевого кода." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4096 +#, no-wrap +msgid "1001514" +msgstr "1001514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4097 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/282275[282275]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/282275[282275]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4098 +#, no-wrap +msgid "April 30, 2015" +msgstr "30 апреля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4100 +#, no-wrap +msgid "10-STABLE after MFC of man:iconv[3] fixes." +msgstr "10-STABLE после MFC исправлений man:iconv[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4101 +#, no-wrap +msgid "1001515" +msgstr "1001515" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4102 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/282781[282781]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/282781[282781]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4103 +#, no-wrap +msgid "May 11, 2015" +msgstr "11 мая 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4105 +#, no-wrap +msgid "10-STABLE after adding back `M_FLOWID`." +msgstr "10-STABLE после возврата `M_FLOWID`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4106 +#, no-wrap +msgid "1001516" +msgstr "1001516" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4107 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/283341[283341]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/283341[283341]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4108 +#, no-wrap +msgid "May 24, 2015" +msgstr "24 мая 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4110 +#, no-wrap +msgid "10-STABLE after MFC of many USB things." +msgstr "10-STABLE после переноса (MFC) множества изменений, связанных с USB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4111 +#, no-wrap +msgid "1001517" +msgstr "1001517" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4112 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/283950[283950]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/283950[283950]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4113 +#, no-wrap +msgid "June 3, 2015" +msgstr "3 июня 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4115 +#, no-wrap +msgid "10-STABLE after MFC of sound related things." +msgstr "10-STABLE после слияния изменений, связанных со звуком." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4116 +#, no-wrap +msgid "1001518" +msgstr "1001518" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4117 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/284204[284204]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/284204[284204]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4120 +#, no-wrap +msgid "10-STABLE after MFC of zfs vfs fixes (rev link:https://svnweb.freebsd.org/changeset/base/284203[284203])." +msgstr "10-STABLE после MFC исправлений vfs для zfs (rev link:https://svnweb.freebsd.org/changeset/base/284203[284203])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4121 +#, no-wrap +msgid "1001519" +msgstr "1001519" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4122 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/284720[284720]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/284720[284720]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4123 +#, no-wrap +msgid "June 23, 2015" +msgstr "23 июня 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4125 +#, no-wrap +msgid "10-STABLE after reverting bumping `MAXCPU` on amd64." +msgstr "10-STABLE после отмены увеличения `MAXCPU` на amd64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4126 +#, no-wrap +msgid "1002000" +msgstr "1002000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4127 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/285830[285830]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/285830[285830]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4128 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4133 +#, no-wrap +msgid "July 24, 2015" +msgstr "24 июля 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4130 +#, no-wrap +msgid "`releng/10.2` branched from 10-STABLE." +msgstr "`releng/10.2` отделился от 10-STABLE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4131 +#, no-wrap +msgid "1002500" +msgstr "1002500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4132 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/285831[285831]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/285831[285831]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4135 +#, no-wrap +msgid "10-STABLE after `releng/10.2` branched from 10-STABLE." +msgstr "10-STABLE после того, как ветка `releng/10.2` отделилась от 10-STABLE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4136 +#, no-wrap +msgid "1002501" +msgstr "1002501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4137 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/289005[289005]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/289005[289005]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4138 +#, no-wrap +msgid "October 8, 2015" +msgstr "8 октября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4140 +#, no-wrap +msgid "10-STABLE after merge of ZFS changes that affected the internal interface of `zfeature_info` structure (rev link:https://svnweb.freebsd.org/changeset/base/288572[288572])." +msgstr "10-STABLE после объединения изменений ZFS, затронувших внутренний интерфейс структуры `zfeature_info` (rev link:https://svnweb.freebsd.org/changeset/base/288572[288572])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4141 +#, no-wrap +msgid "1002502" +msgstr "1002502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4142 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/291243[291243]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/291243[291243]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4143 +#, no-wrap +msgid "November 24, 2015" +msgstr "24 ноября 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4145 +#, no-wrap +msgid "10-STABLE after merge of dump device changes that affected the arguments of `g_dev_setdumpdev()`(rev link:https://svnweb.freebsd.org/changeset/base/291215[291215])." +msgstr "10-STABLE после объединения изменений устройств дампа, которые затронули аргументы `g_dev_setdumpdev()`(rev link:https://svnweb.freebsd.org/changeset/base/291215[291215])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4146 +#, no-wrap +msgid "1002503" +msgstr "1002503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4147 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/292224[292224]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/292224[292224]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4148 +#, no-wrap +msgid "December 14, 2015" +msgstr "14 декабря 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4150 +#, no-wrap +msgid "10-STABLE after merge of changes to the internal interface between the nfsd.ko and nfscommon.ko modules, requiring them to be upgraded together (rev link:https://svnweb.freebsd.org/changeset/base/292223[292223])." +msgstr "10-STABLE после объединения изменений во внутренний интерфейс между модулями nfsd.ko и nfscommon.ko, что требует их совместного обновления (rev link:https://svnweb.freebsd.org/changeset/base/292223[292223])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4151 +#, no-wrap +msgid "1002504" +msgstr "1002504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4152 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/292589[292589]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/292589[292589]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4153 +#, no-wrap +msgid "December 22, 2015" +msgstr "22 декабря 2015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4155 +#, no-wrap +msgid "10-STABLE after merge of xz 5.2.2 merge (multithread support) (rev link:https://svnweb.freebsd.org/changeset/base/292588[292588])." +msgstr "10-STABLE после слияния xz 5.2.2 (поддержка многопоточности) (rev link:https://svnweb.freebsd.org/changeset/base/292588[292588])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4156 +#, no-wrap +msgid "1002505" +msgstr "1002505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4157 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/292908[292908]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/292908[292908]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4160 +#, no-wrap +msgid "10-STABLE after merge of changes to man:pci[4] (rev link:https://svnweb.freebsd.org/changeset/base/292907[292907])." +msgstr "10-STABLE после объединения изменений в man:pci[4] (rev link:https://svnweb.freebsd.org/changeset/base/292907[292907])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4161 +#, no-wrap +msgid "1002506" +msgstr "1002506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4162 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/293476[293476]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/293476[293476]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4163 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4168 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4173 +#, no-wrap +msgid "January 9, 2016" +msgstr "9 января 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4165 +#, no-wrap +msgid "10-STABLE after merge of man:utimensat[2] (rev link:https://svnweb.freebsd.org/changeset/base/293473[293473])." +msgstr "10-STABLE после объединения man:utimensat[2] (изменение link:https://svnweb.freebsd.org/changeset/base/293473[293473])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4166 +#, no-wrap +msgid "1002507" +msgstr "1002507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4167 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/293610[293610]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/293610[293610]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4170 +#, no-wrap +msgid "10-STABLE after merge of changes to man:linux[4] (rev link:https://svnweb.freebsd.org/changeset/base/293477[293477] through link:https://svnweb.freebsd.org/changeset/base/293609[293609])." +msgstr "10-STABLE после объединения изменений в man:linux[4] (rev link:https://svnweb.freebsd.org/changeset/base/293477[293477] через link:https://svnweb.freebsd.org/changeset/base/293609[293609])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4171 +#, no-wrap +msgid "1002508" +msgstr "1002508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4172 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/293619[293619]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/293619[293619]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4175 +#, no-wrap +msgid "10-STABLE after merge of changes to man:figpar[3] types/macros (rev link:https://svnweb.freebsd.org/changeset/base/290275[290275])." +msgstr "10-STABLE после объединения изменений в типы/макросы man:figpar[3] (rev link:https://svnweb.freebsd.org/changeset/base/290275[290275])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4176 +#, no-wrap +msgid "1002509" +msgstr "1002509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4177 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/295107[295107]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/295107[295107]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4178 +#, no-wrap +msgid "February 1, 2016" +msgstr "1 февраля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4180 +#, no-wrap +msgid "10-STABLE after merge of API change to man:dpv[3]." +msgstr "10-STABLE после объединения изменения API в man:dpv[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4181 +#, no-wrap +msgid "1003000" +msgstr "1003000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4182 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/296373[296373]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/296373[296373]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4183 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4188 +#, no-wrap +msgid "March 4, 2016" +msgstr "4 марта 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4185 +#, no-wrap +msgid "`releng/10.3` branched from 10-STABLE." +msgstr "`releng/10.3` ответвился от 10-STABLE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4186 +#, no-wrap +msgid "1003500" +msgstr "1003500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4187 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/296374[296374]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/296374[296374]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4190 +#, no-wrap +msgid "10-STABLE after `releng/10.3` branched from 10-STABLE." +msgstr "10-STABLE после того, как ветка `releng/10.3` отделилась от 10-STABLE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4191 +#, no-wrap +msgid "1003501" +msgstr "1003501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4192 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/298299[298299]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/298299[298299]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4193 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4198 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4203 +#, no-wrap +msgid "June 19, 2016" +msgstr "19 июня 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4195 +#, no-wrap +msgid "10-STABLE after adding -P option for `kdbcontrol` (rev link:https://svnweb.freebsd.org/changeset/base/298297[298297])." +msgstr "10-STABLE после добавления опции -P для `kdbcontrol` (rev link:https://svnweb.freebsd.org/changeset/base/298297[298297])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4196 +#, no-wrap +msgid "1003502" +msgstr "1003502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4197 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/299966[299966]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/299966[299966]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4200 +#, no-wrap +msgid "10-STABLE after libcrypto.so was made position independent." +msgstr "10-STABLE после того, как libcrypto.so стала позиционно-независимой." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4201 +#, no-wrap +msgid "1003503" +msgstr "1003503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4202 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300235[300235]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300235[300235]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4205 +#, no-wrap +msgid "10-STABLE after allowing `MK_` overrides (rev link:https://svnweb.freebsd.org/changeset/base/300233[300233])." +msgstr "10-STABLE после разрешения переопределений `MK_` (изменение link:https://svnweb.freebsd.org/changeset/base/300233[300233])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4206 +#, no-wrap +msgid "1003504" +msgstr "1003504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4207 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/302066[302066]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/302066[302066]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4210 +#, no-wrap +msgid "10-STABLE after MFC of `filemon` changes from 11-CURRENT." +msgstr "10-STABLE после переноса изменений `filemon` из 11-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4211 +#, no-wrap +msgid "1003505" +msgstr "1003505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4212 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/302228[302228]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/302228[302228]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4213 +#, no-wrap +msgid "June 27, 2016" +msgstr "27 июня 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4215 +#, no-wrap +msgid "10-STABLE after converting sed to use REG_STARTEND, fixing a Mesa issue." +msgstr "10-STABLE после замены в sed на использование REG_STARTEND, с исправлением проблемы в Mesa." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4216 +#, no-wrap +msgid "1003506" +msgstr "1003506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4217 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304611[304611]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304611[304611]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4220 +#, no-wrap +msgid "10-STABLE after adding C++11 `thread_local` support." +msgstr "10-STABLE после добавления поддержки `thread_local` в C++11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4221 +#, no-wrap +msgid "1003507" +msgstr "1003507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4222 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/304864[304864]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/304864[304864]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4225 +#, no-wrap +msgid "10-STABLE after `LC_*_MASK` fix." +msgstr "10-STABLE после исправления `LC_*_MASK`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4226 +#, no-wrap +msgid "1003508" +msgstr "1003508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4227 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/305734[305734]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/305734[305734]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4230 +#, no-wrap +msgid "10-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]." +msgstr "10-STABLE после устранения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4231 +#, no-wrap +msgid "1003509" +msgstr "1003509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4232 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/307331[307331]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/307331[307331]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4235 +#, no-wrap +msgid "10-STABLE after ZFS merges." +msgstr "10-STABLE после слияния с ZFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4236 +#, no-wrap +msgid "1003510" +msgstr "1003510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4237 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/308047[308047]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/308047[308047]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4240 +#, no-wrap +msgid "10-STABLE after installing header files required development with libzfs_core." +msgstr "10-STABLE после установки заголовочных файлов, необходимых для разработки с libzfs_core." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4241 +#, no-wrap +msgid "1003511" +msgstr "1003511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4242 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/310121[310121]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/310121[310121]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4245 +#, no-wrap +msgid "10-STABLE after exporting whole thread name in `kinfo_proc` (rev link:https://svnweb.freebsd.org/changeset/base/309676[309676])." +msgstr "10-STABLE после экспорта полного имени потока в `kinfo_proc` (rev link:https://svnweb.freebsd.org/changeset/base/309676[309676])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4246 +#, no-wrap +msgid "1003512" +msgstr "1003512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4247 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/315730[315730]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/315730[315730]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4248 +#, no-wrap +msgid "March 22, 2017" +msgstr "22 марта 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4250 +#, no-wrap +msgid "10-STABLE after libmd changes (rev link:https://svnweb.freebsd.org/changeset/base/314143[314143])." +msgstr "10-STABLE после изменений в libmd (rev link:https://svnweb.freebsd.org/changeset/base/314143[314143])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4251 +#, no-wrap +msgid "1003513" +msgstr "1003513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4252 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/316499[316499]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/316499[316499]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4255 +#, no-wrap +msgid "10-STABLE after making CAM SIM lock optional (revs link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674])." +msgstr "10-STABLE после того, как блокировка CAM SIM стала опциональной (ревизии link:https://svnweb.freebsd.org/changeset/base/315673[315673], link:https://svnweb.freebsd.org/changeset/base/315674[315674])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4256 +#, no-wrap +msgid "1003514" +msgstr "1003514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4257 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/318198[318198]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/318198[318198]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4260 +#, no-wrap +msgid "10-STABLE after merging the addition of the [.filename]## header." +msgstr "10-STABLE после объединения добавления заголовочного файла [.filename]##." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4261 +#, no-wrap +msgid "1003515" +msgstr "1003515" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4262 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/321222[321222]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/321222[321222]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4263 +#, no-wrap +msgid "July 19, 2017" +msgstr "19 июля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4265 +#, no-wrap +msgid "10-STABLE after adding C++14 sized deallocation functions to libc++." +msgstr "10-STABLE после добавления функций освобождения памяти с указанием размера из C++14 в libc++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4266 +#, no-wrap +msgid "1003516" +msgstr "1003516" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4267 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/321717[321717]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/321717[321717]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4268 +#, no-wrap +msgid "July 30, 2017" +msgstr "30 июля 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4270 +#, no-wrap +msgid "10-STABLE after merging the `MAP_GUARD` man:mmap[2] flag addition." +msgstr "10-STABLE после объединения добавления флага `MAP_GUARD` в man:mmap[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4271 +#, no-wrap +msgid "1004000" +msgstr "1004000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4272 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/323604[323604]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/323604[323604]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4273 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4278 +#, no-wrap +msgid "September 15, 2017" +msgstr "15 сентября 2017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4275 +#, no-wrap +msgid "`releng/10.4` branched from 10-STABLE." +msgstr "`releng/10.4` ответвился от 10-STABLE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4276 +#, no-wrap +msgid "1004500" +msgstr "1004500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4277 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/323605[323605]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/323605[323605]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4280 +#, no-wrap +msgid "10-STABLE after `releng/10.4` branched from 10-STABLE." +msgstr "10-STABLE после того, как ветка `releng/10.4` отделилась от 10-STABLE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4281 +#, no-wrap +msgid "1004501" +msgstr "1004501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4285 +#, no-wrap +msgid "10-STABLE after merging link:https://svnweb.freebsd.org/changeset/base/325028[325028], fixing `ptrace()` to always clear the correct thread event when resuming." +msgstr "10-STABLE после слияния изменений link:https://svnweb.freebsd.org/changeset/base/325028[325028], исправляющего `ptrace()`, чтобы всегда очищать правильное событие потока при возобновлении." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4286 +#, no-wrap +msgid "1004502" +msgstr "1004502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4287 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356396[356396]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356396[356396]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4290 +#, no-wrap +msgid "10-STABLE after making USB statistics be per-device instead of per bus." +msgstr "10-STABLE после изменения статистики USB для каждого устройства вместо каждой шины." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4291 +#, no-wrap +msgid "1004503" +msgstr "1004503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4292 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/356681[356681]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/356681[356681]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4294 +#, no-wrap +msgid "10-STABLE after adding own counter for cancelled USB transfers." +msgstr "10-STABLE после добавления собственного счетчика для отмененных USB-передач." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4297 +#, no-wrap +msgid "FreeBSD 9 Versions" +msgstr "Версии FreeBSD 9" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4300 +#, no-wrap +msgid "FreeBSD 9 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 9" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4309 +#, no-wrap +msgid "900000" +msgstr "900000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4310 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/196432[196432]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/196432[196432]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4311 +#, no-wrap +msgid "August 22, 2009" +msgstr "22 августа 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4313 +#, no-wrap +msgid "9.0-CURRENT." +msgstr "9.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4314 +#, no-wrap +msgid "900001" +msgstr "900001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4315 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/197019[197019]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/197019[197019]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4316 +#, no-wrap +msgid "September 8, 2009" +msgstr "8 сентября 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4318 +#, no-wrap +msgid "9.0-CURRENT after importing x86emu, a software emulator for real mode x86 CPU from OpenBSD." +msgstr "9.0-CURRENT после импорта x86emu, программного эмулятора процессора x86 в реальном режиме из OpenBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4319 +#, no-wrap +msgid "900002" +msgstr "900002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4320 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/197430[197430]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/197430[197430]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4321 +#, no-wrap +msgid "September 23, 2009" +msgstr "23 сентября 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4323 +#, no-wrap +msgid "9.0-CURRENT after implementing the EVFILT_USER `kevent` filter functionality." +msgstr "9.0-CURRENT после реализации функциональности фильтра `kevent` `EVFILT_USER`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4324 +#, no-wrap +msgid "900003" +msgstr "900003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4325 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/200039[200039]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/200039[200039]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4326 +#, no-wrap +msgid "December 2, 2009" +msgstr "2 декабря 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4328 +#, no-wrap +msgid "9.0-CURRENT after addition of man:sigpause[2] and PIE support in `csu`." +msgstr "9.0-CURRENT после добавления man:sigpause[2] и поддержки PIE в `csu`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4329 +#, no-wrap +msgid "900004" +msgstr "900004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4330 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/200185[200185]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/200185[200185]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4331 +#, no-wrap +msgid "December 6, 2009" +msgstr "6 декабря 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4333 +#, no-wrap +msgid "9.0-CURRENT after addition of libulog and its libutempter compatibility interface." +msgstr "9.0-CURRENT после добавления libulog и его совместимого интерфейса libutempter." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4334 +#, no-wrap +msgid "900005" +msgstr "900005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4335 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/200447[200447]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/200447[200447]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4336 +#, no-wrap +msgid "December 12, 2009" +msgstr "December 12, 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4338 +#, no-wrap +msgid "9.0-CURRENT after addition of man:sleepq_sleepcnt[9], which can be used to query the number of waiters on a specific waiting queue." +msgstr "9.0-CURRENT после добавления man:sleepq_sleepcnt[9], который может использоваться для запроса количества ожидающих в конкретной очереди ожидания." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4339 +#, no-wrap +msgid "900006" +msgstr "900006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4340 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/201513[201513]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/201513[201513]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4341 +#, no-wrap +msgid "January 4, 2010" +msgstr "4 января 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4343 +#, no-wrap +msgid "9.0-CURRENT after change of the man:scandir[3] and man:alphasort[3] prototypes to conform to SUSv4." +msgstr "9.0-CURRENT после изменения прототипов man:scandir[3] и man:alphasort[3] для соответствия SUSv4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4344 +#, no-wrap +msgid "900007" +msgstr "900007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4345 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/202219[202219]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/202219[202219]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4346 +#, no-wrap +msgid "January 13, 2010" +msgstr "13 января 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4348 +#, no-wrap +msgid "9.0-CURRENT after the removal of man:utmp[5] and the addition of `utmpx` (see man:getutxent[3]) for improved logging of user logins and system events." +msgstr "9.0-CURRENT после удаления man:utmp[5] и добавления `utmpx` (см. man:getutxent[3]) для улучшенного логирования входов пользователей и системных событий." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4349 +#, no-wrap +msgid "900008" +msgstr "900008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4350 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/202722[202722]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/202722[202722]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4351 +#, no-wrap +msgid "January 20, 2010" +msgstr "20 января 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4353 +#, no-wrap +msgid "9.0-CURRENT after the import of BSDL bc/dc and the deprecation of GNU bc/dc." +msgstr "9.0-CURRENT после импорта BSDL bc/dc и устаревания GNU bc/dc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4354 +#, no-wrap +msgid "900009" +msgstr "900009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4355 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/203052[203052]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/203052[203052]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4356 +#, no-wrap +msgid "January 26, 2010" +msgstr "26 января 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4358 +#, no-wrap +msgid "9.0-CURRENT after the addition of SIOCGIFDESCR and SIOCSIFDESCR ioctls to network interfaces. These ioctl can be used to manipulate interface description, as inspired by OpenBSD." +msgstr "9.0-CURRENT после добавления ioctl SIOCGIFDESCR и SIOCSIFDESCR к сетевым интерфейсам. Эти ioctl могут использоваться для управления описанием интерфейса, по аналогии с OpenBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4359 +#, no-wrap +msgid "900010" +msgstr "900010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4360 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/205471[205471]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/205471[205471]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4361 +#, no-wrap +msgid "March 22, 2010" +msgstr "22 марта 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4363 +#, no-wrap +msgid "9.0-CURRENT after the import of zlib 1.2.4." +msgstr "9.0-CURRENT после импорта zlib 1.2.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4364 +#, no-wrap +msgid "900011" +msgstr "900011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4365 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/207410[207410]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/207410[207410]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4366 +#, no-wrap +msgid "April 24, 2010" +msgstr "April 24, 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4368 +#, no-wrap +msgid "9.0-CURRENT after adding soft-updates journaling." +msgstr "9.0-CURRENT после добавления журналирования soft-updates." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4369 +#, no-wrap +msgid "900012" +msgstr "900012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4370 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/207842[207842]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/207842[207842]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4371 +#, no-wrap +msgid "May 10, 2010" +msgstr "10 мая 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4373 +#, no-wrap +msgid "9.0-CURRENT after adding liblzma, xz, xzdec, and lzmainfo." +msgstr "9.0-CURRENT после добавления liblzma, xz, xzdec и lzmainfo." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4374 +#, no-wrap +msgid "900013" +msgstr "900013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4375 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/208486[208486]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/208486[208486]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4376 +#, no-wrap +msgid "May 24, 2010" +msgstr "24 мая 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4378 +#, no-wrap +msgid "9.0-CURRENT after bringing in USB fixes for man:linux[4]." +msgstr "9.0-CURRENT после внесения исправлений для USB в man:linux[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4379 +#, no-wrap +msgid "900014" +msgstr "900014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4380 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/208973[208973]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/208973[208973]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4381 +#, no-wrap +msgid "June 10, 2010" +msgstr "10 июня 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4383 +#, no-wrap +msgid "9.0-CURRENT after adding Clang." +msgstr "9.0-CURRENT после добавления Clang." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4384 +#, no-wrap +msgid "900015" +msgstr "900015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4385 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/210390[210390]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/210390[210390]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4386 +#, no-wrap +msgid "July 22, 2010" +msgstr "22 июля 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4388 +#, no-wrap +msgid "9.0-CURRENT after the import of BSD grep." +msgstr "9.0-CURRENT после импорта BSD grep." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4389 +#, no-wrap +msgid "900016" +msgstr "900016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4390 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/210565[210565]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/210565[210565]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4391 +#, no-wrap +msgid "July 28, 2010" +msgstr "28 июля 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4393 +#, no-wrap +msgid "9.0-CURRENT after adding `mti_zone` to struct `malloc_type_internal`." +msgstr "9.0-CURRENT после добавления `mti_zone` в структуру `malloc_type_internal`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4394 +#, no-wrap +msgid "900017" +msgstr "900017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4395 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/211701[211701]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/211701[211701]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4396 +#, no-wrap +msgid "August 23, 2010" +msgstr "23 августа 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4398 +#, no-wrap +msgid "9.0-CURRENT after changing back default grep to GNU grep and adding WITH_BSD_GREP knob." +msgstr "9.0-CURRENT после возврата к GNU grep по умолчанию и добавления параметра WITH_BSD_GREP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4399 +#, no-wrap +msgid "900018" +msgstr "900018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4400 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/211735[211735]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/211735[211735]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4401 +#, no-wrap +msgid "August 24, 2010" +msgstr "24 августа 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4403 +#, no-wrap +msgid "9.0-CURRENT after the man:pthread_kill[3] -generated signal is identified as SI_LWP in `si_code`. Previously, `si_code` was SI_USER." +msgstr "9.0-CURRENT после того, как сигнал, сгенерированный через man:pthread_kill[3], идентифицируется как SI_LWP в `si_code`. Ранее `si_code` имел значение SI_USER." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4404 +#, no-wrap +msgid "900019" +msgstr "900019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4405 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/211937[211937]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/211937[211937]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4406 +#, no-wrap +msgid "August 28, 2010" +msgstr "28 августа 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4408 +#, no-wrap +msgid "9.0-CURRENT after addition of the MAP_PREFAULT_READ flag to man:mmap[2]." +msgstr "9.0-CURRENT после добавления флага MAP_PREFAULT_READ в man:mmap[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4409 +#, no-wrap +msgid "900020" +msgstr "900020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4410 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/212381[212381]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/212381[212381]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4411 +#, no-wrap +msgid "September 9, 2010" +msgstr "9 сентября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4413 +#, no-wrap +msgid "9.0-CURRENT after adding drain functionality to `sbufs`, which also changed the layout of struct `sbuf`." +msgstr "9.0-CURRENT после добавления функциональности drain в `sbufs`, что также изменило структуру struct `sbuf`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4414 +#, no-wrap +msgid "900021" +msgstr "900021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4415 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/212568[212568]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/212568[212568]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4416 +#, no-wrap +msgid "September 13, 2010" +msgstr "13 сентября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4418 +#, no-wrap +msgid "9.0-CURRENT after DTrace has grown support for userland tracing." +msgstr "9.0-CURRENT после того, как DTrace обзавелся поддержкой трассировки в пользовательском пространстве." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4419 +#, no-wrap +msgid "900022" +msgstr "900022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4420 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/213395[213395]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/213395[213395]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4421 +#, no-wrap +msgid "October 2, 2010" +msgstr "2 октября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4423 +#, no-wrap +msgid "9.0-CURRENT after addition of the BSDL man utilities and retirement of GNU/GPL man utilities." +msgstr "9.0-CURRENT после добавления утилит man под лицензией BSDL и удаления утилит man под лицензией GNU/GPL." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4424 +#, no-wrap +msgid "900023" +msgstr "900023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4425 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/213700[213700]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/213700[213700]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4426 +#, no-wrap +msgid "October 11, 2010" +msgstr "11 октября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4428 +#, no-wrap +msgid "9.0-CURRENT after updating xz to git 20101010 snapshot." +msgstr "9.0-CURRENT после обновления xz до снимка git 20101010." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4429 +#, no-wrap +msgid "900024" +msgstr "900024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4430 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/215127[215127]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/215127[215127]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4431 +#, no-wrap +msgid "November 11, 2010" +msgstr "11 ноября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4433 +#, no-wrap +msgid "9.0-CURRENT after libgcc.a was replaced by libcompiler_rt.a." +msgstr "9.0-CURRENT после замены libgcc.a на libcompiler_rt.a." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4434 +#, no-wrap +msgid "900025" +msgstr "900025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4435 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/215166[215166]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/215166[215166]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4436 +#, no-wrap +msgid "November 12, 2010" +msgstr "12 ноября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4438 +#, no-wrap +msgid "9.0-CURRENT after the introduction of the modularised congestion control." +msgstr "9.0-CURRENT после внедрения модульной системы управления перегрузкой." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4439 +#, no-wrap +msgid "900026" +msgstr "900026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4440 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216088[216088]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216088[216088]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4441 +#, no-wrap +msgid "November 30, 2010" +msgstr "30 ноября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4443 +#, no-wrap +msgid "9.0-CURRENT after the introduction of Serial Management Protocol (SMP) passthrough and the XPT_SMP_IO and XPT_GDEV_ADVINFO CAM `CCBs`." +msgstr "9.0-CURRENT после введения сквозной передачи Serial Management Protocol (SMP) и CAM `CCBs` XPT_SMP_IO и XPT_GDEV_ADVINFO." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4444 +#, no-wrap +msgid "900027" +msgstr "900027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4445 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216212[216212]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216212[216212]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4446 +#, no-wrap +msgid "December 5, 2010" +msgstr "5 декабря 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4448 +#, no-wrap +msgid "9.0-CURRENT after the addition of log2 to libm." +msgstr "9.0-CURRENT после добавления log2 в libm." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4449 +#, no-wrap +msgid "900028" +msgstr "900028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4450 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216615[216615]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216615[216615]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4451 +#, no-wrap +msgid "December 21, 2010" +msgstr "21 декабря 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4453 +#, no-wrap +msgid "9.0-CURRENT after the addition of the Hhook (Helper Hook), Khelp (Kernel Helpers) and Object Specific Data (OSD) KPIs." +msgstr "9.0-CURRENT после добавления Hhook (Helper Hook), Khelp (Kernel Helpers) и KPI Object Specific Data (OSD)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4454 +#, no-wrap +msgid "900029" +msgstr "900029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4455 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216758[216758]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216758[216758]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4456 +#, no-wrap +msgid "December 28, 2010" +msgstr "28 декабря 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4458 +#, no-wrap +msgid "9.0-CURRENT after the modification of the TCP stack to allow Khelp modules to interact with it via helper hook points and store per-connection data in the TCP control block." +msgstr "9.0-CURRENT после модификации стека TCP для разрешения модулям Khelp взаимодействовать с ним через точки подключения вспомогательных функций и хранить данные для каждого соединения в блоке управления TCP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4459 +#, no-wrap +msgid "900030" +msgstr "900030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4460 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/217309[217309]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/217309[217309]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4461 +#, no-wrap +msgid "January 12, 2011" +msgstr "12 января 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4463 +#, no-wrap +msgid "9.0-CURRENT after the update of libdialog to version 20100428." +msgstr "9.0-CURRENT после обновления libdialog до версии 20100428." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4464 +#, no-wrap +msgid "900031" +msgstr "900031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4465 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/218414[218414]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/218414[218414]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4466 +#, no-wrap +msgid "February 7, 2011" +msgstr "7 февраля 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4468 +#, no-wrap +msgid "9.0-CURRENT after the addition of man:pthread_getthreadid_np[3]." +msgstr "9.0-CURRENT после добавления man:pthread_getthreadid_np[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4469 +#, no-wrap +msgid "900032" +msgstr "900032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4470 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/218425[218425]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/218425[218425]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4471 +#, no-wrap +msgid "February 8, 2011" +msgstr "8 февраля 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4473 +#, no-wrap +msgid "9.0-CURRENT after the removal of the `uio_yield` prototype and symbol." +msgstr "9.0-CURRENT после удаления прототипа и символа `uio_yield`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4474 +#, no-wrap +msgid "900033" +msgstr "900033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4475 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/218822[218822]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/218822[218822]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4476 +#, no-wrap +msgid "February 18, 2011" +msgstr "18 февраля 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4478 +#, no-wrap +msgid "9.0-CURRENT after the update of binutils to version 2.17.50." +msgstr "9.0-CURRENT после обновления binutils до версии 2.17.50." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4479 +#, no-wrap +msgid "900034" +msgstr "900034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4480 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/219406[219406]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/219406[219406]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4481 +#, no-wrap +msgid "March 8, 2011" +msgstr "8 марта 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4483 +#, no-wrap +msgid "9.0-CURRENT after the struct `sysvec` (`sv_schedtail`) changes." +msgstr "9.0-CURRENT после изменений в структуре `sysvec` (`sv_schedtail`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4484 +#, no-wrap +msgid "900035" +msgstr "900035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4485 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/220150[220150]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/220150[220150]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4486 +#, no-wrap +msgid "March 29, 2011" +msgstr "29 марта 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4488 +#, no-wrap +msgid "9.0-CURRENT after the update of base gcc and libstdc++ to the last GPLv2 licensed revision." +msgstr "9.0-CURRENT после обновления базового gcc и libstdc++ до последней ревизии, лицензированной под GPLv2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4489 +#, no-wrap +msgid "900036" +msgstr "900036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4490 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/220770[220770]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/220770[220770]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4491 +#, no-wrap +msgid "April 18, 2011" +msgstr "18 апреля 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4493 +#, no-wrap +msgid "9.0-CURRENT after the removal of libobjc and Objective-C support from the base system." +msgstr "9.0-CURRENT после удаления libobjc и поддержки Objective-C из базовой системы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4494 +#, no-wrap +msgid "900037" +msgstr "900037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4495 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/221862[221862]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/221862[221862]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4496 +#, no-wrap +msgid "May 13, 2011" +msgstr "13 мая 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4498 +#, no-wrap +msgid "9.0-CURRENT after importing the man:libprocstat[3] library and man:fuser[1] utility to the base system." +msgstr "9.0-CURRENT после импорта библиотеки man:libprocstat[3] и утилиты man:fuser[1] в базовую систему." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4499 +#, no-wrap +msgid "900038" +msgstr "900038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4500 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/222167[222167]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/222167[222167]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4501 +#, no-wrap +msgid "May 22, 2011" +msgstr "22 мая 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4503 +#, no-wrap +msgid "9.0-CURRENT after adding a lock flag argument to man:VFS_FHTOVP[9]." +msgstr "9.0-CURRENT после добавления аргумента флага блокировки к man:VFS_FHTOVP[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4504 +#, no-wrap +msgid "900039" +msgstr "900039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4505 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/223637[223637]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/223637[223637]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4506 +#, no-wrap +msgid "June 28, 2011" +msgstr "28 июня 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4508 +#, no-wrap +msgid "9.0-CURRENT after importing pf from OpenBSD 4.5." +msgstr "9.0-CURRENT после импорта pf из OpenBSD 4.5." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4509 +#, no-wrap +msgid "900040" +msgstr "900040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4510 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/224217[224217]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/224217[224217]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4511 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5404 +#, no-wrap +msgid "July 19, 2011" +msgstr "19 июля 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4513 +#, no-wrap +msgid "Increase default MAXCPU for FreeBSD to 64 on amd64 and ia64 and to 128 for XLP (mips)." +msgstr "Увеличить значение MAXCPU по умолчанию для FreeBSD до 64 на amd64 и ia64 и до 128 для XLP (mips)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4514 +#, no-wrap +msgid "900041" +msgstr "900041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4515 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/224834[224834]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/224834[224834]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4516 +#, no-wrap +msgid "August 13, 2011" +msgstr "13 августа 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4518 +#, no-wrap +msgid "9.0-CURRENT after the implementation of Capsicum capabilities; man:fget[9] gains a rights argument." +msgstr "Версия 9.0-CURRENT после реализации возможностей Capsicum; man:fget[9] получает аргумент rights." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4519 +#, no-wrap +msgid "900042" +msgstr "900042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4520 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4525 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/225350[225350]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/225350[225350]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4521 +#, no-wrap +msgid "August 28, 2011" +msgstr "28 августа 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4523 +#, no-wrap +msgid "Bump shared libraries' version numbers for libraries whose ABI has changed in preparation for 9.0." +msgstr "Увеличьте номера версий общих библиотек для библиотек, чей ABI изменился в рамках подготовки к 9.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4524 +#, no-wrap +msgid "900043" +msgstr "900043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4526 +#, no-wrap +msgid "September 2, 2011" +msgstr "2 сентября 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4528 +#, no-wrap +msgid "Add automatic detection of USB mass storage devices which do not support the no synchronize cache SCSI command." +msgstr "Добавить автоматическое обнаружение USB-накопителей, которые не поддерживают команду SCSI \"no synchronize cache\"." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4529 +#, no-wrap +msgid "900044" +msgstr "900044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4530 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/225469[225469]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/225469[225469]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4531 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5414 +#, no-wrap +msgid "September 10, 2011" +msgstr "10 сентября 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4533 +#, no-wrap +msgid "Re-factor auto-quirk. 9.0-RELEASE." +msgstr "Переработка автоматического определения особенностей оборудования (auto-quirk). 9.0-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4534 +#, no-wrap +msgid "900045" +msgstr "900045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4535 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/229285[229285]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/229285[229285]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4536 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4541 +#, no-wrap +msgid "January 2, 2012" +msgstr "2 января 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4538 +#, no-wrap +msgid "9-STABLE after MFC of true/false from 1000002." +msgstr "9-STABLE после MFC значения true/false из 1000002." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4539 +#, no-wrap +msgid "900500" +msgstr "900500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4540 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/229318[229318]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/229318[229318]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4543 +#, no-wrap +msgid "9.0-STABLE." +msgstr "9.0-STABLE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4544 +#, no-wrap +msgid "900501" +msgstr "900501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4545 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/229723[229723]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/229723[229723]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4546 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5429 +#, no-wrap +msgid "January 6, 2012" +msgstr "6 января 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4548 +#, no-wrap +msgid "9.0-STABLE after merging of addition of the man:posix_fadvise[2] system call." +msgstr "9.0-STABLE после объединения добавления системного вызова man:posix_fadvise[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4549 +#, no-wrap +msgid "900502" +msgstr "900502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4550 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/230237[230237]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/230237[230237]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4553 +#, no-wrap +msgid "9.0-STABLE after merging gperf 3.0.3" +msgstr "9.0-STABLE после слияния gperf 3.0.3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4554 +#, no-wrap +msgid "900503" +msgstr "900503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4555 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/231768[231768]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/231768[231768]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4556 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5439 +#, no-wrap +msgid "February 15, 2012" +msgstr "15 февраля 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4558 +#, no-wrap +msgid "9.0-STABLE after introduction of the new extensible man:sysctl[3] interface NET_RT_IFLISTL to query address lists." +msgstr "9.0-STABLE после введения нового расширяемого интерфейса man:sysctl[3] NET_RT_IFLISTL для запроса списков адресов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4559 +#, no-wrap +msgid "900504" +msgstr "900504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4560 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/232728[232728]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/232728[232728]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4561 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5444 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5449 +#, no-wrap +msgid "March 3, 2012" +msgstr "3 марта 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4563 +#, no-wrap +msgid "9.0-STABLE after changes related to mounting of filesystem inside a jail." +msgstr "9.0-STABLE после изменений, связанных с монтированием файловой системы внутри клетки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4564 +#, no-wrap +msgid "900505" +msgstr "900505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4565 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/232945[232945]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/232945[232945]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4566 +#, no-wrap +msgid "March 13, 2012" +msgstr "13 марта 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4568 +#, no-wrap +msgid "9.0-STABLE after introduction of new man:tcp[4] socket options: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT." +msgstr "9.0-STABLE после введения новых параметров сокета man:tcp[4]: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL и TCP_KEEPCNT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4569 +#, no-wrap +msgid "900506" +msgstr "900506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4570 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/235786[235786]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/235786[235786]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4573 +#, no-wrap +msgid "9.0-STABLE after introduction of the `quick_exit` function and related changes required for C++11." +msgstr "9.0-STABLE после введения функции `quick_exit` и связанных изменений, необходимых для C++11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4574 +#, no-wrap +msgid "901000" +msgstr "901000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4575 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/239082[239082]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/239082[239082]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4576 +#, no-wrap +msgid "August 5, 2012" +msgstr "5 августа 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4578 +#, no-wrap +msgid "9.1-RELEASE." +msgstr "9.1-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4579 +#, no-wrap +msgid "901500" +msgstr "901500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4580 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/239081[239081]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/239081[239081]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4581 +#, no-wrap +msgid "August 6, 2012" +msgstr "6 августа 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4583 +#, no-wrap +msgid "9.1-STABLE after branching releng/9.1 (RELENG_9_1)." +msgstr "9.1-STABLE после ветвления releng/9.1 (RELENG_9_1)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4584 +#, no-wrap +msgid "901501" +msgstr "901501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4585 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/240659[240659]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/240659[240659]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4586 +#, no-wrap +msgid "November 11, 2012" +msgstr "11 ноября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4588 +#, no-wrap +msgid "9.1-STABLE after man:LIST_PREV[3] added to queue.h (rev link:https://svnweb.freebsd.org/changeset/base/242893[242893]) and KBI change in USB serial devices." +msgstr "9.1-STABLE после man:LIST_PREV[3] добавлен в queue.h (изменение rev link:https://svnweb.freebsd.org/changeset/base/242893[242893]) и изменения KBI в USB последовательных устройствах." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4589 +#, no-wrap +msgid "901502" +msgstr "901502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4590 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/243656[243656]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/243656[243656]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4591 +#, no-wrap +msgid "November 28, 2012" +msgstr "28 ноября 2012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4593 +#, no-wrap +msgid "9.1-STABLE after USB serial jitter buffer requires rebuild of USB serial device modules." +msgstr "9.1-STABLE после того, как буфер дрожания USB serial требует пересборки модулей устройств USB serial." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4594 +#, no-wrap +msgid "901503" +msgstr "901503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4595 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/247090[247090]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/247090[247090]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4596 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5454 +#, no-wrap +msgid "February 21, 2013" +msgstr "21 февраля 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4598 +#, no-wrap +msgid "9.1-STABLE after USB moved to the driver structure requiring a rebuild of all USB modules. Also indicates the presence of nmtree." +msgstr "9.1-STABLE после перемещения USB в структуру драйверов, что потребовало пересборки всех модулей USB. Также указывает на наличие nmtree." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4599 +#, no-wrap +msgid "901504" +msgstr "901504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4600 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/248338[248338]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/248338[248338]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4601 +#, no-wrap +msgid "March 15, 2013" +msgstr "15 марта 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4603 +#, no-wrap +msgid "9.1-STABLE after install gained -l, -M, -N and related flags and cat gained the -l option." +msgstr "9.1-STABLE после установки получил флаги -l, -M, -N и связанные с ними, а cat получил опцию -l." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4604 +#, no-wrap +msgid "901505" +msgstr "901505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4605 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/251687[251687]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/251687[251687]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4606 +#, no-wrap +msgid "June 13, 2013" +msgstr "13 июня 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4608 +#, no-wrap +msgid "9.1-STABLE after fixes in `ctfmerge` bootstrapping (rev link:https://svnweb.freebsd.org/changeset/base/249243[249243])." +msgstr "9.1-STABLE после исправлений в начальной загрузке `ctfmerge` (rev link:https://svnweb.freebsd.org/changeset/base/249243[249243])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4609 +#, no-wrap +msgid "902001" +msgstr "902001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4610 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253912[253912]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253912[253912]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4611 +#, no-wrap +msgid "August 3, 2013" +msgstr "3 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4613 +#, no-wrap +msgid "`releng/9.2` branched from `stable/9`." +msgstr "`releng/9.2` ответвился от `stable/9`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4614 +#, no-wrap +msgid "902501" +msgstr "902501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4615 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/253913[253913]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/253913[253913]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4616 +#, no-wrap +msgid "August 2, 2013" +msgstr "2 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4618 +#, no-wrap +msgid "9.2-STABLE after creation of `releng/9.2` branch." +msgstr "9.2-STABLE после создания ветки `releng/9.2`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4619 +#, no-wrap +msgid "902502" +msgstr "902502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4620 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254938[254938]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254938[254938]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4621 +#, no-wrap +msgid "August 26, 2013" +msgstr "26 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4623 +#, no-wrap +msgid "9.2-STABLE after inclusion of the `PIM_RESCAN` CAM path inquiry flag." +msgstr "9.2-STABLE после включения флага запроса пути CAM `PIM_RESCAN`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4624 +#, no-wrap +msgid "902503" +msgstr "902503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4625 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/254979[254979]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/254979[254979]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4626 +#, no-wrap +msgid "August 27, 2013" +msgstr "27 августа 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4628 +#, no-wrap +msgid "9.2-STABLE after inclusion of the `SI_UNMAPPED` cdev flag." +msgstr "9.2-STABLE после включения флага `SI_UNMAPPED` для cdev." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4629 +#, no-wrap +msgid "902504" +msgstr "902504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4630 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/256917[256917]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/256917[256917]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4633 +#, no-wrap +msgid "9.2-STABLE after inclusion of support for \"first boot\" man:rc[8] scripts." +msgstr "9.2-STABLE после добавления поддержки скриптов \"первой загрузки\" man:rc[8]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4634 +#, no-wrap +msgid "902505" +msgstr "902505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4635 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/259448[259448]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/259448[259448]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4636 +#, no-wrap +msgid "December 12, 2013" +msgstr "12 декабря 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4638 +#, no-wrap +msgid "9.2-STABLE after Heimdal encoding fix." +msgstr "9.2-STABLE после исправления кодировки Heimdal." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4639 +#, no-wrap +msgid "902506" +msgstr "902506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4640 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/260136[260136]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/260136[260136]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4643 +#, no-wrap +msgid "9-STABLE after MAP_STACK fixes (rev link:https://svnweb.freebsd.org/changeset/base/260082[260082])." +msgstr "9-STABLE после исправлений MAP_STACK (rev link:https://svnweb.freebsd.org/changeset/base/260082[260082])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4644 +#, no-wrap +msgid "902507" +msgstr "902507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4648 +#, no-wrap +msgid "9-STABLE after upgrade of libc++ to 3.4 release." +msgstr "9-STABLE после обновления libc++ до версии 3.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4649 +#, no-wrap +msgid "902508" +msgstr "902508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4650 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263171[263171]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263171[263171]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4653 +#, no-wrap +msgid "9-STABLE after merge of the Radeon KMS driver (rev link:https://svnweb.freebsd.org/changeset/base/263170[263170])." +msgstr "9-STABLE после объединения драйвера Radeon KMS (rev link:https://svnweb.freebsd.org/changeset/base/263170[263170])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4654 +#, no-wrap +msgid "902509" +msgstr "902509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4655 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263509[263509]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263509[263509]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4658 +#, no-wrap +msgid "9-STABLE after upgrade of llvm/clang to 3.4 release." +msgstr "9-STABLE после обновления llvm/clang до версии 3.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4659 +#, no-wrap +msgid "902510" +msgstr "902510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4660 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/263818[263818]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/263818[263818]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4661 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4666 +#, no-wrap +msgid "March 27, 2014" +msgstr "27 марта 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4663 +#, no-wrap +msgid "9-STABLE after merge of the man:vt[4] driver." +msgstr "9-STABLE после слияния драйвера man:vt[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4664 +#, no-wrap +msgid "902511" +msgstr "902511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4668 +#, no-wrap +msgid "9-STABLE after FreeBSD-SA-14:06.openssl." +msgstr "9-STABLE после FreeBSD-SA-14:06.openssl." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4669 +#, no-wrap +msgid "902512" +msgstr "902512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4670 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5473 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/265123[265123]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/265123[265123]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4673 +#, no-wrap +msgid "9-STABLE after FreeBSD-SA-14:08.tcp." +msgstr "9-STABLE после FreeBSD-SA-14:08.tcp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4674 +#, no-wrap +msgid "903000" +msgstr "903000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4675 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/267656[267656]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/267656[267656]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4676 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4681 +#, no-wrap +msgid "June 20, 2014" +msgstr "20 июня 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4678 +#, no-wrap +msgid "9-RC1 `releng/9.3` branch." +msgstr "9-RC1 ветка `releng/9.3`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4679 +#, no-wrap +msgid "903500" +msgstr "903500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4680 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/267657[267657]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/267657[267657]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4683 +#, no-wrap +msgid "9.3-STABLE `releng/9.3` branch." +msgstr "9.3-STABLE ветка `releng/9.3`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4684 +#, no-wrap +msgid "903501" +msgstr "903501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4685 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/268443[268443]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/268443[268443]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4688 +#, no-wrap +msgid "9-STABLE after FreeBSD-SA-14:17.kmem (rev link:https://svnweb.freebsd.org/changeset/base/268433[268433])." +msgstr "9-STABLE после FreeBSD-SA-14:17.kmem (изменение:https://svnweb.freebsd.org/changeset/base/268433[268433])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4689 +#, no-wrap +msgid "903502" +msgstr "903502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4690 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/270175[270175]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/270175[270175]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4691 +#, no-wrap +msgid "August 19, 2014" +msgstr "19 августа 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4693 +#, no-wrap +msgid "9-STABLE after `SOCK_DGRAM` bug fix (rev link:https://svnweb.freebsd.org/changeset/base/269789[269789])." +msgstr "9-STABLE после исправления ошибки `SOCK_DGRAM` (rev link:https://svnweb.freebsd.org/changeset/base/269789[269789])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4694 +#, no-wrap +msgid "903503" +msgstr "903503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4698 +#, no-wrap +msgid "9-STABLE after FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/269687[269687])." +msgstr "9-STABLE после FreeBSD-SA-14:18 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/269687[269687])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4699 +#, no-wrap +msgid "903504" +msgstr "903504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4703 +#, no-wrap +msgid "9-STABLE after FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271668[271668])." +msgstr "9-STABLE после FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271668[271668])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4704 +#, no-wrap +msgid "903505" +msgstr "903505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4708 +#, no-wrap +msgid "9-STABLE after FreeBSD-SA-14:20, FreeBSD-SA-14:21, and FreeBSD-SA-14:22 (rev link:https://svnweb.freebsd.org/changeset/base/273412[273412])." +msgstr "9-STABLE после исправлений FreeBSD-SA-14:20, FreeBSD-SA-14:21 и FreeBSD-SA-14:22 (rev link:https://svnweb.freebsd.org/changeset/base/273412[273412])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4709 +#, no-wrap +msgid "903506" +msgstr "903506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4713 +#, no-wrap +msgid "9-STABLE after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25." +msgstr "9-STABLE после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4714 +#, no-wrap +msgid "903507" +msgstr "903507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4718 +#, no-wrap +msgid "9-STABLE after merging an important fix to the LLVM vectorizer, which could lead to buffer overruns in some cases." +msgstr "9-STABLE после объединения важного исправления в векторизатор LLVM, которое в некоторых случаях могло приводить к переполнению буфера." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4719 +#, no-wrap +msgid "903508" +msgstr "903508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4723 +#, no-wrap +msgid "9-STABLE after FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp, and FreeBSD-SA-15:05.bind." +msgstr "9-STABLE после FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp и FreeBSD-SA-15:05.bind." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4724 +#, no-wrap +msgid "903509" +msgstr "903509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4725 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/296219[296219]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/296219[296219]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4726 +#, no-wrap +msgid "February 29, 2016" +msgstr "29 февраля 2016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4728 +#, no-wrap +msgid "9-STABLE after bumping the default value of `compat.linux.osrelease` to `2.6.18` to support the linux-c6-* ports out of the box." +msgstr "9-STABLE после увеличения значения по умолчанию `compat.linux.osrelease` до `2.6.18` для поддержки портов linux-c6-* без дополнительной настройки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4729 +#, no-wrap +msgid "903510" +msgstr "903510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4730 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/300236[300236]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/300236[300236]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4733 +#, no-wrap +msgid "9-STABLE after System Binary Interface (SBI) page was moved in latest version of Berkeley Boot Loader (BBL) due to code size increase in link:https://svnweb.freebsd.org/changeset/base/300234[300234]." +msgstr "9-STABLE после того, как страница System Binary Interface (SBI) была перемещена в последней версии Berkeley Boot Loader (BBL) из-за увеличения размера кода в link:https://svnweb.freebsd.org/changeset/base/300234[300234]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4734 +#, no-wrap +msgid "903511" +msgstr "903511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4735 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/305735[305735]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/305735[305735]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4737 +#, no-wrap +msgid "9-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]." +msgstr "9-STABLE после разрешения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4740 +#, no-wrap +msgid "FreeBSD 8 Versions" +msgstr "Версии FreeBSD 8" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4743 +#, no-wrap +msgid "FreeBSD 8 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 8" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4752 +#, no-wrap +msgid "800000" +msgstr "800000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4753 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172531[172531]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172531[172531]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4754 +#, no-wrap +msgid "October 11, 2007" +msgstr "11 октября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4756 +#, no-wrap +msgid "8.0-CURRENT. Separating wide and single byte `ctype`." +msgstr "8.0-CURRENT. Разделение `ctype` на широкие и однобайтовые символы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4757 +#, no-wrap +msgid "800001" +msgstr "800001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4758 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172688[172688]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172688[172688]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4759 +#, no-wrap +msgid "October 16, 2007" +msgstr "16 октября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4761 +#, no-wrap +msgid "8.0-CURRENT after libpcap 0.9.8 and tcpdump 3.9.8 import." +msgstr "8.0-CURRENT после импорта libpcap 0.9.8 и tcpdump 3.9.8." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4762 +#, no-wrap +msgid "800002" +msgstr "800002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4763 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172841[172841]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172841[172841]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4764 +#, no-wrap +msgid "October 21, 2007" +msgstr "21 октября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4766 +#, no-wrap +msgid "8.0-CURRENT after renaming man:kthread_create[9] and friends to man:kproc_create[9] etc." +msgstr "8.0-CURRENT после переименования man:kthread_create[9] и связанных функций в man:kproc_create[9] и т.д." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4767 +#, no-wrap +msgid "800003" +msgstr "800003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4768 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172932[172932]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172932[172932]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4769 +#, no-wrap +msgid "October 24, 2007" +msgstr "24 октября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4771 +#, no-wrap +msgid "8.0-CURRENT after ABI backwards compatibility to the FreeBSD 4/5/6 versions of the PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs was added, which required the ABI of the PCIOCGETCONF IOCTL to be broken again" +msgstr "8.0-CURRENT после того, как была добавлена обратная совместимость ABI с версиями FreeBSD 4/5/6 для IOCTL PCIOCGETCONF, PCIOCREAD и PCIOCWRITE, что потребовало снова нарушить ABI IOCTL PCIOCGETCONF" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4772 +#, no-wrap +msgid "800004" +msgstr "800004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4773 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/173573[173573]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/173573[173573]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4774 +#, no-wrap +msgid "November 12, 2007" +msgstr "12 ноября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4776 +#, no-wrap +msgid "8.0-CURRENT after man:agp[4] driver moved from src/sys/pci to src/sys/dev/agp" +msgstr "8.0-CURRENT после перемещения драйвера man:agp[4] из src/sys/pci в src/sys/dev/agp" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4777 +#, no-wrap +msgid "800005" +msgstr "800005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4778 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/174261[174261]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/174261[174261]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4779 +#, no-wrap +msgid "December 4, 2007" +msgstr "4 декабря 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4781 +#, no-wrap +msgid "8.0-CURRENT after changes to the jumbo frame allocator (rev link:https://svnweb.freebsd.org/changeset/base/174247[174247])." +msgstr "8.0-CURRENT после изменений в аллокаторе джамбо-фреймов (rev link:https://svnweb.freebsd.org/changeset/base/174247[174247])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4782 +#, no-wrap +msgid "800006" +msgstr "800006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4783 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/174399[174399]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/174399[174399]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4784 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6330 +#, no-wrap +msgid "December 7, 2007" +msgstr "7 декабря 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4786 +#, no-wrap +msgid "8.0-CURRENT after the addition of `callgraph` capture functionality to man:hwpmc[4]." +msgstr "8.0-CURRENT после добавления функциональности захвата `callgraph` в man:hwpmc[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4787 +#, no-wrap +msgid "800007" +msgstr "800007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4788 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/174901[174901]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/174901[174901]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4789 +#, no-wrap +msgid "December 25, 2007" +msgstr "25 декабря 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4791 +#, no-wrap +msgid "8.0-CURRENT after `kdb_enter()` gains a \"why\" argument." +msgstr "8.0-CURRENT после `kdb_enter()` получает аргумент \"why\"." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4792 +#, no-wrap +msgid "800008" +msgstr "800008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4793 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/174951[174951]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/174951[174951]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4794 +#, no-wrap +msgid "December 28, 2007" +msgstr "28 декабря 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4796 +#, no-wrap +msgid "8.0-CURRENT after LK_EXCLUPGRADE option removal." +msgstr "8.0-CURRENT после удаления опции LK_EXCLUPGRADE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4797 +#, no-wrap +msgid "800009" +msgstr "800009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4798 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175168[175168]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175168[175168]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4799 +#, no-wrap +msgid "January 9, 2008" +msgstr "9 января 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4801 +#, no-wrap +msgid "8.0-CURRENT after introduction of man:lockmgr_disown[9]" +msgstr "8.0-CURRENT после введения man:lockmgr_disown[9]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4802 +#, no-wrap +msgid "800010" +msgstr "800010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4803 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175204[175204]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175204[175204]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4804 +#, no-wrap +msgid "January 10, 2008" +msgstr "10 января 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4806 +#, no-wrap +msgid "8.0-CURRENT after the man:vn_lock[9] prototype change." +msgstr "8.0-CURRENT после изменения прототипа man:vn_lock[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4807 +#, no-wrap +msgid "800011" +msgstr "800011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4808 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175295[175295]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175295[175295]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4809 +#, no-wrap +msgid "January 13, 2008" +msgstr "13 января 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4811 +#, no-wrap +msgid "8.0-CURRENT after the man:VOP_LOCK[9] and man:VOP_UNLOCK[9] prototype changes." +msgstr "8.0-CURRENT после изменений прототипов man:VOP_LOCK[9] и man:VOP_UNLOCK[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4812 +#, no-wrap +msgid "800012" +msgstr "800012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4813 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175487[175487]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175487[175487]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4814 +#, no-wrap +msgid "January 19, 2008" +msgstr "19 января 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4816 +#, no-wrap +msgid "8.0-CURRENT after introduction of man:lockmgr_recursed[9], man:BUF_RECURSED[9] and man:BUF_ISLOCKED[9] and the removal of `BUF_REFCNT()`." +msgstr "8.0-CURRENT после введения man:lockmgr_recursed[9], man:BUF_RECURSED[9] и man:BUF_ISLOCKED[9], а также удаления `BUF_REFCNT()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4817 +#, no-wrap +msgid "800013" +msgstr "800013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4818 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175581[175581]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175581[175581]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4819 +#, no-wrap +msgid "January 23, 2008" +msgstr "23 января 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4821 +#, no-wrap +msgid "8.0-CURRENT after introduction of the \"ASCII\" encoding." +msgstr "8.0-CURRENT после введения кодировки \"ASCII\"." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4822 +#, no-wrap +msgid "800014" +msgstr "800014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4823 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175636[175636]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175636[175636]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4824 +#, no-wrap +msgid "January 24, 2008" +msgstr "24 января 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4826 +#, no-wrap +msgid "8.0-CURRENT after changing the prototype of man:lockmgr[9] and removal of `lockcount()` and `LOCKMGR_ASSERT()`." +msgstr "8.0-CURRENT после изменения прототипа man:lockmgr[9] и удаления `lockcount()` и `LOCKMGR_ASSERT()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4827 +#, no-wrap +msgid "800015" +msgstr "800015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4828 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175688[175688]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175688[175688]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4829 +#, no-wrap +msgid "January 26, 2008" +msgstr "26 января 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4831 +#, no-wrap +msgid "8.0-CURRENT after extending the types of the man:fts[3] structures." +msgstr "8.0-CURRENT после расширения типов структур man:fts[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4832 +#, no-wrap +msgid "800016" +msgstr "800016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4833 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/175872[175872]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/175872[175872]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4834 +#, no-wrap +msgid "February 1, 2008" +msgstr "1 февраля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4836 +#, no-wrap +msgid "8.0-CURRENT after adding an argument to man:MEXTADD[9]" +msgstr "8.0-CURRENT после добавления аргумента в man:MEXTADD[9]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4837 +#, no-wrap +msgid "800017" +msgstr "800017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4838 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176015[176015]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176015[176015]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4839 +#, no-wrap +msgid "February 6, 2008" +msgstr "6 февраля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4841 +#, no-wrap +msgid "8.0-CURRENT after the introduction of LK_NODUP and LK_NOWITNESS options in the man:lockmgr[9] space." +msgstr "8.0-CURRENT после введения опций LK_NODUP и LK_NOWITNESS в пространстве man:lockmgr[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4842 +#, no-wrap +msgid "800018" +msgstr "800018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4843 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176112[176112]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176112[176112]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4844 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5817 +#, no-wrap +msgid "February 8, 2008" +msgstr "8 февраля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4846 +#, no-wrap +msgid "8.0-CURRENT after the addition of `m_collapse`." +msgstr "8.0-CURRENT после добавления `m_collapse`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4847 +#, no-wrap +msgid "800019" +msgstr "800019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4848 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176124[176124]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176124[176124]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4849 +#, no-wrap +msgid "February 9, 2008" +msgstr "9 февраля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4851 +#, no-wrap +msgid "8.0-CURRENT after the addition of current working directory, root directory, and jail directory support to the kern.proc.filedesc sysctl." +msgstr "8.0-CURRENT после добавления поддержки текущего рабочего каталога, корневого каталога и каталога клетки в sysctl kern.proc.filedesc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4852 +#, no-wrap +msgid "800020" +msgstr "800020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4853 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176251[176251]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176251[176251]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4854 +#, no-wrap +msgid "February 13, 2008" +msgstr "13 февраля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4856 +#, no-wrap +msgid "8.0-CURRENT after introduction of man:lockmgr_assert[9] and `BUF_ASSERT` functions." +msgstr "8.0-CURRENT после добавления man:lockmgr_assert[9] и функций `BUF_ASSERT`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4857 +#, no-wrap +msgid "800021" +msgstr "800021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4858 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176321[176321]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176321[176321]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4859 +#, no-wrap +msgid "February 15, 2008" +msgstr "15 февраля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4861 +#, no-wrap +msgid "8.0-CURRENT after introduction of man:lockmgr_args[9] and LK_INTERNAL flag removal." +msgstr "8.0-CURRENT после введения man:lockmgr_args[9] и удаления флага LK_INTERNAL." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4862 +#, no-wrap +msgid "800022" +msgstr "800022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4863 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176556[176556]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176556[176556]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4864 +#, no-wrap +msgid "(backed out)" +msgstr "(отменено)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4866 +#, no-wrap +msgid "8.0-CURRENT after changing the default system ar to BSD man:ar[1]." +msgstr "8.0-CURRENT после изменения стандартной системной ar на BSD man:ar[1]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4867 +#, no-wrap +msgid "800023" +msgstr "800023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4868 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176560[176560]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176560[176560]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4869 +#, no-wrap +msgid "February 25, 2008" +msgstr "25 февраля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4871 +#, no-wrap +msgid "8.0-CURRENT after changing the prototypes of man:lockstatus[9] and man:VOP_ISLOCKED[9];, more specifically retiring the `struct thread` argument." +msgstr "8.0-CURRENT после изменения прототипов man:lockstatus[9] и man:VOP_ISLOCKED[9];, а именно удаления аргумента `struct thread`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4872 +#, no-wrap +msgid "800024" +msgstr "800024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4873 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176709[176709]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176709[176709]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4874 +#, no-wrap +msgid "March 1, 2008" +msgstr "1 марта 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4876 +#, no-wrap +msgid "8.0-CURRENT after axing out the `lockwaiters` and `BUF_LOCKWAITERS` functions, changing the return value of `brelvp` from void to int and introducing new flags for man:lockinit[9]." +msgstr "8.0-CURRENT после удаления функций `lockwaiters` и `BUF_LOCKWAITERS`, изменения возвращаемого значения `brelvp` с void на int и добавления новых флагов для man:lockinit[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4877 +#, no-wrap +msgid "800025" +msgstr "800025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4878 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176958[176958]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176958[176958]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4879 +#, no-wrap +msgid "March 8, 2008" +msgstr "8 марта 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4881 +#, no-wrap +msgid "8.0-CURRENT after adding F_DUP2FD command to man:fcntl[2]." +msgstr "8.0-CURRENT после добавления команды F_DUP2FD в man:fcntl[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4882 +#, no-wrap +msgid "800026" +msgstr "800026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4883 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/177086[177086]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/177086[177086]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4884 +#, no-wrap +msgid "March 12, 2008" +msgstr "12 марта 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4886 +#, no-wrap +msgid "8.0-CURRENT after changing the priority parameter to `cv_broadcastpri` such that 0 means no priority." +msgstr "8.0-CURRENT после изменения параметра приоритета на `cv_broadcastpri`, где 0 означает отсутствие приоритета." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4887 +#, no-wrap +msgid "800027" +msgstr "800027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4888 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/177551[177551]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/177551[177551]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4889 +#, no-wrap +msgid "March 24, 2008" +msgstr "24 марта 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4891 +#, no-wrap +msgid "8.0-CURRENT after changing the bpf monitoring ABI when `zerocopy` bpf buffers were added." +msgstr "8.0-CURRENT после изменения ABI мониторинга bpf при добавлении буферов bpf с `zerocopy`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4892 +#, no-wrap +msgid "800028" +msgstr "800028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4893 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/177637[177637]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/177637[177637]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4894 +#, no-wrap +msgid "March 26, 2008" +msgstr "26 марта 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4896 +#, no-wrap +msgid "8.0-CURRENT after adding `l_sysid` to struct flock." +msgstr "8.0-CURRENT после добавления `l_sysid` в структуру flock." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4897 +#, no-wrap +msgid "800029" +msgstr "800029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4898 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/177688[177688]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/177688[177688]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4899 +#, no-wrap +msgid "March 28, 2008" +msgstr "March 28, 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4901 +#, no-wrap +msgid "8.0-CURRENT after reintegration of the `BUF_LOCKWAITERS` function and the addition of man:lockmgr_waiters[9]." +msgstr "8.0-CURRENT после повторного включения функции `BUF_LOCKWAITERS` и добавления man:lockmgr_waiters[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4902 +#, no-wrap +msgid "800030" +msgstr "800030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4903 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/177844[177844]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/177844[177844]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4904 +#, no-wrap +msgid "April 1, 2008" +msgstr "1 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4906 +#, no-wrap +msgid "8.0-CURRENT after the introduction of the man:rw_try_rlock[9] and man:rw_try_wlock[9] functions." +msgstr "8.0-CURRENT после введения функций man:rw_try_rlock[9] и man:rw_try_wlock[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4907 +#, no-wrap +msgid "800031" +msgstr "800031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4908 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/177958[177958]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/177958[177958]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4909 +#, no-wrap +msgid "April 6, 2008" +msgstr "6 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4911 +#, no-wrap +msgid "8.0-CURRENT after the introduction of the `lockmgr_rw` and `lockmgr_args_rw` functions." +msgstr "8.0-CURRENT после введения функций `lockmgr_rw` и `lockmgr_args_rw`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4912 +#, no-wrap +msgid "800032" +msgstr "800032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4913 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178006[178006]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178006[178006]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4914 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4919 +#, no-wrap +msgid "April 8, 2008" +msgstr "8 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4916 +#, no-wrap +msgid "8.0-CURRENT after the implementation of the `openat` and related syscalls, introduction of the O_EXEC flag for the man:open[2], and providing the corresponding Linux compatibility syscalls." +msgstr "8.0-CURRENT после реализации системных вызовов `openat` и связанных с ними, введения флага O_EXEC для man:open[2] и предоставления соответствующих системных вызовов совместимости с Linux." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4917 +#, no-wrap +msgid "800033" +msgstr "800033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4918 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178017[178017]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178017[178017]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4921 +#, no-wrap +msgid "8.0-CURRENT after added man:write[2] support for man:psm[4] in native operation level. Now arbitrary commands can be written to [.filename]#/dev/psm%d# and status can be read back from it." +msgstr "8.0-CURRENT после добавления поддержки man:write[2] для man:psm[4] на уровне нативной работы. Теперь произвольные команды можно записывать в [.filename]#/dev/psm%d#, а статус — считывать из него." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4922 +#, no-wrap +msgid "800034" +msgstr "800034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4923 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178051[178051]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178051[178051]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4924 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5827 +#, no-wrap +msgid "April 10, 2008" +msgstr "10 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4926 +#, no-wrap +msgid "8.0-CURRENT after introduction of the `memrchr` function." +msgstr "8.0-CURRENT после введения функции `memrchr`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4927 +#, no-wrap +msgid "800035" +msgstr "800035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4928 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178256[178256]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178256[178256]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4929 +#, no-wrap +msgid "April 16, 2008" +msgstr "16 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4931 +#, no-wrap +msgid "8.0-CURRENT after introduction of the `fdopendir` function." +msgstr "8.0-CURRENT после введения функции `fdopendir`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4932 +#, no-wrap +msgid "800036" +msgstr "800036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4933 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178362[178362]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178362[178362]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4934 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5847 +#, no-wrap +msgid "April 20, 2008" +msgstr "20 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4936 +#, no-wrap +msgid "8.0-CURRENT after switchover of 802.11 wireless to multi-bss support (aka `vaps`)." +msgstr "8.0-CURRENT после перехода на поддержку multi-bss в беспроводных сетях 802.11 (также известную как `vaps`)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4937 +#, no-wrap +msgid "800037" +msgstr "800037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4938 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178892[178892]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178892[178892]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4939 +#, no-wrap +msgid "May 9, 2008" +msgstr "9 мая 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4941 +#, no-wrap +msgid "8.0-CURRENT after addition of multi routing table support (aka man:setfib[1], man:setfib[2])." +msgstr "8.0-CURRENT после добавления поддержки нескольких таблиц маршрутизации (также известных как man:setfib[1], man:setfib[2])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4942 +#, no-wrap +msgid "800038" +msgstr "800038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4943 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/179316[179316]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/179316[179316]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4944 +#, no-wrap +msgid "May 26, 2008" +msgstr "26 мая 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4946 +#, no-wrap +msgid "8.0-CURRENT after removal of `netatm` and ISDN4BSD. Also, the addition of the Compact C Type (CTF) tools." +msgstr "8.0-CURRENT после удаления `netatm` и ISDN4BSD. Также добавлены инструменты Compact C Type (CTF)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4947 +#, no-wrap +msgid "800039" +msgstr "800039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4948 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/179784[179784]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/179784[179784]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4949 +#, no-wrap +msgid "June 14, 2008" +msgstr "14 июня 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4951 +#, no-wrap +msgid "8.0-CURRENT after removal of `sgtty`." +msgstr "8.0-CURRENT после удаления `sgtty`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4952 +#, no-wrap +msgid "800040" +msgstr "800040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4953 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/180025[180025]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/180025[180025]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4954 +#, no-wrap +msgid "June 26, 2008" +msgstr "26 июня 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4956 +#, no-wrap +msgid "8.0-CURRENT with kernel NFS `lockd` client." +msgstr "8.0-CURRENT с клиентом `lockd` для NFS в ядре." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4957 +#, no-wrap +msgid "800041" +msgstr "800041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4958 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/180691[180691]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/180691[180691]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4959 +#, no-wrap +msgid "July 22, 2008" +msgstr "22 июля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4961 +#, no-wrap +msgid "8.0-CURRENT after addition of man:arc4random_buf[3] and man:arc4random_uniform[3]." +msgstr "8.0-CURRENT после добавления man:arc4random_buf[3] и man:arc4random_uniform[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4962 +#, no-wrap +msgid "800042" +msgstr "800042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4963 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/181439[181439]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/181439[181439]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4964 +#, no-wrap +msgid "August 8, 2008" +msgstr "8 августа 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4966 +#, no-wrap +msgid "8.0-CURRENT after addition of man:cpuctl[4]." +msgstr "8.0-CURRENT после добавления man:cpuctl[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4967 +#, no-wrap +msgid "800043" +msgstr "800043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4968 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/181694[181694]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/181694[181694]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4969 +#, no-wrap +msgid "August 13, 2008" +msgstr "13 августа 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4971 +#, no-wrap +msgid "8.0-CURRENT after changing man:bpf[4] to use a single device node, instead of device cloning." +msgstr "8.0-CURRENT после изменения man:bpf[4] для использования единого узла устройства вместо клонирования устройств." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4972 +#, no-wrap +msgid "800044" +msgstr "800044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4973 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/181803[181803]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/181803[181803]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4974 +#, no-wrap +msgid "August 17, 2008" +msgstr "17 августа 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4976 +#, no-wrap +msgid "8.0-CURRENT after the commit of the first step of the VIMAGE project renaming global variables to be virtualized with a `V_` prefix with macros to map them back to their global names." +msgstr "8.0-CURRENT после внесения изменений, связанных с первым этапом проекта VIMAGE, переименованы глобальные переменные, подлежащие виртуализации, с добавлением префикса `V_` и макросов для их обратного отображения на глобальные имена." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4977 +#, no-wrap +msgid "800045" +msgstr "800045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4978 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/181905[181905]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/181905[181905]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4979 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5867 +#, no-wrap +msgid "August 20, 2008" +msgstr "20 августа 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4981 +#, no-wrap +msgid "8.0-CURRENT after the integration of the MPSAFE TTY layer, including changes to various drivers and utilities that interact with it." +msgstr "8.0-CURRENT после интеграции MPSAFE TTY слоя, включая изменения в различных драйверах и утилитах, взаимодействующих с ним." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4982 +#, no-wrap +msgid "800046" +msgstr "800046" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4983 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/182869[182869]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/182869[182869]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4984 +#, no-wrap +msgid "September 8, 2008" +msgstr "8 сентября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4986 +#, no-wrap +msgid "8.0-CURRENT after the separation of the GDT per CPU on amd64 architecture." +msgstr "8.0-CURRENT после разделения GDT для каждого процессора на архитектуре amd64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4987 +#, no-wrap +msgid "800047" +msgstr "800047" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4988 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/182905[182905]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/182905[182905]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4989 +#, no-wrap +msgid "September 10, 2008" +msgstr "10 сентября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4991 +#, no-wrap +msgid "8.0-CURRENT after removal of VSVTX, VSGID and VSUID." +msgstr "8.0-CURRENT после удаления VSVTX, VSGID и VSUID." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4992 +#, no-wrap +msgid "800048" +msgstr "800048" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4993 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/183091[183091]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/183091[183091]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4994 +#, no-wrap +msgid "September 16, 2008" +msgstr "16 сентября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4996 +#, no-wrap +msgid "8.0-CURRENT after converting the kernel NFS mount code to accept individual mount options in the man:nmount[2] `iovec`, not just one big struct nfs_args." +msgstr "8.0-CURRENT после преобразования кода монтирования ядра NFS для поддержки отдельных опций монтирования в `iovec` man:nmount[2], а не только одной большой структуры nfs_args." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4997 +#, no-wrap +msgid "800049" +msgstr "800049" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4998 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/183114[183114]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/183114[183114]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:4999 +#, no-wrap +msgid "September 17, 2008" +msgstr "17 сентября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5001 +#, no-wrap +msgid "8.0-CURRENT after the removal of man:suser[9] and man:suser_cred[9]." +msgstr "8.0-CURRENT после удаления man:suser[9] и man:suser_cred[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5002 +#, no-wrap +msgid "800050" +msgstr "800050" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5003 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/184099[184099]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/184099[184099]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5004 +#, no-wrap +msgid "October 20, 2008" +msgstr "20 октября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5006 +#, no-wrap +msgid "8.0-CURRENT after buffer cache API change." +msgstr "8.0-CURRENT после изменения API кэша буфера." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5007 +#, no-wrap +msgid "800051" +msgstr "800051" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5008 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/184205[184205]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/184205[184205]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5009 +#, no-wrap +msgid "October 23, 2008" +msgstr "23 октября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5011 +#, no-wrap +msgid "8.0-CURRENT after the removal of the man:MALLOC[9] and man:FREE[9] macros." +msgstr "8.0-CURRENT после удаления макросов man:MALLOC[9] и man:FREE[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5012 +#, no-wrap +msgid "800052" +msgstr "800052" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5013 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/184419[184419]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/184419[184419]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5014 +#, no-wrap +msgid "October 28, 2008" +msgstr "28 октября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5016 +#, no-wrap +msgid "8.0-CURRENT after the introduction of `accmode_t` and renaming of VOP_ACCESS `a_mode` argument to `a_accmode`." +msgstr "8.0-CURRENT после введения `accmode_t` и переименования аргумента `a_mode` в `a_accmode` в VOP_ACCESS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5017 +#, no-wrap +msgid "800053" +msgstr "800053" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5018 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/184555[184555]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/184555[184555]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5019 +#, no-wrap +msgid "November 2, 2008" +msgstr "2 ноября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5021 +#, no-wrap +msgid "8.0-CURRENT after the prototype change of man:vfs_busy[9] and the introduction of its MBF_NOWAIT and MBF_MNTLSTLOCK flags." +msgstr "8.0-CURRENT после изменения прототипа man:vfs_busy[9] и введения флагов MBF_NOWAIT и MBF_MNTLSTLOCK." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5022 +#, no-wrap +msgid "800054" +msgstr "800054" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5023 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/185162[185162]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/185162[185162]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5024 +#, no-wrap +msgid "November 22, 2008" +msgstr "22 ноября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5026 +#, no-wrap +msgid "8.0-CURRENT after the addition of `buf_ring`, memory barriers and ifnet functions to facilitate multiple hardware transmit queues for cards that support them, and a lockless ring-buffer implementation to enable drivers to more efficiently manage queuing of packets." +msgstr "8.0-CURRENT после добавления `buf_ring`, барьеров памяти и функций ifnet для поддержки нескольких аппаратных очередей передачи для карт, которые их поддерживают, а также реализации кольцевого буфера без блокировок, чтобы позволить драйверам более эффективно управлять очередями пакетов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5027 +#, no-wrap +msgid "800055" +msgstr "800055" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5028 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/185363[185363]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/185363[185363]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5029 +#, no-wrap +msgid "November 27, 2008" +msgstr "27 ноября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5031 +#, no-wrap +msgid "8.0-CURRENT after the addition of Intel(TM) Core, Core2, and Atom support to man:hwpmc[4]." +msgstr "8.0-CURRENT после добавления поддержки Intel(TM) Core, Core2 и Atom в man:hwpmc[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5032 +#, no-wrap +msgid "800056" +msgstr "800056" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5033 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/185435[185435]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/185435[185435]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5034 +#, no-wrap +msgid "November 29, 2008" +msgstr "29 ноября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5036 +#, no-wrap +msgid "8.0-CURRENT after the introduction of multi-/no-IPv4/v6 jails." +msgstr "8.0-CURRENT после введения многопользовательских/без IPv4/v6 клеток." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5037 +#, no-wrap +msgid "800057" +msgstr "800057" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5038 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/185522[185522]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/185522[185522]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5039 +#, no-wrap +msgid "December 1, 2008" +msgstr "1 декабря 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5041 +#, no-wrap +msgid "8.0-CURRENT after the switch to the ath `hal` source code." +msgstr "8.0-CURRENT после перехода на исходный код `hal` для ath." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5042 +#, no-wrap +msgid "800058" +msgstr "800058" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5043 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/185968[185968]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/185968[185968]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5044 +#, no-wrap +msgid "December 12, 2008" +msgstr "12 декабря 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5046 +#, no-wrap +msgid "8.0-CURRENT after the introduction of the VOP_VPTOCNP operation." +msgstr "8.0-CURRENT после введения операции VOP_VPTOCNP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5047 +#, no-wrap +msgid "800059" +msgstr "800059" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5048 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/186119[186119]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/186119[186119]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5049 +#, no-wrap +msgid "December 15, 2008" +msgstr "15 декабря 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5051 +#, no-wrap +msgid "8.0-CURRENT incorporates the new arp-v2 rewrite." +msgstr "8.0-CURRENT включает новую переработанную версию arp-v2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5052 +#, no-wrap +msgid "800060" +msgstr "800060" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5053 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/186344[186344]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/186344[186344]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5054 +#, no-wrap +msgid "December 19, 2008" +msgstr "19 декабря 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5056 +#, no-wrap +msgid "8.0-CURRENT after the addition of makefs." +msgstr "8.0-CURRENT после добавления makefs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5057 +#, no-wrap +msgid "800061" +msgstr "800061" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5058 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/187289[187289]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/187289[187289]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5059 +#, no-wrap +msgid "January 15, 2009" +msgstr "15 января 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5061 +#, no-wrap +msgid "8.0-CURRENT after TCP Appropriate Byte Counting." +msgstr "8.0-CURRENT после TCP Appropriate Byte Counting." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5062 +#, no-wrap +msgid "800062" +msgstr "800062" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5063 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/187830[187830]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/187830[187830]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5064 +#, no-wrap +msgid "January 28, 2009" +msgstr "28 января 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5066 +#, no-wrap +msgid "8.0-CURRENT after removal of `minor()`, `minor2unit()`, `unit2minor()`, etc." +msgstr "8.0-CURRENT после удаления `minor()`, `minor2unit()`, `unit2minor()` и т.д." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5067 +#, no-wrap +msgid "800063" +msgstr "800063" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5068 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/188745[188745]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/188745[188745]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5069 +#, no-wrap +msgid "February 18, 2009" +msgstr "18 февраля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5071 +#, no-wrap +msgid "8.0-CURRENT after GENERIC config change to use the USB2 stack, but also the addition of man:fdevname[3]." +msgstr "8.0-CURRENT после изменения конфигурации GENERIC для использования стека USB2, а также добавления man:fdevname[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5072 +#, no-wrap +msgid "800064" +msgstr "800064" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5073 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/188946[188946]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/188946[188946]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5074 +#, no-wrap +msgid "February 23, 2009" +msgstr "23 февраля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5076 +#, no-wrap +msgid "8.0-CURRENT after the USB2 stack is moved to and replaces dev/usb." +msgstr "8.0-CURRENT после переноса стека USB2 и замены dev/usb." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5077 +#, no-wrap +msgid "800065" +msgstr "800065" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5078 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189092[189092]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189092[189092]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5079 +#, no-wrap +msgid "February 26, 2009" +msgstr "26 февраля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5081 +#, no-wrap +msgid "8.0-CURRENT after the renaming of all functions in man:libmp[3]." +msgstr "8.0-CURRENT после переименования всех функций в man:libmp[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5082 +#, no-wrap +msgid "800066" +msgstr "800066" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5083 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189110[189110]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189110[189110]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5084 +#, no-wrap +msgid "February 27, 2009" +msgstr "27 февраля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5086 +#, no-wrap +msgid "8.0-CURRENT after changing USB devfs handling and layout." +msgstr "8.0-CURRENT после изменения обработки и структуры USB devfs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5087 +#, no-wrap +msgid "800067" +msgstr "800067" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5088 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189136[189136]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189136[189136]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5089 +#, no-wrap +msgid "February 28, 2009" +msgstr "28 февраля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5091 +#, no-wrap +msgid "8.0-CURRENT after adding `getdelim()`, `getline()`, `stpncpy()`, `strnlen()`, `wcsnlen()`, `wcscasecmp()`, and `wcsncasecmp()`." +msgstr "8.0-CURRENT после добавления `getdelim()`, `getline()`, `stpncpy()`, `strnlen()`, `wcsnlen()`, `wcscasecmp()`, and `wcsncasecmp()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5092 +#, no-wrap +msgid "800068" +msgstr "800068" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5093 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189276[189276]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189276[189276]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5094 +#, no-wrap +msgid "March 2, 2009" +msgstr "2 марта 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5096 +#, no-wrap +msgid "8.0-CURRENT after renaming the `ushub` devclass to `uhub`." +msgstr "8.0-CURRENT после переименования класса устройств `ushub` в `uhub`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5097 +#, no-wrap +msgid "800069" +msgstr "800069" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5098 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189585[189585]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189585[189585]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5099 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5104 +#, no-wrap +msgid "March 9, 2009" +msgstr "9 марта 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5101 +#, no-wrap +msgid "8.0-CURRENT after libusb20.so.1 was renamed to libusb.so.1." +msgstr "8.0-CURRENT после переименования libusb20.so.1 в libusb.so.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5102 +#, no-wrap +msgid "800070" +msgstr "800070" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5103 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189592[189592]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189592[189592]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5106 +#, no-wrap +msgid "8.0-CURRENT after merging IGMPv3 and Source-Specific Multicast (SSM) to the IPv4 stack." +msgstr "8.0-CURRENT после объединения IGMPv3 и Source-Specific Multicast (SSM) в стек IPv4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5107 +#, no-wrap +msgid "800071" +msgstr "800071" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5108 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189825[189825]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189825[189825]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5109 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5912 +#, no-wrap +msgid "March 14, 2009" +msgstr "14 марта 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5111 +#, no-wrap +msgid "8.0-CURRENT after gcc was patched to use C99 inline semantics in c99 and gnu99 mode." +msgstr "8.0-CURRENT после того, как gcc был исправлен для использования семантики встраивания C99 в режимах c99 и gnu99." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5112 +#, no-wrap +msgid "800072" +msgstr "800072" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5113 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189853[189853]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189853[189853]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5114 +#, no-wrap +msgid "March 15, 2009" +msgstr "March 15, 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5116 +#, no-wrap +msgid "8.0-CURRENT after the IFF_NEEDSGIANT flag has been removed; non-MPSAFE network device drivers are no longer supported." +msgstr "8.0-CURRENT после удаления флага IFF_NEEDSGIANT; неподдерживаемые MPSAFE драйверы сетевых устройств больше не поддерживаются." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5117 +#, no-wrap +msgid "800073" +msgstr "800073" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5118 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/190265[190265]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/190265[190265]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5119 +#, no-wrap +msgid "March 18, 2009" +msgstr "18 марта 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5121 +#, no-wrap +msgid "8.0-CURRENT after the dynamic string token substitution has been implemented for rpath and needed paths." +msgstr "8.0-CURRENT после реализации подстановки динамических строковых токенов для rpath и необходимых путей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5122 +#, no-wrap +msgid "800074" +msgstr "800074" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5123 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/190373[190373]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/190373[190373]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5124 +#, no-wrap +msgid "March 24, 2009" +msgstr "24 марта 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5126 +#, no-wrap +msgid "8.0-CURRENT after tcpdump 4.0.0 and libpcap 1.0.0 import." +msgstr "8.0-CURRENT после импорта tcpdump 4.0.0 и libpcap 1.0.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5127 +#, no-wrap +msgid "800075" +msgstr "800075" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5128 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/190787[190787]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/190787[190787]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5129 +#, no-wrap +msgid "April 6, 2009" +msgstr "6 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5131 +#, no-wrap +msgid "8.0-CURRENT after layout of structs vnet_net, vnet_inet and vnet_ipfw has been changed." +msgstr "8.0-CURRENT после изменения структуры структур vnet_net, vnet_inet и vnet_ipfw." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5132 +#, no-wrap +msgid "800076" +msgstr "800076" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5133 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/190866[190866]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/190866[190866]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5134 +#, no-wrap +msgid "April 9, 2009" +msgstr "9 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5136 +#, no-wrap +msgid "8.0-CURRENT after adding delay profiles in dummynet." +msgstr "8.0-CURRENT после добавления профилей задержки в dummynet." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5137 +#, no-wrap +msgid "800077" +msgstr "800077" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5138 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/190914[190914]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/190914[190914]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5139 +#, no-wrap +msgid "April 14, 2009" +msgstr "14 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5141 +#, no-wrap +msgid "8.0-CURRENT after removing `VOP_LEASE()` and vop_vector.vop_lease." +msgstr "8.0-CURRENT после удаления `VOP_LEASE()` и vop_vector.vop_lease." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5142 +#, no-wrap +msgid "800078" +msgstr "800078" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5143 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191080[191080]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191080[191080]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5144 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5149 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5154 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5917 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5922 +#, no-wrap +msgid "April 15, 2009" +msgstr "15 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5146 +#, no-wrap +msgid "8.0-CURRENT after struct `rt_weight` fields have been added to struct `rt_metrics` and struct `rt_metrics_lite`, changing the layout of struct `rt_metrics_lite`. A bump to RTM_VERSION was made, but backed out." +msgstr "8.0-CURRENT после добавления полей `rt_weight` в структуры `rt_metrics` и `rt_metrics_lite`, что изменило расположение полей в структуре `rt_metrics_lite`. Версия RTM_VERSION была увеличена, но затем отменена." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5147 +#, no-wrap +msgid "800079" +msgstr "800079" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5148 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191117[191117]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191117[191117]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5151 +#, no-wrap +msgid "8.0-CURRENT after struct `llentry` pointers are added to struct route and struct route_in6." +msgstr "8.0-CURRENT после добавления указателей на структуру `llentry` в структуры `route` и `route_in6`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5152 +#, no-wrap +msgid "800080" +msgstr "800080" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5153 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191126[191126]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191126[191126]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5156 +#, no-wrap +msgid "8.0-CURRENT after layout of struct inpcb has been changed." +msgstr "8.0-CURRENT после изменения структуры inpcb." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5157 +#, no-wrap +msgid "800081" +msgstr "800081" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5158 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191267[191267]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191267[191267]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5159 +#, no-wrap +msgid "April 19, 2009" +msgstr "19 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5161 +#, no-wrap +msgid "8.0-CURRENT after the layout of struct `malloc_type` has been changed." +msgstr "8.0-CURRENT после изменения структуры `malloc_type`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5162 +#, no-wrap +msgid "800082" +msgstr "800082" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5163 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191368[191368]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191368[191368]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5164 +#, no-wrap +msgid "April 21, 2009" +msgstr "21 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5166 +#, no-wrap +msgid "8.0-CURRENT after the layout of struct ifnet has changed, and with `if_ref()` and `if_rele()` ifnet `refcounting`." +msgstr "8.0-CURRENT после изменения структуры struct ifnet и с `if_ref()` и `if_rele()` для подсчета ссылок (`refcounting`) ifnet." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5167 +#, no-wrap +msgid "800083" +msgstr "800083" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5168 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191389[191389]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191389[191389]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5169 +#, no-wrap +msgid "April 22, 2009" +msgstr "22 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5171 +#, no-wrap +msgid "8.0-CURRENT after the implementation of a low-level Bluetooth HCI API." +msgstr "8.0-CURRENT после реализации низкоуровневого API HCI Bluetooth." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5172 +#, no-wrap +msgid "800084" +msgstr "800084" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5173 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191672[191672]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191672[191672]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5174 +#, no-wrap +msgid "April 29, 2009" +msgstr "29 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5176 +#, no-wrap +msgid "8.0-CURRENT after IPv6 SSM and MLDv2 changes." +msgstr "8.0-CURRENT после изменений в IPv6 SSM и MLDv2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5177 +#, no-wrap +msgid "800085" +msgstr "800085" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5178 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191688[191688]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191688[191688]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5179 +#, no-wrap +msgid "April 30, 2009" +msgstr "30 апреля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5181 +#, no-wrap +msgid "8.0-CURRENT after enabling support for VIMAGE kernel builds with one active image." +msgstr "8.0-CURRENT после включения поддержки сборки ядра с VIMAGE с одним активным образом." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5182 +#, no-wrap +msgid "800086" +msgstr "800086" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5183 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191910[191910]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191910[191910]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5184 +#, no-wrap +msgid "May 8, 2009" +msgstr "8 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5186 +#, no-wrap +msgid "8.0-CURRENT after adding support for input lines of arbitrarily length in man:patch[1]." +msgstr "8.0-CURRENT после добавления поддержки строк ввода произвольной длины в man:patch[1]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5187 +#, no-wrap +msgid "800087" +msgstr "800087" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5188 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191990[191990]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191990[191990]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5189 +#, no-wrap +msgid "May 11, 2009" +msgstr "11 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5191 +#, no-wrap +msgid "8.0-CURRENT after some VFS KPI changes. The thread argument has been removed from the FSD parts of the VFS. `VFS_*` functions do not need the context any more because it always refers to `curthread`. In some special cases, the old behavior is retained." +msgstr "8.0-CURRENT после некоторых изменений в VFS KPI. Аргумент потока был удален из частей FSD в VFS. Функциям `VFS_*` больше не нужен контекст, так как он всегда относится к `curthread`. В некоторых особых случаях старое поведение сохранено." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5192 +#, no-wrap +msgid "800088" +msgstr "800088" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5193 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/192470[192470]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/192470[192470]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5194 +#, no-wrap +msgid "May 20, 2009" +msgstr "20 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5196 +#, no-wrap +msgid "8.0-CURRENT after net80211 monitor mode changes." +msgstr "8.0-CURRENT после изменений режима монитора в net80211." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5197 +#, no-wrap +msgid "800089" +msgstr "800089" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5198 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/192649[192649]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/192649[192649]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5199 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5204 +#, no-wrap +msgid "May 23, 2009" +msgstr "23 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5201 +#, no-wrap +msgid "8.0-CURRENT after adding UDP control block support." +msgstr "8.0-CURRENT после добавления поддержки блока управления UDP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5202 +#, no-wrap +msgid "800090" +msgstr "800090" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5203 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/192669[192669]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/192669[192669]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5206 +#, no-wrap +msgid "8.0-CURRENT after virtualizing interface cloning." +msgstr "8.0-CURRENT после виртуализации клонирования интерфейсов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5207 +#, no-wrap +msgid "800091" +msgstr "800091" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5208 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/192895[192895]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/192895[192895]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5209 +#, no-wrap +msgid "May 27, 2009" +msgstr "27 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5211 +#, no-wrap +msgid "8.0-CURRENT after adding hierarchical jails and removing global securelevel." +msgstr "8.0-CURRENT после добавления иерархических клеток и удаления глобального securelevel." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5212 +#, no-wrap +msgid "800092" +msgstr "800092" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5213 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193011[193011]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193011[193011]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5214 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5219 +#, no-wrap +msgid "May 29, 2009" +msgstr "29 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5216 +#, no-wrap +msgid "8.0-CURRENT after changing `sx_init_flags()` KPI. The `SX_ADAPTIVESPIN` is retired and a new `SX_NOADAPTIVE` flag is introduced to handle the reversed logic." +msgstr "8.0-CURRENT после изменения KPI `sx_init_flags()`. `SX_ADAPTIVESPIN` упразднён, и введён новый флаг `SX_NOADAPTIVE` для обработки обратной логики." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5217 +#, no-wrap +msgid "800093" +msgstr "800093" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5218 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193047[193047]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193047[193047]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5221 +#, no-wrap +msgid "8.0-CURRENT after adding `mnt_xflag` to struct mount." +msgstr "8.0-CURRENT после добавления `mnt_xflag` в структуру mount." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5222 +#, no-wrap +msgid "800094" +msgstr "800094" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5223 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193093[193093]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193093[193093]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5224 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5229 +#, no-wrap +msgid "May 30, 2009" +msgstr "30 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5226 +#, no-wrap +msgid "8.0-CURRENT after adding man:VOP_ACCESSX[9]." +msgstr "8.0-CURRENT после добавления man:VOP_ACCESSX[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5227 +#, no-wrap +msgid "800095" +msgstr "800095" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5228 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193096[193096]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193096[193096]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5231 +#, no-wrap +msgid "8.0-CURRENT after changing the polling KPI. The polling handlers now return the number of packets processed. A new `IFCAP_POLLING_NOCOUNT` is also introduced to specify that the return value is not significant and the counting should be skipped." +msgstr "8.0-CURRENT после изменения KPI для polling. Обработчики polling теперь возвращают количество обработанных пакетов. Также введена новая возможность `IFCAP_POLLING_NOCOUNT`, которая указывает, что возвращаемое значение не является значимым и подсчёт следует пропустить." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5232 +#, no-wrap +msgid "800096" +msgstr "800096" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5233 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193219[193219]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193219[193219]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5234 +#, no-wrap +msgid "June 1, 2009" +msgstr "1 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5236 +#, no-wrap +msgid "8.0-CURRENT after updating to the new netisr implementation and after changing the way of storing and accessing FIBs." +msgstr "8.0-CURRENT после обновления до новой реализации netisr и после изменения способа хранения и доступа к FIB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5237 +#, no-wrap +msgid "800097" +msgstr "800097" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5238 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193731[193731]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193731[193731]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5239 +#, no-wrap +msgid "June 8, 2009" +msgstr "8 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5241 +#, no-wrap +msgid "8.0-CURRENT after the introduction of vnet destructor hooks and infrastructure." +msgstr "8.0-CURRENT после введения хуков и инфраструктуры деструктора vnet." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5243 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/194012[194012]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/194012[194012]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5244 +#, no-wrap +msgid "June 11, 2009" +msgstr "11 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5246 +#, no-wrap +msgid "8.0-CURRENT after the introduction of netgraph outbound to inbound path call detection and queuing, which also changed the layout of struct thread." +msgstr "8.0-CURRENT после введения в netgraph обнаружения вызовов пути из исходящего во входящий и организации очередей, что также изменило структуру struct thread." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5247 +#, no-wrap +msgid "800098" +msgstr "800098" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5248 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/194210[194210]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/194210[194210]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5249 +#, no-wrap +msgid "June 14, 2009" +msgstr "14 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5251 +#, no-wrap +msgid "8.0-CURRENT after OpenSSL 0.9.8k import." +msgstr "8.0-CURRENT после импорта OpenSSL 0.9.8k." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5252 +#, no-wrap +msgid "800099" +msgstr "800099" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5253 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/194675[194675]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/194675[194675]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5254 +#, no-wrap +msgid "June 22, 2009" +msgstr "22 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5256 +#, no-wrap +msgid "8.0-CURRENT after NGROUPS update and moving route virtualization into its own VImage module." +msgstr "8.0-CURRENT после обновления NGROUPS и переноса виртуализации маршрутов в собственный модуль VImage." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5257 +#, no-wrap +msgid "800100" +msgstr "800100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5258 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/194920[194920]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/194920[194920]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5259 +#, no-wrap +msgid "June 24, 2009" +msgstr "24 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5261 +#, no-wrap +msgid "8.0-CURRENT after SYSVIPC ABI change." +msgstr "8.0-CURRENT после изменения ABI SYSVIPC." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5262 +#, no-wrap +msgid "800101" +msgstr "800101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5263 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/195175[195175]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/195175[195175]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5264 +#, no-wrap +msgid "June 29, 2009" +msgstr "29 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5266 +#, no-wrap +msgid "8.0-CURRENT after the removal of the /dev/net/* per-interface character devices." +msgstr "8.0-CURRENT после удаления символьных устройств /dev/net/* для каждого интерфейса." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5267 +#, no-wrap +msgid "800102" +msgstr "800102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5268 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/195634[195634]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/195634[195634]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5269 +#, no-wrap +msgid "July 12, 2009" +msgstr "12 июля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5271 +#, no-wrap +msgid "8.0-CURRENT after padding was added to struct `sackhint`, struct tcpcb, and struct `tcpstat`." +msgstr "8.0-CURRENT после добавления заполнения к структурам `sackhint`, `tcpcb` и `tcpstat`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5272 +#, no-wrap +msgid "800103" +msgstr "800103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5273 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/195654[195654]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/195654[195654]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5274 +#, no-wrap +msgid "July 13, 2009" +msgstr "13 июля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5276 +#, no-wrap +msgid "8.0-CURRENT after replacing struct `tcpopt` with struct `toeopt` in the TOE driver interface to the TCP `syncache`." +msgstr "8.0-CURRENT после замены структуры `tcpopt` на структуру `toeopt` в интерфейсе драйвера TOE к `syncache` TCP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5277 +#, no-wrap +msgid "800104" +msgstr "800104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5278 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/195699[195699]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/195699[195699]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5279 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5942 +#, no-wrap +msgid "July 14, 2009" +msgstr "14 июля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5281 +#, no-wrap +msgid "8.0-CURRENT after the addition of the linker-set based per-vnet allocator." +msgstr "8.0-CURRENT после добавления распределителя на основе наборов компоновщика для каждого vnet." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5282 +#, no-wrap +msgid "800105" +msgstr "800105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5283 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/195767[195767]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/195767[195767]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5284 +#, no-wrap +msgid "July 19, 2009" +msgstr "19 июля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5286 +#, no-wrap +msgid "8.0-CURRENT after version bump for all shared libraries that do not have symbol versioning turned on." +msgstr "8.0-CURRENT после увеличения версии для всех разделяемых библиотек, у которых не включено управление версиями символов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5287 +#, no-wrap +msgid "800106" +msgstr "800106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5288 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/195852[195852]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/195852[195852]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5289 +#, no-wrap +msgid "July 24, 2009" +msgstr "24 июля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5291 +#, no-wrap +msgid "8.0-CURRENT after introduction of OBJT_SG VM object type." +msgstr "8.0-CURRENT после введения типа объекта VM OBJT_SG." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5292 +#, no-wrap +msgid "800107" +msgstr "800107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5293 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/196037[196037]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/196037[196037]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5294 +#, no-wrap +msgid "August 2, 2009" +msgstr "2 августа 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5296 +#, no-wrap +msgid "8.0-CURRENT after making the newbus subsystem Giant free by adding the newbus `sxlock` and 8.0-RELEASE." +msgstr "8.0-CURRENT после освобождения подсистемы newbus от Giant путем добавления `sxlock` в newbus и 8.0-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5297 +#, no-wrap +msgid "800108" +msgstr "800108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5298 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/199627[199627]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/199627[199627]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5299 +#, no-wrap +msgid "November 21, 2009" +msgstr "21 ноября 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5301 +#, no-wrap +msgid "8.0-STABLE after implementing EVFILT_USER `kevent` filter." +msgstr "8.0-STABLE после реализации фильтра `kevent` `EVFILT_USER`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5302 +#, no-wrap +msgid "800500" +msgstr "800500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5303 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/201749[201749]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/201749[201749]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5304 +#, no-wrap +msgid "January 7, 2010" +msgstr "7 января 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5306 +#, no-wrap +msgid "8.0-STABLE after `__FreeBSD_version` bump to make `pkg_add -r` use packages-8-stable." +msgstr "8.0-STABLE после увеличения `__FreeBSD_version`, чтобы `pkg_add -r` использовал пакеты-8-stable." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5307 +#, no-wrap +msgid "800501" +msgstr "800501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5308 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/202922[202922]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/202922[202922]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5309 +#, no-wrap +msgid "January 24, 2010" +msgstr "24 января 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5311 +#, no-wrap +msgid "8.0-STABLE after change of the man:scandir[3] and man:alphasort[3] prototypes to conform to SUSv4." +msgstr "8.0-STABLE после изменения прототипов man:scandir[3] и man:alphasort[3] для соответствия SUSv4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5312 +#, no-wrap +msgid "800502" +msgstr "800502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5313 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/203299[203299]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/203299[203299]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5314 +#, no-wrap +msgid "January 31, 2010" +msgstr "31 января 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5316 +#, no-wrap +msgid "8.0-STABLE after addition of man:sigpause[2]." +msgstr "8.0-STABLE после добавления man:sigpause[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5317 +#, no-wrap +msgid "800503" +msgstr "800503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5318 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/204344[204344]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/204344[204344]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5319 +#, no-wrap +msgid "February 25, 2010" +msgstr "25 февраля 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5321 +#, no-wrap +msgid "8.0-STABLE after addition of SIOCGIFDESCR and SIOCSIFDESCR ioctls to network interfaces. These ioctl can be used to manipulate interface description, as inspired by OpenBSD." +msgstr "8.0-STABLE после добавления ioctl SIOCGIFDESCR и SIOCSIFDESCR к сетевым интерфейсам. Эти ioctl могут использоваться для управления описанием интерфейса, по аналогии с OpenBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5322 +#, no-wrap +msgid "800504" +msgstr "800504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5323 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/204546[204546]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/204546[204546]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5324 +#, no-wrap +msgid "March 1, 2010" +msgstr "1 марта 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5326 +#, no-wrap +msgid "8.0-STABLE after MFC of importing x86emu, a software emulator for real mode x86 CPU from OpenBSD." +msgstr "8.0-STABLE после MFC импорта x86emu, программного эмулятора реального режима x86 CPU из OpenBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5327 +#, no-wrap +msgid "800505" +msgstr "800505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5328 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/208259[208259]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/208259[208259]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5329 +#, no-wrap +msgid "May 18, 2010" +msgstr "18 мая 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5331 +#, no-wrap +msgid "8.0-STABLE after MFC of adding liblzma, xz, xzdec, and lzmainfo." +msgstr "8.0-STABLE после MFC добавления liblzma, xz, xzdec и lzmainfo." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5332 +#, no-wrap +msgid "801000" +msgstr "801000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5333 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/209150[209150]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/209150[209150]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5334 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5339 +#, no-wrap +msgid "June 14, 2010" +msgstr "14 июня 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5336 +#, no-wrap +msgid "8.1-RELEASE" +msgstr "8.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5337 +#, no-wrap +msgid "801500" +msgstr "801500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5338 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/209146[209146]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/209146[209146]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5341 +#, no-wrap +msgid "8.1-STABLE after 8.1-RELEASE." +msgstr "8.1-STABLE после 8.1-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5342 +#, no-wrap +msgid "801501" +msgstr "801501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5343 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/214762[214762]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/214762[214762]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5344 +#, no-wrap +msgid "November 3, 2010" +msgstr "3 ноября 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5346 +#, no-wrap +msgid "8.1-STABLE after KBI change in struct `sysentvec`, and implementation of PL_FLAG_SCE/SCX/EXEC/SI and `pl_siginfo` for ptrace(PT_LWPINFO) ." +msgstr "8.1-STABLE после изменения KBI в структуре `sysentvec`, а также реализации PL_FLAG_SCE/SCX/EXEC/SI и `pl_siginfo` для ptrace(PT_LWPINFO)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5347 +#, no-wrap +msgid "802000" +msgstr "802000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5348 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216639[216639]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216639[216639]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5349 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5354 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5967 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5972 +#, no-wrap +msgid "December 22, 2010" +msgstr "22 декабря 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5351 +#, no-wrap +msgid "8.2-RELEASE" +msgstr "8.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5352 +#, no-wrap +msgid "802500" +msgstr "802500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5353 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216654[216654]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216654[216654]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5356 +#, no-wrap +msgid "8.2-STABLE after 8.2-RELEASE." +msgstr "8.2-STABLE после 8.2-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5357 +#, no-wrap +msgid "802501" +msgstr "802501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5358 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/219107[219107]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/219107[219107]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5359 +#, no-wrap +msgid "February 28, 2011" +msgstr "28 февраля 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5361 +#, no-wrap +msgid "8.2-STABLE after merging DTrace changes, including support for userland tracing." +msgstr "8.2-STABLE после объединения изменений DTrace, включая поддержку трассировки пользовательского пространства." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5362 +#, no-wrap +msgid "802502" +msgstr "802502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5363 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/219324[219324]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/219324[219324]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5364 +#, no-wrap +msgid "March 6, 2011" +msgstr "6 марта 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5366 +#, no-wrap +msgid "8.2-STABLE after merging log2 and log2f into libm." +msgstr "8.2-STABLE после объединения log2 и log2f в libm." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5367 +#, no-wrap +msgid "802503" +msgstr "802503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5368 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/221275[221275]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/221275[221275]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5369 +#, no-wrap +msgid "May 1, 2011" +msgstr "1 мая 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5371 +#, no-wrap +msgid "8.2-STABLE after upgrade of the gcc to the last GPLv2 version from the FSF gcc-4_2-branch." +msgstr "8.2-STABLE после обновления gcc до последней версии GPLv2 из ветки FSF gcc-4_2-branch." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5372 +#, no-wrap +msgid "802504" +msgstr "802504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5373 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/222401[222401]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/222401[222401]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5374 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5379 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5384 +#, no-wrap +msgid "May 28, 2011" +msgstr "28 мая 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5376 +#, no-wrap +msgid "8.2-STABLE after introduction of the KPI and supporting infrastructure for modular congestion control." +msgstr "8.2-STABLE после введения KPI и поддерживающей инфраструктуры для модульного управления перегрузкой." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5377 +#, no-wrap +msgid "802505" +msgstr "802505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5378 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/222406[222406]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/222406[222406]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5381 +#, no-wrap +msgid "8.2-STABLE after introduction of Hhook and Khelp KPIs." +msgstr "8.2-STABLE после введения KPIs Hhook и Khelp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5382 +#, no-wrap +msgid "802506" +msgstr "802506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5383 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/222408[222408]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/222408[222408]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5386 +#, no-wrap +msgid "8.2-STABLE after addition of OSD to struct tcpcb." +msgstr "8.2-STABLE после добавления OSD в структуру tcpcb." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5387 +#, no-wrap +msgid "802507" +msgstr "802507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5388 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/222741[222741]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/222741[222741]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5389 +#, no-wrap +msgid "June 6, 2011" +msgstr "6 июня 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5391 +#, no-wrap +msgid "8.2-STABLE after ZFS v28 import." +msgstr "8.2-STABLE после импорта ZFS v28." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5392 +#, no-wrap +msgid "802508" +msgstr "802508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5393 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/222846[222846]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/222846[222846]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5394 +#, no-wrap +msgid "June 8, 2011" +msgstr "8 июня 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5396 +#, no-wrap +msgid "8.2-STABLE after removal of the `schedtail` event handler and addition of the `sv_schedtail` method to struct `sysvec`." +msgstr "8.2-STABLE после удаления обработчика событий `schedtail` и добавления метода `sv_schedtail` в структуру `sysvec`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5397 +#, no-wrap +msgid "802509" +msgstr "802509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5398 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/224017[224017]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/224017[224017]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5399 +#, no-wrap +msgid "July 14, 2011" +msgstr "14 июля 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5401 +#, no-wrap +msgid "8.2-STABLE after merging the SSSE3 support into binutils." +msgstr "8.2-STABLE после объединения поддержки SSSE3 в binutils." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5402 +#, no-wrap +msgid "802510" +msgstr "802510" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5403 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/224214[224214]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/224214[224214]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5406 +#, no-wrap +msgid "8.2-STABLE after addition of RFTSIGZMB flag for man:rfork[2]." +msgstr "8.2-STABLE после добавления флага RFTSIGZMB для man:rfork[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5407 +#, no-wrap +msgid "802511" +msgstr "802511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5408 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/225458[225458]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/225458[225458]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5409 +#, no-wrap +msgid "September 9, 2011" +msgstr "9 сентября 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5411 +#, no-wrap +msgid "8.2-STABLE after addition of automatic detection of USB mass storage devices which do not support the no synchronize cache SCSI command." +msgstr "8.2-STABLE после добавления автоматического обнаружения USB-накопителей, которые не поддерживают команду SCSI \"no synchronize cache\"." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5412 +#, no-wrap +msgid "802512" +msgstr "802512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5413 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/225470[225470]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/225470[225470]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5416 +#, no-wrap +msgid "8.2-STABLE after merging of re-factoring of auto-quirk." +msgstr "8.2-STABLE после объединения рефакторинга auto-quirk." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5417 +#, no-wrap +msgid "802513" +msgstr "802513" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5418 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/226763[226763]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/226763[226763]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5419 +#, no-wrap +msgid "October 25, 2011" +msgstr "25 октября 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5421 +#, no-wrap +msgid "8.2-STABLE after merging of the MAP_PREFAULT_READ flag to man:mmap[2]." +msgstr "8.2-STABLE после объединения флага MAP_PREFAULT_READ в man:mmap[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5422 +#, no-wrap +msgid "802514" +msgstr "802514" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5423 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/227573[227573]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/227573[227573]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5424 +#, no-wrap +msgid "November 16, 2011" +msgstr "16 ноября 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5426 +#, no-wrap +msgid "8.2-STABLE after merging of addition of man:posix_fallocate[2] syscall." +msgstr "8.2-STABLE после объединения добавления системного вызова man:posix_fallocate[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5427 +#, no-wrap +msgid "802515" +msgstr "802515" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5428 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/229725[229725]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/229725[229725]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5431 +#, no-wrap +msgid "8.2-STABLE after merging of addition of the man:posix_fadvise[2] system call." +msgstr "8.2-STABLE после объединения добавления системного вызова man:posix_fadvise[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5432 +#, no-wrap +msgid "802516" +msgstr "802516" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5433 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/230239[230239]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/230239[230239]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5436 +#, no-wrap +msgid "8.2-STABLE after merging gperf 3.0.3" +msgstr "8.2-STABLE после объединения gperf 3.0.3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5437 +#, no-wrap +msgid "802517" +msgstr "802517" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5438 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/231769[231769]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/231769[231769]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5441 +#, no-wrap +msgid "8.2-STABLE after introduction of the new extensible man:sysctl[3] interface NET_RT_IFLISTL to query address lists." +msgstr "8.2-STABLE после введения нового расширяемого интерфейса man:sysctl[3] NET_RT_IFLISTL для запроса списков адресов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5442 +#, no-wrap +msgid "803000" +msgstr "803000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5443 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/232446[232446]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/232446[232446]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5446 +#, no-wrap +msgid "8.3-RELEASE." +msgstr "8.3-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5447 +#, no-wrap +msgid "803500" +msgstr "803500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5448 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/232439[232439]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/232439[232439]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5451 +#, no-wrap +msgid "8.3-STABLE after branching releng/8.3 (RELENG_8_3)." +msgstr "8.3-STABLE после ветвления releng/8.3 (RELENG_8_3)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5452 +#, no-wrap +msgid "803501" +msgstr "803501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5453 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/247091[247091]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/247091[247091]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5456 +#, no-wrap +msgid "8.3-STABLE after MFC of two USB fixes (rev link:https://svnweb.freebsd.org/changeset/base/246616[246616] and link:https://svnweb.freebsd.org/changeset/base/246759[246759])." +msgstr "8.3-STABLE после слияния двух исправлений для USB (ссылки на ревизии: link:https://svnweb.freebsd.org/changeset/base/246616[246616] и link:https://svnweb.freebsd.org/changeset/base/246759[246759])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5457 +#, no-wrap +msgid "804000" +msgstr "804000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5458 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/248850[248850]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/248850[248850]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5459 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5464 +#, no-wrap +msgid "March 28, 2013" +msgstr "28 марта 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5461 +#, no-wrap +msgid "8.4-RELEASE." +msgstr "8.4-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5462 +#, no-wrap +msgid "804500" +msgstr "804500" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5463 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/248819[248819]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/248819[248819]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5466 +#, no-wrap +msgid "8.4-STABLE after 8.4-RELEASE." +msgstr "8.4-STABLE после 8.4-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5467 +#, no-wrap +msgid "804501" +msgstr "804501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5468 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/259449[259449]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/259449[259449]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5469 +#, no-wrap +msgid "December 16, 2013" +msgstr "16 декабря 2013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5471 +#, no-wrap +msgid "8.4-STABLE after MFC of upstream Heimdal encoding fix." +msgstr "8.4-STABLE после MFC исправления кодировки из вышестоящего Heimdal." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5472 +#, no-wrap +msgid "804502" +msgstr "804502" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5476 +#, no-wrap +msgid "8.4-STABLE after FreeBSD-SA-14:08.tcp." +msgstr "8.4-STABLE после FreeBSD-SA-14:08.tcp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5477 +#, no-wrap +msgid "804503" +msgstr "804503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5478 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/268444[268444]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/268444[268444]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5479 +#, no-wrap +msgid "July 9, 2014" +msgstr "9 июля 2014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5481 +#, no-wrap +msgid "8.4-STABLE after FreeBSD-SA-14:17.kmem." +msgstr "8.4-STABLE после FreeBSD-SA-14:17.kmem." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5482 +#, no-wrap +msgid "804504" +msgstr "804504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5486 +#, no-wrap +msgid "8.4-STABLE after FreeBSD-SA-14:18 (rev link:https://svnweb.freebsd.org/changeset/base/271305[271305])." +msgstr "8.4-STABLE после FreeBSD-SA-14:18 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/271305[271305])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5487 +#, no-wrap +msgid "804505" +msgstr "804505" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5491 +#, no-wrap +msgid "8.4-STABLE after FreeBSD-SA-14:19 (rev link:https://svnweb.freebsd.org/changeset/base/271668[271668])." +msgstr "8.4-STABLE после FreeBSD-SA-14:19 (ревизия link:https://svnweb.freebsd.org/changeset/base/271668[271668])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5492 +#, no-wrap +msgid "804506" +msgstr "804506" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5496 +#, no-wrap +msgid "8.4-STABLE after FreeBSD-SA-14:21 (rev link:https://svnweb.freebsd.org/changeset/base/273413[273413])." +msgstr "8.4-STABLE после FreeBSD-SA-14:21 (ссылка на ревизию:https://svnweb.freebsd.org/changeset/base/273413[273413])." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5497 +#, no-wrap +msgid "804507" +msgstr "804507" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5501 +#, no-wrap +msgid "8.4-STABLE after FreeBSD-SA-14:23, FreeBSD-SA-14:24, and FreeBSD-SA-14:25." +msgstr "8.4-STABLE после FreeBSD-SA-14:23, FreeBSD-SA-14:24 и FreeBSD-SA-14:25." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5502 +#, no-wrap +msgid "804508" +msgstr "804508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5506 +#, no-wrap +msgid "8-STABLE after FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp, and FreeBSD-SA-15:05.bind." +msgstr "8-STABLE после FreeBSD-EN-15:01.vt, FreeBSD-EN-15:02.openssl, FreeBSD-EN-15:03.freebsd-update, FreeBSD-SA-15:04.igmp и FreeBSD-SA-15:05.bind." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5507 +#, no-wrap +msgid "804509" +msgstr "804509" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5508 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/305736[305736]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/305736[305736]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5510 +#, no-wrap +msgid "8-STABLE after resolving a deadlock between `device_detach()` and man:usbd_do_request_flags[9]." +msgstr "8-STABLE после устранения взаимоблокировки между `device_detach()` и man:usbd_do_request_flags[9]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5513 +#, no-wrap +msgid "FreeBSD 7 Versions" +msgstr "Версии FreeBSD 7" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5516 +#, no-wrap +msgid "FreeBSD 7 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` для FreeBSD 7" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5525 +#, no-wrap +msgid "700000" +msgstr "700000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5526 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/147925[147925]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/147925[147925]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5527 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6155 +#, no-wrap +msgid "July 11, 2005" +msgstr "11 июля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5529 +#, no-wrap +msgid "7.0-CURRENT." +msgstr "7.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5530 +#, no-wrap +msgid "700001" +msgstr "700001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5531 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/148341[148341]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/148341[148341]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5532 +#, no-wrap +msgid "July 23, 2005" +msgstr "23 июля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5534 +#, no-wrap +msgid "7.0-CURRENT after bump of all shared library versions that had not been changed since RELENG_5." +msgstr "7.0-CURRENT после увеличения версий всех общих библиотек, которые не изменялись с RELENG_5." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5535 +#, no-wrap +msgid "700002" +msgstr "700002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5536 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/149039[149039]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/149039[149039]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5537 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6165 +#, no-wrap +msgid "August 13, 2005" +msgstr "13 августа 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5539 +#, no-wrap +msgid "7.0-CURRENT after credential argument is added to `dev_clone` event handler." +msgstr "7.0-CURRENT после добавления аргумента учетных данных в обработчик события `dev_clone`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5540 +#, no-wrap +msgid "700003" +msgstr "700003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5541 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/149470[149470]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/149470[149470]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5542 +#, no-wrap +msgid "August 25, 2005" +msgstr "25 августа 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5544 +#, no-wrap +msgid "7.0-CURRENT after man:memmem[3] is added to libc." +msgstr "7.0-CURRENT после добавления man:memmem[3] в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5545 +#, no-wrap +msgid "700004" +msgstr "700004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5546 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/151888[151888]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/151888[151888]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5547 +#, no-wrap +msgid "October 30, 2005" +msgstr "30 октября 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5549 +#, no-wrap +msgid "7.0-CURRENT after man:solisten[9] kernel arguments are modified to accept a backlog parameter." +msgstr "7.0-CURRENT после изменения аргументов ядра man:solisten[9] для принятия параметра backlog." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5550 +#, no-wrap +msgid "700005" +msgstr "700005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5551 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/152296[152296]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/152296[152296]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5552 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5557 +#, no-wrap +msgid "November 11, 2005" +msgstr "11 ноября 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5554 +#, no-wrap +msgid "7.0-CURRENT after `IFP2ENADDR()` was changed to return a pointer to `IF_LLADDR()`." +msgstr "7.0-CURRENT после изменения `IFP2ENADDR()` для возврата указателя на `IF_LLADDR()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5555 +#, no-wrap +msgid "700006" +msgstr "700006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5556 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/152315[152315]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/152315[152315]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5559 +#, no-wrap +msgid "7.0-CURRENT after addition of `if_addr` member to `struct ifnet` and `IFP2ENADDR()` removal." +msgstr "7.0-CURRENT после добавления члена `if_addr` в `struct ifnet` и удаления `IFP2ENADDR()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5560 +#, no-wrap +msgid "700007" +msgstr "700007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5561 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/153027[153027]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/153027[153027]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5562 +#, no-wrap +msgid "December 2, 2005" +msgstr "2 декабря 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5564 +#, no-wrap +msgid "7.0-CURRENT after incorporating scripts from the `local_startup` directories into the base man:rcorder[8]." +msgstr "7.0-CURRENT после включения скриптов из каталогов `local_startup` в базовый man:rcorder[8]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5565 +#, no-wrap +msgid "700008" +msgstr "700008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5566 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/153107[153107]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/153107[153107]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5567 +#, no-wrap +msgid "December 5, 2005" +msgstr "5 декабря 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5569 +#, no-wrap +msgid "7.0-CURRENT after removal of MNT_NODEV mount option." +msgstr "7.0-CURRENT после удаления опции монтирования MNT_NODEV." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5570 +#, no-wrap +msgid "700009" +msgstr "700009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5571 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/153519[153519]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/153519[153519]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5572 +#, no-wrap +msgid "December 19, 2005" +msgstr "19 декабря 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5574 +#, no-wrap +msgid "7.0-CURRENT after ELF-64 type changes and symbol versioning." +msgstr "7.0-CURRENT после изменений типа ELF-64 и версионирования символов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5575 +#, no-wrap +msgid "700010" +msgstr "700010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5576 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/153579[153579]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/153579[153579]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5577 +#, no-wrap +msgid "December 20, 2005" +msgstr "20 декабря 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5579 +#, no-wrap +msgid "7.0-CURRENT after addition of `hostb` and `vgapci` drivers, addition of `pci_find_extcap()`, and changing the AGP drivers to no longer map the aperture." +msgstr "7.0-CURRENT после добавления драйверов `hostb` и `vgapci`, добавления `pci_find_extcap()` и изменения драйверов AGP, чтобы они больше не отображали апертуру." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5580 +#, no-wrap +msgid "700011" +msgstr "700011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5581 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/153936[153936]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/153936[153936]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5582 +#, no-wrap +msgid "December 31, 2005" +msgstr "31 декабря 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5584 +#, no-wrap +msgid "7.0-CURRENT after `tv_sec` was made `time_t` on all platforms but Alpha." +msgstr "7.0-CURRENT после того, как `tv_sec` был изменён на `time_t` на всех платформах, кроме Alpha." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5585 +#, no-wrap +msgid "700012" +msgstr "700012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5586 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/154114[154114]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/154114[154114]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5587 +#, no-wrap +msgid "January 8, 2006" +msgstr "8 января 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5589 +#, no-wrap +msgid "7.0-CURRENT after ldconfig_local_dirs change." +msgstr "7.0-CURRENT после изменения ldconfig_local_dirs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5590 +#, no-wrap +msgid "700013" +msgstr "700013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5591 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/154269[154269]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/154269[154269]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5592 +#, no-wrap +msgid "January 12, 2006" +msgstr "12 января 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5594 +#, no-wrap +msgid "7.0-CURRENT after changes to [.filename]#/etc/rc.d/abi# to support [.filename]#/compat/linux/etc/ld.so.cache# being a symlink in a read-only filesystem." +msgstr "7.0-CURRENT после изменений в [.filename]#/etc/rc.d/abi# для поддержки [.filename]#/compat/linux/etc/ld.so.cache# в виде символьной ссылки в файловой системе только для чтения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5595 +#, no-wrap +msgid "700014" +msgstr "700014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5596 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/154863[154863]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/154863[154863]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5597 +#, no-wrap +msgid "January 26, 2006" +msgstr "26 января 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5599 +#, no-wrap +msgid "7.0-CURRENT after pts import." +msgstr "7.0-CURRENT после импорта pts." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5600 +#, no-wrap +msgid "700015" +msgstr "700015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5601 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/157144[157144]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/157144[157144]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5602 +#, no-wrap +msgid "March 26, 2006" +msgstr "26 марта 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5604 +#, no-wrap +msgid "7.0-CURRENT after the introduction of version 2 of man:hwpmc[4]'s ABI." +msgstr "7.0-CURRENT после введения версии 2 ABI man:hwpmc[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5605 +#, no-wrap +msgid "700016" +msgstr "700016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5606 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/157962[157962]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/157962[157962]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5607 +#, no-wrap +msgid "April 22, 2006" +msgstr "22 апреля 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5609 +#, no-wrap +msgid "7.0-CURRENT after addition of man:fcloseall[3] to libc." +msgstr "7.0-CURRENT после добавления man:fcloseall[3] в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5610 +#, no-wrap +msgid "700017" +msgstr "700017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5611 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/158513[158513]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/158513[158513]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5612 +#, no-wrap +msgid "May 13, 2006" +msgstr "13 мая 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5614 +#, no-wrap +msgid "7.0-CURRENT after removal of ip6fw." +msgstr "7.0-CURRENT после удаления ip6fw." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5615 +#, no-wrap +msgid "700018" +msgstr "700018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5616 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/160386[160386]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/160386[160386]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5617 +#, no-wrap +msgid "July 15, 2006" +msgstr "15 июля 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5619 +#, no-wrap +msgid "7.0-CURRENT after import of snd_emu10kx." +msgstr "7.0-CURRENT после импорта snd_emu10kx." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5620 +#, no-wrap +msgid "700019" +msgstr "700019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5621 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/160821[160821]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/160821[160821]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5622 +#, no-wrap +msgid "July 29, 2006" +msgstr "29 июля 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5624 +#, no-wrap +msgid "7.0-CURRENT after import of OpenSSL 0.9.8b." +msgstr "7.0-CURRENT после импорта OpenSSL 0.9.8b." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5625 +#, no-wrap +msgid "700020" +msgstr "700020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5626 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/161931[161931]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/161931[161931]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5627 +#, no-wrap +msgid "September 3, 2006" +msgstr "3 сентября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5629 +#, no-wrap +msgid "7.0-CURRENT after addition of `bus_dma_get_tag` function" +msgstr "7.0-CURRENT после добавления функции `bus_dma_get_tag`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5630 +#, no-wrap +msgid "700021" +msgstr "700021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5631 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/162023[162023]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/162023[162023]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5632 +#, no-wrap +msgid "September 4, 2006" +msgstr "4 сентября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5634 +#, no-wrap +msgid "7.0-CURRENT after libpcap 0.9.4 and tcpdump 3.9.4 import." +msgstr "7.0-CURRENT после импорта libpcap 0.9.4 и tcpdump 3.9.4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5635 +#, no-wrap +msgid "700022" +msgstr "700022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5636 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/162170[162170]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/162170[162170]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5637 +#, no-wrap +msgid "September 9, 2006" +msgstr "9 сентября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5639 +#, no-wrap +msgid "7.0-CURRENT after `dlsym` change to look for a requested symbol both in specified DSO and its implicit dependencies." +msgstr "7.0-CURRENT после изменения `dlsym`, чтобы искать запрошенный символ как в указанном DSO, так и в его неявных зависимостях." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5640 +#, no-wrap +msgid "700023" +msgstr "700023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5641 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/162588[162588]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/162588[162588]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5642 +#, no-wrap +msgid "September 23, 2006" +msgstr "23 сентября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5644 +#, no-wrap +msgid "7.0-CURRENT after adding new sound IOCTLs for the OSSv4 mixer API." +msgstr "7.0-CURRENT после добавления новых звуковых IOCTL для API микшера OSSv4." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5645 +#, no-wrap +msgid "700024" +msgstr "700024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5646 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/162919[162919]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/162919[162919]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5647 +#, no-wrap +msgid "September 28, 2006" +msgstr "28 сентября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5649 +#, no-wrap +msgid "7.0-CURRENT after import of OpenSSL 0.9.8d." +msgstr "7.0-CURRENT после импорта OpenSSL 0.9.8d." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5650 +#, no-wrap +msgid "700025" +msgstr "700025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5651 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/164190[164190]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/164190[164190]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5652 +#, no-wrap +msgid "November 11, 2006" +msgstr "11 ноября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5654 +#, no-wrap +msgid "7.0-CURRENT after the addition of libelf." +msgstr "7.0-CURRENT после добавления libelf." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5655 +#, no-wrap +msgid "700026" +msgstr "700026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5656 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/164614[164614]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/164614[164614]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5657 +#, no-wrap +msgid "November 26, 2006" +msgstr "26 ноября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5659 +#, no-wrap +msgid "7.0-CURRENT after major changes on sound sysctls." +msgstr "7.0-CURRENT после значительных изменений в звуковых sysctls." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5660 +#, no-wrap +msgid "700027" +msgstr "700027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5661 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/164770[164770]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/164770[164770]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5662 +#, no-wrap +msgid "November 30, 2006" +msgstr "30 ноября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5664 +#, no-wrap +msgid "7.0-CURRENT after the addition of Wi-Spy quirk." +msgstr "7.0-CURRENT после добавления особенности Wi-Spy." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5665 +#, no-wrap +msgid "700028" +msgstr "700028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5666 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/165242[165242]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/165242[165242]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5667 +#, no-wrap +msgid "December 15, 2006" +msgstr "15 декабря 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5669 +#, no-wrap +msgid "7.0-CURRENT after the addition of `sctp` calls to libc" +msgstr "7.0-CURRENT после добавления вызовов `sctp` в libc" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5670 +#, no-wrap +msgid "700029" +msgstr "700029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5671 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/166259[166259]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/166259[166259]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5672 +#, no-wrap +msgid "January 26, 2007" +msgstr "26 января 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5674 +#, no-wrap +msgid "7.0-CURRENT after the GNU man:gzip[1] implementation was replaced with a BSD licensed version ported from NetBSD." +msgstr "7.0-CURRENT после того, как реализация GNU man:gzip[1] была заменена на версию с лицензией BSD, портированную из NetBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5675 +#, no-wrap +msgid "700030" +msgstr "700030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5676 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/166549[166549]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/166549[166549]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5677 +#, no-wrap +msgid "February 7, 2007" +msgstr "7 февраля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5679 +#, no-wrap +msgid "7.0-CURRENT after the removal of IPIP tunnel encapsulation (VIFF_TUNNEL) from the IPv4 multicast forwarding code." +msgstr "7.0-CURRENT после удаления инкапсуляции туннеля IPIP (VIFF_TUNNEL) из кода переадресации IPv4 multicast." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5680 +#, no-wrap +msgid "700031" +msgstr "700031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5681 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/166907[166907]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/166907[166907]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5682 +#, no-wrap +msgid "February 23, 2007" +msgstr "23 февраля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5684 +#, no-wrap +msgid "7.0-CURRENT after the modification of `bus_setup_intr()` (newbus)." +msgstr "7.0-CURRENT после изменения `bus_setup_intr()` (newbus)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5685 +#, no-wrap +msgid "700032" +msgstr "700032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5686 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/167165[167165]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/167165[167165]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5687 +#, no-wrap +msgid "March 2, 2007" +msgstr "2 марта 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5689 +#, no-wrap +msgid "7.0-CURRENT after the inclusion of man:ipw[4] and man:iwi[4] firmware." +msgstr "7.0-CURRENT после включения firmware для man:ipw[4] и man:iwi[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5690 +#, no-wrap +msgid "700033" +msgstr "700033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5691 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/167360[167360]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/167360[167360]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5692 +#, no-wrap +msgid "March 9, 2007" +msgstr "9 марта 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5694 +#, no-wrap +msgid "7.0-CURRENT after the inclusion of ncurses wide character support." +msgstr "7.0-CURRENT после включения поддержки широких символов ncurses." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5695 +#, no-wrap +msgid "700034" +msgstr "700034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5696 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/167684[167684]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/167684[167684]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5697 +#, no-wrap +msgid "March 19, 2007" +msgstr "19 марта 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5699 +#, no-wrap +msgid "7.0-CURRENT after changes to how `insmntque()`, `getnewvnode()`, and `vfs_hash_insert()` work." +msgstr "7.0-CURRENT после изменений в работе `insmntque()`, `getnewvnode()` и `vfs_hash_insert()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5700 +#, no-wrap +msgid "700035" +msgstr "700035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5701 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/167906[167906]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/167906[167906]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5702 +#, no-wrap +msgid "March 26, 2007" +msgstr "26 марта 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5704 +#, no-wrap +msgid "7.0-CURRENT after addition of a notify mechanism for CPU frequency changes." +msgstr "7.0-CURRENT после добавления механизма уведомлений об изменениях частоты CPU." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5705 +#, no-wrap +msgid "700036" +msgstr "700036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5706 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/168413[168413]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/168413[168413]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5707 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6275 +#, no-wrap +msgid "April 6, 2007" +msgstr "6 апреля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5709 +#, no-wrap +msgid "7.0-CURRENT after import of the ZFS filesystem." +msgstr "7.0-CURRENT после импорта файловой системы ZFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5710 +#, no-wrap +msgid "700037" +msgstr "700037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5711 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/168504[168504]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/168504[168504]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5712 +#, no-wrap +msgid "April 8, 2007" +msgstr "8 апреля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5714 +#, no-wrap +msgid "7.0-CURRENT after addition of CAM 'SG' peripheral device, which implements a subset of Linux SCSI SG passthrough device API." +msgstr "7.0-CURRENT после добавления периферийного устройства CAM 'SG', реализующего подмножество API сквозного устройства SCSI SG в Linux." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5715 +#, no-wrap +msgid "700038" +msgstr "700038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5716 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/169151[169151]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/169151[169151]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5717 +#, no-wrap +msgid "April 30, 2007" +msgstr "30 апреля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5719 +#, no-wrap +msgid "7.0-CURRENT after changing man:getenv[3], man:putenv[3], man:setenv[3] and man:unsetenv[3] to be POSIX conformant." +msgstr "7.0-CURRENT после изменения man:getenv[3], man:putenv[3], man:setenv[3] и man:unsetenv[3] для соответствия стандарту POSIX." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5720 +#, no-wrap +msgid "700039" +msgstr "700039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5721 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/169190[169190]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/169190[169190]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5722 +#, no-wrap +msgid "May 1, 2007" +msgstr "1 мая 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5724 +#, no-wrap +msgid "7.0-CURRENT after the changes in 700038 were backed out." +msgstr "7.0-CURRENT после отмены изменений в 700038." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5725 +#, no-wrap +msgid "700040" +msgstr "700040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5726 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/169453[169453]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/169453[169453]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5727 +#, no-wrap +msgid "May 10, 2007" +msgstr "10 мая 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5729 +#, no-wrap +msgid "7.0-CURRENT after the addition of man:flopen[3] to libutil." +msgstr "7.0-CURRENT после добавления man:flopen[3] в libutil." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5730 +#, no-wrap +msgid "700041" +msgstr "700041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5731 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/169526[169526]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/169526[169526]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5732 +#, no-wrap +msgid "May 13, 2007" +msgstr "13 мая 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5734 +#, no-wrap +msgid "7.0-CURRENT after enabling symbol versioning, and changing the default thread library to libthr." +msgstr "7.0-CURRENT после включения версионирования символов и изменения библиотеки потоков по умолчанию на libthr." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5735 +#, no-wrap +msgid "700042" +msgstr "700042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5736 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/169758[169758]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/169758[169758]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5737 +#, no-wrap +msgid "May 19, 2007" +msgstr "19 мая 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5739 +#, no-wrap +msgid "7.0-CURRENT after the import of gcc 4.2.0." +msgstr "7.0-CURRENT после импорта gcc 4.2.0." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5740 +#, no-wrap +msgid "700043" +msgstr "700043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5741 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/169830[169830]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/169830[169830]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5742 +#, no-wrap +msgid "May 21, 2007" +msgstr "21 мая 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5744 +#, no-wrap +msgid "7.0-CURRENT after bump of all shared library versions that had not been changed since RELENG_6." +msgstr "7.0-CURRENT после увеличения версий всех общих библиотек, которые не изменялись с RELENG_6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5745 +#, no-wrap +msgid "700044" +msgstr "700044" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5746 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/170395[170395]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/170395[170395]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5747 +#, no-wrap +msgid "June 7, 2007" +msgstr "7 июня 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5749 +#, no-wrap +msgid "7.0-CURRENT after changing the argument for `vn_open()`/`VOP_OPEN()` from file descriptor index to the struct file *." +msgstr "7.0-CURRENT после изменения аргумента для `vn_open()`/`VOP_OPEN()` с индекса файлового дескриптора на указатель на структуру file *." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5750 +#, no-wrap +msgid "700045" +msgstr "700045" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5751 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/170510[170510]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/170510[170510]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5752 +#, no-wrap +msgid "June 10, 2007" +msgstr "10 июня 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5754 +#, no-wrap +msgid "7.0-CURRENT after changing man:pam_nologin[8] to provide an account management function instead of an authentication function to the PAM framework." +msgstr "7.0-CURRENT после изменения man:pam_nologin[8] для предоставления функции управления учетными записями вместо функции аутентификации в рамках PAM." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5755 +#, no-wrap +msgid "700046" +msgstr "700046" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5756 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/170530[170530]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/170530[170530]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5757 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5762 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6295 +#, no-wrap +msgid "June 11, 2007" +msgstr "11 июня 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5759 +#, no-wrap +msgid "7.0-CURRENT after updated 802.11 wireless support." +msgstr "7.0-CURRENT после обновления поддержки беспроводных сетей 802.11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5760 +#, no-wrap +msgid "700047" +msgstr "700047" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5761 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/170579[170579]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/170579[170579]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5764 +#, no-wrap +msgid "7.0-CURRENT after adding TCP LRO interface capabilities." +msgstr "7.0-CURRENT после добавления возможностей интерфейса TCP LRO." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5765 +#, no-wrap +msgid "700048" +msgstr "700048" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5766 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/170613[170613]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/170613[170613]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5767 +#, no-wrap +msgid "June 12, 2007" +msgstr "12 июня 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5769 +#, no-wrap +msgid "7.0-CURRENT after RFC 3678 API support added to the IPv4 stack. Legacy RFC 1724 behavior of the IP_MULTICAST_IF ioctl has now been removed; 0.0.0.0/8 may no longer be used to specify an interface index. Use struct `ipmreqn` instead." +msgstr "7.0-CURRENT после добавления поддержки API RFC 3678 в стек IPv4. Устаревшее поведение RFC 1724 для ioctl IP_MULTICAST_IF теперь удалено; 0.0.0.0/8 больше нельзя использовать для указания индекса интерфейса. Вместо этого используйте структуру `ipmreqn`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5770 +#, no-wrap +msgid "700049" +msgstr "700049" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5771 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/171175[171175]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/171175[171175]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5772 +#, no-wrap +msgid "July 3, 2007" +msgstr "3 июля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5774 +#, no-wrap +msgid "7.0-CURRENT after importing pf from OpenBSD 4.1" +msgstr "7.0-CURRENT после импорта pf из OpenBSD 4.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5776 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/171167[171167]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/171167[171167]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5779 +#, no-wrap +msgid "7.0-CURRENT after adding IPv6 support for FAST_IPSEC, deleting KAME IPSEC, and renaming FAST_IPSEC to IPSEC." +msgstr "7.0-CURRENT после добавления поддержки IPv6 для FAST_IPSEC, удаления KAME IPSEC и переименования FAST_IPSEC в IPSEC." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5780 +#, no-wrap +msgid "700050" +msgstr "700050" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5781 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/171195[171195]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/171195[171195]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5782 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5787 +#, no-wrap +msgid "July 4, 2007" +msgstr "4 июля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5784 +#, no-wrap +msgid "7.0-CURRENT after converting setenv/putenv/etc. calls from traditional BSD to POSIX." +msgstr "7.0-CURRENT после преобразования вызовов setenv/putenv/etc. из традиционного BSD в POSIX." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5785 +#, no-wrap +msgid "700051" +msgstr "700051" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5786 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/171211[171211]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/171211[171211]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5789 +#, no-wrap +msgid "7.0-CURRENT after adding new mmap/lseek/etc syscalls." +msgstr "7.0-CURRENT после добавления новых системных вызовов mmap/lseek и др." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5790 +#, no-wrap +msgid "700052" +msgstr "700052" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5791 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/171275[171275]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/171275[171275]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5792 +#, no-wrap +msgid "July 6, 2007" +msgstr "6 июля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5794 +#, no-wrap +msgid "7.0-CURRENT after moving I4B headers to include/i4b." +msgstr "7.0-CURRENT после перемещения заголовков I4B в include/i4b." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5795 +#, no-wrap +msgid "700053" +msgstr "700053" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5796 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172394[172394]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172394[172394]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5797 +#, no-wrap +msgid "September 30, 2007" +msgstr "30 сентября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5799 +#, no-wrap +msgid "7.0-CURRENT after the addition of support for PCI domains" +msgstr "7.0-CURRENT после добавления поддержки доменов PCI" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5800 +#, no-wrap +msgid "700054" +msgstr "700054" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5801 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172988[172988]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172988[172988]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5802 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6305 +#, no-wrap +msgid "October 25, 2007" +msgstr "25 октября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5804 +#, no-wrap +msgid "7.0-STABLE after MFC of wide and single byte ctype separation." +msgstr "7.0-STABLE после переноса изменений (MFC) разделения широких и однобайтовых ctype." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5805 +#, no-wrap +msgid "700055" +msgstr "700055" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5806 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/173104[173104]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/173104[173104]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5807 +#, no-wrap +msgid "October 28, 2007" +msgstr "28 октября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5809 +#, no-wrap +msgid "7.0-RELEASE, and 7.0-CURRENT after ABI backwards compatibility to the FreeBSD 4/5/6 versions of the PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs was MFCed, which required the ABI of the PCIOCGETCONF IOCTL to be broken again" +msgstr "7.0-RELEASE и 7.0-CURRENT после того, как обратная совместимость ABI с версиями FreeBSD 4/5/6 для IOCTL PCIOCGETCONF, PCIOCREAD и PCIOCWRITE была перенесена в стабильную ветку (MFC), что потребовало снова нарушить ABI IOCTL PCIOCGETCONF" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5810 +#, no-wrap +msgid "700100" +msgstr "700100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5811 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/174864[174864]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/174864[174864]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5812 +#, no-wrap +msgid "December 22, 2007" +msgstr "22 декабря 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5814 +#, no-wrap +msgid "7.0-STABLE after 7.0-RELEASE" +msgstr "7.0-STABLE после 7.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5815 +#, no-wrap +msgid "700101" +msgstr "700101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5816 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/176111[176111]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/176111[176111]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5819 +#, no-wrap +msgid "7.0-STABLE after the MFC of `m_collapse()`." +msgstr "7.0-STABLE после MFC `m_collapse()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5820 +#, no-wrap +msgid "700102" +msgstr "700102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5821 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/177735[177735]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/177735[177735]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5822 +#, no-wrap +msgid "March 30, 2008" +msgstr "30 марта 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5824 +#, no-wrap +msgid "7.0-STABLE after the MFC of `kdb_enter_why()`." +msgstr "7.0-STABLE после MFC `kdb_enter_why()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5825 +#, no-wrap +msgid "700103" +msgstr "700103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5826 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178061[178061]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178061[178061]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5829 +#, no-wrap +msgid "7.0-STABLE after adding `l_sysid` to struct flock." +msgstr "7.0-STABLE после добавления `l_sysid` в структуру flock." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5830 +#, no-wrap +msgid "700104" +msgstr "700104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5831 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178108[178108]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178108[178108]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5832 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5837 +#, no-wrap +msgid "April 11, 2008" +msgstr "11 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5834 +#, no-wrap +msgid "7.0-STABLE after the MFC of man:procstat[1]." +msgstr "7.0-STABLE после MFC man:procstat[1]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5835 +#, no-wrap +msgid "700105" +msgstr "700105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5836 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178120[178120]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178120[178120]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5839 +#, no-wrap +msgid "7.0-STABLE after the MFC of `umtx` features." +msgstr "7.0-STABLE после MFC функций `umtx`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5840 +#, no-wrap +msgid "700106" +msgstr "700106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5841 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178225[178225]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178225[178225]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5842 +#, no-wrap +msgid "April 15, 2008" +msgstr "15 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5844 +#, no-wrap +msgid "7.0-STABLE after the MFC of man:write[2] support to man:psm[4]." +msgstr "7.0-STABLE после MFC поддержки man:write[2] в man:psm[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5845 +#, no-wrap +msgid "700107" +msgstr "700107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5846 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178353[178353]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178353[178353]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5849 +#, no-wrap +msgid "7.0-STABLE after the MFC of F_DUP2FD command to man:fcntl[2]." +msgstr "7.0-STABLE после MFC команды F_DUP2FD в man:fcntl[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5850 +#, no-wrap +msgid "700108" +msgstr "700108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5851 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178783[178783]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178783[178783]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5852 +#, no-wrap +msgid "May 5, 2008" +msgstr "5 мая 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5854 +#, no-wrap +msgid "7.0-STABLE after some man:lockmgr[9] changes, which makes it necessary to include [.filename]#sys/lock.h# to use man:lockmgr[9]." +msgstr "7.0-STABLE после некоторых изменений в man:lockmgr[9], что делает необходимым включение [.filename]#sys/lock.h# для использования man:lockmgr[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5855 +#, no-wrap +msgid "700109" +msgstr "700109" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5856 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6339 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/179367[179367]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/179367[179367]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5857 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6340 +#, no-wrap +msgid "May 27, 2008" +msgstr "27 мая 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5859 +#, no-wrap +msgid "7.0-STABLE after MFC of the man:memrchr[3] function." +msgstr "7.0-STABLE после MFC функции man:memrchr[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5860 +#, no-wrap +msgid "700110" +msgstr "700110" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5861 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/181328[181328]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/181328[181328]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5862 +#, no-wrap +msgid "August 5, 2008" +msgstr "5 августа 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5864 +#, no-wrap +msgid "7.0-STABLE after MFC of kernel NFS `lockd` client." +msgstr "7.0-STABLE после MFC клиента `lockd` ядра NFS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5865 +#, no-wrap +msgid "700111" +msgstr "700111" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5866 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/181940[181940]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/181940[181940]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5869 +#, no-wrap +msgid "7.0-STABLE after addition of physically contiguous jumbo frame support." +msgstr "7.0-STABLE после добавления поддержки физически непрерывных больших кадров (jumbo frame)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5870 +#, no-wrap +msgid "700112" +msgstr "700112" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5871 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/182294[182294]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/182294[182294]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5872 +#, no-wrap +msgid "August 27, 2008" +msgstr "27 августа 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5874 +#, no-wrap +msgid "7.0-STABLE after MFC of kernel DTrace support." +msgstr "7.0-STABLE после переноса изменений (MFC) поддержки DTrace в ядре." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5875 +#, no-wrap +msgid "701000" +msgstr "701000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5876 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/185315[185315]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/185315[185315]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5877 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5882 +#, no-wrap +msgid "November 25, 2008" +msgstr "25 ноября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5879 +#, no-wrap +msgid "7.1-RELEASE" +msgstr "7.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5880 +#, no-wrap +msgid "701100" +msgstr "701100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5881 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/185302[185302]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/185302[185302]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5884 +#, no-wrap +msgid "7.1-STABLE after 7.1-RELEASE." +msgstr "7.1-STABLE после 7.1-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5885 +#, no-wrap +msgid "701101" +msgstr "701101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5886 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/187023[187023]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/187023[187023]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5887 +#, no-wrap +msgid "January 10, 2009" +msgstr "10 января 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5889 +#, no-wrap +msgid "7.1-STABLE after man:strndup[3] merge." +msgstr "7.1-STABLE после слияния man:strndup[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5890 +#, no-wrap +msgid "701102" +msgstr "701102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5891 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/187370[187370]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/187370[187370]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5892 +#, no-wrap +msgid "January 17, 2009" +msgstr "17 января 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5894 +#, no-wrap +msgid "7.1-STABLE after man:cpuctl[4] support added." +msgstr "7.1-STABLE после добавления поддержки man:cpuctl[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5895 +#, no-wrap +msgid "701103" +msgstr "701103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5896 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/188281[188281]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/188281[188281]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5897 +#, no-wrap +msgid "February 7, 2009" +msgstr "7 февраля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5899 +#, no-wrap +msgid "7.1-STABLE after the merge of multi-/no-IPv4/v6 jails." +msgstr "7.1-STABLE после объединения клеток с поддержкой multi-/no-IPv4/v6." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5900 +#, no-wrap +msgid "701104" +msgstr "701104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5901 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/188625[188625]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/188625[188625]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5902 +#, no-wrap +msgid "February 14, 2009" +msgstr "14 февраля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5904 +#, no-wrap +msgid "7.1-STABLE after the store of the suspension owner in the struct mount, and introduction of vfs_susp_clean method into the struct vfsops." +msgstr "7.1-STABLE после сохранения владельца приостановки в структуре mount и добавления метода vfs_susp_clean в структуру vfsops." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5905 +#, no-wrap +msgid "701105" +msgstr "701105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5906 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189740[189740]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189740[189740]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5907 +#, no-wrap +msgid "March 12, 2009" +msgstr "12 марта 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5909 +#, no-wrap +msgid "7.1-STABLE after the incompatible change to the kern.ipc.shmsegs sysctl to allow allocating larger SysV shared memory segments on 64bit architectures." +msgstr "7.1-STABLE после несовместимого изменения sysctl kern.ipc.shmsegs для выделения больших сегментов разделяемой памяти SysV на 64-битных архитектурах." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5910 +#, no-wrap +msgid "701106" +msgstr "701106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5911 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/189786[189786]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/189786[189786]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5914 +#, no-wrap +msgid "7.1-STABLE after the merge of a fix for POSIX semaphore wait operations." +msgstr "7.1-STABLE после объединения исправления для операций ожидания семафоров POSIX." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5915 +#, no-wrap +msgid "702000" +msgstr "702000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5916 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191099[191099]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191099[191099]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5919 +#, no-wrap +msgid "7.2-RELEASE" +msgstr "7.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5920 +#, no-wrap +msgid "702100" +msgstr "702100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5921 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/191091[191091]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/191091[191091]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5924 +#, no-wrap +msgid "7.2-STABLE after 7.2-RELEASE." +msgstr "7.2-STABLE после 7.2-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5925 +#, no-wrap +msgid "702101" +msgstr "702101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5926 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/192149[192149]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/192149[192149]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5927 +#, no-wrap +msgid "May 15, 2009" +msgstr "15 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5929 +#, no-wrap +msgid "7.2-STABLE after man:ichsmb[4] was changed to use left-adjusted secondary addressing to match other SMBus controller drivers." +msgstr "7.2-STABLE после изменения man:ichsmb[4] для использования выравнивания по левому краю вторичной адресации, чтобы соответствовать другим драйверам контроллеров SMBus." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5930 +#, no-wrap +msgid "702102" +msgstr "702102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5931 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193020[193020]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193020[193020]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5932 +#, no-wrap +msgid "May 28, 2009" +msgstr "28 мая 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5934 +#, no-wrap +msgid "7.2-STABLE after MFC of the man:fdopendir[3] function." +msgstr "7.2-STABLE после слияния из ветки man функции fdopendir[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5935 +#, no-wrap +msgid "702103" +msgstr "702103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5936 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/193638[193638]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/193638[193638]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5937 +#, no-wrap +msgid "June 6, 2009" +msgstr "6 июня 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5939 +#, no-wrap +msgid "7.2-STABLE after MFC of PmcTools." +msgstr "7.2-STABLE после MFC PmcTools." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5940 +#, no-wrap +msgid "702104" +msgstr "702104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5941 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/195694[195694]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/195694[195694]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5944 +#, no-wrap +msgid "7.2-STABLE after MFC of the man:closefrom[2] system call." +msgstr "7.2-STABLE после MFC системного вызова man:closefrom[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5945 +#, no-wrap +msgid "702105" +msgstr "702105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5946 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/196006[196006]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/196006[196006]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5947 +#, no-wrap +msgid "July 31, 2009" +msgstr "31 июля 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5949 +#, no-wrap +msgid "7.2-STABLE after MFC of the SYSVIPC ABI change." +msgstr "7.2-STABLE после слияния изменения ABI SYSVIPC." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5950 +#, no-wrap +msgid "702106" +msgstr "702106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5951 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/197198[197198]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/197198[197198]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5952 +#, no-wrap +msgid "September 14, 2009" +msgstr "14 сентября 2009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5954 +#, no-wrap +msgid "7.2-STABLE after MFC of the x86 PAT enhancements and addition of `d_mmap_single()` and the scatter/gather list VM object type." +msgstr "7.2-STABLE после слияния изменений (MFC) улучшений PAT для x86 и добавления `d_mmap_single()` и типа объекта VM со списком scatter/gather." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5955 +#, no-wrap +msgid "703000" +msgstr "703000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5956 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/203740[203740]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/203740[203740]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5957 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5962 +#, no-wrap +msgid "February 9, 2010" +msgstr "9 февраля 2010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5959 +#, no-wrap +msgid "7.3-RELEASE" +msgstr "7.3-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5960 +#, no-wrap +msgid "703100" +msgstr "703100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5961 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/203742[203742]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/203742[203742]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5964 +#, no-wrap +msgid "7.3-STABLE after 7.3-RELEASE." +msgstr "7.3-STABLE после 7.3-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5965 +#, no-wrap +msgid "704000" +msgstr "704000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5966 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216647[216647]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216647[216647]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5969 +#, no-wrap +msgid "7.4-RELEASE" +msgstr "7.4-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5970 +#, no-wrap +msgid "704100" +msgstr "704100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5971 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/216658[216658]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/216658[216658]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5974 +#, no-wrap +msgid "7.4-STABLE after 7.4-RELEASE." +msgstr "7.4-STABLE после 7.4-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5975 +#, no-wrap +msgid "704101" +msgstr "704101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5976 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/221318[221318]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/221318[221318]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5977 +#, no-wrap +msgid "May 2, 2011" +msgstr "2 мая 2011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5978 +#, no-wrap +msgid "7.4-STABLE after the gcc MFC in rev link:https://svnweb.freebsd.org/changeset/base/221317[221317]." +msgstr "7.4-STABLE после MFC gcc в ревизии link:https://svnweb.freebsd.org/changeset/base/221317[221317]." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5981 +#, no-wrap +msgid "FreeBSD 6 Versions" +msgstr "Версии FreeBSD 6" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5984 +#, no-wrap +msgid "FreeBSD 6 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5993 +#, no-wrap +msgid "600000" +msgstr "600000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5994 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/133921[133921]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/133921[133921]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5995 +#, no-wrap +msgid "August 18, 2004" +msgstr "18 августа 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5997 +#, no-wrap +msgid "6.0-CURRENT" +msgstr "6.0-CURRENT" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5998 +#, no-wrap +msgid "600001" +msgstr "600001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:5999 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/134396[134396]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/134396[134396]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6000 +#, no-wrap +msgid "August 27, 2004" +msgstr "27 августа 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6002 +#, no-wrap +msgid "6.0-CURRENT after permanently enabling PFIL_HOOKS in the kernel." +msgstr "6.0-CURRENT после постоянного включения PFIL_HOOKS в ядре." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6003 +#, no-wrap +msgid "600002" +msgstr "600002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6004 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/134514[134514]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/134514[134514]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6005 +#, no-wrap +msgid "August 30, 2004" +msgstr "30 августа 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6007 +#, no-wrap +msgid "6.0-CURRENT after initial addition of `ifi_epoch` to struct `if_data`. Backed out after a few days. Do not use this value." +msgstr "6.0-CURRENT после первоначального добавления `ifi_epoch` в структуру `if_data`. Отменено через несколько дней. Не используйте это значение." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6008 +#, no-wrap +msgid "600003" +msgstr "600003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6009 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/134933[134933]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/134933[134933]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6010 +#, no-wrap +msgid "September 8, 2004" +msgstr "8 сентября 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6012 +#, no-wrap +msgid "6.0-CURRENT after the re-addition of the `ifi_epoch` member of struct `if_data`." +msgstr "6.0-CURRENT после повторного добавления члена `ifi_epoch` в структуру `if_data`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6013 +#, no-wrap +msgid "600004" +msgstr "600004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6014 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/135920[135920]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/135920[135920]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6015 +#, no-wrap +msgid "September 29, 2004" +msgstr "29 сентября 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6017 +#, no-wrap +msgid "6.0-CURRENT after addition of the struct inpcb argument to the pfil API." +msgstr "6.0-CURRENT после добавления аргумента struct inpcb в API pfil." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6018 +#, no-wrap +msgid "600005" +msgstr "600005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6019 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/136172[136172]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/136172[136172]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6020 +#, no-wrap +msgid "October 5, 2004" +msgstr "5 октября 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6022 +#, no-wrap +msgid "6.0-CURRENT after addition of the \"-d DESTDIR\" argument to newsyslog." +msgstr "6.0-CURRENT после добавления аргумента \"-d DESTDIR\" в newsyslog." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6023 +#, no-wrap +msgid "600006" +msgstr "600006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6024 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/137192[137192]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/137192[137192]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6025 +#, no-wrap +msgid "November 4, 2004" +msgstr "4 ноября 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6027 +#, no-wrap +msgid "6.0-CURRENT after addition of glibc style man:strftime[3] padding options." +msgstr "6.0-CURRENT после добавления опций заполнения в стиле glibc для man:strftime[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6028 +#, no-wrap +msgid "600007" +msgstr "600007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6029 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/138760[138760]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/138760[138760]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6030 +#, no-wrap +msgid "December 12, 2004" +msgstr "12 декабря 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6032 +#, no-wrap +msgid "6.0-CURRENT after addition of 802.11 framework updates." +msgstr "6.0-CURRENT после добавления обновлений для фреймворка 802.11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6033 +#, no-wrap +msgid "600008" +msgstr "600008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6034 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/140809[140809]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/140809[140809]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6035 +#, no-wrap +msgid "January 25, 2005" +msgstr "25 января 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6037 +#, no-wrap +msgid "6.0-CURRENT after changes to `VOP_*VOBJECT()` functions and introduction of `MNTK_MPSAFE` flag for Giant-free filesystems." +msgstr "6.0-CURRENT после изменений в функциях `VOP_*VOBJECT()` и введения флага `MNTK_MPSAFE` для файловых систем, работающих без Giant." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6038 +#, no-wrap +msgid "600009" +msgstr "600009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6039 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/141250[141250]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/141250[141250]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6040 +#, no-wrap +msgid "February 4, 2005" +msgstr "4 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6042 +#, no-wrap +msgid "6.0-CURRENT after addition of the cpufreq framework and drivers." +msgstr "6.0-CURRENT после добавления фреймворка cpufreq и драйверов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6043 +#, no-wrap +msgid "600010" +msgstr "600010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6044 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/141394[141394]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/141394[141394]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6045 +#, no-wrap +msgid "February 6, 2005" +msgstr "6 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6047 +#, no-wrap +msgid "6.0-CURRENT after importing OpenBSD's man:nc[1]." +msgstr "6.0-CURRENT после импорта man:nc[1] из OpenBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6048 +#, no-wrap +msgid "600011" +msgstr "600011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6049 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/141727[141727]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/141727[141727]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6050 +#, no-wrap +msgid "February 12, 2005" +msgstr "12 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6052 +#, no-wrap +msgid "6.0-CURRENT after removing semblance of SVID2 `matherr()` support." +msgstr "6.0-CURRENT после удаления подобия поддержки `matherr()` из SVID2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6053 +#, no-wrap +msgid "600012" +msgstr "600012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6054 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/141940[141940]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/141940[141940]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6055 +#, no-wrap +msgid "February 15, 2005" +msgstr "15 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6057 +#, no-wrap +msgid "6.0-CURRENT after increase of default thread stacks' size." +msgstr "6.0-CURRENT после увеличения размера стеков потоков по умолчанию." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6058 +#, no-wrap +msgid "600013" +msgstr "600013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6059 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142089[142089]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142089[142089]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6060 +#, no-wrap +msgid "February 19, 2005" +msgstr "19 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6062 +#, no-wrap +msgid "6.0-CURRENT after fixes in [.filename]## and [.filename]## for using the GCC-compatibility of the Intel C/C++ compiler." +msgstr "6.0-CURRENT после исправлений в [.filename]## и [.filename]## для обеспечения совместимости с GCC компилятора Intel C/C++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6063 +#, no-wrap +msgid "600014" +msgstr "600014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6064 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142184[142184]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142184[142184]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6065 +#, no-wrap +msgid "February 21, 2005" +msgstr "21 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6067 +#, no-wrap +msgid "6.0-CURRENT after EOVERFLOW checks in man:vswprintf[3] fixed." +msgstr "6.0-CURRENT после исправления проверок EOVERFLOW в man:vswprintf[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6068 +#, no-wrap +msgid "600015" +msgstr "600015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6069 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142501[142501]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142501[142501]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6070 +#, no-wrap +msgid "February 25, 2005" +msgstr "25 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6072 +#, no-wrap +msgid "6.0-CURRENT after changing the struct `if_data` member, `ifi_epoch`, from wall clock time to uptime." +msgstr "6.0-CURRENT после изменения члена структуры `if_data`, `ifi_epoch`, с времени настенных часов на время работы системы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6073 +#, no-wrap +msgid "600016" +msgstr "600016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6074 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142582[142582]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142582[142582]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6075 +#, no-wrap +msgid "February 26, 2005" +msgstr "26 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6077 +#, no-wrap +msgid "6.0-CURRENT after LC_CTYPE disk format changed." +msgstr "6.0-CURRENT после изменения формата диска LC_CTYPE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6078 +#, no-wrap +msgid "600017" +msgstr "600017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6079 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142683[142683]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142683[142683]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6080 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6085 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6928 +#, no-wrap +msgid "February 27, 2005" +msgstr "27 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6082 +#, no-wrap +msgid "6.0-CURRENT after NLS catalogs disk format changed." +msgstr "6.0-CURRENT после изменения формата диска каталогов NLS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6083 +#, no-wrap +msgid "600018" +msgstr "600018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6084 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142686[142686]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142686[142686]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6087 +#, no-wrap +msgid "6.0-CURRENT after LC_COLLATE disk format changed." +msgstr "6.0-CURRENT после изменения формата диска LC_COLLATE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6088 +#, no-wrap +msgid "600019" +msgstr "600019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6089 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142752[142752]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142752[142752]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6090 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6933 +#, no-wrap +msgid "February 28, 2005" +msgstr "28 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6092 +#, no-wrap +msgid "Installation of `acpica` includes into /usr/include." +msgstr "Установка `acpica` включает файлы в /usr/include." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6093 +#, no-wrap +msgid "600020" +msgstr "600020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6094 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/143308[143308]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/143308[143308]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6095 +#, no-wrap +msgid "March 9, 2005" +msgstr "9 марта 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6097 +#, no-wrap +msgid "Addition of MSG_NOSIGNAL flag to man:send[2] API." +msgstr "Добавление флага MSG_NOSIGNAL в API man:send[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6098 +#, no-wrap +msgid "600021" +msgstr "600021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6099 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/143746[143746]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/143746[143746]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6100 +#, no-wrap +msgid "March 17, 2005" +msgstr "17 марта 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6102 +#, no-wrap +msgid "Addition of fields to cdevsw" +msgstr "Добавление полей в cdevsw" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6103 +#, no-wrap +msgid "600022" +msgstr "600022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6104 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/143901[143901]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/143901[143901]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6105 +#, no-wrap +msgid "March 21, 2005" +msgstr "21 марта 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6107 +#, no-wrap +msgid "Removed gtar from base system." +msgstr "Удален gtar из базовой системы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6108 +#, no-wrap +msgid "600023" +msgstr "600023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6109 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/144980[144980]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/144980[144980]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6110 +#, no-wrap +msgid "April 13, 2005" +msgstr "13 апреля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6112 +#, no-wrap +msgid "LOCAL_CREDS, LOCAL_CONNWAIT socket options added to man:unix[4]." +msgstr "Добавлены параметры сокета LOCAL_CREDS, LOCAL_CONNWAIT в man:unix[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6113 +#, no-wrap +msgid "600024" +msgstr "600024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6114 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6119 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/145565[145565]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/145565[145565]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6115 +#, no-wrap +msgid "April 19, 2005" +msgstr "19 апреля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6117 +#, no-wrap +msgid "man:hwpmc[4] and related tools added to 6.0-CURRENT." +msgstr "man:hwpmc[4] и связанные инструменты добавлены в 6.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6118 +#, no-wrap +msgid "600025" +msgstr "600025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6120 +#, no-wrap +msgid "April 26, 2005" +msgstr "26 апреля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6122 +#, no-wrap +msgid "struct `icmphdr` added to 6.0-CURRENT." +msgstr "Структура `icmphdr` добавлена в 6.0-CURRENT." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6123 +#, no-wrap +msgid "600026" +msgstr "600026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6124 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/145843[145843]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/145843[145843]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6125 +#, no-wrap +msgid "May 3, 2005" +msgstr "3 мая 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6127 +#, no-wrap +msgid "pf updated to 3.7." +msgstr "pf обновлен до версии 3.7." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6128 +#, no-wrap +msgid "600027" +msgstr "600027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6129 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/145966[145966]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/145966[145966]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6130 +#, no-wrap +msgid "May 6, 2005" +msgstr "6 мая 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6132 +#, no-wrap +msgid "Kernel libalias and `ng_nat` introduced." +msgstr "Добавлены libalias в ядре и `ng_nat`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6133 +#, no-wrap +msgid "600028" +msgstr "600028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6134 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/146191[146191]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/146191[146191]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6135 +#, no-wrap +msgid "May 13, 2005" +msgstr "13 мая 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6137 +#, no-wrap +msgid "POSIX man:ttyname_r[3] made available through unistd.h and libc." +msgstr "POSIX man:ttyname_r[3], доступный через unistd.h и libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6138 +#, no-wrap +msgid "600029" +msgstr "600029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6139 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/146780[146780]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/146780[146780]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6140 +#, no-wrap +msgid "May 29, 2005" +msgstr "29 мая 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6142 +#, no-wrap +msgid "6.0-CURRENT after libpcap updated to v0.9.1 alpha 096." +msgstr "6.0-CURRENT после обновления libpcap до v0.9.1 alpha 096." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6143 +#, no-wrap +msgid "600030" +msgstr "600030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6144 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/146988[146988]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/146988[146988]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6145 +#, no-wrap +msgid "June 5, 2005" +msgstr "5 июня 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6147 +#, no-wrap +msgid "6.0-CURRENT after importing NetBSD's man:if_bridge[4]." +msgstr "6.0-CURRENT после импорта man:if_bridge[4] из NetBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6148 +#, no-wrap +msgid "600031" +msgstr "600031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6149 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/147256[147256]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/147256[147256]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6150 +#, no-wrap +msgid "June 10, 2005" +msgstr "10 июня 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6152 +#, no-wrap +msgid "6.0-CURRENT after struct ifnet was broken out of the driver `softcs`." +msgstr "6.0-CURRENT после того, как структура ifnet была вынесена из `softcs` драйвера." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6153 +#, no-wrap +msgid "600032" +msgstr "600032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6154 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/147898[147898]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/147898[147898]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6157 +#, no-wrap +msgid "6.0-CURRENT after the import of libpcap v0.9.1." +msgstr "6.0-CURRENT после импорта libpcap v0.9.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6158 +#, no-wrap +msgid "600033" +msgstr "600033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6159 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/148388[148388]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/148388[148388]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6160 +#, no-wrap +msgid "July 25, 2005" +msgstr "25 июля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6162 +#, no-wrap +msgid "6.0-STABLE after bump of all shared library versions that had not been changed since RELENG_5." +msgstr "6.0-STABLE после увеличения версий всех общих библиотек, которые не изменялись с RELENG_5." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6163 +#, no-wrap +msgid "600034" +msgstr "600034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6164 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/149040[149040]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/149040[149040]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6167 +#, no-wrap +msgid "6.0-STABLE after credential argument is added to `dev_clone` event handler. 6.0-RELEASE." +msgstr "6.0-STABLE после добавления аргумента credential в обработчик события `dev_clone`. 6.0-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6168 +#, no-wrap +msgid "600100" +msgstr "600100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6169 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/151958[151958]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/151958[151958]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6170 +#, no-wrap +msgid "November 1, 2005" +msgstr "1 ноября 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6172 +#, no-wrap +msgid "6.0-STABLE after 6.0-RELEASE" +msgstr "6.0-STABLE после 6.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6173 +#, no-wrap +msgid "600101" +msgstr "600101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6174 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/153601[153601]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/153601[153601]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6175 +#, no-wrap +msgid "December 21, 2005" +msgstr "21 декабря 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6177 +#, no-wrap +msgid "6.0-STABLE after incorporating scripts from the `local_startup` directories into the base man:rcorder[8]." +msgstr "6.0-STABLE после включения скриптов из каталогов `local_startup` в базовый man:rcorder[8]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6178 +#, no-wrap +msgid "600102" +msgstr "600102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6179 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/153912[153912]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/153912[153912]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6180 +#, no-wrap +msgid "December 30, 2005" +msgstr "30 декабря 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6182 +#, no-wrap +msgid "6.0-STABLE after updating the ELF types and constants." +msgstr "6.0-STABLE после обновления типов и констант ELF." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6183 +#, no-wrap +msgid "600103" +msgstr "600103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6184 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/154396[154396]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/154396[154396]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6185 +#, no-wrap +msgid "January 15, 2006" +msgstr "15 января 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6187 +#, no-wrap +msgid "6.0-STABLE after MFC of man:pidfile[3] API." +msgstr "6.0-STABLE после переноса изменений (MFC) API man:pidfile[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6188 +#, no-wrap +msgid "600104" +msgstr "600104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6189 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/154453[154453]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/154453[154453]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6190 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6973 +#, no-wrap +msgid "January 17, 2006" +msgstr "17 января 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6192 +#, no-wrap +msgid "6.0-STABLE after MFC of ldconfig_local_dirs change." +msgstr "6.0-STABLE после MFC изменений ldconfig_local_dirs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6193 +#, no-wrap +msgid "600105" +msgstr "600105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6194 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/156019[156019]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/156019[156019]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6195 +#, no-wrap +msgid "February 26, 2006" +msgstr "26 февраля 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6197 +#, no-wrap +msgid "6.0-STABLE after NLS catalog support of man:csh[1]." +msgstr "6.0-STABLE после поддержки каталога NLS в man:csh[1]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6198 +#, no-wrap +msgid "601000" +msgstr "601000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6199 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/158330[158330]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/158330[158330]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6200 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6205 +#, no-wrap +msgid "May 6, 2006" +msgstr "6 мая 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6202 +#, no-wrap +msgid "6.1-RELEASE" +msgstr "6.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6203 +#, no-wrap +msgid "601100" +msgstr "601100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6204 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/158331[158331]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/158331[158331]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6207 +#, no-wrap +msgid "6.1-STABLE after 6.1-RELEASE." +msgstr "6.1-STABLE после 6.1-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6208 +#, no-wrap +msgid "601101" +msgstr "601101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6209 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/159861[159861]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/159861[159861]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6210 +#, no-wrap +msgid "June 22, 2006" +msgstr "22 июня 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6212 +#, no-wrap +msgid "6.1-STABLE after the import of `csup`." +msgstr "6.1-STABLE после импорта `csup`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6213 +#, no-wrap +msgid "601102" +msgstr "601102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6214 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/160253[160253]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/160253[160253]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6215 +#, no-wrap +msgid "July 11, 2006" +msgstr "11 июля 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6217 +#, no-wrap +msgid "6.1-STABLE after the man:iwi[4] update." +msgstr "6.1-STABLE после обновления man:iwi[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6218 +#, no-wrap +msgid "601103" +msgstr "601103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6219 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/160429[160429]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/160429[160429]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6220 +#, no-wrap +msgid "July 17, 2006" +msgstr "17 июля 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6222 +#, no-wrap +msgid "6.1-STABLE after the resolver update to BIND9, and exposure of reentrant version of `netdb` functions." +msgstr "6.1-STABLE после обновления резолвера до BIND9 и добавления реентерабельной версии функций `netdb`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6223 +#, no-wrap +msgid "601104" +msgstr "601104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6224 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/161098[161098]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/161098[161098]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6225 +#, no-wrap +msgid "August 8, 2006" +msgstr "8 августа 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6227 +#, no-wrap +msgid "6.1-STABLE after DSO (dynamic shared objects) support has been enabled in OpenSSL." +msgstr "6.1-STABLE после включения поддержки DSO (динамически разделяемых объектов) в OpenSSL." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6228 +#, no-wrap +msgid "601105" +msgstr "601105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6229 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/161900[161900]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/161900[161900]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6230 +#, no-wrap +msgid "September 2, 2006" +msgstr "2 сентября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6232 +#, no-wrap +msgid "6.1-STABLE after 802.11 fix-ups changed the API for the IEEE80211_IOC_STA_INFO ioctl." +msgstr "6.1-STABLE после исправлений 802.11 изменил API для ioctl IEEE80211_IOC_STA_INFO." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6233 +#, no-wrap +msgid "602000" +msgstr "602000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6234 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/164312[164312]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/164312[164312]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6235 +#, no-wrap +msgid "November 15, 2006" +msgstr "15 ноября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6237 +#, no-wrap +msgid "6.2-RELEASE" +msgstr "6.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6238 +#, no-wrap +msgid "602100" +msgstr "602100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6239 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/162329[162329]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/162329[162329]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6240 +#, no-wrap +msgid "September 15, 2006" +msgstr "15 сентября 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6242 +#, no-wrap +msgid "6.2-STABLE after 6.2-RELEASE." +msgstr "6.2-STABLE после 6.2-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6243 +#, no-wrap +msgid "602101" +msgstr "602101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6244 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/165122[165122]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/165122[165122]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6245 +#, no-wrap +msgid "December 12, 2006" +msgstr "12 декабря 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6247 +#, no-wrap +msgid "6.2-STABLE after the addition of Wi-Spy quirk." +msgstr "6.2-STABLE после добавления особенности Wi-Spy." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6248 +#, no-wrap +msgid "602102" +msgstr "602102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6249 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/165596[165596]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/165596[165596]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6250 +#, no-wrap +msgid "December 28, 2006" +msgstr "28 декабря 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6252 +#, no-wrap +msgid "6.2-STABLE after `pci_find_extcap()` addition." +msgstr "6.2-STABLE после добавления `pci_find_extcap()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6253 +#, no-wrap +msgid "602103" +msgstr "602103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6254 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/166039[166039]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/166039[166039]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6255 +#, no-wrap +msgid "January 16, 2007" +msgstr "16 января 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6257 +#, no-wrap +msgid "6.2-STABLE after MFC of `dlsym` change to look for a requested symbol both in specified DSO and its implicit dependencies." +msgstr "6.2-STABLE после MFC изменения `dlsym` для поиска запрошенного символа как в указанном DSO, так и в его неявных зависимостях." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6258 +#, no-wrap +msgid "602104" +msgstr "602104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6259 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/166314[166314]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/166314[166314]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6260 +#, no-wrap +msgid "January 28, 2007" +msgstr "28 января 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6262 +#, no-wrap +msgid "6.2-STABLE after MFC of man:ng_deflate[4] and man:ng_pred1[4] netgraph nodes and new compression and encryption modes for man:ng_ppp[4] node." +msgstr "6.2-STABLE после слияния изменений (MFC) узлов netgraph man:ng_deflate[4] и man:ng_pred1[4], а также новых режимов сжатия и шифрования для узла man:ng_ppp[4]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6263 +#, no-wrap +msgid "602105" +msgstr "602105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6264 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/166840[166840]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/166840[166840]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6265 +#, no-wrap +msgid "February 20, 2007" +msgstr "20 февраля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6267 +#, no-wrap +msgid "6.2-STABLE after MFC of BSD licensed version of man:gzip[1] ported from NetBSD." +msgstr "6.2-STABLE после переноса (MFC) версии man:gzip[1] под лицензией BSD из NetBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6268 +#, no-wrap +msgid "602106" +msgstr "602106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6269 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/168133[168133]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/168133[168133]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6270 +#, no-wrap +msgid "March 31, 2007" +msgstr "31 марта 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6272 +#, no-wrap +msgid "6.2-STABLE after MFC of PCI MSI and MSI-X support." +msgstr "6.2-STABLE после слияния изменений (MFC) поддержки PCI MSI и MSI-X." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6273 +#, no-wrap +msgid "602107" +msgstr "602107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6274 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/168438[168438]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/168438[168438]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6277 +#, no-wrap +msgid "6.2-STABLE after MFC of ncurses 5.6 and wide character support." +msgstr "6.2-STABLE после слияния изменений (MFC) ncurses 5.6 с поддержкой широких символов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6278 +#, no-wrap +msgid "602108" +msgstr "602108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6279 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/168611[168611]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/168611[168611]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6280 +#, no-wrap +msgid "April 11, 2007" +msgstr "11 апреля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6282 +#, no-wrap +msgid "6.2-STABLE after MFC of CAM 'SG' peripheral device, which implements a subset of Linux SCSI SG passthrough device API." +msgstr "6.2-STABLE после слияния изменений (MFC) для периферийного устройства CAM 'SG', реализующего подмножество API сквозного устройства SCSI SG в Linux." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6283 +#, no-wrap +msgid "602109" +msgstr "602109" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6284 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/168805[168805]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/168805[168805]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6285 +#, no-wrap +msgid "April 17, 2007" +msgstr "17 апреля 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6287 +#, no-wrap +msgid "6.2-STABLE after MFC of readline 5.2 patch-set 002." +msgstr "6.2-STABLE после MFC набора исправлений readline 5.2 patch-set 002." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6288 +#, no-wrap +msgid "602110" +msgstr "602110" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6289 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/169222[169222]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/169222[169222]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6290 +#, no-wrap +msgid "May 2, 2007" +msgstr "2 мая 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6292 +#, no-wrap +msgid "6.2-STABLE after MFC of `pmap_invalidate_cache()`, `pmap_change_attr()`, `pmap_mapbios()`, `pmap_mapdev_attr()`, and `pmap_unmapbios()` for amd64 and i386." +msgstr "6.2-STABLE после слияния изменений (MFC) функций `pmap_invalidate_cache()`, `pmap_change_attr()`, `pmap_mapbios()`, `pmap_mapdev_attr()` и `pmap_unmapbios()` для архитектур amd64 и i386." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6293 +#, no-wrap +msgid "602111" +msgstr "602111" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6294 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/170556[170556]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/170556[170556]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6297 +#, no-wrap +msgid "6.2-STABLE after MFC of BOP_BDFLUSH and caused breakage of the filesystem modules KBI." +msgstr "6.2-STABLE после слияния изменений BOP_BDFLUSH, что привело к нарушению KBI модулей файловой системы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6298 +#, no-wrap +msgid "602112" +msgstr "602112" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6299 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172284[172284]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172284[172284]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6300 +#, no-wrap +msgid "September 21, 2007" +msgstr "21 сентября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6302 +#, no-wrap +msgid "6.2-STABLE after man:libutil[3] MFC's." +msgstr "6.2-STABLE после man:libutil[3] MFC's." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6303 +#, no-wrap +msgid "602113" +msgstr "602113" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6304 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/172986[172986]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/172986[172986]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6307 +#, no-wrap +msgid "6.2-STABLE after MFC of wide and single byte ctype separation. Newly compiled binary that references to ctype.h may require a new symbol, `__mb_sb_limit`, which is not available on older systems." +msgstr "6.2-STABLE после слияния изменений (MFC) разделения широких и однобайтовых символов ctype. Вновь скомпилированные двоичные файлы, ссылающиеся на ctype.h, могут требовать новый символ `__mb_sb_limit`, который недоступен в старых системах." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6308 +#, no-wrap +msgid "602114" +msgstr "602114" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6309 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/173170[173170]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/173170[173170]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6310 +#, no-wrap +msgid "October 30, 2007" +msgstr "30 октября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6312 +#, no-wrap +msgid "6.2-STABLE after ctype ABI forward compatibility restored." +msgstr "6.2-STABLE после восстановления прямой совместимости ABI ctype." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6313 +#, no-wrap +msgid "602115" +msgstr "602115" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6314 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/173794[173794]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/173794[173794]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6315 +#, no-wrap +msgid "November 21, 2007" +msgstr "21 ноября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6317 +#, no-wrap +msgid "6.2-STABLE after back out of wide and single byte ctype separation." +msgstr "6.2-STABLE после отмены разделения широких и однобайтовых символов ctype." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6318 +#, no-wrap +msgid "603000" +msgstr "603000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6319 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/173897[173897]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/173897[173897]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6320 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6325 +#, no-wrap +msgid "November 25, 2007" +msgstr "25 ноября 2007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6322 +#, no-wrap +msgid "6.3-RELEASE" +msgstr "6.3-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6323 +#, no-wrap +msgid "603100" +msgstr "603100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6324 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/173891[173891]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/173891[173891]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6327 +#, no-wrap +msgid "6.3-STABLE after 6.3-RELEASE." +msgstr "6.3-STABLE после 6.3-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6329 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/174434[174434]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/174434[174434]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6332 +#, no-wrap +msgid "6.3-STABLE after fixing multibyte type support in bit macro." +msgstr "6.3-STABLE после исправления поддержки многобайтовых типов в макросе bit." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6333 +#, no-wrap +msgid "603102" +msgstr "603102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6334 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/178459[178459]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/178459[178459]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6335 +#, no-wrap +msgid "April 24, 2008" +msgstr "24 апреля 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6337 +#, no-wrap +msgid "6.3-STABLE after adding `l_sysid` to struct flock." +msgstr "6.3-STABLE после добавления `l_sysid` в структуру flock." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6338 +#, no-wrap +msgid "603103" +msgstr "603103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6342 +#, no-wrap +msgid "6.3-STABLE after MFC of the man:memrchr[3] function." +msgstr "6.3-STABLE после MFC функции man:memrchr[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6343 +#, no-wrap +msgid "603104" +msgstr "603104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6344 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/179810[179810]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/179810[179810]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6345 +#, no-wrap +msgid "June 15, 2008" +msgstr "15 июня 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6347 +#, no-wrap +msgid "6.3-STABLE after MFC of support for `:u` variable modifier in man:make[1]." +msgstr "6.3-STABLE после MFC поддержки модификатора переменной `:u` в man:make[1]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6348 +#, no-wrap +msgid "604000" +msgstr "604000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6349 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/183583[183583]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/183583[183583]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6350 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6355 +#, no-wrap +msgid "October 4, 2008" +msgstr "4 октября 2008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6352 +#, no-wrap +msgid "6.4-RELEASE" +msgstr "6.4-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6353 +#, no-wrap +msgid "604100" +msgstr "604100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6354 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/183584[183584]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/183584[183584]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6356 +#, no-wrap +msgid "6.4-STABLE after 6.4-RELEASE." +msgstr "6.4-STABLE после 6.4-RELEASE." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6359 +#, no-wrap +msgid "FreeBSD 5 Versions" +msgstr "Версии FreeBSD 5" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6362 +#, no-wrap +msgid "FreeBSD 5 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6371 +#, no-wrap +msgid "500000" +msgstr "500000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6372 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/58009[58009]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/58009[58009]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6373 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7086 +#, no-wrap +msgid "March 13, 2000" +msgstr "13 марта 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6375 +#, no-wrap +msgid "5.0-CURRENT" +msgstr "5.0-CURRENT" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6376 +#, no-wrap +msgid "500001" +msgstr "500001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6377 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/59348[59348]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/59348[59348]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6378 +#, no-wrap +msgid "April 18, 2000" +msgstr "18 апреля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6380 +#, no-wrap +msgid "5.0-CURRENT after adding addition ELF header fields, and changing ELF binary branding method." +msgstr "5.0-CURRENT после добавления дополнительных полей заголовка ELF и изменения метода маркировки ELF-бинарников." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6381 +#, no-wrap +msgid "500002" +msgstr "500002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6382 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/59906[59906]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/59906[59906]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6383 +#, no-wrap +msgid "May 2, 2000" +msgstr "2 мая 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6385 +#, no-wrap +msgid "5.0-CURRENT after kld metadata changes." +msgstr "5.0-CURRENT после изменений метаданных kld." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6386 +#, no-wrap +msgid "500003" +msgstr "500003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6387 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/60688[60688]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/60688[60688]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6388 +#, no-wrap +msgid "May 18, 2000" +msgstr "18 мая 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6390 +#, no-wrap +msgid "5.0-CURRENT after buf/bio changes." +msgstr "5.0-CURRENT после изменений в buf/bio." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6391 +#, no-wrap +msgid "500004" +msgstr "500004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6392 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/60936[60936]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/60936[60936]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6393 +#, no-wrap +msgid "May 26, 2000" +msgstr "26 мая 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6395 +#, no-wrap +msgid "5.0-CURRENT after binutils upgrade." +msgstr "5.0-CURRENT после обновления binutils." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6396 +#, no-wrap +msgid "500005" +msgstr "500005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6397 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/61221[61221]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/61221[61221]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6398 +#, no-wrap +msgid "June 3, 2000" +msgstr "3 июня 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6400 +#, no-wrap +msgid "5.0-CURRENT after merging libxpg4 code into libc and after TASKQ interface introduction." +msgstr "5.0-CURRENT после объединения кода libxpg4 с libc и после введения интерфейса TASKQ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6401 +#, no-wrap +msgid "500006" +msgstr "500006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6402 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/61500[61500]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/61500[61500]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6403 +#, no-wrap +msgid "June 10, 2000" +msgstr "10 июня 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6405 +#, no-wrap +msgid "5.0-CURRENT after the addition of AGP interfaces." +msgstr "5.0-CURRENT после добавления интерфейсов AGP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6406 +#, no-wrap +msgid "500007" +msgstr "500007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6407 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/62235[62235]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/62235[62235]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6408 +#, no-wrap +msgid "June 29, 2000" +msgstr "29 июня 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6410 +#, no-wrap +msgid "5.0-CURRENT after Perl upgrade to 5.6.0" +msgstr "5.0-CURRENT после обновления Perl до версии 5.6.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6411 +#, no-wrap +msgid "500008" +msgstr "500008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6412 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/62764[62764]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/62764[62764]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6413 +#, no-wrap +msgid "July 7, 2000" +msgstr "7 июля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6415 +#, no-wrap +msgid "5.0-CURRENT after the update of KAME code to 2000/07 sources." +msgstr "5.0-CURRENT после обновления кода KAME до исходников от 2000/07." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6416 +#, no-wrap +msgid "500009" +msgstr "500009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6417 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/63154[63154]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/63154[63154]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6418 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7111 +#, no-wrap +msgid "July 14, 2000" +msgstr "14 июля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6420 +#, no-wrap +msgid "5.0-CURRENT after `ether_ifattach()` and `ether_ifdetach()` changes." +msgstr "5.0-CURRENT после изменений в `ether_ifattach()` и `ether_ifdetach()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6421 +#, no-wrap +msgid "500010" +msgstr "500010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6422 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/63265[63265]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/63265[63265]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6423 +#, no-wrap +msgid "July 16, 2000" +msgstr "16 июля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6425 +#, no-wrap +msgid "5.0-CURRENT after changing mtree defaults back to original variant, adding -L to follow symlinks." +msgstr "5.0-CURRENT после изменения настроек mtree обратно на исходный вариант, с добавлением -L для следования по символьным ссылкам." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6426 +#, no-wrap +msgid "500011" +msgstr "500011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6427 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/63459[63459]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/63459[63459]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6428 +#, no-wrap +msgid "July 18, 2000" +msgstr "18 июля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6430 +#, no-wrap +msgid "5.0-CURRENT after kqueue API changed." +msgstr "5.0-CURRENT после изменения API kqueue." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6431 +#, no-wrap +msgid "500012" +msgstr "500012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6432 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/65353[65353]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/65353[65353]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6433 +#, no-wrap +msgid "September 2, 2000" +msgstr "2 сентября 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6435 +#, no-wrap +msgid "5.0-CURRENT after man:setproctitle[3] moved from libutil to libc." +msgstr "5.0-CURRENT после переноса man:setproctitle[3] из libutil в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6436 +#, no-wrap +msgid "500013" +msgstr "500013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6437 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/65671[65671]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/65671[65671]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6438 +#, no-wrap +msgid "September 10, 2000" +msgstr "10 сентября 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6440 +#, no-wrap +msgid "5.0-CURRENT after the first SMPng commit." +msgstr "5.0-CURRENT после первого коммита SMPng." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6441 +#, no-wrap +msgid "500014" +msgstr "500014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6442 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/70650[70650]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/70650[70650]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6443 +#, no-wrap +msgid "January 4, 2001" +msgstr "4 января 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6445 +#, no-wrap +msgid "5.0-CURRENT after moved to ." +msgstr "5.0-CURRENT после перемещения в ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6446 +#, no-wrap +msgid "500015" +msgstr "500015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6447 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/70894[70894]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/70894[70894]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6448 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7141 +#, no-wrap +msgid "January 10, 2001" +msgstr "10 января 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6450 +#, no-wrap +msgid "5.0-CURRENT after combining libgcc.a and libgcc_r.a, and associated GCC linkage changes." +msgstr "5.0-CURRENT после объединения libgcc.a и libgcc_r.a, а также связанных изменений в компоновке GCC." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6451 +#, no-wrap +msgid "500016" +msgstr "500016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6452 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/71583[71583]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/71583[71583]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6453 +#, no-wrap +msgid "January 24, 2001" +msgstr "24 января 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6455 +#, no-wrap +msgid "5.0-CURRENT after change allowing libc and libc_r to be linked together, deprecating -pthread option." +msgstr "5.0-CURRENT после изменения, разрешающего совместную линковку libc и libc_r, с объявлением устаревшим параметра -pthread." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6456 +#, no-wrap +msgid "500017" +msgstr "500017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6457 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/72650[72650]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/72650[72650]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6458 +#, no-wrap +msgid "February 18, 2001" +msgstr "18 февраля 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6460 +#, no-wrap +msgid "5.0-CURRENT after switch from struct `ucred` to struct `xucred` to stabilize kernel-exported API for mountd et al." +msgstr "5.0-CURRENT после перехода со структуры `ucred` на структуру `xucred` для стабилизации API, экспортируемого ядром, для mountd и других." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6461 +#, no-wrap +msgid "500018" +msgstr "500018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6462 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/72975[72975]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/72975[72975]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6463 +#, no-wrap +msgid "February 24, 2001" +msgstr "24 февраля 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6465 +#, no-wrap +msgid "5.0-CURRENT after addition of CPUTYPE make variable for controlling CPU-specific optimizations." +msgstr "5.0-CURRENT после добавления переменной сборки CPUTYPE для управления оптимизациями под конкретный процессор." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6466 +#, no-wrap +msgid "500019" +msgstr "500019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6467 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/77937[77937]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/77937[77937]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6468 +#, no-wrap +msgid "June 9, 2001" +msgstr "9 июня 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6470 +#, no-wrap +msgid "5.0-CURRENT after moving machine/ioctl_fd.h to sys/fdcio.h" +msgstr "5.0-CURRENT после перемещения machine/ioctl_fd.h в sys/fdcio.h" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6471 +#, no-wrap +msgid "500020" +msgstr "500020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6472 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/78304[78304]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/78304[78304]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6473 +#, no-wrap +msgid "June 15, 2001" +msgstr "15 июня 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6475 +#, no-wrap +msgid "5.0-CURRENT after locale names renaming." +msgstr "5.0-CURRENT после переименования названий локалей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6476 +#, no-wrap +msgid "500021" +msgstr "500021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6477 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/78632[78632]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/78632[78632]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6478 +#, no-wrap +msgid "June 22, 2001" +msgstr "22 июня 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6480 +#, no-wrap +msgid "5.0-CURRENT after Bzip2 import. Also signifies removal of S/Key." +msgstr "5.0-CURRENT после импорта Bzip2. Также означает удаление S/Key." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6481 +#, no-wrap +msgid "500022" +msgstr "500022" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6482 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6487 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/83435[83435]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/83435[83435]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6483 +#, no-wrap +msgid "July 12, 2001" +msgstr "12 июля 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6485 +#, no-wrap +msgid "5.0-CURRENT after SSE support." +msgstr "5.0-CURRENT после поддержки SSE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6486 +#, no-wrap +msgid "500023" +msgstr "500023" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6488 +#, no-wrap +msgid "September 14, 2001" +msgstr "14 сентября 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6490 +#, no-wrap +msgid "5.0-CURRENT after KSE Milestone 2." +msgstr "5.0-CURRENT после второго этапа KSE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6491 +#, no-wrap +msgid "500024" +msgstr "500024" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6492 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/84324[84324]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/84324[84324]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6493 +#, no-wrap +msgid "October 1, 2001" +msgstr "1 октября 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6495 +#, no-wrap +msgid "5.0-CURRENT after `d_thread_t`, and moving UUCP to ports." +msgstr "5.0-CURRENT после `d_thread_t` и перемещение UUCP в порты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6496 +#, no-wrap +msgid "500025" +msgstr "500025" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6497 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/84481[84481]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/84481[84481]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6498 +#, no-wrap +msgid "October 4, 2001" +msgstr "4 октября 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6500 +#, no-wrap +msgid "5.0-CURRENT after ABI change for descriptor and `creds` passing on 64 bit platforms." +msgstr "5.0-CURRENT после изменения ABI для передачи дескрипторов и `creds` на 64-битных платформах." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6501 +#, no-wrap +msgid "500026" +msgstr "500026" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6502 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/84710[84710]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/84710[84710]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6503 +#, no-wrap +msgid "October 9, 2001" +msgstr "9 октября 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6505 +#, no-wrap +msgid "5.0-CURRENT after moving to XFree86 4 by default for package builds, and after the new libc `strnstr()` function was added." +msgstr "5.0-CURRENT после перехода на XFree86 4 по умолчанию для сборки пакетов и после добавления новой функции `strnstr()` в библиотеку libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6506 +#, no-wrap +msgid "500027" +msgstr "500027" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6507 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/84743[84743]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/84743[84743]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6508 +#, no-wrap +msgid "October 10, 2001" +msgstr "10 октября 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6510 +#, no-wrap +msgid "5.0-CURRENT after the new libc `strcasestr()` function was added." +msgstr "5.0-CURRENT после добавления новой функции `strcasestr()` в библиотеку libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6511 +#, no-wrap +msgid "500028" +msgstr "500028" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6512 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/87879[87879]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/87879[87879]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6513 +#, no-wrap +msgid "December 14, 2001" +msgstr "14 декабря 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6515 +#, no-wrap +msgid "5.0-CURRENT after the userland components of smbfs were imported." +msgstr "5.0-CURRENT после импорта компонентов пользовательского пространства smbfs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6520 +#, no-wrap +msgid "5.0-CURRENT after the new C99 specific-width integer types were added." +msgstr "5.0-CURRENT после добавления новых целочисленных типов фиксированной ширины C99." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6521 +#, no-wrap +msgid "500029" +msgstr "500029" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6522 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/89938[89938]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/89938[89938]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6523 +#, no-wrap +msgid "January 29, 2002" +msgstr "29 января 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6525 +#, no-wrap +msgid "5.0-CURRENT after a change was made in the return value of man:sendfile[2]." +msgstr "5.0-CURRENT после изменения возвращаемого значения man:sendfile[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6526 +#, no-wrap +msgid "500030" +msgstr "500030" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6527 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/90711[90711]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/90711[90711]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6528 +#, no-wrap +msgid "February 15, 2002" +msgstr "15 февраля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6530 +#, no-wrap +msgid "5.0-CURRENT after the introduction of the type `fflags_t`, which is the appropriate size for file flags." +msgstr "5.0-CURRENT после введения типа `fflags_t`, который имеет подходящий размер для флагов файлов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6531 +#, no-wrap +msgid "500031" +msgstr "500031" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6532 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7185 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/91203[91203]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/91203[91203]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6533 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7186 +#, no-wrap +msgid "February 24, 2002" +msgstr "24 февраля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6535 +#, no-wrap +msgid "5.0-CURRENT after the usb structure element rename." +msgstr "5.0-CURRENT после переименования элемента структуры usb." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6536 +#, no-wrap +msgid "500032" +msgstr "500032" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6537 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/92453[92453]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/92453[92453]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6538 +#, no-wrap +msgid "March 16, 2002" +msgstr "16 марта 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6540 +#, no-wrap +msgid "5.0-CURRENT after the introduction of Perl 5.6.1." +msgstr "5.0-CURRENT после внедрения Perl 5.6.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6541 +#, no-wrap +msgid "500033" +msgstr "500033" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6542 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/93722[93722]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/93722[93722]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6543 +#, no-wrap +msgid "April 3, 2002" +msgstr "3 апреля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6545 +#, no-wrap +msgid "5.0-CURRENT after the `sendmail_enable` man:rc.conf[5] variable was made to take the value `NONE`." +msgstr "5.0-CURRENT после того, как переменная `sendmail_enable` из man:rc.conf[5] стала принимать значение `NONE`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6546 +#, no-wrap +msgid "500034" +msgstr "500034" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6547 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/95831[95831]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/95831[95831]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6548 +#, no-wrap +msgid "April 30, 2002" +msgstr "30 апреля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6550 +#, no-wrap +msgid "5.0-CURRENT after `mtx_init()` grew a third argument." +msgstr "5.0-CURRENT после того, как `mtx_init()` получил третий аргумент." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6551 +#, no-wrap +msgid "500035" +msgstr "500035" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6552 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/96498[96498]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/96498[96498]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6553 +#, no-wrap +msgid "May 13, 2002" +msgstr "13 мая 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6555 +#, no-wrap +msgid "5.0-CURRENT with Gcc 3.1." +msgstr "5.0-CURRENT с Gcc 3.1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6556 +#, no-wrap +msgid "500036" +msgstr "500036" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6557 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/96781[96781]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/96781[96781]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6558 +#, no-wrap +msgid "May 17, 2002" +msgstr "17 мая 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6560 +#, no-wrap +msgid "5.0-CURRENT without Perl in /usr/src" +msgstr "5.0-CURRENT без Perl в /usr/src" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6561 +#, no-wrap +msgid "500037" +msgstr "500037" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6562 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/97516[97516]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/97516[97516]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6563 +#, no-wrap +msgid "May 29, 2002" +msgstr "29 мая 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6565 +#, no-wrap +msgid "5.0-CURRENT after the addition of man:dlfunc[3]" +msgstr "5.0-CURRENT после добавления man:dlfunc[3]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6566 +#, no-wrap +msgid "500038" +msgstr "500038" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6567 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/100591[100591]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/100591[100591]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6568 +#, no-wrap +msgid "July 24, 2002" +msgstr "24 июля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6570 +#, no-wrap +msgid "5.0-CURRENT after the types of some struct `sockbuf` members were changed and the structure was reordered." +msgstr "5.0-CURRENT после изменения типов некоторых членов структуры `sockbuf` и её переупорядочивания." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6571 +#, no-wrap +msgid "500039" +msgstr "500039" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6572 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/102757[102757]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/102757[102757]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6573 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7241 +#, no-wrap +msgid "September 1, 2002" +msgstr "1 сентября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6575 +#, no-wrap +msgid "5.0-CURRENT after GCC 3.2.1 import. Also after headers stopped using _BSD_FOO_T_ and started using _FOO_T_DECLARED. This value can also be used as a conservative estimate of the start of man:bzip2[1] package support." +msgstr "5.0-CURRENT после импорта GCC 3.2.1. Также после того, как заголовки перестали использовать _BSD_FOO_T_ и начали использовать _FOO_T_DECLARED. Это значение также можно использовать как консервативную оценку начала поддержки пакета man:bzip2[1]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6576 +#, no-wrap +msgid "500040" +msgstr "500040" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6577 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/103675[103675]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/103675[103675]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6578 +#, no-wrap +msgid "September 20, 2002" +msgstr "20 сентября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6580 +#, no-wrap +msgid "5.0-CURRENT after various changes to disk functions were made in the name of removing dependency on disklabel structure internals." +msgstr "5.0-CURRENT после внесения различных изменений в функции работы с дисками, направленных на устранение зависимости от внутренней структуры disklabel." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6581 +#, no-wrap +msgid "500041" +msgstr "500041" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6582 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/104250[104250]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/104250[104250]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6583 +#, no-wrap +msgid "October 1, 2002" +msgstr "1 октября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6585 +#, no-wrap +msgid "5.0-CURRENT after the addition of man:getopt_long[3] to libc." +msgstr "5.0-CURRENT после добавления man:getopt_long[3] в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6586 +#, no-wrap +msgid "500042" +msgstr "500042" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6587 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/105178[105178]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/105178[105178]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6588 +#, no-wrap +msgid "October 15, 2002" +msgstr "15 октября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6590 +#, no-wrap +msgid "5.0-CURRENT after Binutils 2.13 upgrade, which included new FreeBSD emulation, `vec`, and output format." +msgstr "5.0-CURRENT после обновления Binutils 2.13, которое включило новую эмуляцию FreeBSD, `vec` и формат вывода." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6591 +#, no-wrap +msgid "500043" +msgstr "500043" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6592 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/106289[106289]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/106289[106289]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6593 +#, no-wrap +msgid "November 1, 2002" +msgstr "1 ноября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6595 +#, no-wrap +msgid "5.0-CURRENT after adding weak pthread_XXX stubs to libc, obsoleting libXThrStub.so. 5.0-RELEASE." +msgstr "5.0-CURRENT после добавления слабых заглушек pthread_XXX в libc, что сделало устаревшей libXThrStub.so. 5.0-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6596 +#, no-wrap +msgid "500100" +msgstr "500100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6597 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/109405[109405]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/109405[109405]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6598 +#, no-wrap +msgid "January 17, 2003" +msgstr "17 января 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6600 +#, no-wrap +msgid "5.0-CURRENT after branching for RELENG_5_0" +msgstr "5.0-CURRENT после ветвления для RELENG_5_0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6601 +#, no-wrap +msgid "500101" +msgstr "500101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6602 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/111120[111120]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/111120[111120]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6603 +#, no-wrap +msgid "February 19, 2003" +msgstr "19 февраля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6605 +#, no-wrap +msgid " is empty. Do not include it." +msgstr " пустой. Не включайте его." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6606 +#, no-wrap +msgid "500102" +msgstr "500102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6607 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/111482[111482]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/111482[111482]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6608 +#, no-wrap +msgid "February 25, 2003" +msgstr "25 февраля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6610 +#, no-wrap +msgid "5.0-CURRENT after the d_mmap_t interface change." +msgstr "5.0-CURRENT после изменения интерфейса d_mmap_t." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6611 +#, no-wrap +msgid "500103" +msgstr "500103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6612 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/111540[111540]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/111540[111540]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6613 +#, no-wrap +msgid "February 26, 2003" +msgstr "26 февраля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6615 +#, no-wrap +msgid "5.0-CURRENT after `taskqueue_swi` changed to run without Giant, and `taskqueue_swi_giant` added to run with Giant." +msgstr "5.0-CURRENT после изменения `taskqueue_swi` для работы без Giant и добавления `taskqueue_swi_giant` для работы с Giant." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6616 +#, no-wrap +msgid "500104" +msgstr "500104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6617 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/111600[111600]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/111600[111600]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6618 +#, no-wrap +msgid "February 27, 2003" +msgstr "27 февраля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6620 +#, no-wrap +msgid "`cdevsw_add()` and `cdevsw_remove()` no longer exists. Appearance of `MAJOR_AUTO` allocation facility." +msgstr "`cdevsw_add()` и `cdevsw_remove()` больше не существуют. Появление средства выделения `MAJOR_AUTO`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6621 +#, no-wrap +msgid "500105" +msgstr "500105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6622 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/111864[111864]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/111864[111864]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6623 +#, no-wrap +msgid "March 4, 2003" +msgstr "4 марта 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6625 +#, no-wrap +msgid "5.0-CURRENT after new cdevsw initialization method." +msgstr "5.0-CURRENT после новой инициализации метода cdevsw." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6626 +#, no-wrap +msgid "500106" +msgstr "500106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6627 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/112007[112007]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/112007[112007]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6628 +#, no-wrap +msgid "March 8, 2003" +msgstr "8 марта 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6630 +#, no-wrap +msgid "`devstat_add_entry()` has been replaced by `devstat_new_entry()`" +msgstr "`devstat_add_entry()` был заменён на `devstat_new_entry()`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6631 +#, no-wrap +msgid "500107" +msgstr "500107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6632 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/112288[112288]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/112288[112288]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6633 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6638 +#, no-wrap +msgid "March 15, 2003" +msgstr "15 марта 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6635 +#, no-wrap +msgid "`devstat` interface change; see sys/sys/param.h 1.149" +msgstr "Изменение интерфейса `devstat`; см. sys/sys/param.h 1.149" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6636 +#, no-wrap +msgid "500108" +msgstr "500108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6637 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/112300[112300]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/112300[112300]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6640 +#, no-wrap +msgid "Token-Ring interface changes." +msgstr "Изменения в интерфейсе Token-Ring." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6641 +#, no-wrap +msgid "500109" +msgstr "500109" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6642 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/112571[112571]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/112571[112571]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6643 +#, no-wrap +msgid "March 25, 2003" +msgstr "25 марта 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6645 +#, no-wrap +msgid "Addition of `vm_paddr_t`." +msgstr "Добавление `vm_paddr_t`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6646 +#, no-wrap +msgid "500110" +msgstr "500110" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6647 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/112741[112741]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/112741[112741]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6648 +#, no-wrap +msgid "March 28, 2003" +msgstr "28 марта 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6650 +#, no-wrap +msgid "5.0-CURRENT after man:realpath[3] has been made thread-safe" +msgstr "5.0-CURRENT после того, как man:realpath[3] стал потокобезопасным" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6651 +#, no-wrap +msgid "500111" +msgstr "500111" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6652 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/113273[113273]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/113273[113273]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6653 +#, no-wrap +msgid "April 9, 2003" +msgstr "9 апреля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6655 +#, no-wrap +msgid "5.0-CURRENT after man:usbhid[3] has been synced with NetBSD" +msgstr "5.0-CURRENT после синхронизации man:usbhid[3] с NetBSD" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6656 +#, no-wrap +msgid "500112" +msgstr "500112" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6657 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/113597[113597]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/113597[113597]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6658 +#, no-wrap +msgid "April 17, 2003" +msgstr "17 апреля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6660 +#, no-wrap +msgid "5.0-CURRENT after new NSS implementation and addition of POSIX.1 getpw*_r, getgr*_r functions" +msgstr "5.0-CURRENT после новой реализации NSS и добавления функций POSIX.1 getpw*_r, getgr*_r" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6661 +#, no-wrap +msgid "500113" +msgstr "500113" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6662 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/114492[114492]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/114492[114492]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6663 +#, no-wrap +msgid "May 2, 2003" +msgstr "2 мая 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6665 +#, no-wrap +msgid "5.0-CURRENT after removal of the old rc system." +msgstr "5.0-CURRENT после удаления старой системы rc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6666 +#, no-wrap +msgid "501000" +msgstr "501000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6667 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/115816[115816]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/115816[115816]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6668 +#, no-wrap +msgid "June 4, 2003" +msgstr "4 июня 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6670 +#, no-wrap +msgid "5.1-RELEASE." +msgstr "5.1-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6671 +#, no-wrap +msgid "501100" +msgstr "501100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6672 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/115710[115710]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/115710[115710]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6673 +#, no-wrap +msgid "June 2, 2003" +msgstr "2 июня 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6675 +#, no-wrap +msgid "5.1-CURRENT after branching for RELENG_5_1." +msgstr "5.1-CURRENT после ветвления для RELENG_5_1." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6676 +#, no-wrap +msgid "501101" +msgstr "501101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6677 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/117025[117025]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/117025[117025]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6678 +#, no-wrap +msgid "June 29, 2003" +msgstr "29 июня 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6680 +#, no-wrap +msgid "5.1-CURRENT after correcting the semantics of man:sigtimedwait[2] and man:sigwaitinfo[2]." +msgstr "5.1-CURRENT после исправления семантики man:sigtimedwait[2] и man:sigwaitinfo[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6681 +#, no-wrap +msgid "501102" +msgstr "501102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6682 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/117191[117191]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/117191[117191]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6683 +#, no-wrap +msgid "July 3, 2003" +msgstr "3 июля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6685 +#, no-wrap +msgid "5.1-CURRENT after adding the `lockfunc` and `lockfuncarg` fields to man:bus_dma_tag_create[9]." +msgstr "5.1-CURRENT после добавления полей `lockfunc` и `lockfuncarg` в man:bus_dma_tag_create[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6686 +#, no-wrap +msgid "501103" +msgstr "501103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6687 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/118241[118241]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/118241[118241]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6688 +#, no-wrap +msgid "July 31, 2003" +msgstr "31 июля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6690 +#, no-wrap +msgid "5.1-CURRENT after GCC 3.3.1-pre 20030711 snapshot integration." +msgstr "5.1-CURRENT после интеграции снимка GCC 3.3.1-pre 20030711." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6691 +#, no-wrap +msgid "501104" +msgstr "501104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6692 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/118511[118511]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/118511[118511]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6693 +#, no-wrap +msgid "August 5, 2003" +msgstr "5 августа 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6695 +#, no-wrap +msgid "5.1-CURRENT 3ware API changes to twe." +msgstr "5.1-CURRENT Изменения API 3ware в twe." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6696 +#, no-wrap +msgid "501105" +msgstr "501105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6697 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/119021[119021]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/119021[119021]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6698 +#, no-wrap +msgid "August 17, 2003" +msgstr "17 августа 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6700 +#, no-wrap +msgid "5.1-CURRENT dynamically linked /bin and /sbin support and movement of libraries to /lib." +msgstr "5.1-CURRENT динамически связанные /bin и /sbin поддержка и перемещение библиотек в /lib." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6701 +#, no-wrap +msgid "501106" +msgstr "501106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6702 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/119881[119881]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/119881[119881]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6703 +#, no-wrap +msgid "September 8, 2003" +msgstr "8 сентября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6705 +#, no-wrap +msgid "5.1-CURRENT after adding kernel support for Coda 6.x." +msgstr "5.1-CURRENT после добавления поддержки ядра для Coda 6.x." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6706 +#, no-wrap +msgid "501107" +msgstr "501107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6707 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/120180[120180]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/120180[120180]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6708 +#, no-wrap +msgid "September 17, 2003" +msgstr "17 сентября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6710 +#, no-wrap +msgid "5.1-CURRENT after 16550 UART constants moved from [.filename]## to [.filename]##. Also when libmap functionality was unconditionally supported by rtld." +msgstr "5.1-CURRENT после того, как константы UART 16550 были перемещены из [.filename]## в [.filename]##. Также когда функциональность libmap стала безусловно поддерживаться rtld." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6711 +#, no-wrap +msgid "501108" +msgstr "501108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6712 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/120386[120386]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/120386[120386]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6713 +#, no-wrap +msgid "September 23, 2003" +msgstr "23 сентября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6715 +#, no-wrap +msgid "5.1-CURRENT after PFIL_HOOKS API update" +msgstr "5.1-CURRENT после обновления API PFIL_HOOKS" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6716 +#, no-wrap +msgid "501109" +msgstr "501109" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6717 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/120503[120503]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/120503[120503]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6718 +#, no-wrap +msgid "September 27, 2003" +msgstr "27 сентября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6720 +#, no-wrap +msgid "5.1-CURRENT after adding man:kiconv[3]" +msgstr "5.1-CURRENT после добавления man:kiconv[3]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6721 +#, no-wrap +msgid "501110" +msgstr "501110" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6722 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/120556[120556]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/120556[120556]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6723 +#, no-wrap +msgid "September 28, 2003" +msgstr "28 сентября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6725 +#, no-wrap +msgid "5.1-CURRENT after changing default operations for open and close in cdevsw" +msgstr "5.1-CURRENT после изменения операций по умолчанию для open и close в cdevsw" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6726 +#, no-wrap +msgid "501111" +msgstr "501111" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6727 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/121125[121125]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/121125[121125]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6728 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6733 +#, no-wrap +msgid "October 16, 2003" +msgstr "16 октября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6730 +#, no-wrap +msgid "5.1-CURRENT after changed layout of cdevsw" +msgstr "5.1-CURRENT после изменения структуры cdevsw" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6731 +#, no-wrap +msgid "501112" +msgstr "501112" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6732 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/121129[121129]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/121129[121129]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6735 +#, no-wrap +msgid "5.1-CURRENT after adding kobj multiple inheritance" +msgstr "5.1-CURRENT после добавления множественного наследования kobj" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6736 +#, no-wrap +msgid "501113" +msgstr "501113" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6737 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/121816[121816]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/121816[121816]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6738 +#, no-wrap +msgid "October 31, 2003" +msgstr "31 октября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6740 +#, no-wrap +msgid "5.1-CURRENT after the `if_xname` change in struct ifnet" +msgstr "5.1-CURRENT после изменения `if_xname` в структуре ifnet" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6741 +#, no-wrap +msgid "501114" +msgstr "501114" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6742 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/122779[122779]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/122779[122779]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6743 +#, no-wrap +msgid "November 16, 2003" +msgstr "16 ноября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6745 +#, no-wrap +msgid "5.1-CURRENT after changing /bin and /sbin to be dynamically linked" +msgstr "5.1-CURRENT после изменения /bin и /sbin на динамически линкуемые" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6746 +#, no-wrap +msgid "502000" +msgstr "502000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6747 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/123198[123198]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/123198[123198]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6748 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6758 +#, no-wrap +msgid "December 7, 2003" +msgstr "7 декабря 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6750 +#, no-wrap +msgid "5.2-RELEASE" +msgstr "5.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6751 +#, no-wrap +msgid "502010" +msgstr "502010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6752 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/126150[126150]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/126150[126150]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6753 +#, no-wrap +msgid "February 23, 2004" +msgstr "23 февраля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6755 +#, no-wrap +msgid "5.2.1-RELEASE" +msgstr "5.2.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6756 +#, no-wrap +msgid "502100" +msgstr "502100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6757 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/123196[123196]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/123196[123196]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6760 +#, no-wrap +msgid "5.2-CURRENT after branching for RELENG_5_2" +msgstr "5.2-CURRENT после ветвления для RELENG_5_2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6761 +#, no-wrap +msgid "502101" +msgstr "502101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6762 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/123677[123677]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/123677[123677]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6763 +#, no-wrap +msgid "December 19, 2003" +msgstr "19 декабря 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6765 +#, no-wrap +msgid "5.2-CURRENT after `__cxa_atexit`/`__cxa_finalize` functions were added to libc." +msgstr "5.2-CURRENT после добавления функций `__cxa_atexit`/`__cxa_finalize` в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6766 +#, no-wrap +msgid "502102" +msgstr "502102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6767 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/125236[125236]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/125236[125236]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6768 +#, no-wrap +msgid "January 30, 2004" +msgstr "30 января 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6770 +#, no-wrap +msgid "5.2-CURRENT after change of default thread library from libc_r to libpthread." +msgstr "5.2-CURRENT после изменения стандартной библиотеки потоков с libc_r на libpthread." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6771 +#, no-wrap +msgid "502103" +msgstr "502103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6772 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/126083[126083]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/126083[126083]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6773 +#, no-wrap +msgid "February 21, 2004" +msgstr "21 февраля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6775 +#, no-wrap +msgid "5.2-CURRENT after device driver API mega patch." +msgstr "5.2-CURRENT после масштабного патча API драйверов устройств." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6776 +#, no-wrap +msgid "502104" +msgstr "502104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6777 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/126208[126208]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/126208[126208]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6778 +#, no-wrap +msgid "February 25, 2004" +msgstr "25 февраля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6780 +#, no-wrap +msgid "5.2-CURRENT after `getopt_long_only()` addition." +msgstr "5.2-CURRENT после добавления `getopt_long_only()`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6781 +#, no-wrap +msgid "502105" +msgstr "502105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6782 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/126644[126644]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/126644[126644]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6783 +#, no-wrap +msgid "March 5, 2004" +msgstr "5 марта 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6785 +#, no-wrap +msgid "5.2-CURRENT after NULL is made into ((void *)0) for C, creating more warnings." +msgstr "5.2-CURRENT после того, как NULL заменён на ((void *)0) для C, что вызывает больше предупреждений." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6786 +#, no-wrap +msgid "502106" +msgstr "502106" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6787 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/126757[126757]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/126757[126757]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6788 +#, no-wrap +msgid "March 8, 2004" +msgstr "8 марта 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6790 +#, no-wrap +msgid "5.2-CURRENT after pf is linked to the build and install." +msgstr "5.2-CURRENT после подключения pf к сборке и установке." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6791 +#, no-wrap +msgid "502107" +msgstr "502107" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6792 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/126819[126819]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/126819[126819]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6793 +#, no-wrap +msgid "March 10, 2004" +msgstr "10 марта 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6795 +#, no-wrap +msgid "5.2-CURRENT after `time_t` is changed to a 64-bit value on sparc64." +msgstr "5.2-CURRENT после изменения `time_t` на 64-битное значение на sparc64." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6796 +#, no-wrap +msgid "502108" +msgstr "502108" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6797 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/126891[126891]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/126891[126891]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6798 +#, no-wrap +msgid "March 12, 2004" +msgstr "12 марта 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6800 +#, no-wrap +msgid "5.2-CURRENT after Intel C/C++ compiler support in some headers and man:execve[2] changes to be more strictly conforming to POSIX." +msgstr "5.2-CURRENT после поддержки компилятора Intel C/C++ в некоторых заголовочных файлах и изменений в man:execve[2] для более строгого соответствия POSIX." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6801 +#, no-wrap +msgid "502109" +msgstr "502109" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6802 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/127312[127312]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/127312[127312]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6803 +#, no-wrap +msgid "March 22, 2004" +msgstr "22 марта 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6805 +#, no-wrap +msgid "5.2-CURRENT after the introduction of the `bus_alloc_resource_any` API" +msgstr "5.2-CURRENT после введения API `bus_alloc_resource_any`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6806 +#, no-wrap +msgid "502110" +msgstr "502110" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6807 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/127475[127475]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/127475[127475]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6808 +#, no-wrap +msgid "March 27, 2004" +msgstr "27 марта 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6810 +#, no-wrap +msgid "5.2-CURRENT after the addition of UTF-8 locales" +msgstr "5.2-CURRENT после добавления локалей UTF-8" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6811 +#, no-wrap +msgid "502111" +msgstr "502111" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6812 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/128144[128144]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/128144[128144]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6813 +#, no-wrap +msgid "April 11, 2004" +msgstr "11 апреля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6815 +#, no-wrap +msgid "5.2-CURRENT after the removal of the man:getvfsent[3] API" +msgstr "5.2-CURRENT после удаления API man:getvfsent[3]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6816 +#, no-wrap +msgid "502112" +msgstr "502112" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6817 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/128182[128182]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/128182[128182]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6818 +#, no-wrap +msgid "April 13, 2004" +msgstr "13 апреля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6820 +#, no-wrap +msgid "5.2-CURRENT after the addition of the .warning directive for make." +msgstr "5.2-CURRENT после добавления директивы .warning для make." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6821 +#, no-wrap +msgid "502113" +msgstr "502113" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6822 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/130057[130057]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/130057[130057]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6823 +#, no-wrap +msgid "June 4, 2004" +msgstr "4 июня 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6825 +#, no-wrap +msgid "5.2-CURRENT after `ttyioctl()` was made mandatory for serial drivers." +msgstr "5.2-CURRENT после того, как `ttyioctl()` стал обязательным для драйверов последовательных портов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6826 +#, no-wrap +msgid "502114" +msgstr "502114" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6827 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/130418[130418]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/130418[130418]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6828 +#, no-wrap +msgid "June 13, 2004" +msgstr "13 июня 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6830 +#, no-wrap +msgid "5.2-CURRENT after import of the ALTQ framework." +msgstr "5.2-CURRENT после импорта инфраструктуры ALTQ." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6831 +#, no-wrap +msgid "502115" +msgstr "502115" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6832 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/130481[130481]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/130481[130481]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6833 +#, no-wrap +msgid "June 14, 2004" +msgstr "14 июня 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6835 +#, no-wrap +msgid "5.2-CURRENT after changing man:sema_timedwait[9] to return 0 on success and a non-zero error code on failure." +msgstr "5.2-CURRENT после изменения man:sema_timedwait[9] для возврата 0 при успехе и ненулевого кода ошибки при сбое." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6836 +#, no-wrap +msgid "502116" +msgstr "502116" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6837 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/130585[130585]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/130585[130585]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6838 +#, no-wrap +msgid "June 16, 2004" +msgstr "16 июня 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6840 +#, no-wrap +msgid "5.2-CURRENT after changing kernel `dev_t` to be pointer to struct cdev *." +msgstr "5.2-CURRENT после изменения типа `dev_t` в ядре на указатель на структуру cdev *." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6841 +#, no-wrap +msgid "502117" +msgstr "502117" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6842 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/130640[130640]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/130640[130640]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6843 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6848 +#, no-wrap +msgid "June 17, 2004" +msgstr "17 июня 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6845 +#, no-wrap +msgid "5.2-CURRENT after changing kernel `udev_t` to `dev_t`." +msgstr "5.2-CURRENT после изменения ядра `udev_t` на `dev_t`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6846 +#, no-wrap +msgid "502118" +msgstr "502118" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6847 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/130656[130656]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/130656[130656]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6850 +#, no-wrap +msgid "5.2-CURRENT after adding support for CLOCK_VIRTUAL and CLOCK_PROF to man:clock_gettime[2] and man:clock_getres[2]." +msgstr "5.2-CURRENT после добавления поддержки CLOCK_VIRTUAL и CLOCK_PROF в man:clock_gettime[2] и man:clock_getres[2]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6851 +#, no-wrap +msgid "502119" +msgstr "502119" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6852 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/130934[130934]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/130934[130934]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6853 +#, no-wrap +msgid "June 22, 2004" +msgstr "22 июня 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6855 +#, no-wrap +msgid "5.2-CURRENT after changing network interface cloning overhaul." +msgstr "5.2-CURRENT после изменения переработки клонирования сетевых интерфейсов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6856 +#, no-wrap +msgid "502120" +msgstr "502120" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6857 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/131429[131429]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/131429[131429]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6858 +#, no-wrap +msgid "July 2, 2004" +msgstr "2 июля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6860 +#, no-wrap +msgid "5.2-CURRENT after the update of the package tools to revision 20040629." +msgstr "5.2-CURRENT после обновления инструментов пакетов до ревизии 20040629." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6861 +#, no-wrap +msgid "502121" +msgstr "502121" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6862 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/131883[131883]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/131883[131883]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6863 +#, no-wrap +msgid "July 9, 2004" +msgstr "9 июля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6865 +#, no-wrap +msgid "5.2-CURRENT after marking Bluetooth code as non-i386 specific." +msgstr "5.2-CURRENT после пометки кода Bluetooth как не специфичного для i386." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6866 +#, no-wrap +msgid "502122" +msgstr "502122" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6867 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/131971[131971]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/131971[131971]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6868 +#, no-wrap +msgid "July 11, 2004" +msgstr "11 июля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6870 +#, no-wrap +msgid "5.2-CURRENT after the introduction of the KDB debugger framework, the conversion of DDB into a backend and the introduction of the GDB backend." +msgstr "5.2-CURRENT после внедрения фреймворка отладчика KDB, преобразования DDB в бэкенд и добавления бэкенда GDB." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6871 +#, no-wrap +msgid "502123" +msgstr "502123" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6872 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/132025[132025]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/132025[132025]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6873 +#, no-wrap +msgid "July 12, 2004" +msgstr "12 июля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6875 +#, no-wrap +msgid "5.2-CURRENT after change to make VFS_ROOT take a struct thread argument as does vflush. Struct `kinfo_proc` now has a user data pointer. The switch of the default X implementation to `xorg` was also made at this time." +msgstr "5.2-CURRENT после изменения, чтобы VFS_ROOT принимал аргумент struct thread, как и vflush. Структура `kinfo_proc` теперь содержит указатель на пользовательские данные. Переключение реализации X по умолчанию на `xorg` также произошло в это время." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6876 +#, no-wrap +msgid "502124" +msgstr "502124" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6877 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/132597[132597]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/132597[132597]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6878 +#, no-wrap +msgid "July 24, 2004" +msgstr "24 июля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6880 +#, no-wrap +msgid "5.2-CURRENT after the change to separate the way ports rc.d and legacy scripts are started." +msgstr "5.2-CURRENT после изменения, разделяющего способ запуска rc.d портов и устаревших скриптов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6881 +#, no-wrap +msgid "502125" +msgstr "502125" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6882 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/132726[132726]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/132726[132726]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6883 +#, no-wrap +msgid "July 28, 2004" +msgstr "28 июля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6885 +#, no-wrap +msgid "5.2-CURRENT after the backout of the previous change." +msgstr "5.2-CURRENT после отмены предыдущего изменения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6886 +#, no-wrap +msgid "502126" +msgstr "502126" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6887 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/132914[132914]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/132914[132914]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6888 +#, no-wrap +msgid "July 31, 2004" +msgstr "31 июля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6890 +#, no-wrap +msgid "5.2-CURRENT after the removal of `kmem_alloc_pageable()` and the import of gcc 3.4.2." +msgstr "5.2-CURRENT после удаления `kmem_alloc_pageable()` и импорта gcc 3.4.2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6891 +#, no-wrap +msgid "502127" +msgstr "502127" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6892 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/132991[132991]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/132991[132991]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6893 +#, no-wrap +msgid "August 2, 2004" +msgstr "2 августа 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6895 +#, no-wrap +msgid "5.2-CURRENT after changing the UMA kernel API to allow ctors/inits to fail." +msgstr "5.2-CURRENT после изменения UMA API ядра для разрешения ошибок в ctors/inits." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6896 +#, no-wrap +msgid "502128" +msgstr "502128" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6897 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/133306[133306]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/133306[133306]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6898 +#, no-wrap +msgid "August 8, 2004" +msgstr "8 августа 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6900 +#, no-wrap +msgid "5.2-CURRENT after the change of the vfs_mount signature as well as global replacement of PRISON_ROOT with SUSER_ALLOWJAIL for the man:suser[9] API." +msgstr "5.2-CURRENT после изменения сигнатуры vfs_mount, а также глобальной замены PRISON_ROOT на SUSER_ALLOWJAIL для API man:suser[9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6901 +#, no-wrap +msgid "503000" +msgstr "503000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6902 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/134189[134189]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/134189[134189]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6903 +#, no-wrap +msgid "August 23, 2004" +msgstr "23 августа 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6905 +#, no-wrap +msgid "5.3-BETA/RC before the pfil API change" +msgstr "5.3-BETA/RC до изменения API pfil" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6906 +#, no-wrap +msgid "503001" +msgstr "503001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6907 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/135580[135580]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/135580[135580]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6908 +#, no-wrap +msgid "September 22, 2004" +msgstr "22 сентября 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6910 +#, no-wrap +msgid "5.3-RELEASE" +msgstr "5.3-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6911 +#, no-wrap +msgid "503100" +msgstr "503100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6912 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/136595[136595]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/136595[136595]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6913 +#, no-wrap +msgid "October 16, 2004" +msgstr "16 октября 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6915 +#, no-wrap +msgid "5.3-STABLE after branching for RELENG_5_3" +msgstr "5.3-STABLE после ветвления для RELENG_5_3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6916 +#, no-wrap +msgid "503101" +msgstr "503101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6917 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/138459[138459]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/138459[138459]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6918 +#, no-wrap +msgid "December 3, 2004" +msgstr "3 декабря 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6920 +#, no-wrap +msgid "5.3-STABLE after addition of glibc style man:strftime[3] padding options." +msgstr "5.3-STABLE после добавления опций заполнения man:strftime[3] в стиле glibc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6921 +#, no-wrap +msgid "503102" +msgstr "503102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6922 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/141788[141788]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/141788[141788]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6923 +#, no-wrap +msgid "February 13, 2005" +msgstr "13 февраля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6925 +#, no-wrap +msgid "5.3-STABLE after OpenBSD's man:nc[1] import MFC." +msgstr "5.3-STABLE после импорта man:nc[1] из OpenBSD MFC." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6926 +#, no-wrap +msgid "503103" +msgstr "503103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6927 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142639[142639]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142639[142639]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6930 +#, no-wrap +msgid "5.4-PRERELEASE after the MFC of the fixes in [.filename]## and [.filename]## for using the GCC-compatibility of the Intel C/C++ compiler." +msgstr "5.4-PRERELEASE после MFC исправлений в [.filename]## и [.filename]## для обеспечения совместимости с GCC компилятора Intel C/C++." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6931 +#, no-wrap +msgid "503104" +msgstr "503104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6932 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/142835[142835]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/142835[142835]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6935 +#, no-wrap +msgid "5.4-PRERELEASE after the MFC of the change of `ifi_epoch` from wall clock time to uptime." +msgstr "5.4-PRERELEASE после MFC изменения `ifi_epoch` с времени реального мира на время работы системы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6936 +#, no-wrap +msgid "503105" +msgstr "503105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6937 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/143029[143029]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/143029[143029]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6938 +#, no-wrap +msgid "March 2, 2005" +msgstr "2 марта 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6940 +#, no-wrap +msgid "5.4-PRERELEASE after the MFC of the fix of EOVERFLOW check in man:vswprintf[3]." +msgstr "5.4-PRERELEASE после переноса исправления проверки EOVERFLOW в man:vswprintf[3]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6941 +#, no-wrap +msgid "504000" +msgstr "504000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6942 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/144575[144575]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/144575[144575]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6943 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6948 +#, no-wrap +msgid "April 3, 2005" +msgstr "3 апреля 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6945 +#, no-wrap +msgid "5.4-RELEASE." +msgstr "5.4-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6946 +#, no-wrap +msgid "504100" +msgstr "504100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6947 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/144581[144581]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/144581[144581]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6950 +#, no-wrap +msgid "5.4-STABLE after branching for RELENG_5_4" +msgstr "5.4-STABLE после ветвления для RELENG_5_4" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6951 +#, no-wrap +msgid "504101" +msgstr "504101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6952 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/146105[146105]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/146105[146105]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6953 +#, no-wrap +msgid "May 11, 2005" +msgstr "11 мая 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6955 +#, no-wrap +msgid "5.4-STABLE after increasing the default thread stacksizes" +msgstr "5.4-STABLE после увеличения размеров стеков потоков по умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6956 +#, no-wrap +msgid "504102" +msgstr "504102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6957 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/504101[504101]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/504101[504101]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6958 +#, no-wrap +msgid "June 24, 2005" +msgstr "24 июня 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6960 +#, no-wrap +msgid "5.4-STABLE after the addition of sha256" +msgstr "5.4-STABLE после добавления sha256" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6961 +#, no-wrap +msgid "504103" +msgstr "504103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6962 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/150892[150892]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/150892[150892]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6963 +#, no-wrap +msgid "October 3, 2005" +msgstr "3 октября 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6965 +#, no-wrap +msgid "5.4-STABLE after the MFC of if_bridge" +msgstr "5.4-STABLE после слияния изменений (MFC) if_bridge" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6966 +#, no-wrap +msgid "504104" +msgstr "504104" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6967 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/152370[152370]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/152370[152370]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6968 +#, no-wrap +msgid "November 13, 2005" +msgstr "13 ноября 2005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6970 +#, no-wrap +msgid "5.4-STABLE after the MFC of bsdiff and portsnap" +msgstr "5.4-STABLE после слияния изменений (MFC) bsdiff и portsnap" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6971 +#, no-wrap +msgid "504105" +msgstr "504105" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6972 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/154464[154464]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/154464[154464]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6975 +#, no-wrap +msgid "5.4-STABLE after MFC of ldconfig_local_dirs change." +msgstr "5.4-STABLE после MFC изменений ldconfig_local_dirs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6976 +#, no-wrap +msgid "505000" +msgstr "505000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6977 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/158481[158481]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/158481[158481]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6978 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6983 +#, no-wrap +msgid "May 12, 2006" +msgstr "12 мая 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6980 +#, no-wrap +msgid "5.5-RELEASE." +msgstr "5.5-RELEASE." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6981 +#, no-wrap +msgid "505100" +msgstr "505100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6982 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/158482[158482]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/158482[158482]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6984 +#, no-wrap +msgid "5.5-STABLE after branching for RELENG_5_5" +msgstr "5.5-STABLE после ветвления для RELENG_5_5" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6987 +#, no-wrap +msgid "FreeBSD 4 Versions" +msgstr "Версии FreeBSD 4" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6990 +#, no-wrap +msgid "FreeBSD 4 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 4" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:6999 +#, no-wrap +msgid "400000" +msgstr "400000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7000 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/43041[43041]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/43041[43041]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7001 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7394 +#, no-wrap +msgid "January 22, 1999" +msgstr "22 января 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7003 +#, no-wrap +msgid "4.0-CURRENT after 3.4 branch" +msgstr "4.0-CURRENT после ветки 3.4" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7004 +#, no-wrap +msgid "400001" +msgstr "400001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7005 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/44177[44177]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/44177[44177]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7006 +#, no-wrap +msgid "February 20, 1999" +msgstr "20 февраля 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7008 +#, no-wrap +msgid "4.0-CURRENT after change in dynamic linker handling" +msgstr "4.0-CURRENT после изменения в обработке динамического компоновщика" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7009 +#, no-wrap +msgid "400002" +msgstr "400002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7010 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/44699[44699]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/44699[44699]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7011 +#, no-wrap +msgid "March 13, 1999" +msgstr "13 марта 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7013 +#, no-wrap +msgid "4.0-CURRENT after C++ constructor/destructor order change" +msgstr "4.0-CURRENT после изменения порядка конструкторов/деструкторов C++" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7014 +#, no-wrap +msgid "400003" +msgstr "400003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7015 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/45059[45059]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/45059[45059]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7016 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7404 +#, no-wrap +msgid "March 27, 1999" +msgstr "27 марта 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7018 +#, no-wrap +msgid "4.0-CURRENT after functioning man:dladdr[3]" +msgstr "4.0-CURRENT после функционирования man:dladdr[3]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7019 +#, no-wrap +msgid "400004" +msgstr "400004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7020 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/45321[45321]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/45321[45321]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7021 +#, no-wrap +msgid "April 5, 1999" +msgstr "5 апреля 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7023 +#, no-wrap +msgid "4.0-CURRENT after `__deregister_frame_info` dynamic linker bug fix (also 4.0-CURRENT after EGCS 1.1.2 integration)" +msgstr "4.0-CURRENT после исправления ошибки динамического компоновщика `__deregister_frame_info` (также 4.0-CURRENT после интеграции EGCS 1.1.2)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7024 +#, no-wrap +msgid "400005" +msgstr "400005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7025 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/46113[46113]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/46113[46113]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7026 +#, no-wrap +msgid "April 27, 1999" +msgstr "27 апреля 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7028 +#, no-wrap +msgid "4.0-CURRENT after man:suser[9] API change (also 4.0-CURRENT after newbus)" +msgstr "4.0-CURRENT после изменения API man:suser[9] (также 4.0-CURRENT после newbus)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7029 +#, no-wrap +msgid "400006" +msgstr "400006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7030 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/47640[47640]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/47640[47640]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7031 +#, no-wrap +msgid "May 31, 1999" +msgstr "31 мая 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7033 +#, no-wrap +msgid "4.0-CURRENT after cdevsw registration change" +msgstr "4.0-CURRENT после изменения регистрации cdevsw" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7034 +#, no-wrap +msgid "400007" +msgstr "400007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7035 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/47992[47992]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/47992[47992]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7036 +#, no-wrap +msgid "June 17, 1999" +msgstr "17 июня 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7038 +#, no-wrap +msgid "4.0-CURRENT after the addition of `so_cred` for socket level credentials" +msgstr "4.0-CURRENT после добавления `so_cred` для учётных данных на уровне сокета" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7039 +#, no-wrap +msgid "400008" +msgstr "400008" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7040 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/48048[48048]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/48048[48048]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7041 +#, no-wrap +msgid "June 20, 1999" +msgstr "20 июня 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7043 +#, no-wrap +msgid "4.0-CURRENT after the addition of a poll syscall wrapper to libc_r" +msgstr "4.0-CURRENT после добавления обёртки системного вызова poll в libc_r" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7044 +#, no-wrap +msgid "400009" +msgstr "400009" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7045 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/48936[48936]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/48936[48936]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7046 +#, no-wrap +msgid "July 20, 1999" +msgstr "20 июля 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7048 +#, no-wrap +msgid "4.0-CURRENT after the change of the kernel's `dev_t` type to `struct specinfo` pointer" +msgstr "4.0-CURRENT после изменения типа `dev_t` ядра на указатель `struct specinfo`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7049 +#, no-wrap +msgid "400010" +msgstr "400010" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7050 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/51649[51649]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/51649[51649]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7051 +#, no-wrap +msgid "September 25, 1999" +msgstr "25 сентября 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7053 +#, no-wrap +msgid "4.0-CURRENT after fixing a hole in man:jail[2]" +msgstr "4.0-CURRENT после исправления уязвимости в man:jail[2]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7054 +#, no-wrap +msgid "400011" +msgstr "400011" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7055 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/51791[51791]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/51791[51791]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7056 +#, no-wrap +msgid "September 29, 1999" +msgstr "29 сентября 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7058 +#, no-wrap +msgid "4.0-CURRENT after the `sigset_t` datatype change" +msgstr "4.0-CURRENT после изменения типа данных `sigset_t`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7059 +#, no-wrap +msgid "400012" +msgstr "400012" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7060 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/53164[53164]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/53164[53164]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7061 +#, no-wrap +msgid "November 15, 1999" +msgstr "15 ноября 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7063 +#, no-wrap +msgid "4.0-CURRENT after the cutover to the GCC 2.95.2 compiler" +msgstr "4.0-CURRENT после перехода на компилятор GCC 2.95.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7064 +#, no-wrap +msgid "400013" +msgstr "400013" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7065 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/54123[54123]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/54123[54123]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7066 +#, no-wrap +msgid "December 4, 1999" +msgstr "4 декабря 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7068 +#, no-wrap +msgid "4.0-CURRENT after adding pluggable linux-mode ioctl handlers" +msgstr "4.0-CURRENT после добавления подключаемых обработчиков ioctl в режиме linux" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7069 +#, no-wrap +msgid "400014" +msgstr "400014" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7070 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/56216[56216]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/56216[56216]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7071 +#, no-wrap +msgid "January 18, 2000" +msgstr "18 января 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7073 +#, no-wrap +msgid "4.0-CURRENT after importing OpenSSL" +msgstr "4.0-CURRENT после импорта OpenSSL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7074 +#, no-wrap +msgid "400015" +msgstr "400015" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7075 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/56700[56700]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/56700[56700]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7076 +#, no-wrap +msgid "January 27, 2000" +msgstr "27 января 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7078 +#, no-wrap +msgid "4.0-CURRENT after the C++ ABI change in GCC 2.95.2 from -fvtable-thunks to -fno-vtable-thunks by default" +msgstr "4.0-CURRENT после изменения ABI C++ в GCC 2.95.2 с -fvtable-thunks на -fno-vtable-thunks по умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7079 +#, no-wrap +msgid "400016" +msgstr "400016" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7080 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/57529[57529]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/57529[57529]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7081 +#, no-wrap +msgid "February 27, 2000" +msgstr "27 февраля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7083 +#, no-wrap +msgid "4.0-CURRENT after importing OpenSSH" +msgstr "4.0-CURRENT после импорта OpenSSH" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7084 +#, no-wrap +msgid "400017" +msgstr "400017" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7085 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/58005[58005]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/58005[58005]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7088 +#, no-wrap +msgid "4.0-RELEASE" +msgstr "4.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7089 +#, no-wrap +msgid "400018" +msgstr "400018" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7090 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/58170[58170]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/58170[58170]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7091 +#, no-wrap +msgid "March 17, 2000" +msgstr "17 марта 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7093 +#, no-wrap +msgid "4.0-STABLE after 4.0-RELEASE" +msgstr "4.0-STABLE после 4.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7094 +#, no-wrap +msgid "400019" +msgstr "400019" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7095 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/60047[60047]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/60047[60047]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7096 +#, no-wrap +msgid "May 5, 2000" +msgstr "5 мая 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7098 +#, no-wrap +msgid "4.0-STABLE after the introduction of delayed checksums." +msgstr "4.0-STABLE после введения отложенных контрольных сумм." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7099 +#, no-wrap +msgid "400020" +msgstr "400020" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7100 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/61262[61262]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/61262[61262]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7101 +#, no-wrap +msgid "June 4, 2000" +msgstr "4 июня 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7103 +#, no-wrap +msgid "4.0-STABLE after merging libxpg4 code into libc." +msgstr "4.0-STABLE после объединения кода libxpg4 в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7104 +#, no-wrap +msgid "400021" +msgstr "400021" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7105 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/62820[62820]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/62820[62820]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7106 +#, no-wrap +msgid "July 8, 2000" +msgstr "8 июля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7108 +#, no-wrap +msgid "4.0-STABLE after upgrading Binutils to 2.10.0, ELF branding changes, and tcsh in the base system." +msgstr "4.0-STABLE после обновления Binutils до 2.10.0, изменения маркировки ELF и tcsh в базовой системе." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7109 +#, no-wrap +msgid "410000" +msgstr "410000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7110 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/63095[63095]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/63095[63095]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7113 +#, no-wrap +msgid "4.1-RELEASE" +msgstr "4.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7114 +#, no-wrap +msgid "410001" +msgstr "410001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7115 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/64012[64012]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/64012[64012]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7116 +#, no-wrap +msgid "July 29, 2000" +msgstr "29 июля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7118 +#, no-wrap +msgid "4.1-STABLE after 4.1-RELEASE" +msgstr "4.1-STABLE после 4.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7119 +#, no-wrap +msgid "410002" +msgstr "410002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7120 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/65962[65962]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/65962[65962]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7121 +#, no-wrap +msgid "September 16, 2000" +msgstr "16 сентября 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7123 +#, no-wrap +msgid "4.1-STABLE after man:setproctitle[3] moved from libutil to libc." +msgstr "4.1-STABLE после перемещения man:setproctitle[3] из libutil в libc." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7124 +#, no-wrap +msgid "411000" +msgstr "411000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7125 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/66336[66336]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/66336[66336]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7126 +#, no-wrap +msgid "September 25, 2000" +msgstr "25 сентября 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7128 +#, no-wrap +msgid "4.1.1-RELEASE" +msgstr "4.1.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7129 +#, no-wrap +msgid "411001" +msgstr "411001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7133 +#, no-wrap +msgid "4.1.1-STABLE after 4.1.1-RELEASE" +msgstr "4.1.1-STABLE после 4.1.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7134 +#, no-wrap +msgid "420000" +msgstr "420000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7135 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/68066[68066]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/68066[68066]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7136 +#, no-wrap +msgid "October 31, 2000" +msgstr "31 октября 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7138 +#, no-wrap +msgid "4.2-RELEASE" +msgstr "4.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7139 +#, no-wrap +msgid "420001" +msgstr "420001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7140 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/70895[70895]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/70895[70895]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7143 +#, no-wrap +msgid "4.2-STABLE after combining libgcc.a and libgcc_r.a, and associated GCC linkage changes." +msgstr "4.2-STABLE после объединения libgcc.a и libgcc_r.a, а также связанных изменений в компоновке GCC." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7144 +#, no-wrap +msgid "430000" +msgstr "430000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7145 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/73800[73800]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/73800[73800]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7146 +#, no-wrap +msgid "March 6, 2001" +msgstr "6 марта 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7148 +#, no-wrap +msgid "4.3-RELEASE" +msgstr "4.3-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7149 +#, no-wrap +msgid "430001" +msgstr "430001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7150 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/76779[76779]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/76779[76779]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7151 +#, no-wrap +msgid "May 18, 2001" +msgstr "18 мая 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7153 +#, no-wrap +msgid "4.3-STABLE after `wint_t` introduction." +msgstr "4.3-STABLE после введения `wint_t`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7154 +#, no-wrap +msgid "430002" +msgstr "430002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7155 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/80157[80157]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/80157[80157]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7156 +#, no-wrap +msgid "July 22, 2001" +msgstr "22 июля 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7158 +#, no-wrap +msgid "4.3-STABLE after PCI powerstate API merge." +msgstr "4.3-STABLE после объединения API управления состоянием питания PCI." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7159 +#, no-wrap +msgid "440000" +msgstr "440000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7160 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/80923[80923]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/80923[80923]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7161 +#, no-wrap +msgid "August 1, 2001" +msgstr "1 августа 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7163 +#, no-wrap +msgid "4.4-RELEASE" +msgstr "4.4-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7164 +#, no-wrap +msgid "440001" +msgstr "440001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7165 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/85341[85341]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/85341[85341]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7166 +#, no-wrap +msgid "October 23, 2001" +msgstr "23 октября 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7168 +#, no-wrap +msgid "4.4-STABLE after `d_thread_t` introduction." +msgstr "4.4-STABLE после введения `d_thread_t`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7169 +#, no-wrap +msgid "440002" +msgstr "440002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7170 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/86038[86038]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/86038[86038]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7171 +#, no-wrap +msgid "November 4, 2001" +msgstr "4 ноября 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7173 +#, no-wrap +msgid "4.4-STABLE after mount structure changes (affects filesystem klds)." +msgstr "4.4-STABLE после изменений в структуре монтирования (затрагивает модули файловых систем klds)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7174 +#, no-wrap +msgid "440003" +msgstr "440003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7175 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/88130[88130]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/88130[88130]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7176 +#, no-wrap +msgid "December 18, 2001" +msgstr "18 декабря 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7178 +#, no-wrap +msgid "4.4-STABLE after the userland components of smbfs were imported." +msgstr "4.4-STABLE после импорта компонентов пользовательского пространства smbfs." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7179 +#, no-wrap +msgid "450000" +msgstr "450000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7180 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/88271[88271]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/88271[88271]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7181 +#, no-wrap +msgid "December 20, 2001" +msgstr "20 декабря 2001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7183 +#, no-wrap +msgid "4.5-RELEASE" +msgstr "4.5-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7184 +#, no-wrap +msgid "450001" +msgstr "450001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7188 +#, no-wrap +msgid "4.5-STABLE after the usb structure element rename." +msgstr "4.5-STABLE после переименования элемента структуры usb." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7189 +#, no-wrap +msgid "450002" +msgstr "450002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7190 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/92151[92151]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/92151[92151]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7191 +#, no-wrap +msgid "March 12, 2002" +msgstr "12 марта 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7193 +#, no-wrap +msgid "4.5-STABLE after locale changes." +msgstr "4.5-STABLE после изменений локали." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7194 +#, no-wrap +msgid "450003" +msgstr "450003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7198 +#, no-wrap +msgid "(Never created)" +msgstr "(Никогда не создавался)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7199 +#, no-wrap +msgid "450004" +msgstr "450004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7200 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/94840[94840]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/94840[94840]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7201 +#, no-wrap +msgid "April 16, 2002" +msgstr "16 апреля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7203 +#, no-wrap +msgid "4.5-STABLE after the `sendmail_enable` man:rc.conf[5] variable was made to take the value `NONE`." +msgstr "4.5-STABLE после того, как переменная `sendmail_enable` из man:rc.conf[5] стала принимать значение `NONE`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7204 +#, no-wrap +msgid "450005" +msgstr "450005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7205 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/95555[95555]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/95555[95555]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7206 +#, no-wrap +msgid "April 27, 2002" +msgstr "27 апреля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7208 +#, no-wrap +msgid "4.5-STABLE after moving to XFree86 4 by default for package builds." +msgstr "4.5-STABLE после перехода на XFree86 4 по умолчанию для сборки пакетов." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7209 +#, no-wrap +msgid "450006" +msgstr "450006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7210 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/95846[95846]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/95846[95846]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7211 +#, no-wrap +msgid "May 1, 2002" +msgstr "1 мая 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7213 +#, no-wrap +msgid "4.5-STABLE after accept filtering was fixed so that is no longer susceptible to an easy DoS." +msgstr "4.5-STABLE после исправления фильтрации accept, чтобы он больше не был подвержен простой DoS-атаке." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7214 +#, no-wrap +msgid "460000" +msgstr "460000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7215 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/97923[97923]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/97923[97923]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7216 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7221 +#, no-wrap +msgid "June 21, 2002" +msgstr "21 июня 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7218 +#, no-wrap +msgid "4.6-RELEASE" +msgstr "4.6-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7219 +#, no-wrap +msgid "460001" +msgstr "460001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7220 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/98730[98730]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/98730[98730]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7223 +#, no-wrap +msgid "4.6-STABLE man:sendfile[2] fixed to comply with documentation, not to count any headers sent against the amount of data to be sent from the file." +msgstr "4.6-STABLE man:sendfile[2] исправлен для соответствия документации, чтобы не учитывать отправленные заголовки в объеме данных, отправляемых из файла." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7224 +#, no-wrap +msgid "460002" +msgstr "460002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7225 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/100366[100366]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/100366[100366]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7226 +#, no-wrap +msgid "July 19, 2002" +msgstr "19 июля 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7228 +#, no-wrap +msgid "4.6.2-RELEASE" +msgstr "4.6.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7229 +#, no-wrap +msgid "460100" +msgstr "460100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7230 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/98857[98857]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/98857[98857]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7231 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7236 +#, no-wrap +msgid "June 26, 2002" +msgstr "26 июня 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7233 +#, no-wrap +msgid "4.6-STABLE" +msgstr "4.6-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7234 +#, no-wrap +msgid "460101" +msgstr "460101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7235 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/98880[98880]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/98880[98880]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7238 +#, no-wrap +msgid "4.6-STABLE after MFC of `sed -i`." +msgstr "4.6-STABLE после MFC `sed -i`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7239 +#, no-wrap +msgid "460102" +msgstr "460102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7240 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/102759[102759]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/102759[102759]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7243 +#, no-wrap +msgid "4.6-STABLE after MFC of many new pkg_install features from the HEAD." +msgstr "4.6-STABLE после MFC множества новых функций pkg_install из HEAD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7244 +#, no-wrap +msgid "470000" +msgstr "470000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7245 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/104655[104655]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/104655[104655]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7246 +#, no-wrap +msgid "October 8, 2002" +msgstr "8 октября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7248 +#, no-wrap +msgid "4.7-RELEASE" +msgstr "4.7-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7249 +#, no-wrap +msgid "470100" +msgstr "470100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7250 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/104717[104717]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/104717[104717]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7251 +#, no-wrap +msgid "October 9, 2002" +msgstr "9 октября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7253 +#, no-wrap +msgid "4.7-STABLE" +msgstr "4.7-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7254 +#, no-wrap +msgid "470101" +msgstr "470101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7255 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/106732[106732]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/106732[106732]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7256 +#, no-wrap +msgid "November 10, 2002" +msgstr "10 ноября 2002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7258 +#, no-wrap +msgid "Start generated __std{in,out,err}p references rather than __sF. This changes std{in,out,err} from a compile time expression to a runtime one." +msgstr "Начинать генерировать ссылки `__std{in,out,err}p` вместо `__sF`. Это изменяет `std{in,out,err}` с выражения времени компиляции на выражение времени выполнения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7259 +#, no-wrap +msgid "470102" +msgstr "470102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7260 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/109753[109753]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/109753[109753]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7261 +#, no-wrap +msgid "January 23, 2003" +msgstr "23 января 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7263 +#, no-wrap +msgid "4.7-STABLE after MFC of mbuf changes to replace `m_aux` mbufs by `m_tag`'s" +msgstr "4.7-STABLE после MFC изменений mbuf для замены `m_aux` mbuf на `m_tag`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7264 +#, no-wrap +msgid "470103" +msgstr "470103" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7265 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/110887[110887]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/110887[110887]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7266 +#, no-wrap +msgid "February 14, 2003" +msgstr "14 февраля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7268 +#, no-wrap +msgid "4.7-STABLE gets OpenSSL 0.9.7" +msgstr "4.7-STABLE получает OpenSSL 0.9.7" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7269 +#, no-wrap +msgid "480000" +msgstr "480000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7270 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/112852[112852]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/112852[112852]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7271 +#, no-wrap +msgid "March 30, 2003" +msgstr "30 марта 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7273 +#, no-wrap +msgid "4.8-RELEASE" +msgstr "4.8-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7274 +#, no-wrap +msgid "480100" +msgstr "480100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7275 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/113107[113107]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/113107[113107]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7276 +#, no-wrap +msgid "April 5, 2003" +msgstr "5 апреля 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7278 +#, no-wrap +msgid "4.8-STABLE" +msgstr "4.8-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7279 +#, no-wrap +msgid "480101" +msgstr "480101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7280 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/115232[115232]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/115232[115232]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7281 +#, no-wrap +msgid "May 22, 2003" +msgstr "22 мая 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7283 +#, no-wrap +msgid "4.8-STABLE after man:realpath[3] has been made thread-safe" +msgstr "4.8-STABLE после того, как man:realpath[3] стал потокобезопасным" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7284 +#, no-wrap +msgid "480102" +msgstr "480102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7285 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/118737[118737]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/118737[118737]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7286 +#, no-wrap +msgid "August 10, 2003" +msgstr "10 августа 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7288 +#, no-wrap +msgid "4.8-STABLE 3ware API changes to twe." +msgstr "4.8-STABLE Изменения API 3ware в twe." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7289 +#, no-wrap +msgid "490000" +msgstr "490000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7290 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/121592[121592]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/121592[121592]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7291 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7296 +#, no-wrap +msgid "October 27, 2003" +msgstr "27 октября 2003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7293 +#, no-wrap +msgid "4.9-RELEASE" +msgstr "4.9-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7294 +#, no-wrap +msgid "490100" +msgstr "490100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7295 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/121593[121593]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/121593[121593]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7298 +#, no-wrap +msgid "4.9-STABLE" +msgstr "4.9-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7299 +#, no-wrap +msgid "490101" +msgstr "490101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7300 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/124264[124264]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/124264[124264]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7301 +#, no-wrap +msgid "January 8, 2004" +msgstr "8 января 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7303 +#, no-wrap +msgid "4.9-STABLE after `e_sid` was added to struct `kinfo_eproc`." +msgstr "4.9-STABLE после добавления `e_sid` в структуру `kinfo_eproc`." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7304 +#, no-wrap +msgid "490102" +msgstr "490102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7305 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/125417[125417]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/125417[125417]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7306 +#, no-wrap +msgid "February 4, 2004" +msgstr "4 февраля 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7308 +#, no-wrap +msgid "4.9-STABLE after MFC of libmap functionality for rtld." +msgstr "4.9-STABLE после MFC функциональности libmap для rtld." + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7309 +#, no-wrap +msgid "491000" +msgstr "491000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7310 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/129700[129700]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/129700[129700]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7311 +#, no-wrap +msgid "May 25, 2004" +msgstr "25 мая 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7313 +#, no-wrap +msgid "4.10-RELEASE" +msgstr "4.10-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7314 +#, no-wrap +msgid "491100" +msgstr "491100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7315 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/129918[129918]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/129918[129918]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7316 +#, no-wrap +msgid "June 1, 2004" +msgstr "1 июня 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7318 +#, no-wrap +msgid "4.10-STABLE" +msgstr "4.10-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7319 +#, no-wrap +msgid "491101" +msgstr "491101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7320 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/133506[133506]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/133506[133506]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7321 +#, no-wrap +msgid "August 11, 2004" +msgstr "11 августа 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7323 +#, no-wrap +msgid "4.10-STABLE after MFC of revision 20040629 of the package tools" +msgstr "4.10-STABLE после слияния изменения из ревизии 20040629 пакета tools" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7324 +#, no-wrap +msgid "491102" +msgstr "491102" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7325 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/137786[137786]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/137786[137786]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7326 +#, no-wrap +msgid "November 16, 2004" +msgstr "16 ноября 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7328 +#, no-wrap +msgid "4.10-STABLE after VM fix dealing with unwiring of fictitious pages" +msgstr "4.10-STABLE после исправления VM, связанного с обработкой размонтирования фиктивных страниц" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7329 +#, no-wrap +msgid "492000" +msgstr "492000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7330 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/138960[138960]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/138960[138960]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7331 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7336 +#, no-wrap +msgid "December 17, 2004" +msgstr "17 декабря 2004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7333 +#, no-wrap +msgid "4.11-RELEASE" +msgstr "4.11-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7334 +#, no-wrap +msgid "492100" +msgstr "492100" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7335 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/138959[138959]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/138959[138959]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7338 +#, no-wrap +msgid "4.11-STABLE" +msgstr "4.11-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7339 +#, no-wrap +msgid "492101" +msgstr "492101" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7340 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/157843[157843]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/157843[157843]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7341 +#, no-wrap +msgid "April 18, 2006" +msgstr "18 апреля 2006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7342 +#, no-wrap +msgid "4.11-STABLE after adding libdata/ldconfig directories to mtree files." +msgstr "4.11-STABLE после добавления каталогов libdata/ldconfig в файлы mtree." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7345 +#, no-wrap +msgid "FreeBSD 3 Versions" +msgstr "Версии FreeBSD 3" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7348 +#, no-wrap +msgid "FreeBSD 3 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` для FreeBSD 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7357 +#, no-wrap +msgid "300000" +msgstr "300000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7358 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/22917[22917]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/22917[22917]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7359 +#, no-wrap +msgid "February 19, 1996" +msgstr "19 февраля 1996" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7361 +#, no-wrap +msgid "3.0-CURRENT before man:mount[2] change" +msgstr "3.0-CURRENT до изменения man:mount[2]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7362 +#, no-wrap +msgid "300001" +msgstr "300001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7363 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/36283[36283]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/36283[36283]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7364 +#, no-wrap +msgid "September 24, 1997" +msgstr "24 сентября 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7366 +#, no-wrap +msgid "3.0-CURRENT after man:mount[2] change" +msgstr "3.0-CURRENT после изменения man:mount[2]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7367 +#, no-wrap +msgid "300002" +msgstr "300002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7368 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/36592[36592]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/36592[36592]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7369 +#, no-wrap +msgid "June 2, 1998" +msgstr "2 июня 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7371 +#, no-wrap +msgid "3.0-CURRENT after man:semctl[2] change" +msgstr "3.0-CURRENT после изменения man:semctl[2]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7372 +#, no-wrap +msgid "300003" +msgstr "300003" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7373 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/36735[36735]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/36735[36735]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7374 +#, no-wrap +msgid "June 7, 1998" +msgstr "7 июня 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7376 +#, no-wrap +msgid "3.0-CURRENT after ioctl arg changes" +msgstr "3.0-CURRENT после изменений аргументов ioctl" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7377 +#, no-wrap +msgid "300004" +msgstr "300004" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7378 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/38768[38768]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/38768[38768]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7379 +#, no-wrap +msgid "September 3, 1998" +msgstr "3 сентября 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7381 +#, no-wrap +msgid "3.0-CURRENT after ELF conversion" +msgstr "3.0-CURRENT после преобразования в ELF" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7382 +#, no-wrap +msgid "300005" +msgstr "300005" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7383 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/40438[40438]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/40438[40438]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7384 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7389 +#, no-wrap +msgid "October 16, 1998" +msgstr "16 октября 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7386 +#, no-wrap +msgid "3.0-RELEASE" +msgstr "3.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7387 +#, no-wrap +msgid "300006" +msgstr "300006" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7388 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/40445[40445]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/40445[40445]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7391 +#, no-wrap +msgid "3.0-CURRENT after 3.0-RELEASE" +msgstr "3.0-CURRENT после 3.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7392 +#, no-wrap +msgid "300007" +msgstr "300007" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7393 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/43042[43042]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/43042[43042]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7396 +#, no-wrap +msgid "3.0-STABLE after 3/4 branch" +msgstr "3.0-STABLE после ветвления 3/4" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7397 +#, no-wrap +msgid "310000" +msgstr "310000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7398 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/43807[43807]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/43807[43807]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7399 +#, no-wrap +msgid "February 9, 1999" +msgstr "9 февраля 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7401 +#, no-wrap +msgid "3.1-RELEASE" +msgstr "3.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7402 +#, no-wrap +msgid "310001" +msgstr "310001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7403 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/45060[45060]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/45060[45060]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7406 +#, no-wrap +msgid "3.1-STABLE after 3.1-RELEASE" +msgstr "3.1-STABLE после 3.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7407 +#, no-wrap +msgid "310002" +msgstr "310002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7408 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/45689[45689]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/45689[45689]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7409 +#, no-wrap +msgid "April 14, 1999" +msgstr "14 апреля 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7411 +#, no-wrap +msgid "3.1-STABLE after C++ constructor/destructor order change" +msgstr "3.1-STABLE после изменения порядка конструкторов/деструкторов C++" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7412 +#, no-wrap +msgid "320000" +msgstr "320000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7416 +#, no-wrap +msgid "3.2-RELEASE" +msgstr "3.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7417 +#, no-wrap +msgid "320001" +msgstr "320001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7418 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/46742[46742]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/46742[46742]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7419 +#, no-wrap +msgid "May 8, 1999" +msgstr "8 мая 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7421 +#, no-wrap +msgid "3.2-STABLE" +msgstr "3.2-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7422 +#, no-wrap +msgid "320002" +msgstr "320002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7423 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/50563[50563]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/50563[50563]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7424 +#, no-wrap +msgid "August 29, 1999" +msgstr "29 августа 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7426 +#, no-wrap +msgid "3.2-STABLE after binary-incompatible IPFW and socket changes" +msgstr "3.2-STABLE после бинарно-несовместимых изменений в IPFW и сокетах" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7427 +#, no-wrap +msgid "330000" +msgstr "330000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7428 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/50813[50813]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/50813[50813]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7429 +#, no-wrap +msgid "September 2, 1999" +msgstr "2 сентября 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7431 +#, no-wrap +msgid "3.3-RELEASE" +msgstr "3.3-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7432 +#, no-wrap +msgid "330001" +msgstr "330001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7433 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/51328[51328]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/51328[51328]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7434 +#, no-wrap +msgid "September 16, 1999" +msgstr "16 сентября 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7436 +#, no-wrap +msgid "3.3-STABLE" +msgstr "3.3-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7437 +#, no-wrap +msgid "330002" +msgstr "330002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7438 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/53671[53671]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/53671[53671]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7439 +#, no-wrap +msgid "November 24, 1999" +msgstr "24 ноября 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7441 +#, no-wrap +msgid "3.3-STABLE after adding man:mkstemp[3] to libc" +msgstr "3.3-STABLE после добавления man:mkstemp[3] в libc" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7442 +#, no-wrap +msgid "340000" +msgstr "340000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7443 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/54166[54166]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/54166[54166]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7444 +#, no-wrap +msgid "December 5, 1999" +msgstr "5 декабря 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7446 +#, no-wrap +msgid "3.4-RELEASE" +msgstr "3.4-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7447 +#, no-wrap +msgid "340001" +msgstr "340001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7448 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/54730[54730]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/54730[54730]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7449 +#, no-wrap +msgid "December 17, 1999" +msgstr "17 декабря 1999" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7451 +#, no-wrap +msgid "3.4-STABLE" +msgstr "3.4-STABLE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7452 +#, no-wrap +msgid "350000" +msgstr "350000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7453 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/61876[61876]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/61876[61876]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7454 +#, no-wrap +msgid "June 20, 2000" +msgstr "20 июня 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7456 +#, no-wrap +msgid "3.5-RELEASE" +msgstr "3.5-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7457 +#, no-wrap +msgid "350001" +msgstr "350001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7458 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/63043[63043]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/63043[63043]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7459 +#, no-wrap +msgid "July 12, 2000" +msgstr "12 июля 2000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7460 +#, no-wrap +msgid "3.5-STABLE" +msgstr "3.5-STABLE" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7463 +#, no-wrap +msgid "FreeBSD 2.2 Versions" +msgstr "Версии FreeBSD 2.2" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7466 +#, no-wrap +msgid "FreeBSD 2.2 `__FreeBSD_version` Values" +msgstr "Значения `__FreeBSD_version` в FreeBSD 2.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7475 +#, no-wrap +msgid "220000" +msgstr "220000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7476 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/22918[22918]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/22918[22918]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7477 +#, no-wrap +msgid "February 19, 1997" +msgstr "19 февраля 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7479 +#, no-wrap +msgid "2.2-RELEASE" +msgstr "2.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7484 +#, no-wrap +msgid "2.2.1-RELEASE" +msgstr "2.2.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7489 +#, no-wrap +msgid "2.2-STABLE after 2.2.1-RELEASE" +msgstr "2.2-STABLE после 2.2.1-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7490 +#, no-wrap +msgid "221001" +msgstr "221001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7491 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/24941[24941]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/24941[24941]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7492 +#, no-wrap +msgid "April 15, 1997" +msgstr "15 апреля 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7494 +#, no-wrap +msgid "2.2-STABLE after texinfo-3.9" +msgstr "2.2-STABLE после texinfo-3.9" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7495 +#, no-wrap +msgid "221002" +msgstr "221002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7496 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/25325[25325]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/25325[25325]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7497 +#, no-wrap +msgid "April 30, 1997" +msgstr "30 апреля 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7499 +#, no-wrap +msgid "2.2-STABLE after top" +msgstr "2.2-STABLE после обновления" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7500 +#, no-wrap +msgid "222000" +msgstr "222000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7501 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/25851[25851]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/25851[25851]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7502 +#, no-wrap +msgid "May 16, 1997" +msgstr "16 мая 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7504 +#, no-wrap +msgid "2.2.2-RELEASE" +msgstr "2.2.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7505 +#, no-wrap +msgid "222001" +msgstr "222001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7506 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/25921[25921]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/25921[25921]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7507 +#, no-wrap +msgid "May 19, 1997" +msgstr "19 мая 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7509 +#, no-wrap +msgid "2.2-STABLE after 2.2.2-RELEASE" +msgstr "2.2-STABLE после 2.2.2-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7510 +#, no-wrap +msgid "225000" +msgstr "225000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7511 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/30053[30053]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/30053[30053]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7512 +#, no-wrap +msgid "October 2, 1997" +msgstr "2 октября 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7514 +#, no-wrap +msgid "2.2.5-RELEASE" +msgstr "2.2.5-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7515 +#, no-wrap +msgid "225001" +msgstr "225001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7516 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/31300[31300]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/31300[31300]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7517 +#, no-wrap +msgid "November 20, 1997" +msgstr "20 ноября 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7519 +#, no-wrap +msgid "2.2-STABLE after 2.2.5-RELEASE" +msgstr "2.2-STABLE после 2.2.5-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7520 +#, no-wrap +msgid "225002" +msgstr "225002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7521 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/32019[32019]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/32019[32019]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7522 +#, no-wrap +msgid "December 27, 1997" +msgstr "27 декабря 1997" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7524 +#, no-wrap +msgid "2.2-STABLE after ldconfig -R merge" +msgstr "2.2-STABLE после слияния ldconfig -R" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7525 +#, no-wrap +msgid "226000" +msgstr "226000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7526 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/34445[34445]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/34445[34445]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7527 +#, no-wrap +msgid "March 24, 1998" +msgstr "24 марта 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7529 +#, no-wrap +msgid "2.2.6-RELEASE" +msgstr "2.2.6-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7530 +#, no-wrap +msgid "227000" +msgstr "227000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7531 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/37803[37803]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/37803[37803]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7532 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7537 +#, no-wrap +msgid "July 21, 1998" +msgstr "21 июля 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7534 +#, no-wrap +msgid "2.2.7-RELEASE" +msgstr "2.2.7-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7535 +#, no-wrap +msgid "227001" +msgstr "227001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7536 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/37809[37809]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/37809[37809]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7539 +#, no-wrap +msgid "2.2-STABLE after 2.2.7-RELEASE" +msgstr "2.2-STABLE после 2.2.7-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7540 +#, no-wrap +msgid "227002" +msgstr "227002" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7541 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/39489[39489]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/39489[39489]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7542 +#, no-wrap +msgid "September 19, 1998" +msgstr "19 сентября 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7544 +#, no-wrap +msgid "2.2-STABLE after man:semctl[2] change" +msgstr "2.2-STABLE после изменения man:semctl[2]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7545 +#, no-wrap +msgid "228000" +msgstr "228000" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7546 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/41403[41403]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/41403[41403]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7547 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7552 +#, no-wrap +msgid "November 29, 1998" +msgstr "29 ноября 1998" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7549 +#, no-wrap +msgid "2.2.8-RELEASE" +msgstr "2.2.8-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7550 +#, no-wrap +msgid "228001" +msgstr "228001" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7551 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/41418[41418]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/41418[41418]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7553 +#, no-wrap +msgid "2.2-STABLE after 2.2.8-RELEASE" +msgstr "2.2-STABLE после 2.2.8-RELEASE" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7558 +msgid "" +"Note that 2.2-STABLE sometimes identifies itself as \"2.2.5-STABLE\" after " +"the 2.2.5-RELEASE. The pattern used to be year followed by the month, but " +"the community decided to change it to a more straightforward major/minor " +"system starting from 2.2. This is because the parallel development on " +"several branches made it infeasible to classify the releases merely by their " +"real release dates. Do not worry about old -CURRENTs; they are listed here " +"just for reference." +msgstr "" +"Обратите внимание, что 2.2-STABLE иногда идентифицирует себя как \"2.2.5-" +"STABLE\" после выпуска 2.2.5-RELEASE. Ранее использовался шаблон \"год-" +"месяц\", но сообщество решило изменить его на более простую систему " +"\"основной/второстепенный\", начиная с версии 2.2. Это связано с тем, что " +"параллельная разработка нескольких веток сделала невозможным " +"классифицировать выпуски только по датам их фактического выхода. Не " +"беспокойтесь о старых версиях -CURRENT; они приведены здесь только для " +"справки." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7561 +#, no-wrap +msgid "FreeBSD 2 Before 2.2-RELEASE Versions" +msgstr "FreeBSD 2 Версии до 2.2-RELEASE" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7564 +#, no-wrap +msgid "FreeBSD 2 Before 2.2-RELEASE `__FreeBSD_version` Values" +msgstr "FreeBSD 2 До версии 2.2-RELEASE Значения `__FreeBSD_version`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7573 +#, no-wrap +msgid "119411" +msgstr "119411" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7577 +#, no-wrap +msgid "2.0-RELEASE" +msgstr "2.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7578 +#, no-wrap +msgid "199501" +msgstr "199501" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7579 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/7153[7153]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/7153[7153]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7580 +#, no-wrap +msgid "March 19, 1995" +msgstr "19 марта 1995" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7582 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7587 +#, no-wrap +msgid "2.1-CURRENT" +msgstr "2.1-CURRENT" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7583 +#, no-wrap +msgid "199503" +msgstr "199503" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7584 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/7310[7310]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/7310[7310]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7585 +#, no-wrap +msgid "March 24, 1995" +msgstr "24 марта 1995" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7588 +#, no-wrap +msgid "199504" +msgstr "199504" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7589 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/7704[7704]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/7704[7704]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7590 +#, no-wrap +msgid "April 9, 1995" +msgstr "9 апреля 1995" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7592 +#, no-wrap +msgid "2.0.5-RELEASE" +msgstr "2.0.5-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7593 +#, no-wrap +msgid "199508" +msgstr "199508" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7594 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/10297[10297]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/10297[10297]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7595 +#, no-wrap +msgid "August 26, 1995" +msgstr "26 августа 1995" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7597 +#, no-wrap +msgid "2.2-CURRENT before 2.1" +msgstr "2.2-CURRENT до 2.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7598 +#, no-wrap +msgid "199511" +msgstr "199511" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7599 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/12189[12189]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/12189[12189]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7600 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7605 +#, no-wrap +msgid "November 10, 1995" +msgstr "10 ноября 1995" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7602 +#, no-wrap +msgid "2.1.0-RELEASE" +msgstr "2.1.0-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7603 +#, no-wrap +msgid "199512" +msgstr "199512" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7604 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/12196[12196]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/12196[12196]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7607 +#, no-wrap +msgid "2.2-CURRENT before 2.1.5" +msgstr "2.2-CURRENT до 2.1.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7608 +#, no-wrap +msgid "199607" +msgstr "199607" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7609 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/17067[17067]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/17067[17067]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7610 +#, no-wrap +msgid "July 10, 1996" +msgstr "10 июля 1996" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7612 +#, no-wrap +msgid "2.1.5-RELEASE" +msgstr "2.1.5-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7613 +#, no-wrap +msgid "199608" +msgstr "199608" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7614 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/17127[17127]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/17127[17127]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7615 +#, no-wrap +msgid "July 12, 1996" +msgstr "12 июля 1996" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7617 +#, no-wrap +msgid "2.2-CURRENT before 2.1.6" +msgstr "2.2-CURRENT до 2.1.6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7618 +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7623 +#, no-wrap +msgid "199612" +msgstr "199612" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7619 +#, no-wrap +msgid "link:https://svnweb.freebsd.org/changeset/base/19358[19358]" +msgstr "link:https://svnweb.freebsd.org/changeset/base/19358[19358]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7620 +#, no-wrap +msgid "November 15, 1996" +msgstr "15 ноября 1996" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7622 +#, no-wrap +msgid "2.1.6-RELEASE" +msgstr "2.1.6-RELEASE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/versions/_index.adoc:7626 +#, no-wrap +msgid "2.1.7-RELEASE" +msgstr "2.1.7-RELEASE" + +#, no-wrap +#~ msgid "" +#~ "February 25, 2015\n" +#~ "pass:[]" +#~ msgstr "" +#~ "25 февраля 2015 года\n" +#~ "pass:[]"