aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/en/books/developers-handbook/policies/_index.po
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/en/books/developers-handbook/policies/_index.po')
-rw-r--r--documentation/content/en/books/developers-handbook/policies/_index.po396
1 files changed, 396 insertions, 0 deletions
diff --git a/documentation/content/en/books/developers-handbook/policies/_index.po b/documentation/content/en/books/developers-handbook/policies/_index.po
new file mode 100644
index 0000000000..d2a1565eec
--- /dev/null
+++ b/documentation/content/en/books/developers-handbook/policies/_index.po
@@ -0,0 +1,396 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR The FreeBSD Project
+# This file is distributed under the same license as the FreeBSD Documentation package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: FreeBSD Documentation VERSION\n"
+"POT-Creation-Date: 2024-01-17 20:34-0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: Title =
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:1
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:16
+#, 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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:54
+msgid ""
+"This chapter documents various guidelines and policies in force for the "
+"FreeBSD source tree."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:56
+#, no-wrap
+msgid "Style Guidelines"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:60
+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 ""
+
+#. type: Title ==
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:62
+#, no-wrap
+msgid "`MAINTAINER` on Makefiles"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:66
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:70
+#, no-wrap
+msgid "MAINTAINER= email-addresses\n"
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:77
+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:80
+msgid "The role of the maintainer is as follows:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:82
+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:83
+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:84
+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:86
+#, no-wrap
+msgid "Contributed Software"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:91
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:95
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:99
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:102
+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 ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:106
+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:109
+#, no-wrap
+msgid "Vendor Imports"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:112
+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 ""
+
+#. type: Title ==
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:114
+#, no-wrap
+msgid "Encumbered Files"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:120
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:122
+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:123
+msgid "Any file with a license more restrictive than BSD or GNU is encumbered."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:124
+msgid ""
+"A file which contains downloadable binary data for use by the hardware is "
+"not encumbered, unless (1) or (2) apply to it."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:125
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:126
+msgid ""
+"Encumbered files go in [.filename]#src/contrib# or [.filename]#src/sys/"
+"contrib#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:127
+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:129
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:130
+msgid "Kernel files:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:131
+msgid ""
+"Should always be referenced in [.filename]#conf/files.*# (for build "
+"simplicity)."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:132
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:133
+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:135
+msgid "User-land files:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:136
+msgid ""
+"The link:https://www.FreeBSD.org/administration/#t-core[Core team] decides "
+"if the code should be part of `make world`."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:137
+msgid ""
+"The link:https://www.FreeBSD.org/administration/#t-re[Release Engineering] "
+"decides if it goes into the release."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:139
+#, no-wrap
+msgid "Shared Libraries"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:143
+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:145
+msgid "For ports:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:147
+msgid "Prefer using the number already selected by upstream"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:148
+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:150
+msgid "For the base system:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:152
+msgid "Start library version from 1"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:153
+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:154
+msgid ""
+"If there is an incompatible change, handle it with symbol versioning, "
+"maintaining backward ABI compatibility"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:155
+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:156
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/developers-handbook/policies/_index.adoc:158
+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:160
+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:165
+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 ""