Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/documentation/content/ru/books/developers-handbook/policies/_index.po
18099 views
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <[email protected]>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-06-29 21:20+0100\n"
"PO-Revision-Date: 2026-03-04 20:01+0000\n"
"Last-Translator: Vladlen Popolitov <[email protected]>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksdevelopers-handbookpolicies_index/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17\n"

#. type: Title =
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:1
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:17
#, no-wrap
msgid "Source Tree Guidelines and Policies"
msgstr "Руководство и политика работы с деревом исходного кода"

#. type: YAML Front Matter: title
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:1
#, no-wrap
msgid "Chapter 5. Source Tree Guidelines and Policies"
msgstr "Глава 5. Руководство и политика работы с деревом исходного кода"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:55
msgid ""
"This chapter documents various guidelines and policies in force for the "
"FreeBSD source tree."
msgstr ""
"Эта глава документирует различные руководства и политики, действующие для "
"дерева исходных кодов FreeBSD."

#. type: Title ==
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:57
#, no-wrap
msgid "Style Guidelines"
msgstr "Рекомендации по стилю"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:61
msgid ""
"Consistent coding style is extremely important, particularly with large "
"projects like FreeBSD.  Code should follow the FreeBSD coding styles "
"described in man:style[9] and man:style.Makefile[5]."
msgstr ""
"Соблюдение единого стиля написания кода чрезвычайно важно, особенно в "
"крупных проектах, таких как FreeBSD. Код должен соответствовать стилям "
"программирования FreeBSD, описанным в man:style[9] и man:style.Makefile[5]."

#. type: Title ==
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:63
#, no-wrap
msgid "`MAINTAINER` on Makefiles"
msgstr "`MAINTAINER` в Makefile-ах"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:67
msgid ""
"If a particular portion of the FreeBSD [.filename]#src/# distribution is "
"being maintained by a person or group of persons, this is communicated "
"through an entry in [.filename]#src/MAINTAINERS#.  Maintainers of ports "
"within the Ports Collection express their maintainership to the world by "
"adding a `MAINTAINER` line to the [.filename]#Makefile# of the port in "
"question:"
msgstr ""
"Если определённая часть дистрибутива FreeBSD [.filename]#src/# "
"поддерживается человеком или группой лиц, это указывается в файле [."
"filename]#src/MAINTAINERS#.  Сопровождающие портов в Коллекции портов "
"указывают свою ответственность, добавляя строку `MAINTAINER` в [."
"filename]#Makefile# соответствующего порта:"

#. type: delimited block . 4
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:71
#, no-wrap
msgid "MAINTAINER= email-addresses\n"
msgstr "MAINTAINER= email-addresses\n"

#. type: delimited block = 4
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:78
msgid ""
"For other parts of the repository, or for sections not listed as having a "
"maintainer, or when you are unsure who the active maintainer is, try looking "
"at the recent commit history of the relevant parts of the source tree.  It "
"is quite often the case that a maintainer is not explicitly named, but the "
"people who are actively working in a part of the source tree for, say, the "
"last couple of years are interested in reviewing changes.  Even if this is "
"not specifically mentioned in the documentation or the source itself, asking "
"for a review as a form of courtesy is a very reasonable thing to do."
msgstr ""
"Для других частей репозитория или для разделов, в которых не указан "
"сопровождающий, или если вы не уверены, кто является активным "
"сопровождающим, попробуйте посмотреть историю последних коммитов "
"соответствующих частей дерева исходного кода. Довольно часто сопровождающий "
"явно не указан, но люди, которые активно работали с частью дерева исходного "
"кода, скажем, последние пару лет, заинтересованы в проверке изменений. Даже "
"если это не указано явно в документации или в самом исходном коде, запросить "
"проверку из вежливости — вполне разумное действие."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:81
msgid "The role of the maintainer is as follows:"
msgstr "Роль сопровождающего заключается в следующем:"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:83
msgid ""
"The maintainer owns and is responsible for that code. This means that he or "
"she is responsible for fixing bugs and answering problem reports pertaining "
"to that piece of the code, and in the case of contributed software, for "
"tracking new versions, as appropriate."
msgstr ""
"Сопровождающий является владельцем и ответственным за этот код. Это "
"означает, что он или она отвечает за исправление ошибок и решение проблем, "
"связанных с этой частью кода, а в случае с предоставленным программным "
"обеспечением — за отслеживание новых версий, если это необходимо."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:84
msgid ""
"Changes to directories which have a maintainer defined shall be sent to the "
"maintainer for review before being committed. Only if the maintainer does "
"not respond for an unacceptable period of time, to several emails, will it "
"be acceptable to commit changes without review by the maintainer. However, "
"it is suggested that you try to have the changes reviewed by someone else if "
"at all possible."
msgstr ""
"Изменения в каталогах, для которых определен сопровождающий, должны быть "
"отправлены сопровождающему на проверку и рецензирование перед коммитом. "
"Только если сопровождающий не отвечает в течение недопустимо долгого времени "
"на несколько писем, допустимо закоммитить изменения без его проверки. Тем не "
"менее, рекомендуется по возможности попытаться получить рецензирование "
"изменений у кого-нибудь ещё."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:85
msgid ""
"It is of course not acceptable to add a person or group as maintainer unless "
"they agree to assume this duty. On the other hand it does not have to be a "
"committer and it can easily be a group of people."
msgstr ""
"Конечно, недопустимо добавлять человека или группу в качестве "
"сопровождающего, если они не согласны взять на себя эти обязанности. С "
"другой стороны, это не обязательно должен быть один коммиттер, и это может "
"быть и группа людей."

#. type: Title ==
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:87
#, no-wrap
msgid "Contributed Software"
msgstr "Стороннее программное обеспечение"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:92
msgid ""
"Some parts of the FreeBSD distribution consist of software that is actively "
"being maintained outside the FreeBSD project.  For historical reasons, we "
"call this _contributed_ software.  Some examples are LLVM, man:zlib[3], and "
"man:awk[1]."
msgstr ""
"Некоторые части дистрибутива FreeBSD состоят из программного обеспечения, "
"которое активно поддерживается за пределами проекта FreeBSD. По историческим "
"причинам мы называем это _сторонним_ программным обеспечением. Некоторые "
"примеры: LLVM, man:zlib[3] и man:awk[1]."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:96
msgid ""
"The accepted procedure for managing contributed software involves creating a "
"_vendor branch_, where the software can be imported cleanly (without "
"modification) and updates can be tracked in a versioned manner.  Then, the "
"content of the vendor branch is applied to the source tree, possibly with "
"local modifications.  FreeBSD-specific build glue is maintained in the "
"source tree, not in the vendor branch."
msgstr ""
"Принятая процедура управления вносимым программным обеспечением включает "
"создание _ветки поставщика_ (_vendor branch_), где программное обеспечение "
"может быть импортировано в чистом виде (без изменений), а обновления могут "
"отслеживаться с учётом версий. Затем содержимое ветки поставщика применяется "
"к дереву исходного кода, возможно, с локальными изменениями. Специфичные для "
"FreeBSD элементы сборки поддерживаются в дереве исходного кода, а не в ветке "
"поставщика."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:100
msgid ""
"Depending on their needs and complexity, individual software projects may "
"deviate from this procedure, at the discretion of the maintainer.  The exact "
"steps required to update a particular piece of contributed software should "
"be recorded in a file named `FREEBSD-upgrade`; for example, link:https://"
"cgit.freebsd.org/src/tree/contrib/libarchive/FREEBSD-upgrade[libarchive's "
"FREEBSD-upgrade file]."
msgstr ""
"В зависимости от потребностей и сложности, отдельные программные проекты "
"могут отклоняться от этой процедуры по усмотрению сопровождающего. Точные "
"шаги, необходимые для обновления конкретного программного обеспечения, "
"должны быть записаны в файле с именем `FREEBSD-upgrade`; например, "
"link:https://cgit.freebsd.org/src/tree/contrib/libarchive/FREEBSD-upgrade["
"файл FREEBSD-upgrade libarchive]."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:103
msgid ""
"Contributed software is usually placed in the [.filepath]#contrib/# "
"subdirectory of the source tree, with some exceptions.  Contributed software "
"used only by the kernel lives under [.filepath]#sys/contrib/#."
msgstr ""
"Стороннее программное обеспечение обычно размещается в подкаталоге [."
"filepath]#contrib/# дерева исходных кодов, за некоторыми исключениями. "
"Стороннее программное обеспечение, используемое только ядром, находится в [."
"filepath]#sys/contrib/#."

#. type: delimited block = 4
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:107
msgid ""
"Because it makes it harder to import future versions minor, trivial and/or "
"cosmetic changes are _strongly discouraged_ on files that are still tracking "
"the vendor branch."
msgstr ""
"Поскольку это затрудняет импорт будущих версий, незначительные, тривиальные "
"и/или косметические изменения _настоятельно не рекомендуются_ для файлов, "
"которые всё ещё отслеживают ветку поставщика."

#. type: Title ===
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:110
#, no-wrap
msgid "Vendor Imports"
msgstr "Импорт веток поставщика"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:113
msgid ""
"The standard process for managing contributed software and vendor branches "
"is described in detail by the extref:{committers-guide}#vendor-import-"
"git[Committer's Guide]."
msgstr ""
"Стандартный процесс управления сторонним программным обеспечением и ветками "
"поставщиков подробно описан в extref:{committers-guide}#vendor-import-git["
"Руководстве коммиттера]."

#. type: Title ==
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:115
#, no-wrap
msgid "Encumbered Files"
msgstr "Файлы с правовыми ограничениями"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:121
msgid ""
"It might occasionally be necessary to include an encumbered file in the "
"FreeBSD source tree.  For example, if a device requires a small piece of "
"binary code to be loaded to it before the device will operate, and we do not "
"have the source to that code, then the binary file is said to be "
"encumbered.  The following policies apply to including encumbered files in "
"the FreeBSD source tree."
msgstr ""
"Время от времени может возникнуть необходимость включить файл с правовыми "
"ограничениями (обремененными лицензиями, патентами) в дерево исходного кода "
"FreeBSD. Например, если устройство требует загрузки небольшого бинарного "
"кода перед началом работы, а у нас нет исходного кода для него, то такой "
"бинарный файл считается обремененным. Следующие политики применяются к "
"включению обремененных файлов в дерево исходного кода FreeBSD."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:123
msgid ""
"Any file which is interpreted or executed by the system CPU(s) and not in "
"source format is encumbered."
msgstr ""
"Любой файл, который интерпретируется или выполняется процессором(-ами) "
"системы и не представлен в исходном формате, является обременённым."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:124
msgid "Any file with a license more restrictive than BSD or GNU is encumbered."
msgstr ""
"Любой файл с лицензией более ограничительной, чем BSD или GNU, является "
"обременённым."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:125
msgid ""
"A file which contains downloadable binary data for use by the hardware is "
"not encumbered, unless (1) or (2) apply to it."
msgstr ""
"Файл, содержащий загружаемые двоичные данные для использования "
"оборудованием, не является обремененным, если к нему не применяется пункт (1)"
" или (2)."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:126
msgid ""
"Any encumbered file requires specific approval from the link:https://www."
"FreeBSD.org/administration/#t-core[Core Team] before it is added to the "
"repository."
msgstr ""
"Любой файл с правовыми ограничениями требует специального одобрения от "
"link:https://www.FreeBSD.org/administration/#t-core[Основной команды (Core "
"Team)] перед добавлением в репозиторий."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:127
msgid ""
"Encumbered files go in [.filename]#src/contrib# or [.filename]#src/sys/"
"contrib#."
msgstr ""
"Обремененные файлы помещаются в [.filename]#src/contrib# или [.filename]#src/"
"sys/contrib#."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:128
msgid ""
"The entire module should be kept together. There is no point in splitting "
"it, unless there is code-sharing with non-encumbered code."
msgstr ""
"Весь модуль должен храниться вместе. Нет смысла разделять его, если только "
"нет совместного использования кода с необременённой частью кода."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:130
msgid ""
"In the past binary files were typically uuencoded, and named [."
"filename]#arch/filename.o.uu#.  This is no longer necessary, and binary "
"files may be added to the repository unchanged."
msgstr ""
"В прошлом бинарные файлы обычно кодировались с помощью uuencode и назывались "
"[.filename]#arch/filename.o.uu#. Теперь в этом нет необходимости, и бинарные "
"файлы могут добавляться в репозиторий без изменений."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:131
msgid "Kernel files:"
msgstr "Файлы ядра системы:"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:132
msgid ""
"Should always be referenced in [.filename]#conf/files.*# (for build "
"simplicity)."
msgstr ""
"Всегда должны быть указана в [.filename]#conf/files.*# (для упрощения "
"сборки)."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:133
msgid ""
"Should always be in [.filename]#LINT#, but the link:https://www.FreeBSD.org/"
"administration/#t-core[Core Team] decides per case if it should be commented "
"out or not. The link:https://www.FreeBSD.org/administration/#t-core[Core "
"Team] can, of course, change their minds later on."
msgstr ""
"Всегда должны быть в [.filename]#LINT#, но link:https://www.FreeBSD.org/"
"administration/#t-core[Основная команда (Core Team)] решает в каждом "
"конкретном случае, следует ли их закомментировать или нет. link:https://www."
"FreeBSD.org/administration/#t-core[Основная команда] может, конечно, позже "
"изменить свое решение."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:134
msgid "The _Release Engineer_ decides whether or not it goes into the release."
msgstr "_Инженер по выпуску_ решает, будет ли это включено в выпуск."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:136
msgid "User-land files:"
msgstr "Пользовательские файлы:"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:137
msgid ""
"The link:https://www.FreeBSD.org/administration/#t-core[Core team] decides "
"if the code should be part of the installed base system."
msgstr ""
"Команда link:https://www.FreeBSD.org/administration/#t-core[Основная команда "
"(Core team)] принимает решение о включении кода в базовую устанавливаемую "
"систему."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:138
msgid ""
"The link:https://www.FreeBSD.org/administration/#t-re[Release Engineering] "
"decides if it goes into the release."
msgstr ""
"link:https://www.FreeBSD.org/administration/#t-re[Команда подготовки релизов]"
" решает, будет ли это включено в релиз."

#. type: Title ==
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:140
#, no-wrap
msgid "Shared Libraries"
msgstr "Динамические библиотеки"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:144
msgid ""
"If you are adding shared library support to a port or other piece of "
"software that does not have one, the version numbers should follow these "
"rules.  Generally, the resulting numbers will have nothing to do with the "
"release version of the software."
msgstr ""
"Если вы добавляете поддержку динамических библиотек в порт или другое "
"программное обеспечение, у которого её нет, номера версий библиотек должны "
"следовать этим правилам. Обычно итоговые номера не будут иметь ничего общего "
"с версией выпуска программного обеспечения."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:146
msgid "For ports:"
msgstr "Для портов:"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:148
msgid "Prefer using the number already selected by upstream"
msgstr "Предпочитайте использовать номер, уже выбранный вышестоящим проектом"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:149
msgid "If upstream provides symbol versioning, ensure that we use their script"
msgstr ""
"Если вышестоящий источник предоставляет управление версиями символов, "
"убедитесь, что мы используем их скрипт"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:151
msgid "For the base system:"
msgstr "Для базовой системы:"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:153
msgid "Start library version from 1"
msgstr "Начните версии библиотеки с 1"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:154
msgid "It is strongly recommended to add symbol versioning to the new library"
msgstr ""
"Настоятельно рекомендуется добавить контроль версий символов в новую "
"библиотеку"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:155
msgid ""
"If there is an incompatible change, handle it with symbol versioning, "
"maintaining backward ABI compatibility"
msgstr ""
"Если есть несовместимое изменение, обработайте его с помощью версионирования "
"символов, сохраняя обратную совместимость ABI"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:156
msgid ""
"If this is impossible, or the library does not use symbol versioning, bump "
"the library version"
msgstr ""
"Если это невозможно или библиотека не использует версионирование символов, "
"увеличьте версию библиотеки"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:157
msgid ""
"Before even considering bumping library version for symbol-versioned "
"library, consult with Release Engineering team, providing reasons why the "
"change is so important that it should be allowed despite breaking the ABI"
msgstr ""
"Прежде чем даже рассматривать увеличение версии библиотеки для библиотеки с "
"версионированием символов, проконсультируйтесь с Командой подготовки "
"релизов, предоставив причины, почему изменение настолько важно, что его "
"следует разрешить, несмотря на нарушение ABI"

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:159
msgid ""
"For instance, added functions and bugfixes not changing the interfaces are "
"fine, while deleted functions, changed function call syntax, etc. should "
"either provide backward-compat symbols, or will force the major version "
"number to change."
msgstr ""
"Например, добавленные функции и исправления ошибок, не изменяющие "
"интерфейсы, допустимы, тогда как удалённые функции, изменённый синтаксис "
"вызовов и т.д. должны либо предоставлять обратно-совместимые символы, либо "
"приведут к изменению старшего номера версии."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:161
msgid ""
"It is the duty of the committer making the change to handle library "
"versioning."
msgstr ""
"Обязанность коммиттера, вносящего изменения, — управлять версионированием "
"библиотек."

#. type: Plain text
#: documentation/content/en/books/developers-handbook/policies/_index.adoc:166
msgid ""
"The ELF dynamic linker matches library names literally.  There is a popular "
"convention where library version is written in the form `libexample.so.x.y`, "
"where x is the major version, and y is minor.  Common practice is to set the "
"library' soname (`DT_SONAME` ELF tag) to `libexample.so.x`, and set up "
"symlinks `libexample.so.x->libexample.so.x.y`, `libexample.so->libexample.so."
"x` on library installation for the latest minor version y.  Then, since the "
"static linker searches for `libexample.so` when the `-lexample` command line "
"option is specified, objects linked with libexample get a dependency on the "
"right library.  Almost all popular build systems use this scheme "
"automatically."
msgstr ""
"Динамический загрузчик ELF сопоставляет имена библиотек буквально. "
"Существует популярное соглашение, согласно которому версия библиотеки "
"записывается в виде `libexample.so.x.y`, где x — это мажорная версия, а y — "
"минорная. Общепринятой практикой является установка поля soname у библиотеки "
"(тег ELF `DT_SONAME`) в `libexample.so.x`, а также создание символических "
"ссылок `libexample.so.x->libexample.so.x.y`, `libexample.so->libexample.so.x`"
" при установке библиотеки для последней минорной версии y. Таким образом, "
"поскольку статический компоновщик ищет `libexample.so`, когда указана опция "
"командной строки `-lexample`, объекты, скомпонованные с libexample, получают "
"информацию о зависимости от правильной библиотеки. Почти все популярные "
"системы сборки автоматически используют эту схему."