diff options
Diffstat (limited to 'documentation/content/ru/books/developers-handbook/policies/_index.po')
| -rw-r--r-- | documentation/content/ru/books/developers-handbook/policies/_index.po | 523 |
1 files changed, 523 insertions, 0 deletions
diff --git a/documentation/content/ru/books/developers-handbook/policies/_index.po b/documentation/content/ru/books/developers-handbook/policies/_index.po new file mode 100644 index 0000000000..ba64ecaad2 --- /dev/null +++ b/documentation/content/ru/books/developers-handbook/policies/_index.po @@ -0,0 +1,523 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-06-29 21:20+0100\n" +"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/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[Core Team] может, конечно, позже изменить свое решение." + +#. 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 "" +"Прежде чем даже рассматривать увеличение версии библиотеки для библиотеки с " +"версионированием символов, проконсультируйтесь с командой Release " +"Engineering, предоставив причины, почему изменение настолько важно, что его " +"следует разрешить, несмотря на нарушение 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, получают " +"информацию о зависимости от правильной библиотеки. Почти все популярные " +"системы сборки автоматически используют эту схему." |
