1
0
mirror of https://git.FreeBSD.org/doc.git synced 2026-06-02 19:35:07 +00:00

update translation of books/porters-handbook to Russian

Reviewed by: andy
Differential Revision: https://reviews.freebsd.org/В56931
This commit is contained in:
Vladlen Popolitov
2026-05-17 21:12:03 +03:00
parent 403d3e235b
commit 1b8dc75671
22 changed files with 9530 additions and 9163 deletions
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-05-01 19:56-0300\n"
"PO-Revision-Date: 2025-07-12 04:45+0000\n"
"PO-Revision-Date: 2026-03-23 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbook_index/ru/>\n"
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2022-02-01 09:20-0300\n"
"PO-Revision-Date: 2025-07-12 04:45+0000\n"
"PO-Revision-Date: 2026-03-23 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookbook/ru/>\n"
@@ -990,7 +990,7 @@ FreeBSD стремится поддерживать родной язык сво
Наша текущая практика заключается в том, чтобы избегать создания новой физической категории, если только либо большое количество портов логически принадлежит к ней, либо порты, которые к ней относятся, представляют собой логически обособленную группу, представляющую ограниченный общий интерес (например, категории, связанные с разговорными человеческими языками), или, желательно, оба условия одновременно.
Обоснование этого заключается в том, что такое изменение создает extref:{committers-guide}[значительный объём работы, ports] как для коммиттеров, так и для всех пользователей, которые отслеживают изменения в Коллекции портов. Кроме того, предлагаемые изменения категорий, как правило, вызывают споры. (Возможно, это связано с отсутствием четкого консенсуса относительно того, когда категория становится «слишком большой», а также относительно того, должны ли категории способствовать удобству просмотра (и, следовательно, какое количество категорий было бы идеальным), и так далее.)
Обоснование этого заключается в том, что такое изменение создаёт extref:{committers-guide}[значительный объём работы, ports] как для коммиттеров, так и для всех пользователей, которые отслеживают изменения в Коллекции портов. Кроме того, предлагаемые изменения категорий, как правило, вызывают споры. (Возможно, это связано с отсутствием четкого консенсуса относительно того, когда категория становится «слишком большой», а также относительно того, должны ли категории способствовать удобству просмотра (и, следовательно, какое количество категорий было бы идеальным), и так далее.)
Вот процедура:
@@ -4579,7 +4579,7 @@ DISTVERSION= 1.0
[[makefile-wrksrc]]
=== `WRKSRC`
Переменная указывает имя каталога, который создается при распаковке distfiles приложения. Чтобы в нашем предыдущем примере распаковка происходила в каталог с именем [.filename]#foo# (а не [.filename]#foo-1.0#), напишите:
Переменная указывает имя каталога, который создаётся при распаковке distfiles приложения. Чтобы в нашем предыдущем примере распаковка происходила в каталог с именем [.filename]#foo# (а не [.filename]#foo-1.0#), напишите:
[.programlisting]
....
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2026-02-22 15:58+0000\n"
"PO-Revision-Date: 2026-03-05 13:41+0000\n"
"PO-Revision-Date: 2026-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookmakefiles_index/ru/>\n"
@@ -3222,8 +3222,8 @@ msgid ""
"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] как для коммиттеров, "
"Обоснование этого заключается в том, что такое изменение создаёт extref"
":{committers-guide}[значительный объём работы, ports] как для коммиттеров, "
"так и для всех пользователей, которые отслеживают изменения в Коллекции "
"портов. Кроме того, предлагаемые изменения категорий, как правило, вызывают "
"споры. (Возможно, это связано с отсутствием четкого консенсуса относительно "
@@ -13021,7 +13021,7 @@ msgid ""
"into a directory called [.filename]#foo# (and not [.filename]#foo-1.0#) "
"write:"
msgstr ""
"Переменная указывает имя каталога, который создается при распаковке "
"Переменная указывает имя каталога, который создаётся при распаковке "
"distfiles приложения. Чтобы в нашем предыдущем примере распаковка "
"происходила в каталог с именем [.filename]#foo# (а не [.filename]#foo-1.0#), "
"напишите:"
@@ -229,7 +229,7 @@ PLIST_SUB= PERL_ARCH=mach
/usr/local/lib/perl5/site_perl/mach/5.20/Machine/Build/Build.so
....
Запуск `make makeplist` ошибочно создает:
Запуск `make makeplist` ошибочно создаёт:
[.programlisting]
....
@@ -319,7 +319,7 @@ bin/machine-build
[[plist-keywords-rmtry]]
=== `@rmtry` _файл_
Удаляет файл при удалении и не выдает ошибку, если файл отсутствует.
Удаляет файл при удалении и не выдаёт ошибку, если файл отсутствует.
[[plist-keywords-sample]]
=== `@sample` _файл_ [_файл_]
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-05-01 19:56-0300\n"
"PO-Revision-Date: 2025-11-25 04:45+0000\n"
"PO-Revision-Date: 2026-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookplist_index/ru/>\n"
@@ -651,7 +651,7 @@ msgstr ""
#. type: Plain text
#: documentation/content/en/books/porters-handbook/plist/_index.adoc:273
msgid "Running `make makeplist` wrongly generates:"
msgstr "Запуск `make makeplist` ошибочно создает:"
msgstr "Запуск `make makeplist` ошибочно создаёт:"
#. type: delimited block . 4
#: documentation/content/en/books/porters-handbook/plist/_index.adoc:281
@@ -870,7 +870,7 @@ msgstr "`@rmtry` _файл_"
msgid ""
"Will remove the file on deinstallation, and not give an error if the file is "
"not there."
msgstr "Удаляет файл при удалении и не выдает ошибку, если файл отсутствует."
msgstr "Удаляет файл при удалении и не выдаёт ошибку, если файл отсутствует."
#. type: Title ===
#: documentation/content/en/books/porters-handbook/plist/_index.adoc:376
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2026-02-22 15:58+0000\n"
"PO-Revision-Date: 2026-03-04 20:01+0000\n"
"PO-Revision-Date: 2026-03-08 09:11+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookporting-dads_index/ru/>\n"
@@ -107,7 +107,7 @@ pre-install:
.include <bsd.port.mk> <18>
....
<1> Секция для описания самого порта и его главного сайта: первыми идут переменные PORTNAME и PORTVERSION или DISTVERSION*, на ними CATEGORIES, затем MASTER_SITES, после которой идёт MASTER_SITE_SUBDIR. Если нужно, то после нее идут PKGNAMEPREFIX и PKGNAMESUFFIX. Затем следуют DISTNAME, EXTRACT_SUFX и/или DISTFILES, и уже потом, если нужно, EXTRACT_ONLY.
<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> Секция патчей — может быть пустой.
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-08-17 20:54+0100\n"
"PO-Revision-Date: 2025-11-25 04:45+0000\n"
"PO-Revision-Date: 2026-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookporting-samplem_index/ru/>\n"
@@ -224,7 +224,7 @@ msgstr ""
"Секция для описания самого порта и его главного сайта: первыми идут "
"переменные PORTNAME и PORTVERSION или DISTVERSION*, на ними CATEGORIES, "
"затем MASTER_SITES, после которой идёт MASTER_SITE_SUBDIR. Если нужно, то "
"после нее идут PKGNAMEPREFIX и PKGNAMESUFFIX. Затем следуют DISTNAME, "
"после неё идут PKGNAMEPREFIX и PKGNAMESUFFIX. Затем следуют DISTNAME, "
"EXTRACT_SUFX и/или DISTFILES, и уже потом, если нужно, EXTRACT_ONLY."
#. type: Plain text
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-05-01 19:56-0300\n"
"PO-Revision-Date: 2025-12-02 04:45+0000\n"
"PO-Revision-Date: 2026-03-08 09:11+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookporting-why_index/ru/>\n"
@@ -162,7 +162,7 @@ PLIST_FILES= bin/oneko \
[TIP]
====
Если порту требуется создать пустой каталог или он создает каталоги вне [.filename]#${PREFIX}# во время установки, обратитесь к разделу crossref:plist[plist-dir-cleaning,Очистка пустых каталогов] для получения дополнительной информации.
Если порту требуется создать пустой каталог или он создаёт каталоги вне [.filename]#${PREFIX}# во время установки, обратитесь к разделу crossref:plist[plist-dir-cleaning,Очистка пустых каталогов] для получения дополнительной информации.
====
[TIP]
@@ -203,7 +203,7 @@ PLIST_FILES= "@sample ${ETCDIR}/oneko.conf.sample"
. `make deinstall`
. `make package` (как пользователь)
Убедитесь, что на любом из этапов не выдается никаких предупреждений.
Убедитесь, что на любом из этапов не выдаётся никаких предупреждений.
Тщательное автоматизированное тестирование можно выполнить с помощью package:ports-mgmt/poudriere[] из коллекции портов, дополнительную информацию см. в crossref:testing[testing-poudriere,poudriere]. Он поддерживает `клетки`, в которых можно протестировать все указанные выше шаги без воздействия на состояние основной системы.
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-05-01 19:56-0300\n"
"PO-Revision-Date: 2025-09-05 04:45+0000\n"
"PO-Revision-Date: 2026-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookquick-porting_index/ru/>\n"
@@ -369,7 +369,7 @@ msgid ""
"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,Очистка пустых каталогов] для получения дополнительной "
"информации."
@@ -530,7 +530,7 @@ 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 "Убедитесь, что на любом из этапов не выдается никаких предупреждений."
msgstr "Убедитесь, что на любом из этапов не выдаётся никаких предупреждений."
#. type: delimited block = 4
#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:235
@@ -227,7 +227,7 @@ endif::[]
% make validate
....
Предыдущая команда создает файл [.filename]#vuln-flat.xml#. Его также можно создать с помощью:
Предыдущая команда создаёт файл [.filename]#vuln-flat.xml#. Его также можно создать с помощью:
[source, shell]
....
@@ -246,7 +246,7 @@ endif::[]
% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58
....
Убедитесь, что запись не создает ложных совпадений в выводе.
Убедитесь, что запись не создаёт ложных совпадений в выводе.
Теперь проверьте, соответствуют ли записи правильные версии пакетов:
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-08-17 20:54+0100\n"
"PO-Revision-Date: 2026-03-04 20:01+0000\n"
"PO-Revision-Date: 2026-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbooksecurity_index/ru/>\n"
@@ -697,7 +697,7 @@ msgid ""
"The previous command generates the [.filename]#vuln-flat.xml# file. It can "
"also be generated with:"
msgstr ""
"Предыдущая команда создает файл [.filename]#vuln-flat.xml#. Его также можно "
"Предыдущая команда создаёт файл [.filename]#vuln-flat.xml#. Его также можно "
"создать с помощью:"
#. type: delimited block . 4
@@ -732,7 +732,7 @@ msgstr "% pkg audit -f ${PORTSDIR}/security/vuxml/vuln-flat.xml dropbear-2013.58
#. 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 "Убедитесь, что запись не создает ложных совпадений в выводе."
msgstr "Убедитесь, что запись не создаёт ложных совпадений в выводе."
#. type: Plain text
#: documentation/content/en/books/porters-handbook/security/_index.adoc:303
@@ -67,7 +67,7 @@ endif::[]
. Выполняется цель `build`. Она отвечает за переход в собственный рабочий каталог порта (`WRKSRC`) и его построение.
. Выполняется цель `stage`. Конечный набор построенных файлов помещается во временный каталог (`STAGEDIR`, смотрите crossref:special[staging,Staging]). Иерархия этого каталога отражает иерархию каталогов системы, в которую данный пакет будет устанавливаться.
. Выполняется цель `package`. При этом создается пакет с использованием файлов из временного каталога, созданного во время выполнения цели `stage`, и файла [.filename]#pkg-plist# порта.
. Выполняется цель `package`. При этом создаётся пакет с использованием файлов из временного каталога, созданного во время выполнения цели `stage`, и файла [.filename]#pkg-plist# порта.
. Выполняется цель `install`. Это устанавливает пакет, созданный во время цели `package`, в хост-систему.
Выше перечислены стандартные действия. Кроме того, вы сами можете определить цели `pre-_что-то_` или `post-_что-то_`, или создать скрипты с такими именами в подкаталоге [.filename]#scripts#, и они будут запущены до или после выполнения действий по умолчанию.
@@ -158,7 +158,7 @@ endif::[]
% diff -u file.orig file > patch-pathname-file
....
Для порождении патчей для новых добавляемых файлов используется параметр `-N`, который заставляет man:diff[1] трактовать несуществующие прежде файлы как если бы они существовали, но имели пустое содержимое:
При создании патчей с новыми файлами, добавляемыми в репозиторий, используется параметр `-N`, который заставляет man:diff[1] трактовать несуществующие прежде файлы как если бы они существовали, но имели пустое содержимое:
[source, shell]
....
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-05-01 19:56-0300\n"
"PO-Revision-Date: 2026-03-04 20:01+0000\n"
"PO-Revision-Date: 2026-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksporters-handbookslow-porting_index/ru/>\n"
@@ -174,7 +174,7 @@ msgid ""
"temporary directory created during the `stage` target and the port's "
"[.filename]#pkg-plist#."
msgstr ""
"Выполняется цель `package`. При этом создается пакет с использованием файлов "
"Выполняется цель `package`. При этом создаётся пакет с использованием файлов "
"из временного каталога, созданного во время выполнения цели `stage`, и файла "
"[.filename]#pkg-plist# порта."
@@ -633,9 +633,10 @@ msgid ""
"man:diff[1] to treat the non-existent original file as if it existed but was "
"empty:"
msgstr ""
"Для порождении патчей для новых добавляемых файлов используется параметр `-N`"
", который заставляет man:diff[1] трактовать несуществующие прежде файлы как "
"если бы они существовали, но имели пустое содержимое:"
"При создании патчей с новыми файлами, добавляемыми в репозиторий, "
"используется параметр `-N`, который заставляет man:diff[1] трактовать "
"несуществующие прежде файлы как если бы они существовали, но имели пустое "
"содержимое:"
#. type: delimited block . 4
#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:207
@@ -303,7 +303,7 @@ IGNORE= may not be redistributed because of licensing reasons. Please visit some
`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`.
Если ваш порт является приложением X, которое создаёт файлы [.filename]#Makefile# из [.filename]#Imakefile#, используя imake, то установите `USES= imake`. Это заставит стадию конфигурирования автоматически выполнить `xmkmf -a`. Если флаг `-a` представляет для вашего порта проблему, то установите `XMKMF=xmkmf`. Если порт использует imake, но не понимает цель `install.man`, то следует установить `NO_INSTALL_MANPAGES=yes`.
Если исходный [.filename]#Makefile# вашего порта имеет что-нибудь помимо `all` в качестве основной цели построения, то задайте соответствующее значение `ALL_TARGET`. То же касается `install` и `INSTALL_TARGET`.
@@ -900,6 +900,33 @@ GO_TARGET= ./dnscrypt-proxy:${PREFIX}/sbin/dnscrypt-proxy
установит `dnscrypt-proxy` в `${PREFIX}/sbin`.
====
[[overriding-go-mod]]
.Переопределение go.mod в режиме модулей (Modules Mode)
[example]
====
Во время фазы fetch режим, поддерживающий модули (то есть `USES=go:modules`), получает исходные коды зависимых пакетов, загружая [.filename]#go.mod# порта и затем немедленно выполняя против него `go mod download`. Поскольку фаза fetch происходит задолго до этапа наложения патчей, обычные патчи из каталога [.filename]#files/# применяются слишком поздно, чтобы повлиять на эти шаги разрешения зависимостей и их получения.
Хотя изменение зависимостей путём наложения патчей на исходный [.filename]#go.mod# на данный момент невозможно, вы всё же можете *переопределить* его, указав другой [.filename]#go.mod# в качестве второго distfile.
[.programlisting]
....
PORTNAME= miller
DISTVERSIONPREFIX= v
DISTVERSION= 6.17.0
CATEGORIES= textproc
MASTER_SITES= https://raw.githubusercontent.com/johnkerl/${PORTNAME}/${DISTVERSIONFULL}/:gomod
DISTFILES= go.mod:gomod
....
Чтобы переопределить также и [.filename]#go.sum#, просто добавьте его в `DISTFILES`:
[.programlisting]
....
DISTFILES= go.mod:gomod go.sum:gomod
....
====
[[using-cabal]]
=== Построение приложений на Haskell с помощью `cabal`
@@ -1519,16 +1546,6 @@ GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas
Схемы 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
@@ -2948,7 +2965,7 @@ USE_LXQT= buildtools libfmqt
Если порту требуется Java(TM) Development Kit (JDK(TM)) для сборки, запуска или даже извлечения distfile, определите `USE_JAVA`.
В коллекции портов доступно несколько JDK от различных поставщиков и в нескольких версиях. Если порт должен использовать определённую версию, укажите её с помощью переменной `JAVA_VERSION`. Самая актуальная версия — package:java/openjdk25[], также доступны package:java/openjdk24[], package:java/openjdk23[], package:java/openjdk22[], package:java/openjdk21[], package:java/openjdk20[], package:java/openjdk17[], package:java/openjdk11[] и package:java/openjdk8[].
В коллекции портов доступно несколько JDK от различных поставщиков и в нескольких версиях. Если порт должен использовать определённую версию, укажите её с помощью переменной `JAVA_VERSION`. Самая актуальная версия — package:java/openjdk25[], также доступны package:java/openjdk24[], package:java/openjdk23[], package:java/openjdk22[], package:java/openjdk21[], package:java/openjdk17[], package:java/openjdk11[] и package:java/openjdk8[].
[[using-java-variables]]
.Переменные, которые могут быть установлены портами, использующими Java
@@ -3113,7 +3130,7 @@ do-install:
cd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \* ${WEBAPPDIR}/${PORTDIRNAME}
....
Независимо от типа порта (библиотека или приложение), дополнительная документация устанавливается crossref:makefiles[install-documentation,в том же месте], что и для любого другого порта. Известно, что инструмент Javadoc создает разный набор файлов в зависимости от версии используемого JDK. Для портов, которые не требуют использования конкретной версии 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}/share/${PORTNAME}#. Рекомендуется переопределить `DATADIR` на [.filename]#${JAVASHAREDIR}/${PORTNAME}# для портов Java. Действительно, `DATADIR` автоматически добавляется в `PLIST_SUB` (документировано в crossref:plist[plist-sub,Изменение pkg-plist на основе переменных Make]), поэтому используйте `%%DATADIR%%` напрямую в [.filename]#pkg-plist#.
@@ -4640,7 +4657,7 @@ doormand_flags=""
. Выполняет ли скрипт любой код безусловно? Это не приветствуется. Обычно такие вещи должны обрабатываться через `start_precmd`.
. Все логические проверки должны использовать функцию `checkyesno`. Не допускаются самодельные проверки на `[Yy][Ee][Ss]` и т.п.
. Если есть цикл (например, ожидание запуска чего-либо), есть ли в нём счётчик для завершения цикла? Мы не хотим, чтобы загрузка зависала навсегда в случае ошибки.
. Создает ли скрипт файлы или каталоги, требующие определённых разрешений, например, [.filename]#pid#, который должен принадлежать пользователю, запускающему процесс? Вместо традиционной последовательности man:touch[1]/man:chown[8]/man:chmod[1] рассмотрите использование man:install[1] с соответствующими аргументами командной строки, чтобы выполнить всю процедуру за один шаг.
. Создаёт ли скрипт файлы или каталоги, требующие определённых разрешений, например, [.filename]#pid#, который должен принадлежать пользователю, запускающему процесс? Вместо традиционной последовательности man:touch[1]/man:chown[8]/man:chmod[1] рассмотрите использование man:install[1] с соответствующими аргументами командной строки, чтобы выполнить всю процедуру за один шаг.
[[users-and-groups]]
== Добавление пользователей и групп
File diff suppressed because it is too large Load Diff
@@ -502,7 +502,7 @@ package:databases/db48[] устарел и не поддерживается. О
Возможные аргументы: `7`, `module`, `theme`
Автоматизирует установку порта, который является темой или модулем Drupal. Использовать с версией Drupal, которую ожидает порт. Например, `USES=drupal:7,module` означает, что этот порт создает модуль Drupal 7. Тему Drupal 7 можно указать с помощью `USES=drupal:7,theme`.
Автоматизирует установку порта, который является темой или модулем Drupal. Использовать с версией Drupal, которую ожидает порт. Например, `USES=drupal:7,module` означает, что этот порт создаёт модуль Drupal 7. Тему Drupal 7 можно указать с помощью `USES=drupal:7,theme`.
[[uses-ebur128]]
== `ebur128`
@@ -533,7 +533,7 @@ package:databases/db48[] устарел и не поддерживается. О
Список файлов для создания символьных ссылок из дистрибутива Electron.
`ELECTRONFIX_MAIN_EXECUTABLE`::
Имя файла основного исполняемого файла, который будет заменен оригинальным бинарным файлом Electron.
Имя файла основного исполняемого файла, который будет заменён оригинальным бинарным файлом Electron.
[[uses-elfctl]]
@@ -612,7 +612,7 @@ ELF_FEATURES= featurelist:path/to/file1 \
Возможные аргументы: (нет) (по умолчанию), `build`, `run`, `noflavors`
Предоставляет поддержку для портов, требующих Emacs. Аргумент `build` создает зависимость сборки от Emacs. Аргумент `run` создает зависимость выполнения от Emacs. Если оба аргумента `build` и `run` отсутствуют, создаются зависимости сборки и выполнения от Emacs. Аргумент `noflavors` запрещает флейворы и подразумевается, если нет зависимости выполнения от Emacs.
Предоставляет поддержку для портов, требующих 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`.
@@ -1141,6 +1141,13 @@ GSSAPI_NONE_CONFIGURE_ON= --without-gssapi
Добавить package:devel/imake[] как зависимость на этапе сборки и выполнить `xmkmf -a` на этапе `configure`. Если указан аргумент `env`, цель `configure` не устанавливается. Если флаг `-a` вызывает проблемы для порта, добавьте аргумент `notall`. Если `xmkmf` не генерирует цель `install.man`, добавьте аргумент `noman`.
[[uses-inotify]]
== `inotify`
Возможные аргументы: (отсутствуют)
Добавить поддержку `inotify` для портов.
[[uses-java]]
== `java`
@@ -1151,7 +1158,7 @@ GSSAPI_NONE_CONFIGURE_ON= --without-gssapi
Фреймворк предоставляет следующие переменные, которые могут быть установлены портом:
`JAVA_VERSION`::
Список подходящих версий Java для порта, разделенных пробелами. Необязательный символ `\+` позволяет указать диапазон версий. (допустимые значения `8[+]`, `11[\+]`, `17[+]`, `18[\+]`, `19[+]`, `20[\+]`, `21[+]`, `22[\+]`, `22[+]`)
Список подходящих версий Java для порта, разделенных пробелами. Необязательный символ `\+` позволяет указать диапазон версий. (допустимые значения `8[+]`, `11[\+]`, `17[+]`, `18[\+]`, `19[+]`, `21[+]`, `22[\+]`, `22[+]`)
`JAVA_OS`::
Список поддерживаемых операционных систем для порта JDK, разделённых пробелами. (допустимые значения: `native`, `linux`)
@@ -1691,10 +1698,9 @@ USE_MATE= menus:build intlhack
[[uses-nodejs]]
== `nodejs`
Возможные аргументы: (нет), `build`, `run`, `current`, `lts`, `10`, `14`, `16`,
`17`.
Возможные аргументы: (нет), `build`, `env`, `run`, `current`, `lts`, `20`, `22`, `24`, `26`.
Использует nodejs. Добавляет зависимость от пакета package:www/node*[]. Если указана поддерживаемая версия, то также необходимо указать `run` и/или `build`.
Использует nodejs. Добавляет зависимость от пакета package:www/node*[]. Если указана поддерживаемая версия, то также необходимо указать `run` и/или `build`. Аргумент `env` задаёт переменные окружения `NODEJS_VERSION` и `NODEJS_SUFFIX`. В настоящее время `lts` является псевдонимом для версии 24, а `current` — псевдонимом для версии 26.
[[uses-objc]]
== `objc`
File diff suppressed because it is too large Load Diff
@@ -125,6 +125,41 @@ endif::[]
|gitref:576ee62dd2e5e0454a5316eb9207f4ebaa543171[repository="src",length=12]
|25 января 2026
|16.0-CURRENT после изменения контекста хранения обнаружения соседей IPv6 непосредственно в структуре in6_ifextra. Это изменение KPI, которое может повлиять на сборку внешних модулей ядра, связанных с сетью.
|1600012
|gitref:99e138f20a9bad8276e9ebbb1e155daadf201272[repository="src",length=12]
|13 февраля 2026
|16.0-CURRENT после добавления точки входа `prison_cleanup` в каркас MAC.
|1600013
|gitref:72472e52e310ec348949a3a67d3fa17e33fb8e50[repository="src",length=12]
|12 марта 2026
|16.0-CURRENT после удаления API ioctl(2) из carp(4).
|1600014
|gitref:6275cd73aca7f31cbb3b9da2d031f6664814d58c[repository="src",length=12]
|21 марта 2026
|16.0-CURRENT после изменения размера `struct trapframe` на amd64.
|1600015
|gitref:36fe65cc7a31962e80a45d8b0fa6a401653a3deb[repository="src",length=12]
|6 апреля 2026
|16.0-CURRENT после внесения всех изменений в linuxkpi, необходимых для драйверов DRM из Linux 6.11.
|1600016
|gitref:68d2339bc6afadba0107208430af03731a2e3f4a[repository="src",length=12]
|23 апреля 2026
|16.0-CURRENT после изменения различных API ядра для использования указателей.
|1600017
|gitref:8f95b8b19088bd8d73f6d14dab7afe848dfc0c35[repository="src",length=12]
|25 апреля 2026
|16.0-CURRENT после обновления llvm, clang, compiler-rt, libc++, libunwind, lld, lldb и openmp до llvmorg-21.1.8-0-g2078da43e25a, также известного как релиз 21.1.8.
|1600018
|gitref:1569e2334ab5b2ee1e2b7893cb05c17a27d3eca8[repository="src",length=12]
|30 апреля 2026
|16.0-CURRENT после изменений в linuxkpi для поддержки драйверов DRM из Linux 6.12.84.
|===
[[versions-15]]
@@ -499,6 +534,31 @@ endif::[]
|18 декабря 2025
|15.0-STABLE после изменения API `bus_alloc_resource`, чтобы передавать параметр `rid` по значению.
|1500505
|gitref:198ef2a31cee7dd256434ad6120d279d9bcc211a[repository="src",length=12]
|24 декабря 2025
|15.0-STABLE после реализации vmap_pfn.
|1500506
|gitref:f5828b88a979fd9b48c2a6370bf2ee761d4ee52a[repository="src",length=12]
|31 января 2026
|15.0-STABLE после изменения зависимостей libcrypto.
|1500507
|gitref:d1c800badec7750194ba19a225d364377b74362b[repository="src",length=12]
|27 марта 2026
|15.0-STABLE после изменения размера struct trapframe на amd64.
|1500508
|gitref:d1c800badec7750194ba19a225d364377b74362b[repository="src",length=12]
|22 апреля 2026
|15.0-STABLE после изменений в linuxkpi для 802.11 из Linux 7.0 и драйверов DRM из Linux 6.11.
|1500509
|gitref:c969df6ccef61ffc01d038eee383d0852e66da3d[repository="src",length=12]
|30 апреля 2026
|15.0-STABLE после изменений в linuxkpi для поддержки драйверов DRM из Linux 6.12.84.
|===
[[versions-14]]
File diff suppressed because it is too large Load Diff