#$FreeBSD$
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2021-01-09 10:56-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: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
msgctxt "_"
msgid "translator-credits"
msgstr ""

#. (itstool) path: info/title
#: article.translate.xml:8
msgid "Committer's Guide"
msgstr ""

#. (itstool) path: info/author
#: article.translate.xml:10
msgid "<orgname>The FreeBSD Documentation Project</orgname>"
msgstr ""

#. (itstool) path: info/copyright
#: article.translate.xml:14
msgid ""
"<year>1999</year> <year>2000</year> <year>2001</year> <year>2002</year> "
"<year>2003</year> <year>2004</year> <year>2005</year> <year>2006</year> "
"<year>2007</year> <year>2008</year> <year>2009</year> <year>2010</year> "
"<year>2011</year> <year>2012</year> <year>2013</year> <year>2014</year> "
"<year>2015</year> <year>2016</year> <year>2017</year> <year>2018</year> "
"<year>2019</year> <year>2020</year> <holder>The FreeBSD Documentation "
"Project</holder>"
msgstr ""

#. (itstool) path: legalnotice/para
#: article.translate.xml:41
msgid "FreeBSD is a registered trademark of the FreeBSD Foundation."
msgstr ""

#. (itstool) path: legalnotice/para
#: article.translate.xml:43
msgid ""
"Coverity is a registered trademark; Coverity Extend, Coverity Prevent and "
"Coverity Prevent SQS are trademarks of Coverity, Inc."
msgstr ""

#. (itstool) path: legalnotice/para
#: article.translate.xml:46
msgid ""
"IBM, AIX, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of "
"International Business Machines Corporation in the United States, other "
"countries, or both."
msgstr ""

#. (itstool) path: legalnotice/para
#: article.translate.xml:50
msgid ""
"Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, "
"and Xeon are trademarks or registered trademarks of Intel Corporation or its "
"subsidiaries in the United States and other countries."
msgstr ""

#. (itstool) path: legalnotice/para
#: article.translate.xml:54
msgid ""
"SPARC, SPARC64, and UltraSPARC are trademarks of SPARC International, Inc in "
"the United States and other countries. SPARC International, Inc owns all of "
"the SPARC trademarks and under licensing agreements allows the proper use of "
"these trademarks by its members."
msgstr ""

#. (itstool) path: legalnotice/para
#: article.translate.xml:59
msgid ""
"Many of the designations used by manufacturers and sellers to distinguish "
"their products are claimed as trademarks. Where those designations appear in "
"this document, and the FreeBSD Project was aware of the trademark claim, the "
"designations have been followed by the <quote>™</quote> or the <quote>®</"
"quote> symbol."
msgstr ""

#. (itstool) path: info/pubdate
#. (itstool) path: info/releaseinfo
#: article.translate.xml:67 article.translate.xml:69
msgid "$FreeBSD$"
msgstr ""

#. (itstool) path: abstract/para
#: article.translate.xml:72
msgid ""
"This document provides information for the FreeBSD committer community. All "
"new committers should read this document before they start, and existing "
"committers are strongly encouraged to review it from time to time."
msgstr ""

#. (itstool) path: abstract/para
#: article.translate.xml:77
msgid ""
"Almost all FreeBSD developers have commit rights to one or more "
"repositories. However, a few developers do not, and some of the information "
"here applies to them as well. (For instance, some people only have rights to "
"work with the Problem Report database). Please see <xref linkend=\"non-"
"committers\"/> for more information."
msgstr ""

#. (itstool) path: abstract/para
#: article.translate.xml:84
msgid ""
"This document may also be of interest to members of the FreeBSD community "
"who want to learn more about how the project works."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:91
msgid "Administrative Details"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:99
msgid "<emphasis>Login Methods</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:100
msgid ""
"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry>, protocol 2 only"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:104
msgid "<emphasis>Main Shell Host</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:105
msgid "<systemitem class=\"fqdomainname\">freefall.FreeBSD.org</systemitem>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:109
msgid "<emphasis>SMTP Host</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:110
msgid ""
"<literal><systemitem class=\"fqdomainname\">smtp.FreeBSD.org</"
"systemitem>:587</literal> (see also <xref linkend=\"smtp-setup\"/>)."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:116
msgid "<emphasis><literal>src/</literal> Subversion Root</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:118
msgid ""
"<literal>svn+ssh://</literal><systemitem class=\"fqdomainname\">repo.FreeBSD."
"org</systemitem><filename>/base</filename> (see also <xref linkend=\"svn-"
"getting-started-base-layout\"/>)."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:123
msgid "<emphasis><literal>doc/</literal> Subversion Root</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:125
msgid ""
"<literal>svn+ssh://</literal><systemitem class=\"fqdomainname\">repo.FreeBSD."
"org</systemitem><filename>/doc</filename> (see also <xref linkend=\"svn-"
"getting-started-doc-layout\"/>)."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:130
msgid "<emphasis><literal>ports/</literal> Subversion Root</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:133
msgid ""
"<literal>svn+ssh://</literal><systemitem class=\"fqdomainname\">repo.FreeBSD."
"org</systemitem><filename>/ports</filename> (see also <xref linkend=\"svn-"
"getting-started-ports-layout\"/>)."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:138
msgid "<emphasis>Internal Mailing Lists</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:139
msgid ""
"developers (technically called all-developers), doc-developers, doc-"
"committers, ports-developers, ports-committers, src-developers, src-"
"committers. (Each project repository has its own -developers and -committers "
"mailing lists. Archives for these lists can be found in the files <filename>/"
"local/mail/<replaceable>repository-name</replaceable>-developers-archive</"
"filename> and <filename>/local/mail/<replaceable>repository-name</"
"replaceable>-committers-archive</filename> on the <systemitem class="
"\"fqdomainname\">FreeBSD.org</systemitem> cluster.)"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:154
msgid "<emphasis>Core Team monthly reports</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:156
msgid ""
"<filename>/home/core/public/monthly-reports</filename> on the <systemitem "
"class=\"fqdomainname\">FreeBSD.org</systemitem> cluster."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:162
msgid "<emphasis>Ports Management Team monthly reports</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:164
msgid ""
"<filename>/home/portmgr/public/monthly-reports</filename> on the <systemitem "
"class=\"fqdomainname\">FreeBSD.org</systemitem> cluster."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:170
msgid "<emphasis>Noteworthy <literal>src/</literal> SVN Branches</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:172
msgid ""
"<literal>stable/</literal><replaceable>n</replaceable> (<replaceable>n</"
"replaceable>-STABLE), <literal>head</literal> (-CURRENT)"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:181
msgid ""
"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry> is required to connect to the project hosts. For more "
"information, see <xref linkend=\"ssh.guide\"/>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:184
msgid "Useful links:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:188
msgid ""
"<link xlink:href=\"@@URL_RELPREFIX@@/internal/\">FreeBSD Project Internal "
"Pages</link>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:193
msgid ""
"<link xlink:href=\"@@URL_RELPREFIX@@/internal/machines.html\">FreeBSD "
"Project Hosts</link>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:198
msgid ""
"<link xlink:href=\"@@URL_RELPREFIX@@/administration.html\">FreeBSD Project "
"Administrative Groups</link>"
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:205
msgid "Open<acronym>PGP</acronym> Keys for FreeBSD"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:207
msgid ""
"Cryptographic keys conforming to the Open<acronym>PGP</acronym> "
"(<emphasis>Pretty Good Privacy</emphasis>) standard are used by the FreeBSD "
"project to authenticate committers. Messages carrying important information "
"like public <acronym>SSH</acronym> keys can be signed with the "
"Open<acronym>PGP</acronym> key to prove that they are really from the "
"committer. See <link xlink:href=\"http://www.nostarch.com/pgp_ml.htm\">PGP "
"&amp; GPG: Email for the Practical Paranoid by Michael Lucas</link> and "
"<link xlink:href=\"http://en.wikipedia.org/wiki/Pretty_Good_Privacy\"/> for "
"more information."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:220
msgid "Creating a Key"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:222
msgid ""
"Existing keys can be used, but should be checked with <filename>doc/head/"
"share/pgpkeys/checkkey.sh</filename> first. In this case, make sure the key "
"has a FreeBSD user ID."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:227
msgid ""
"For those who do not yet have an Open<acronym>PGP</acronym> key, or need a "
"new key to meet FreeBSD security requirements, here we show how to generate "
"one."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:235
msgid ""
"Install <filename role=\"package\">security/gnupg</filename>. Enter these "
"lines in <filename>~/.gnupg/gpg.conf</filename> to set minimum acceptable "
"defaults:"
msgstr ""

#. (itstool) path: step/programlisting
#: article.translate.xml:240
#, no-wrap
msgid ""
"fixed-list-mode\n"
"keyid-format 0xlong\n"
"personal-digest-preferences SHA512 SHA384 SHA256 SHA224\n"
"default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 BZIP2 ZLIB ZIP Uncompressed\n"
"use-agent\n"
"verify-options show-uid-validity\n"
"list-options show-uid-validity\n"
"sig-notation issuer-fpr@notations.openpgp.fifthhorseman.net=%g\n"
"cert-digest-algo SHA512"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:252
msgid "Generate a key:"
msgstr ""

#. (itstool) path: step/screen
#: article.translate.xml:254
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>gpg --full-gen-key</userinput>\n"
"gpg (GnuPG) 2.1.8; Copyright (C) 2015 Free Software Foundation, Inc.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
"Warning: using insecure memory!\n"
"Please select what kind of key you want:\n"
"   (1) RSA and RSA (default)\n"
"   (2) DSA and Elgamal\n"
"   (3) DSA (sign only)\n"
"   (4) RSA (sign only)\n"
"Your selection? <userinput>1</userinput>\n"
"RSA keys may be between 1024 and 4096 bits long.\n"
"What keysize do you want? (2048) <userinput>2048</userinput>  <co xml:id=\"co-pgp-bits\"/>\n"
"Requested keysize is 2048 bits\n"
"Please specify how long the key should be valid.\n"
"\t 0 = key does not expire\n"
"      &lt;n&gt;  = key expires in n days\n"
"      &lt;n&gt;w = key expires in n weeks\n"
"      &lt;n&gt;m = key expires in n months\n"
"      &lt;n&gt;y = key expires in n years\n"
"Key is valid for? (0) <userinput>3y</userinput>  <co xml:id=\"co-pgp-expire\"/>\n"
"Key expires at Wed Nov  4 17:20:20 2015 MST\n"
"Is this correct? (y/N) <userinput>y</userinput>\n"
"\n"
"GnuPG needs to construct a user ID to identify your key.\n"
"\n"
"Real name: <userinput><replaceable>Chucky Daemon</replaceable></userinput> <co xml:id=\"co-pgp-realname\"/>\n"
"Email address: <userinput><replaceable>notreal@example.com</replaceable></userinput>\n"
"Comment:\n"
"You selected this USER-ID:\n"
"    \"<replaceable>Chucky Daemon &lt;notreal@example.com&gt;</replaceable>\"\n"
"\n"
"Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? <userinput>o</userinput>\n"
"You need a Passphrase to protect your secret key."
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:292
msgid ""
"2048-bit keys with a three-year expiration provide adequate protection at "
"present (2013-12). <link xlink:href=\"http://danielpocock.com/rsa-key-"
"sizes-2048-or-4096-bits\"/> describes the situation in more detail."
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:298
msgid ""
"A three year key lifespan is short enough to obsolete keys weakened by "
"advancing computer power, but long enough to reduce key management problems."
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:305
msgid ""
"Use your real name here, preferably matching that shown on government-issued "
"<acronym>ID</acronym> to make it easier for others to verify your identity. "
"Text that may help others identify you can be entered in the "
"<literal>Comment</literal> section."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:313
msgid ""
"After the email address is entered, a passphrase is requested. Methods of "
"creating a secure passphrase are contentious. Rather than suggest a single "
"way, here are some links to sites that describe various methods: <link xlink:"
"href=\"http://world.std.com/~reinhold/diceware.html\"/>, <link xlink:href="
"\"http://www.iusmentis.com/security/passphrasefaq/\"/>, <link xlink:href="
"\"http://xkcd.com/936/\"/>, <link xlink:href=\"http://en.wikipedia.org/wiki/"
"Passphrase\"/>."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:323
msgid ""
"Protect the private key and passphrase. If either the private key or "
"passphrase may have been compromised or disclosed, immediately notify "
"<email>accounts@FreeBSD.org</email> and revoke the key."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:328
msgid "Committing the new key is shown in <xref linkend=\"commit-steps\"/>."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:334
msgid "Kerberos and LDAP web Password for FreeBSD Cluster"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:336
msgid ""
"The FreeBSD cluster requires a Kerberos password to access certain services. "
"The Kerberos password also serves as the LDAP web password, since LDAP is "
"proxying to Kerberos in the cluster. Some of the services which require this "
"include:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:344
msgid "<link xlink:href=\"https://bugs.freebsd.org/bugzilla\">Bugzilla</link>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:347
msgid "<link xlink:href=\"https://ci.freebsd.org\">Jenkins</link>"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:351
msgid ""
"To create a new Kerberos account in the FreeBSD cluster, or to reset a "
"Kerberos password for an existing account using a random password generator:"
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:355
#, no-wrap
msgid "<prompt>%</prompt> <userinput>ssh kpasswd.freebsd.org</userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:358
msgid "This must be done from a machine outside of the FreeBSD.org cluster."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:362
msgid ""
"A Kerberos password can also be set manually by logging into <systemitem "
"class=\"fqdomainname\">freefall.FreeBSD.org</systemitem> and running:"
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:366
#, no-wrap
msgid "<prompt>%</prompt> <userinput>kpasswd</userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:369
msgid ""
"Unless the Kerberos-authenticated services of the FreeBSD.org cluster have "
"been used previously, <errorname>Client unknown</errorname> will be shown. "
"This error means that the <command>ssh kpasswd.freebsd.org</command> method "
"shown above must be used first to initialize the Kerberos account."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:380
msgid "Commit Bit Types"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:382
msgid ""
"The FreeBSD repository has a number of components which, when combined, "
"support the basic operating system source, documentation, third party "
"application ports infrastructure, and various maintained utilities. When "
"FreeBSD commit bits are allocated, the areas of the tree where the bit may "
"be used are specified. Generally, the areas associated with a bit reflect "
"who authorized the allocation of the commit bit. Additional areas of "
"authority may be added at a later date: when this occurs, the committer "
"should follow normal commit bit allocation procedures for that area of the "
"tree, seeking approval from the appropriate entity and possibly getting a "
"mentor for that area for some period of time."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:399
msgid "<emphasis>Committer Type</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:400
msgid "<emphasis>Responsible</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:401
msgid "<emphasis>Tree Components</emphasis>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:405
msgid "src"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:406
msgid "core@"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:407
msgid "src/, doc/ subject to appropriate review"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:411
msgid "doc"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:412
msgid "doceng@"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:413
msgid "doc/, ports/, src/ documentation"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:417
msgid "ports"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:418
msgid "portmgr@"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:419
msgid "ports/"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:425
msgid ""
"Commit bits allocated prior to the development of the notion of areas of "
"authority may be appropriate for use in many parts of the tree. However, "
"common sense dictates that a committer who has not previously worked in an "
"area of the tree seek review prior to committing, seek approval from the "
"appropriate responsible party, and/or work with a mentor. Since the rules "
"regarding code maintenance differ by area of the tree, this is as much for "
"the benefit of the committer working in an area of less familiarity as it is "
"for others working on the tree."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:435
msgid ""
"Committers are encouraged to seek review for their work as part of the "
"normal development process, regardless of the area of the tree where the "
"work is occurring."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:440
msgid "Policy for Committer Activity in Other Trees"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:444
msgid ""
"All committers may modify <filename>base/head/share/misc/committers-*.dot</"
"filename>, <filename>base/head/usr.bin/calendar/calendars/calendar.freebsd</"
"filename>, and <filename>ports/head/astro/xearth/files</filename>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:452
msgid ""
"doc committers may commit documentation changes to <filename>src</filename> "
"files, such as man pages, READMEs, fortune databases, calendar files, and "
"comment fixes without approval from a src committer, subject to the normal "
"care and tending of commits."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:461
msgid ""
"Any committer may make changes to any other tree with an \"Approved by\" "
"from a non-mentored committer with the appropriate bit."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:467
msgid ""
"Committers can acquire an additional bit by the usual process of finding a "
"mentor who will propose them to core, doceng, or portmgr, as appropriate. "
"When approved, they will be added to 'access' and the normal mentoring "
"period will ensue, which will involve a continuing of <quote>Approved by</"
"quote> for some period."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:476
msgid ""
"\"Approved by\" is only acceptable from non-mentored src committers -- "
"mentored committers can provide a \"Reviewed by\" but not an \"Approved by\"."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:485
msgid "Subversion Primer"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:487
msgid ""
"New committers are assumed to already be familiar with the basic operation "
"of Subversion. If not, start by reading the <link xlink:href=\"http://"
"svnbook.red-bean.com/\">Subversion Book</link>."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:493
msgid "Introduction"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:495
msgid ""
"The FreeBSD source repository switched from <acronym>CVS</acronym> to "
"Subversion on May 31st, 2008. The first real <acronym>SVN</acronym> commit "
"is <emphasis>r179447</emphasis>."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:500
msgid ""
"The FreeBSD <literal>doc/www</literal> repository switched from "
"<acronym>CVS</acronym> to Subversion on May 19th, 2012. The first real "
"<acronym>SVN</acronym> commit is <emphasis>r38821</emphasis>."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:505
msgid ""
"The FreeBSD <literal>ports</literal> repository switched from <acronym>CVS</"
"acronym> to Subversion on July 14th, 2012. The first real <acronym>SVN</"
"acronym> commit is <emphasis>r300894</emphasis>."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:510
msgid ""
"Subversion can be installed from the FreeBSD Ports Collection by issuing "
"these commands:"
msgstr ""

#. (itstool) path: sect2/screen
#: article.translate.xml:513
#, no-wrap
msgid "<prompt>#</prompt> <userinput>pkg install subversion</userinput>"
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:518
msgid "Getting Started"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:520
msgid ""
"There are a few ways to obtain a working copy of the tree from Subversion. "
"This section will explain them."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:524
msgid "Direct Checkout"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:526
msgid ""
"The first is to check out directly from the main repository. For the "
"<literal>src</literal> tree, use:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:530 article.translate.xml:751
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn checkout svn+ssh://repo.freebsd.org/base/head /usr/src</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:532
msgid "For the <literal>doc</literal> tree, use:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:534
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn checkout svn+ssh://repo.freebsd.org/doc/head /usr/doc</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:536
msgid "For the <literal>ports</literal> tree, use:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:538
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn checkout svn+ssh://repo.freebsd.org/ports/head /usr/ports</userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:541
msgid ""
"Though the remaining examples in this document are written with the workflow "
"of working with the <literal>src</literal> tree in mind, the underlying "
"concepts are the same for working with the <literal>doc</literal> and the "
"<literal>ports</literal> tree. Ports related Subversion operations are "
"listed in <xref linkend=\"ports\"/>."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:551
msgid ""
"The above command will check out a <literal>CURRENT</literal> source tree as "
"<filename><replaceable>/usr/src/</replaceable></filename>, which can be any "
"target directory on the local filesystem. Omitting the final argument of "
"that command causes the working copy, in this case, to be named <quote>head</"
"quote>, but that can be renamed safely."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:559
msgid ""
"<literal>svn+ssh</literal> means the <acronym>SVN</acronym> protocol "
"tunnelled over <acronym>SSH</acronym>. The name of the server is "
"<literal>repo.freebsd.org</literal>, <literal>base</literal> is the path to "
"the repository, and <literal>head</literal> is the subdirectory within the "
"repository."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:566
msgid ""
"If your FreeBSD login name is different from the login name used on the "
"local machine, either include it in the <acronym>URL</acronym> (for example "
"<literal>svn+ssh://jarjar@repo.freebsd.org/base/head</literal>), or add an "
"entry to <filename>~/.ssh/config</filename> in the form:"
msgstr ""

#. (itstool) path: sect3/programlisting
#: article.translate.xml:573
#, no-wrap
msgid ""
"Host repo.freebsd.org\n"
"\tUser jarjar"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:576
msgid ""
"This is the simplest method, but it is hard to tell just yet how much load "
"it will place on the repository."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:580
msgid ""
"The <command>svn diff</command> does not require access to the server as "
"<acronym>SVN</acronym> stores a reference copy of every file in the working "
"copy. This, however, means that Subversion working copies are very large in "
"size."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:589
msgid "<literal>RELENG_*</literal> Branches and General Layout"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:592
msgid ""
"In <literal>svn+ssh://repo.freebsd.org/base</literal>, <emphasis>base</"
"emphasis> refers to the source tree. Similarly, <emphasis>ports</emphasis> "
"refers to the ports tree, and so on. These are separate repositories with "
"their own change number sequences, access controls and commit mail."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:599
msgid ""
"For the base repository, HEAD refers to the -CURRENT tree. For example, "
"<filename>head/bin/ls</filename> is what would go into <filename>/usr/src/"
"bin/ls</filename> in a release. Some key locations are:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:606
msgid ""
"<emphasis>/head/</emphasis> which corresponds to <literal>HEAD</literal>, "
"also known as <literal>-CURRENT</literal>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:612
msgid ""
"<emphasis>/stable/<replaceable>n</replaceable></emphasis> which corresponds "
"to <literal>RELENG_<replaceable>n</replaceable></literal>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:618
msgid ""
"<emphasis>/releng/<replaceable>n.n</replaceable></emphasis> which "
"corresponds to <literal>RELENG_<replaceable>n_n</replaceable></literal>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:624
msgid ""
"<emphasis>/release/<replaceable>n.n.n</replaceable></emphasis> which "
"corresponds to <literal>RELENG_<replaceable>n_n_n</replaceable>_RELEASE</"
"literal>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:630
msgid ""
"<emphasis>/vendor*</emphasis> is the vendor branch import work area. This "
"directory itself does not contain branches, however its subdirectories do. "
"This contrasts with the <emphasis>stable</emphasis>, <emphasis>releng</"
"emphasis> and <emphasis>release</emphasis> directories."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:639
msgid ""
"<emphasis>/projects</emphasis> and <emphasis>/user</emphasis> feature a "
"branch work area. As above, the <emphasis>/user</emphasis> directory does "
"not contain branches itself."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:649
msgid "FreeBSD Documentation Project Branches and Layout"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:652
msgid ""
"In <literal>svn+ssh://repo.freebsd.org/doc</literal>, <emphasis>doc</"
"emphasis> refers to the repository root of the source tree."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:656
msgid ""
"In general, most FreeBSD Documentation Project work will be done within the "
"<filename>head/</filename> branch of the documentation source tree."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:660
msgid ""
"FreeBSD documentation is written and/or translated to various languages, "
"each in a separate directory in the <filename>head/</filename> branch."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:665
msgid ""
"Each translation set contains several subdirectories for the various parts "
"of the FreeBSD Documentation Project. A few noteworthy directories are:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:671
msgid ""
"<emphasis>/articles/</emphasis> contains the source code for articles "
"written by various FreeBSD contributors."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:677
msgid ""
"<emphasis>/books/</emphasis> contains the source code for the different "
"books, such as the FreeBSD Handbook."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:683
msgid ""
"<emphasis>/htdocs/</emphasis> contains the source code for the FreeBSD "
"website."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:690
msgid "FreeBSD Ports Tree Branches and Layout"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:692
msgid ""
"In <literal>svn+ssh://repo.freebsd.org/ports</literal>, <emphasis>ports</"
"emphasis> refers to the repository root of the ports tree."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:696
msgid ""
"In general, most FreeBSD port work will be done within the <filename>head/</"
"filename> branch of the ports tree which is the actual ports tree used to "
"install software. Some other key locations are:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:703
msgid ""
"<emphasis>/branches/RELENG_<replaceable>n_n_n</replaceable></emphasis> which "
"corresponds to <literal>RELENG_<replaceable>n_n_n</replaceable></literal> is "
"used to merge back security updates in preparation for a release."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:711
msgid ""
"<emphasis>/tags/RELEASE_<replaceable>n_n_n</replaceable></emphasis> which "
"corresponds to <literal>RELEASE_<replaceable>n_n_n</replaceable></literal> "
"represents a release tag of the ports tree."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:718
msgid ""
"<emphasis>/tags/RELEASE_<replaceable>n</replaceable>_EOL</emphasis> "
"represents the end of life tag of a specific FreeBSD branch."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:727
msgid "Daily Use"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:729
msgid ""
"This section will explain how to perform common day-to-day operations with "
"Subversion."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:733
msgid "Help"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:735
msgid ""
"<acronym>SVN</acronym> has built in help documentation. It can be accessed "
"by typing:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:738
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn help</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:740
msgid ""
"Additional information can be found in the <link xlink:href=\"http://svnbook."
"red-bean.com/\">Subversion Book</link>."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:746
msgid "Checkout"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:748
msgid "As seen earlier, to check out the FreeBSD head branch:"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:753
msgid ""
"At some point, more than just <literal>HEAD</literal> will probably be "
"useful, for instance when merging changes to stable/7. Therefore, it may be "
"useful to have a partial checkout of the complete tree (a full checkout "
"would be very painful)."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:759
msgid "To do this, first check out the root of the repository:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:762
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn checkout --depth=immediates svn+ssh://repo.freebsd.org/base</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:764
msgid ""
"This will give <literal>base</literal> with all the files it contains (at "
"the time of writing, just <filename>ROADMAP.txt</filename>) and empty "
"subdirectories for <literal>head</literal>, <literal>stable</literal>, "
"<literal>vendor</literal> and so on."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:770
msgid ""
"Expanding the working copy is possible. Just change the depth of the various "
"subdirectories:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:773
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn up --set-depth=infinity base/head</userinput>\n"
"<prompt>%</prompt> <userinput>svn up --set-depth=immediates base/release base/releng base/stable</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:776
msgid ""
"The above command will pull down a full copy of <literal>head</literal>, "
"plus empty copies of every <literal>release</literal> tag, every "
"<literal>releng</literal> branch, and every <literal>stable</literal> branch."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:782
msgid ""
"If at a later date merging to <literal>7-STABLE</literal> is required, "
"expand the working copy:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:786
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn up --set-depth=infinity base/stable/7</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:788
msgid ""
"Subtrees do not have to be expanded completely. For instance, expanding only "
"<literal>stable/7/sys</literal> and then later expand the rest of "
"<literal>stable/7</literal>:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:793
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn up --set-depth=infinity base/stable/7/sys</userinput>\n"
"<prompt>%</prompt> <userinput>svn up --set-depth=infinity base/stable/7</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:796
msgid ""
"Updating the tree with <command>svn update</command> will only update what "
"was previously asked for (in this case, <literal>head</literal> and "
"<literal>stable/7</literal>; it will not pull down the whole tree."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:804
msgid "Anonymous Checkout"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:806
msgid ""
"It is possible to anonymously check out the FreeBSD repository with "
"Subversion. This will give access to a read-only tree that can be updated, "
"but not committed back to the main repository. To do this, use:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:811
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn co https://svn.FreeBSD.org/base/head /usr/src</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:813
msgid ""
"More details on using Subversion this way can be found in <link xlink:href="
"\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/svn.html\">Using "
"Subversion</link>."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:819
msgid "Updating the Tree"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:821
msgid ""
"To update a working copy to either the latest revision, or a specific "
"revision:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:824
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn update</userinput>\n"
"<prompt>%</prompt> <userinput>svn update -<replaceable>r12345</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:829
msgid "Status"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:831
msgid "To view the local changes that have been made to the working copy:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:834
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn status</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:836
msgid "To show local changes and files that are out-of-date do:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:839
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn status --show-updates</userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:843
msgid "Editing and Committing"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:845
msgid ""
"<acronym>SVN</acronym> does not need to be told in advance about file "
"editing."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:848
msgid "To commit all changes in the current directory and all subdirectories:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:851
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:853
msgid ""
"To commit all changes in, for example, <filename><replaceable>lib/libfetch/</"
"replaceable></filename> and <filename><replaceable>usr/bin/fetch/</"
"replaceable></filename> in a single operation:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:859
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn commit <replaceable>lib/libfetch</replaceable> <replaceable>usr/bin/fetch</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:861
msgid ""
"There is also a commit wrapper for the ports tree to handle the properties "
"and sanity checking the changes:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:865
#, no-wrap
msgid "<prompt>%</prompt> <userinput>/usr/ports/Tools/scripts/psvn commit</userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:869
msgid "Adding and Removing Files"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:872
msgid ""
"Before adding files, get a copy of <link xlink:href=\"https://people.FreeBSD."
"org/~peter/auto-props.txt\">auto-props.txt</link> (there is also a <link "
"xlink:href=\"https://people.FreeBSD.org/~beat/cvs2svn/auto-props.txt\"> "
"ports tree specific version</link>) and add it to <filename>~/.subversion/"
"config</filename> according to the instructions in the file. If you added "
"something before reading this, use <command>svn rm --keep-local</command> "
"for just added files, fix your config file and re-add them again. The "
"initial config file is created when you first run a svn command, even "
"something as simple as <command>svn help</command>."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:884
msgid ""
"Files are added to a <acronym>SVN</acronym> repository with <command>svn "
"add</command>. To add a file named <emphasis>foo</emphasis>, edit it, then:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:889
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn add <replaceable>foo</replaceable></userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:892
msgid ""
"Most new source files should include a <literal>$FreeBSD$</literal> string "
"near the start of the file. On commit, <command>svn</command> will expand "
"the <literal>$FreeBSD$</literal> string, adding the file path, revision "
"number, date and time of commit, and the username of the committer. Files "
"which cannot be modified may be committed without the <literal>$FreeBSD$</"
"literal> string."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:902
msgid "Files can be removed with <command>svn remove</command>:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:905
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn remove <replaceable>foo</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:907
msgid ""
"Subversion does not require deleting the file before using <command>svn rm</"
"command>, and indeed complains if that happens."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:911
msgid "It is possible to add directories with <command>svn add</command>:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:914
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>mkdir <replaceable>bar</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn add <replaceable>bar</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:917
msgid ""
"Although <command>svn mkdir</command> makes this easier by combining the "
"creation of the directory and the adding of it:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:921
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn mkdir <replaceable>bar</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:923
msgid ""
"Like files, directories are removed with <command>svn rm</command>. There is "
"no separate command specifically for removing directories."
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:927
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn rm <replaceable>bar</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:931
msgid "Copying and Moving Files"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:933
msgid ""
"This command creates a copy of <filename>foo.c</filename> named "
"<filename>bar.c</filename>, with the new file also under version control and "
"with the full history of <filename>foo.c</filename>:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:938
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn copy <replaceable>foo.c</replaceable> <replaceable>bar.c</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:940
msgid ""
"This is usually preferred to copying the file with <command>cp</command> and "
"adding it to the repository with <command>svn add</command> because this way "
"the new file does not inherit the original one's history."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:945
msgid "To move and rename a file:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:947
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn move <replaceable>foo.c</replaceable> <replaceable>bar.c</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:951
msgid "Log and Annotate"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:953
msgid ""
"<command>svn log</command> shows revisions and commit messages, most recent "
"first, for files or directories. When used on a directory, all revisions "
"that affected the directory and files within that directory are shown."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:958
msgid ""
"<command>svn annotate</command>, or equally <command>svn praise</command> or "
"<command>svn blame</command>, shows the most recent revision number and who "
"committed that revision for each line of a file."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:965
msgid "Diffs"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:967
msgid ""
"<command>svn diff</command> displays changes to the working copy. Diffs "
"generated by <acronym>SVN</acronym> are unified and include new files by "
"default in the diff output."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:972
msgid ""
"<command>svn diff</command> can show the changes between two revisions of "
"the same file:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:975
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn diff -r179453:179454 ROADMAP.txt</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:977
msgid ""
"It can also show all changes for a specific changeset. This command shows "
"what changes were made to the current directory and all subdirectories in "
"changeset 179454:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:982
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn diff -c179454 .</userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:986
msgid "Reverting"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:988
msgid ""
"Local changes (including additions and deletions) can be reverted using "
"<command>svn revert</command>. It does not update out-of-date files, but "
"just replaces them with pristine copies of the original version."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:995
msgid "Conflicts"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:997
msgid ""
"If an <command>svn update</command> resulted in a merge conflict, Subversion "
"will remember which files have conflicts and refuse to commit any changes to "
"those files until explicitly told that the conflicts have been resolved. The "
"simple, not yet deprecated procedure is:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1003
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn resolved <replaceable>foo</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1005
msgid "However, the preferred procedure is:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1007
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn resolve --accept=working <replaceable>foo</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1009
msgid ""
"The two examples are equivalent. Possible values for <literal>--accept</"
"literal> are:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1014
msgid ""
"<literal>working</literal>: use the version in your working directory (which "
"one presumes has been edited to resolve the conflicts)."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1020
msgid ""
"<literal>base</literal>: use a pristine copy of the version you had before "
"<command>svn update</command>, discarding your own changes, the conflicting "
"changes, and possibly other intervening changes as well."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1027
msgid ""
"<literal>mine-full</literal>: use what you had before <command>svn update</"
"command>, including your own changes, but discarding the conflicting "
"changes, and possibly other intervening changes as well."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1034
msgid ""
"<literal>theirs-full</literal>: use the version that was retrieved when you "
"did <command>svn update</command>, discarding your own changes."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:1044
msgid "Advanced Use"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1047
msgid "Sparse Checkouts"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1049
msgid ""
"<acronym>SVN</acronym> allows <emphasis>sparse</emphasis>, or partial "
"checkouts of a directory by adding <option>--depth</option> to a "
"<command>svn checkout</command>."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1054
msgid "Valid arguments to <option>--depth</option> are:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1059
msgid ""
"<literal>empty</literal>: the directory itself without any of its contents."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1064
msgid "<literal>files</literal>: the directory and any files it contains."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1069
msgid ""
"<literal>immediates</literal>: the directory and any files and directories "
"it contains, but none of the subdirectories' contents."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1075
msgid "<literal>infinity</literal>: anything."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1079
msgid ""
"The <literal>--depth</literal> option applies to many other commands, "
"including <command>svn commit</command>, <command>svn revert</command>, and "
"<command>svn diff</command>."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1084
msgid ""
"Since <literal>--depth</literal> is sticky, there is a <literal>--set-depth</"
"literal> option for <command>svn update</command> that will change the "
"selected depth. Thus, given the working copy produced by the previous "
"example:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1090
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd <replaceable>~/freebsd</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn update --set-depth=immediates .</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1093
msgid ""
"The above command will populate the working copy in <replaceable>~/freebsd</"
"replaceable> with <filename>ROADMAP.txt</filename> and empty subdirectories, "
"and nothing will happen when <command>svn update</command> is executed on "
"the subdirectories. However, this command will set the depth for "
"<replaceable>head</replaceable> (in this case) to infinity, and fully "
"populate it:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1102
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn update --set-depth=infinity <replaceable>head</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1106
msgid "Direct Operation"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1108
msgid ""
"Certain operations can be performed directly on the repository without "
"touching the working copy. Specifically, this applies to any operation that "
"does not require editing a file, including:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1115
msgid "<literal>log</literal>, <literal>diff</literal>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1120
msgid "<literal>mkdir</literal>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1124
msgid ""
"<literal>remove</literal>, <literal>copy</literal>, <literal>rename</literal>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1129
msgid ""
"<literal>propset</literal>, <literal>propedit</literal>, <literal>propdel</"
"literal>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1135
msgid "<literal>merge</literal>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1139
msgid ""
"Branching is very fast. This command would be used to branch "
"<literal>RELENG_8</literal>:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1142
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn copy svn+ssh://repo.freebsd.org/base/head svn+ssh://repo.freebsd.org/base/stable/8</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1144
msgid ""
"This is equivalent to these commands which take minutes and hours as opposed "
"to seconds, depending on your network connection:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1148
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn checkout --depth=immediates svn+ssh://repo.freebsd.org/base</userinput>\n"
"<prompt>%</prompt> <userinput>cd base</userinput>\n"
"<prompt>%</prompt> <userinput>svn update --set-depth=infinity head</userinput>\n"
"<prompt>%</prompt> <userinput>svn copy head stable/8</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit stable/8</userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1156
msgid "Merging with <acronym>SVN</acronym>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1158
msgid ""
"This section deals with merging code from one branch to another (typically, "
"from head to a stable branch)."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:1162
msgid ""
"In all examples below, <literal>$FSVN</literal> refers to the location of "
"the FreeBSD Subversion repository, <literal>svn+ssh://repo.freebsd.org/base/"
"</literal>."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1168
msgid "About Merge Tracking"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1170
msgid ""
"From the user's perspective, merge tracking information (or mergeinfo) is "
"stored in a property called <literal>svn:mergeinfo</literal>, which is a "
"comma-separated list of revisions and ranges of revisions that have been "
"merged. When set on a file, it applies only to that file. When set on a "
"directory, it applies to that directory and its descendants (files and "
"directories) except for those that have their own <literal>svn:mergeinfo</"
"literal>."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1180
msgid ""
"It is <emphasis>not</emphasis> inherited. For instance, <filename>stable/6/"
"contrib/openpam/</filename> does not implicitly inherit mergeinfo from "
"<filename>stable/6/</filename>, or <filename>stable/6/contrib/</filename>. "
"Doing so would make partial checkouts very hard to manage. Instead, "
"mergeinfo is explicitly propagated down the tree. For merging something into "
"<filename>branch/foo/bar/</filename>, these rules apply:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1193
msgid ""
"If <filename>branch/foo/bar/</filename> does not already have a mergeinfo "
"record, but a direct ancestor (for instance, <filename>branch/foo/</"
"filename>) does, then that record will be propagated down to "
"<filename>branch/foo/bar/</filename> before information about the current "
"merge is recorded."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1205
msgid ""
"Information about the current merge will <emphasis>not</emphasis> be "
"propagated back up that ancestor."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1211
msgid ""
"If a direct descendant of <filename>branch/foo/bar/</filename> (for "
"instance, <filename>branch/foo/bar/baz/</filename>) already has a mergeinfo "
"record, information about the current merge will be propagated down to it."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1219
msgid ""
"If you consider the case where a revision changes several separate parts of "
"the tree (for example, <filename>branch/foo/bar/</filename> and "
"<filename>branch/foo/quux/</filename>), but you only want to merge some of "
"it (for example, <filename>branch/foo/bar/</filename>), you will see that "
"these rules make sense. If mergeinfo was propagated up, it would seem like "
"that revision had also been merged to <filename>branch/foo/quux/</filename>, "
"when in fact it had not been."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1232
msgid "Selecting the Source and Target Branch When Merging"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1235
msgid ""
"Merging to <literal>stable/</literal> branches should originate from "
"<literal>head/</literal>. For example:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1239
#, no-wrap
msgid ""
"<prompt>%</prompt> svn merge -c <replaceable>r123456</replaceable> ^/head/ stable/<replaceable>11</replaceable>\n"
"<prompt>%</prompt> svn commit stable/<replaceable>11</replaceable>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1242
msgid ""
"Merges to <literal>releng/</literal> branches should always originate from "
"the corresponding <literal>stable/</literal> branch. For example:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1246
#, no-wrap
msgid ""
"<prompt>%</prompt> svn merge -c <replaceable>r123456</replaceable> ^/stable/<replaceable>11</replaceable>  releng/<replaceable>11.0</replaceable>\n"
"<prompt>%</prompt> svn commit releng/<replaceable>11.0</replaceable>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:1250
msgid ""
"Committers are only permitted to commit to the <literal>releng/</literal> "
"branches during a release cycle after receiving approval from the Release "
"Engineering Team, after which only the Security Officer may commit to a "
"<literal>releng/</literal> branch for a Security Advisory or Errata Notice."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1258
msgid ""
"All merges are merged to and committed from the root of the branch. All "
"merges look like:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1262
#, no-wrap
msgid ""
"<prompt>%</prompt> svn merge -c <replaceable>r123456</replaceable> ^/head/ <replaceable>checkout</replaceable>\n"
"<prompt>%</prompt> svn commit <replaceable>checkout</replaceable>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1265
msgid ""
"Note that <replaceable>checkout</replaceable> must be a complete checkout of "
"the branch to which the merge occurs."
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1269
#, no-wrap
msgid "<prompt>%</prompt> svn merge -c <replaceable>r123456</replaceable> ^/stable/<replaceable>10</replaceable> releng/<replaceable>10.0</replaceable>"
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1273
msgid "Preparing the Merge Target"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1275
msgid ""
"Due to the mergeinfo propagation issues described earlier, it is very "
"important to never merge changes into a sparse working copy. Always use a "
"full checkout of the branch being merged into. For instance, when merging "
"from HEAD to 7, use a full checkout of stable/7:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1282
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd stable/7</userinput>\n"
"<prompt>%</prompt> <userinput>svn up --set-depth=infinity</userinput>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1285
msgid ""
"The target directory must also be up-to-date and must not contain any "
"uncommitted changes or stray files."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1290
msgid "Identifying Revisions"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1292
msgid ""
"Identifying revisions to be merged is a must. If the target already has "
"complete mergeinfo, ask <acronym>SVN</acronym> for a list:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1296
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd stable/6/contrib/openpam</userinput>\n"
"<prompt>%</prompt> <userinput>svn mergeinfo --show-revs=eligible $FSVN/head/contrib/openpam</userinput>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1299
msgid ""
"If the target does not have complete mergeinfo, check the log for the merge "
"source."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1304
msgid "Merging"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1306
msgid "Now, let us start merging!"
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1309
msgid "The Principles"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1311
msgid "For example, To merge:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1315
msgid "revision <literal>$R</literal>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1319
msgid "in directory $target in stable branch $B"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1324
msgid "from directory $source in head"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1328
msgid "$FSVN is <literal>svn+ssh://repo.freebsd.org/base</literal>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1333
msgid ""
"Assuming that revisions $P and $Q have already been merged, and that the "
"current directory is an up-to-date working copy of stable/$B, the existing "
"mergeinfo looks like this:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1338
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn propget svn:mergeinfo -R $target</userinput>\n"
"$target - /head/$source:$P,$Q"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1341
msgid "Merging is done like so:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1343
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn merge -c$R $FSVN/head/$source $target</userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1345
msgid ""
"Checking the results of this is possible with <command>svn diff</command>."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1348
msgid "The svn:mergeinfo now looks like:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1350
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn propget svn:mergeinfo -R $target</userinput>\n"
"$target - head/$source:$P,$Q,$R"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1353
msgid ""
"If the results are not exactly as shown, assistance may be required before "
"committing as mistakes may have been made, or there may be something wrong "
"with the existing mergeinfo, or there may be a bug in Subversion."
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1361
msgid "Practical Example"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1363
msgid ""
"As a practical example, consider this scenario. The changes to "
"<filename>netmap.4</filename> in r238987 are to be merged from CURRENT to 9-"
"STABLE. The file resides in <filename>head/share/man/man4</filename>. "
"According to <xref linkend=\"svn-advanced-use-merging\"/>, this is also "
"where to do the merge. Note that in this example all paths are relative to "
"the top of the svn repository. For more information on the directory layout, "
"see <xref linkend=\"svn-getting-started-base-layout\"/>."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1373
msgid "The first step is to inspect the existing mergeinfo."
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1376
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn propget svn:mergeinfo -R stable/9/share/man/man4</userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1378
msgid ""
"Take a quick note of how it looks before moving on to the next step; doing "
"the actual merge:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1381
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn merge -c r238987 svn+ssh://repo.freebsd.org/base/head/share/man/man4 stable/9/share/man/man4</userinput>\n"
"--- Merging r238987 into 'stable/9/share/man/man4':\n"
"U    stable/9/share/man/man4/netmap.4\n"
"--- Recording mergeinfo for merge of r238987 into\n"
"'stable/9/share/man/man4':\n"
" U   stable/9/share/man/man4"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1388
msgid ""
"Check that the revision number of the merged revision has been added. Once "
"this is verified, the only thing left is the actual commit."
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1392
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn commit stable/9/share/man/man4</userinput>"
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1397
msgid "Precautions Before Committing"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1399
msgid "As always, build world (or appropriate parts of it)."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1402
msgid ""
"Check the changes with <command>svn diff</command> and <command>svn stat</"
"command>. Make sure all the files that should have been added or deleted "
"were in fact added or deleted."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1407
msgid ""
"Take a closer look at any property change (marked by a <literal>M</literal> "
"in the second column of <command>svn stat</command>). Normally, no svn:"
"mergeinfo properties should be anywhere except the target directory (or "
"directories)."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1413
msgid "If something looks fishy, ask for help."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1417
msgid "Committing"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1419
msgid ""
"Make sure to commit a top level directory to have the mergeinfo included as "
"well. Do not specify individual files on the command line. For more "
"information about committing files in general, see the relevant section of "
"this primer."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1428
msgid "Vendor Imports with <acronym>SVN</acronym>"
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:1431
msgid "Please read this entire section before starting a vendor import."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:1436
msgid "Patches to vendor code fall into two categories:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1441
msgid ""
"Vendor patches: these are patches that have been issued by the vendor, or "
"that have been extracted from the vendor's version control system, which "
"address issues which cannot wait until the next vendor release."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1449
msgid ""
"FreeBSD patches: these are patches that modify the vendor code to address "
"FreeBSD-specific issues."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:1454
msgid "The nature of a patch dictates where it should be committed:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1459
msgid ""
"Vendor patches must be committed to the vendor branch, and merged from there "
"to head. If the patch addresses an issue in a new release that is currently "
"being imported, it <emphasis>must not</emphasis> be committed along with the "
"new release: the release must be imported and tagged first, then the patch "
"can be applied and committed. There is no need to re-tag the vendor sources "
"after committing the patch."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:1470
msgid "FreeBSD patches are committed directly to head."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1477
msgid "Preparing the Tree"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1479
msgid ""
"If importing for the first time after the switch to Subversion, flattening "
"and cleaning up the vendor tree is necessary, as well as bootstrapping the "
"merge history in the main tree."
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1485
msgid "Flattening"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1487
msgid ""
"During the conversion from <acronym>CVS</acronym> to Subversion, vendor "
"branches were imported with the same layout as the main tree. This means "
"that the <literal>pf</literal> vendor sources ended up in <filename>vendor/"
"pf/dist/contrib/pf</filename>. The vendor source is best directly in "
"<filename>vendor/pf/dist</filename>."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1495
msgid "To flatten the <literal>pf</literal> tree:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1497
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd <replaceable>vendor/pf/dist/contrib/pf</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn mv $(svn list) ../..</userinput>\n"
"<prompt>%</prompt> <userinput>cd ../..</userinput>\n"
"<prompt>%</prompt> <userinput>svn rm contrib</userinput>\n"
"<prompt>%</prompt> <userinput>svn propdel -R svn:mergeinfo .</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1504
msgid ""
"The <literal>propdel</literal> bit is necessary because starting with 1.5, "
"Subversion will automatically add <literal>svn:mergeinfo</literal> to any "
"directory that is copied or moved. In this case, as nothing is being merged "
"from the deleted tree, they just get in the way."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1511
msgid ""
"Tags may be flattened as well (3, 4, 3.5 etc.); the procedure is exactly the "
"same, only changing <literal>dist</literal> to <literal>3.5</literal> or "
"similar, and putting the <command>svn commit</command> off until the end of "
"the process."
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1519
msgid "Cleaning Up"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1521
msgid ""
"The <literal>dist</literal> tree can be cleaned up as necessary. Disabling "
"keyword expansion is recommended, as it makes no sense on unmodified vendor "
"code and in some cases it can even be harmful. <application>OpenSSH</"
"application>, for example, includes two files that originated with FreeBSD "
"and still contain the original version tags. To do this:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1529
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn propdel svn:keywords -R .</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1534
msgid "Bootstrapping Merge History"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1536
msgid ""
"If importing for the first time after the switch to Subversion, bootstrap "
"<literal>svn:mergeinfo</literal> on the target directory in the main tree to "
"the revision that corresponds to the last related change to the vendor tree, "
"prior to importing new sources:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1542
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd <replaceable>head/contrib/pf</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn merge --record-only svn+ssh://repo.freebsd.org/base/<replaceable>vendor/pf/dist@180876</replaceable> .</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1549
msgid "Importing New Sources"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1551
msgid ""
"With two commits—one for the import itself and one for the tag—this step can "
"optionally be repeated for every upstream release between the last import "
"and the current import."
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1557
msgid "Preparing the Vendor Sources"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1559
msgid ""
"Subversion is able to store a full distribution in the vendor tree. So, "
"import everything, but merge only what is required."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1563
msgid ""
"A <command>svn add</command> is required to add any files that were added "
"since the last vendor import, and <command>svn rm</command> is required to "
"remove any that were removed since. Preparing sorted lists of the contents "
"of the vendor tree and of the sources that are about to be imported is "
"recommended, to facilitate the process."
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1571
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd <replaceable>vendor/pf/dist</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn list -R | grep -v '/$' | sort &gt;../old</userinput>\n"
"<prompt>%</prompt> <userinput>cd <replaceable>../pf-4.3</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>find . -type f | cut -c 3- | sort &gt;../new</userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1576
msgid ""
"With these two files, <command>comm -23 ../old ../new</command> will list "
"removed files (files only in <filename>old</filename>), while <command>comm "
"-13 ../old ../new</command> will list added files only in <filename>new</"
"filename>."
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1585 article.translate.xml:1728
msgid "Importing into the Vendor Tree"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1587
msgid ""
"Now, the sources must be copied into <filename><replaceable>dist</"
"replaceable></filename> and the <command>svn add</command> and <command>svn "
"rm</command> commands are used as needed:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1593
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd <replaceable>vendor/pf/pf-4.3</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>tar cf - . | tar xf - -C ../dist</userinput>\n"
"<prompt>%</prompt> <userinput>cd <replaceable>../dist</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>comm -23 ../old ../new | xargs svn rm</userinput>\n"
"<prompt>%</prompt> <userinput>comm -13 ../old ../new | xargs svn add --parents</userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1599
msgid ""
"If any directories were removed, they will have to be <command>svn rm</"
"command>ed manually. Nothing will break if they are not, but they will "
"remain in the tree."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1604
msgid ""
"Check properties on any new files. All text files should have <literal>svn:"
"eol-style</literal> set to <literal>native</literal>. All binary files "
"should have <literal>svn:mime-type</literal> set to <literal>application/"
"octet-stream</literal> unless there is a more appropriate media type. "
"Executable files should have <literal>svn:executable</literal> set to "
"<literal>*</literal>. No other properties should exist on any file in the "
"tree."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1614
msgid ""
"Committing is now possible. However, it is good practice to make sure that "
"everything is okay by using the <command>svn stat</command> and <command>svn "
"diff</command> commands."
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1621
msgid "Tagging"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1623
msgid ""
"Once committed, vendor releases are tagged for future reference. The best "
"and quickest way to do this is directly in the repository:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1627
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn cp svn+ssh://repo.freebsd.org/base/<replaceable>vendor/pf/dist</replaceable> svn+ssh://repo.freebsd.org/base/<replaceable>vendor/pf/4.3</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1629
msgid ""
"Once that is complete, <command>svn up</command> the working copy of "
"<filename><replaceable>vendor/pf</replaceable></filename> to get the new "
"tag, although this is rarely needed."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1635
msgid ""
"If creating the tag in the working copy of the tree, <command>svn:mergeinfo</"
"command> results must be removed:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1639
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd\t<replaceable>vendor/pf</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn cp dist 4.3</userinput>\n"
"<prompt>%</prompt> <userinput>svn propdel svn:mergeinfo -R 4.3</userinput>"
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1646
msgid "Merging to Head"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1648
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd <replaceable>head/contrib/pf</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn up</userinput>\n"
"<prompt>%</prompt> <userinput>svn merge --accept=postpone svn+ssh://repo.freebsd.org/base/<replaceable>vendor/pf/dist</replaceable> .</userinput>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1652
msgid ""
"The <literal>--accept=postpone</literal> tells Subversion not to complain "
"about merge conflicts as they will be handled manually."
msgstr ""

#. (itstool) path: tip/para
#: article.translate.xml:1657
msgid ""
"The <command>cvs2svn</command> changeover occurred on June 3, 2008. When "
"performing vendor merges for packages which were already present and "
"converted by the <command>cvs2svn</command> process, the command used to "
"merge <filename>/vendor/<replaceable>package_name</replaceable>/dist</"
"filename> to <filename>/head/<replaceable>package_location</replaceable></"
"filename> (for example, <filename>head/contrib/sendmail</filename>) must use "
"<option>-c <replaceable>REV</replaceable></option> to indicate the revision "
"to merge from the <filename>/vendor</filename> tree. For example:"
msgstr ""

#. (itstool) path: tip/screen
#: article.translate.xml:1671
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn checkout svn+ssh://repo.freebsd.org/base/head/contrib/<replaceable>sendmail</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>cd sendmail</userinput>\n"
"<prompt>%</prompt> <userinput>svn merge -c r<replaceable>261190</replaceable> '^/vendor/<replaceable>sendmail/dist</replaceable>' .</userinput>"
msgstr ""

#. (itstool) path: tip/para
#: article.translate.xml:1675
msgid "<literal>^</literal> is an alias for the repository path."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:1680
msgid ""
"If using the <application>Zsh</application> shell, the <literal>^</literal> "
"must be escaped with <literal>\\</literal> or quoted."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1685
msgid "It is necessary to resolve any merge conflicts."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1687
msgid ""
"Make sure that any files that were added or removed in the vendor tree have "
"been properly added or removed in the main tree. To check diffs against the "
"vendor branch:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1692
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn diff --no-diff-deleted --old=svn+ssh://repo.freebsd.org/base/<replaceable>vendor/pf/dist</replaceable> --new=.</userinput>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1694
msgid ""
"The <literal>--no-diff-deleted</literal> tells Subversion not to complain "
"about files that are in the vendor tree but not in the main tree. Things "
"that would have previously been removed before the vendor import, like the "
"vendor's makefiles and configure scripts."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1701
msgid ""
"Using <acronym>CVS</acronym>, once a file was off the vendor branch, it was "
"not able to be put back. With Subversion, there is no concept of on or off "
"the vendor branch. If a file that previously had local modifications, to "
"make it not show up in diffs in the vendor tree, all that has to be done is "
"remove any left-over cruft like FreeBSD version tags, which is much easier."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1710
msgid ""
"If any changes are required for the world to build with the new sources, "
"make them now, and keep testing until everything builds and runs perfectly."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1716
msgid "Committing the Vendor Import"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1718
msgid ""
"Committing is now possible! Everything must be committed in one go. If done "
"properly, the tree will move from a consistent state with old code, to a "
"consistent state with new code."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1725
msgid "From Scratch"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1730
msgid ""
"This section is an example of importing and tagging <application>byacc</"
"application> into <filename>head</filename>."
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1734
msgid "First, prepare the directory in <filename>vendor</filename>:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1737
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn co --depth immediates <replaceable>$FSVN/vendor</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>cd <replaceable>vendor</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn mkdir <replaceable>byacc</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn mkdir <replaceable>byacc/dist</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1742
msgid ""
"Now, import the sources into the <filename>dist</filename> directory. Once "
"the files are in place, <command>svn add</command> the new ones, then "
"<command>svn commit</command> and tag the imported version. To save time and "
"bandwidth, direct remote committing and tagging is possible:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1749
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn cp -m <replaceable>\"Tag byacc 20120115\"</replaceable> <replaceable>$FSVN/vendor/byacc/dist</replaceable> <replaceable>$FSVN/vendor/byacc/20120115</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect5/title
#: article.translate.xml:1753
msgid "Merging to <literal>head</literal>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1755
msgid "Due to this being a new file, copy it for the merge:"
msgstr ""

#. (itstool) path: sect5/screen
#: article.translate.xml:1758
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn cp -m <replaceable>\"Import byacc to contrib\"</replaceable> <replaceable>$FSVN/vendor/byacc/dist</replaceable> <replaceable>$FSVN/head/contrib/byacc</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect5/para
#: article.translate.xml:1760
msgid "Working normally on newly imported sources is still possible."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1767
msgid "Reverting a Commit"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1769
msgid "Reverting a commit to a previous version is fairly easy:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1772
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn merge -r179454:179453 ROADMAP.txt</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1775
msgid ""
"Change number syntax, with negative meaning a reverse change, can also be "
"used:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1778
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn merge -c -179454 ROADMAP.txt</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1781
msgid "This can also be done directly in the repository:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1783
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn merge -r179454:179453 svn+ssh://repo.freebsd.org/base/ROADMAP.txt</userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:1786
msgid ""
"It is important to ensure that the mergeinfo is correct when reverting a "
"file to permit <command>svn mergeinfo --eligible</command> to work as "
"expected."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1792
msgid ""
"Reverting the deletion of a file is slightly different. Copying the version "
"of the file that predates the deletion is required. For example, to restore "
"a file that was deleted in revision N, restore version N-1:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1797
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn copy svn+ssh://repo.freebsd.org/base/ROADMAP.txt@179454</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1800
msgid "or, equally:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1802
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn copy svn+ssh://repo.freebsd.org/base/ROADMAP.txt@179454 svn+ssh://repo.freebsd.org/base</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1804
msgid ""
"Do <emphasis>not</emphasis> simply recreate the file manually and "
"<command>svn add</command> it—this will cause history to be lost."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1810
msgid "Fixing Mistakes"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1812
msgid ""
"While we can do surgery in an emergency, do not plan on having mistakes "
"fixed behind the scenes. Plan on mistakes remaining in the logs forever. Be "
"sure to check the output of <command>svn status</command> and <command>svn "
"diff</command> before committing."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1818
msgid ""
"Mistakes will happen but, they can generally be fixed without disruption."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1822
msgid ""
"Take a case of adding a file in the wrong location. The right thing to do is "
"to <command>svn move</command> the file to the correct location and commit. "
"This causes just a couple of lines of metadata in the repository journal, "
"and the logs are all linked up correctly."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1828
msgid ""
"The wrong thing to do is to delete the file and then <command>svn add</"
"command> an independent copy in the correct location. Instead of a couple of "
"lines of text, the repository journal grows an entire new copy of the file. "
"This is a waste."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1836
msgid "Using a Subversion Mirror"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1838
msgid ""
"There is a serious disadvantage to this method: every time something is to "
"be committed, a <command>svn relocate</command> to the main repository has "
"to be done, remembering to <command>svn relocate</command> back to the "
"mirror after the commit. Also, since <command>svn relocate</command> only "
"works between repositories that have the same UUID, some hacking of the "
"local repository's UUID has to occur before it is possible to start using it."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1849
msgid "Checkout from a Mirror"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1851
msgid ""
"Check out a working copy from a mirror by substituting the mirror's "
"<acronym>URL</acronym> for <literal>svn+ssh://repo.freebsd.org/base</"
"literal>. This can be an official mirror or a mirror maintained by using "
"<command>svnsync</command>."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:1859
msgid "Setting up a <application>svnsync</application> Mirror"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1862
msgid ""
"Avoid setting up a <application>svnsync</application> mirror unless there is "
"a very good reason for it. Most of the time a <command>git</command> mirror "
"is a better alternative. Starting a fresh mirror from scratch takes a long "
"time. Expect a minimum of 10 hours for high speed connectivity. If "
"international links are involved, expect this to take four to ten times "
"longer."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1871
msgid ""
"One way to limit the time required is to grab a <link xlink:href=\"https://"
"download.freebsd.org/ftp/development/subversion/\">seed file</link>. It is "
"large (~1GB) but will consume less network traffic and take less time to "
"fetch than svnsync will."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1876
msgid "Extract the file and update it:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1878
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>tar xf svnmirror-base-r261170.tar.xz</userinput>\n"
"<prompt>%</prompt> <userinput>svnsync sync file:///home/svnmirror/base</userinput>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1881
msgid ""
"Now, set that up to run from <citerefentry><refentrytitle>cron</"
"refentrytitle><manvolnum>8</manvolnum></citerefentry>, do checkouts locally, "
"set up a svnserve server for local machines to talk to, etc."
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1885
msgid ""
"The seed mirror is set to fetch from <literal>svn://svn.freebsd.org/base</"
"literal>. The configuration for the mirror is stored in <literal>revprop 0</"
"literal> on the local mirror. To see the configuration, try:"
msgstr ""

#. (itstool) path: sect4/screen
#: article.translate.xml:1891
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn proplist -v --revprop -r 0 file:///home/svnmirror/base</userinput>"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:1893
msgid "Use <literal>svn propset</literal> to change things."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1899
msgid "Committing High-<acronym>ASCII</acronym> Data"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1901
msgid ""
"Files that have high-<acronym>ASCII</acronym> bits are considered binary "
"files in <acronym>SVN</acronym>, so the pre-commit checks fail and indicate "
"that the <literal>mime-type</literal> property should be set to "
"<literal>application/octet-stream</literal>. However, the use of this is "
"discouraged, so please do not set it. The best way is always avoiding high-"
"<acronym>ASCII</acronym> data, so that it can be read everywhere with any "
"text editor but if it is not avoidable, instead of changing the mime-type, "
"set the <literal>fbsd:notbinary</literal> property with <literal>propset</"
"literal>:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1913
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn propset fbsd:notbinary yes foo.data</userinput>"
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:1917
msgid "Maintaining a Project Branch"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1919
msgid ""
"A project branch is one that is synced to head (or another branch) is used "
"to develop a project then commit it back to head. In <acronym>SVN</acronym>, "
"<quote>dolphin</quote> branching is used for this. A <quote>dolphin</quote> "
"branch is one that diverges for a while and is finally committed back to the "
"original branch. During development code migration in one direction (from "
"head to the branch only). No code is committed back to head until the end. "
"After the branch is committed back at the end, it is dead (although a new "
"branch with the same name can be created after the dead one is deleted)."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1931
msgid ""
"As per <link xlink:href=\"https://people.FreeBSD.org/~peter/svn_notes.txt"
"\">https://people.FreeBSD.org/~peter/svn_notes.txt</link>, work that is "
"intended to be merged back into HEAD should be in <filename>base/projects/</"
"filename>. If the work is beneficial to the FreeBSD community in some way "
"but not intended to be merged directly back into HEAD then the proper "
"location is <filename>base/user/<replaceable>username</replaceable>/</"
"filename>. <link xlink:href=\"https://svnweb.freebsd.org/base/projects/"
"GUIDELINES.txt\">This page</link> contains further details."
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1941
msgid "To create a project branch:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1943
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn copy svn+ssh://repo.freebsd.org/base/head svn+ssh://repo.freebsd.org/base/projects/spif</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1945
msgid "To merge changes from HEAD back into the project branch:"
msgstr ""

#. (itstool) path: sect3/screen
#: article.translate.xml:1948
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd copy_of_spif</userinput>\n"
"<prompt>%</prompt> <userinput>svn merge svn+ssh://repo.freebsd.org/base/head</userinput>\n"
"<prompt>%</prompt> <userinput>svn commit</userinput>"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:1952
msgid "It is important to resolve any merge conflicts before committing."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:1964
msgid "Some Tips"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:1966
msgid ""
"In commit logs etc., <quote>rev 179872</quote> is spelled <quote>r179872</"
"quote> as per convention."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:1969
msgid ""
"Speeding up svn is possible by adding these entries to <filename>~/.ssh/"
"config</filename>:"
msgstr ""

#. (itstool) path: sect2/screen
#: article.translate.xml:1972
#, no-wrap
msgid ""
"Host *\n"
"ControlPath ~/.ssh/sockets/master-%l-%r@%h:%p\n"
"ControlMaster auto\n"
"ControlPersist yes"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:1977
msgid "and then typing"
msgstr ""

#. (itstool) path: sect2/screen
#: article.translate.xml:1979
#, no-wrap
msgid "<userinput>mkdir ~/.ssh/sockets</userinput>"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:1981
msgid ""
"Checking out a working copy with a stock Subversion client without FreeBSD-"
"specific patches (<varname>OPTIONS_SET=FREEBSD_TEMPLATE</varname>) will mean "
"that <literal>$FreeBSD$</literal> tags will not be expanded. Once the "
"correct version has been installed, trick Subversion into expanding them "
"like so:"
msgstr ""

#. (itstool) path: sect2/screen
#: article.translate.xml:1988
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>svn propdel -R svn:keywords .</userinput>\n"
"<prompt>%</prompt> <userinput>svn revert -R .</userinput>"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:1991
msgid "This will wipe out uncommitted patches."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:1993
msgid ""
"It is possible to automatically fill the \"Sponsored by\" and \"MFC after\" "
"commit log fields by setting \"freebsd-sponsored-by\" and \"freebsd-mfc-after"
"\" fields in the \"[miscellany]\" section of the <filename>~/.subversion/"
"config</filename> configuration file. For example:"
msgstr ""

#. (itstool) path: sect2/programlisting
#: article.translate.xml:2000
#, no-wrap
msgid ""
"freebsd-sponsored-by = The FreeBSD Foundation\n"
"freebsd-mfc-after = 2 weeks"
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:2006
msgid "Setup, Conventions, and Traditions"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2008
msgid ""
"There are a number of things to do as a new developer. The first set of "
"steps is specific to committers only. These steps must be done by a mentor "
"for those who are not committers."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:2014
msgid "For New Committers"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:2016
msgid ""
"Those who have been given commit rights to the FreeBSD repositories must "
"follow these steps."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2021
msgid "Get mentor approval before committing each of these changes!"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2026
msgid ""
"The <filename>.ent</filename> and <filename>.xml</filename> files mentioned "
"below exist in the FreeBSD Documentation Project SVN repository at "
"<literal>svn+ssh://repo.FreeBSD.org/doc/</literal>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2033
msgid ""
"New files that do not have the <literal>FreeBSD=%H</literal> <command>svn:"
"keywords</command> property will be rejected when attempting to commit them "
"to the repository. Be sure to read <xref linkend=\"svn-daily-use-adding-and-"
"removing\"/> regarding adding and removing files. Verify that <filename>~/."
"subversion/config</filename> contains the necessary <quote>auto-props</"
"quote> entries from <filename>auto-props.txt</filename> mentioned there."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2047
msgid ""
"All <filename>src</filename> commits go to FreeBSD-CURRENT first before "
"being merged to FreeBSD-STABLE. The FreeBSD-STABLE branch must maintain "
"<acronym>ABI</acronym> and <acronym>API</acronym> compatibility with earlier "
"versions of that branch. Do not merge changes that break this compatibility."
msgstr ""

#. (itstool) path: procedure/title
#: article.translate.xml:2057
msgid "Steps for New Committers"
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2060
msgid "Add an Author Entity"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2062
msgid ""
"<filename>doc/head/share/xml/authors.ent</filename> — Add an author entity. "
"Later steps depend on this entity, and missing this step will cause the "
"<filename>doc/</filename> build to fail. This is a relatively easy task, but "
"remains a good first test of version control skills."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2071
msgid "Update the List of Developers and Contributors"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2074
msgid ""
"<filename>doc/head/en_US.ISO8859-1/articles/contributors/contrib.committers."
"xml</filename> — Add an entry to the <quote>Developers</quote> section of "
"the <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/"
"contributors/staff-committers.html\">Contributors List</link>. Entries are "
"sorted by last name."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2080
msgid ""
"<filename>doc/head/en_US.ISO8859-1/articles/contributors/contrib.additional."
"xml</filename> — <emphasis>Remove</emphasis> the entry from the "
"<quote>Additional Contributors</quote> section. Entries are sorted by first "
"name."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2087
msgid "Add a News Item"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2089
msgid ""
"<filename>doc/head/share/xml/news.xml</filename> — Add an entry. Look for "
"the other entries that announce new committers and follow the format. Use "
"the date from the commit bit approval email from <email>core@FreeBSD.org</"
"email>."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2097
msgid "Add a <acronym>PGP</acronym> Key"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2099
msgid ""
"<filename>doc/head/share/pgpkeys/pgpkeys.ent</filename> and <filename>doc/"
"head/share/pgpkeys/pgpkeys-developers.xml</filename> - Add your "
"<acronym>PGP</acronym> or Gnu<acronym>PG</acronym> key. Those who do not yet "
"have a key should see <xref linkend=\"pgpkeys-creating\"/>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2106
msgid ""
"Dag-Erling Smørgrav <email>des@FreeBSD.org</email> has written a shell "
"script (<filename>doc/head/share/pgpkeys/addkey.sh</filename>) to make this "
"easier. See the <link xlink:href=\"http://svnweb.FreeBSD.org/doc/head/share/"
"pgpkeys/README\">README</link> file for more information."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2111
msgid ""
"Use <filename>doc/head/share/pgpkeys/checkkey.sh</filename> to verify that "
"keys meet minimal best-practices standards."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2116
msgid ""
"After adding and checking a key, add both updated files to source control "
"and then commit them. Entries in this file are sorted by last name."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:2121
msgid ""
"It is very important to have a current <acronym>PGP</acronym>/"
"Gnu<acronym>PG</acronym> key in the repository. The key may be required for "
"positive identification of a committer. For example, the FreeBSD "
"Administrators <email>admins@FreeBSD.org</email> might need it for account "
"recovery. A complete keyring of <systemitem class=\"fqdomainname\">FreeBSD."
"org</systemitem> users is available for download from <link xlink:href="
"\"@@URL_RELPREFIX@@/doc/pgpkeyring.txt\">https://www.FreeBSD.org/doc/"
"pgpkeyring.txt</link>."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2132
msgid "Update Mentor and Mentee Information"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2134
msgid ""
"<filename>base/head/share/misc/committers-<replaceable>repository</"
"replaceable>.dot</filename> — Add an entry to the current committers "
"section, where <replaceable>repository</replaceable> is <literal>doc</"
"literal>, <literal>ports</literal>, or <literal>src</literal>, depending on "
"the commit privileges granted."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2141
msgid ""
"Add an entry for each additional mentor/mentee relationship in the bottom "
"section."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2146
msgid "Generate a <application>Kerberos</application> Password"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2149
msgid ""
"See <xref linkend=\"kerberos-ldap\"/> to generate or set a "
"<application>Kerberos</application> for use with other FreeBSD services like "
"the bug tracking database."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2155
msgid "Optional: Enable Wiki Account"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2157
msgid ""
"<link xlink:href=\"https://wiki.freebsd.org\">FreeBSD Wiki</link> Account — "
"A wiki account allows sharing projects and ideas. Those who do not yet have "
"an account can follow instructions on the <link xlink:href=\"https://wiki."
"freebsd.org/AboutWiki\">AboutWiki Page</link> to obtain one. Contact "
"<email>wiki-admin@FreeBSD.org</email> if you need help with your Wiki "
"account."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2167
msgid "Optional: Update Wiki Information"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2169
msgid ""
"Wiki Information - After gaining access to the wiki, some people add entries "
"to the <link xlink:href=\"https://wiki.freebsd.org/HowWeGotHere\">How We Got "
"Here</link>, <link xlink:href=\"https://wiki.freebsd.org/IRC/Nicknames\">IRC "
"Nicks</link>, and <link xlink:href=\"https://wiki.freebsd.org/Community/Dogs"
"\"> Dogs of FreeBSD</link> pages."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2177
msgid "Optional: Update Ports with Personal Information"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2180
msgid ""
"<filename>ports/astro/xearth/files/freebsd.committers.markers</filename> and "
"<filename>src/usr.bin/calendar/calendars/calendar.freebsd</filename> - Some "
"people add entries for themselves to these files to show where they are "
"located or the date of their birthday."
msgstr ""

#. (itstool) path: step/title
#: article.translate.xml:2189
msgid "Optional: Prevent Duplicate Mailings"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2191
msgid ""
"Subscribers to <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/"
"svn-src-all\">svn-src-all</link>, <link xlink:href=\"http://lists.FreeBSD."
"org/mailman/listinfo/svn-ports-all\">svn-ports-all</link> or <link xlink:"
"href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-doc-all\">svn-doc-all</"
"link> might wish to unsubscribe to avoid receiving duplicate copies of "
"commit messages and followups."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:2200
msgid "For Everyone"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2204
msgid ""
"Introduce yourself to the other developers, otherwise no one will have any "
"idea who you are or what you are working on. The introduction need not be a "
"comprehensive biography, just write a paragraph or two about who you are, "
"what you plan to be working on as a developer in FreeBSD, and who will be "
"your mentor. Email this to the FreeBSD developers mailing list and you will "
"be on your way!"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2214
msgid ""
"Log into <systemitem>freefall.FreeBSD.org</systemitem> and create a "
"<filename>/var/forward/<replaceable>user</replaceable></filename> (where "
"<replaceable>user</replaceable> is your username) file containing the e-mail "
"address where you want mail addressed to <replaceable>yourusername</"
"replaceable>@FreeBSD.org to be forwarded. This includes all of the commit "
"messages as well as any other mail addressed to the FreeBSD committer's "
"mailing list and the FreeBSD developers mailing list. Really large mailboxes "
"which have taken up permanent residence on <systemitem>freefall</systemitem> "
"may get truncated without warning if space needs to be freed, so forward it "
"or save it elsewhere."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:2230
msgid ""
"If your e-mail system uses SPF with strict rules, you should whitelist "
"<systemitem class=\"fqdomainname\">mx2.FreeBSD.org</systemitem> from SPF "
"checks."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2235
msgid ""
"Due to the severe load dealing with SPAM places on the central mail servers "
"that do the mailing list processing, the front-end server does do some basic "
"checks and will drop some messages based on these checks. At the moment "
"proper DNS information for the connecting host is the only check in place "
"but that may change. Some people blame these checks for bouncing valid "
"email. To have these checks turned off for your email, create a file named "
"<filename>~/.spam_lover</filename> on <systemitem class=\"fqdomainname"
"\">freefall.FreeBSD.org</systemitem>."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:2249
msgid ""
"Those who are developers but not committers will not be subscribed to the "
"committers or developers mailing lists. The subscriptions are derived from "
"the access rights."
msgstr ""

#. (itstool) path: sect3/title
#: article.translate.xml:2256
msgid "SMTP Access Setup"
msgstr ""

#. (itstool) path: sect3/para
#: article.translate.xml:2258
msgid ""
"For those willing to send e-mail messages through the FreeBSD.org "
"infrastructure, follow the instructions below:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2264
msgid ""
"Point your mail client at <literal><systemitem class=\"fqdomainname\">smtp."
"FreeBSD.org</systemitem>:587</literal>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2268
msgid "Enable STARTTLS."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2272
msgid ""
"Ensure your <literal>From:</literal> address is set to "
"<literal><replaceable>yourusername</replaceable>@FreeBSD.org</literal>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:2278
msgid ""
"For authentication, you can use your FreeBSD Kerberos username and password "
"(see <xref linkend=\"kerberos-ldap\"/>). The "
"<literal><replaceable>yourusername</replaceable>/mail</literal> principal is "
"preferred, as it is only valid for authenticating to mail resources."
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:2285
msgid ""
"Do not include <literal>@FreeBSD.org</literal> when entering in your "
"username."
msgstr ""

#. (itstool) path: note/title
#: article.translate.xml:2292
msgid "Additional Notes"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2296
msgid ""
"Will only accept mail from <literal><replaceable>yourusername</"
"replaceable>@FreeBSD.org</literal>. If you are authenticated as one user, "
"you are not permitted to send mail from another."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2303
msgid ""
"A header will be appended with the SASL username: (<literal>Authenticated "
"sender: <replaceable>username</replaceable></literal>)."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2308
msgid ""
"Host has various rate limits in place to cut down on brute force attempts."
msgstr ""

#. (itstool) path: sect4/title
#: article.translate.xml:2315
msgid "Using a Local MTA to Forward Emails to the FreeBSD.org SMTP Service"
msgstr ""

#. (itstool) path: sect4/para
#: article.translate.xml:2318
msgid ""
"It is also possible to use a local <acronym>MTA</acronym> to forward locally "
"sent emails to the FreeBSD.org SMTP servers."
msgstr ""

#. (itstool) path: example/title
#: article.translate.xml:2323
msgid "Using <application>Postfix</application>"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2325
msgid ""
"To tell a local Postfix instance that anything from "
"<literal><replaceable>yourusername</replaceable>@FreeBSD.org</literal> "
"should be forwarded to the FreeBSD.org servers, add this to your "
"<filename>main.cf</filename>:"
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2330
#, no-wrap
msgid ""
"sender_dependent_relayhost_maps = hash:/usr/local/etc/postfix/relayhost_maps\n"
"smtp_sasl_auth_enable = yes\n"
"smtp_sasl_security_options = noanonymous\n"
"smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd\n"
"smtp_use_tls = yes"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2336
msgid ""
"Create <filename>/usr/local/etc/postfix/relayhost_maps</filename> with the "
"following content:"
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2340
#, no-wrap
msgid "<replaceable>yourusername</replaceable>@FreeBSD.org  [smtp.freebsd.org]:587"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2342
msgid ""
"Create <filename>/usr/local/etc/postfix/sasl_passwd</filename> with the "
"following content:"
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2346
#, no-wrap
msgid "[smtp.freebsd.org]:587          <replaceable>yourusername</replaceable>:<replaceable>yourpassword</replaceable>"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2348
msgid ""
"If the email server is used by other people, you may want to prevent them "
"from sending e-mails from your address. To achieve this, add this to your "
"<filename>main.cf</filename>:"
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2353
#, no-wrap
msgid ""
"smtpd_sender_login_maps = hash:/usr/local/etc/postfix/sender_login_maps\n"
"smtpd_sender_restrictions = reject_known_sender_login_mismatch"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2356
msgid ""
"Create <filename>/usr/local/etc/postfix/sender_login_maps</filename> with "
"the following content:"
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2360
#, no-wrap
msgid "<replaceable>yourusername</replaceable>@FreeBSD.org <replaceable>yourlocalusername</replaceable>"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2362
msgid ""
"Where <replaceable>yourlocalusername</replaceable> is the <acronym>SASL</"
"acronym> username used to connect to the local instance of "
"<application>Postfix</application>."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:2372
msgid "Mentors"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:2374
msgid ""
"All new developers have a mentor assigned to them for the first few months. "
"A mentor is responsible for teaching the mentee the rules and conventions of "
"the project and guiding their first steps in the developer community. The "
"mentor is also personally responsible for the mentee's actions during this "
"initial period."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:2381
msgid ""
"For committers: do not commit anything without first getting mentor "
"approval. Document that approval with an <literal>Approved by:</literal> "
"line in the commit message."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:2386
msgid ""
"When the mentor decides that a mentee has learned the ropes and is ready to "
"commit on their own, the mentor announces it with a commit to <filename>conf/"
"mentors</filename>. This file is in the <filename>svnadmin</filename> branch "
"of each repository:"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2397
msgid "<literal>src</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2398
msgid "<filename>base/svnadmin/conf/mentors</filename>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2402
msgid "<literal>doc</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2403
msgid "<filename>doc/svnadmin/conf/mentors</filename>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2407
msgid "<literal>ports</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2408
msgid "<filename>ports/svnadmin/conf/mentors</filename>"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:2414
msgid ""
"New committers should aim to complete enough commits that their mentor is "
"comfortable releasing them from mentorship within the first year. If they "
"are still under mentorship, the appropriate management body (core, doceng, "
"or portmgr) should attempt to ensure that there are no barriers preventing "
"completion. If the committer is unable to satisfy their mentor of readiness "
"by a year and a half their commit bit may be converted to project membership."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:2426
msgid "Pre-Commit Review"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2428
msgid ""
"Code review is one way to increase the quality of software. The following "
"guidelines apply to commits to the <literal>head</literal> (-CURRENT) branch "
"of the <literal>src</literal> repository. Other branches and the "
"<literal>ports</literal> and <literal>docs</literal> trees have their own "
"review policies, but these guidelines generally apply to commits requiring "
"review:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2437
msgid ""
"All non-trivial changes should be reviewed before they are committed to the "
"repository."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2442
msgid ""
"Reviews may be conducted by email, in <application>Bugzilla</application>, "
"in <application>Phabricator</application>, or by another mechanism. Where "
"possible, reviews should be public."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2449
msgid ""
"The developer responsible for a code change is also responsible for making "
"all necessary review-related changes."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2455
msgid ""
"Code review can be an iterative process, which continues until the patch is "
"ready to be committed. Specifically, once a patch is sent out for review, it "
"should receive an explicit <quote>looks good</quote> before it is committed. "
"So long as it is explicit, this can take whatever form makes sense for the "
"review method."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2464
msgid "Timeouts are not a substitute for review."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2468
msgid ""
"Sometimes code reviews will take longer than you would hope for, especially "
"for larger features. Accepted ways to speed up review times for your patches "
"are:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2474
msgid ""
"Review other people's patches. If you help out, everybody will be more "
"willing to do the same for you; goodwill is our currency."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2480
msgid ""
"Ping the patch. If it is urgent, provide reasons why it is important to you "
"to get this patch landed and ping it every couple of days. If it is not "
"urgent, the common courtesy ping rate is one week. Remember that you are "
"asking for valuable time from other professional developers."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2489
msgid ""
"Ask for help on mailing lists, IRC, etc. Others may be able to either help "
"you directly, or suggest a reviewer."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2495
msgid ""
"Split your patch into multiple smaller patches that build on each other. The "
"smaller your patch, the higher the probability that somebody will take a "
"quick look at it."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2500
msgid ""
"When making large changes, it is helpful to keep this in mind from the "
"beginning of the effort as breaking large changes into smaller ones is often "
"difficult after the fact."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2507
msgid ""
"Developers should participate in code reviews as both reviewers and "
"reviewees. If someone is kind enough to review your code, you should return "
"the favor for someone else. Note that while anyone is welcome to review and "
"give feedback on a patch, only an appropriate subject-matter expert can "
"approve a change. This will usually be a committer who works with the code "
"in question on a regular basis."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2515
msgid ""
"In some cases, no subject-matter expert may be available. In those cases, a "
"review by an experienced developer is sufficient when coupled with "
"appropriate testing."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:2521
msgid "Commit Log Messages"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2523
msgid ""
"This section contains some suggestions and traditions for how commit logs "
"are formatted."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2526
msgid ""
"As well as including an informative message with each commit, some "
"additional information may be needed."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2529
msgid ""
"This information consists of one or more lines containing the key word or "
"phrase, a colon, tabs for formatting, and then the additional information."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2533
msgid "The key words or phrases are:"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2539
msgid "<literal>PR:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2540
msgid ""
"The problem report (if any) which is affected (typically, by being closed) "
"by this commit. Multiple PRs may be specified on one line, separated by "
"commas or spaces."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2547
msgid "<literal>Submitted by:</literal>"
msgstr ""

#. (itstool) path: entry/para
#: article.translate.xml:2549
msgid ""
"The name and e-mail address of the person that submitted the fix; for "
"developers, just the username on the FreeBSD cluster."
msgstr ""

#. (itstool) path: entry/para
#: article.translate.xml:2553
msgid ""
"If the submitter is the maintainer of the port being committed, include "
"\"(maintainer)\" after the email address."
msgstr ""

#. (itstool) path: entry/para
#: article.translate.xml:2557
msgid ""
"Avoid obfuscating the email address of the submitter as this adds additional "
"work when searching logs."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2564
msgid "<literal>Reviewed by:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2565
msgid ""
"The name and e-mail address of the person or people that reviewed the "
"change; for developers, just the username on the FreeBSD cluster. If a patch "
"was submitted to a mailing list for review, and the review was favorable, "
"then just include the list name."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2574
msgid "<literal>Approved by:</literal>"
msgstr ""

#. (itstool) path: entry/para
#: article.translate.xml:2575
msgid ""
"The name and e-mail address of the person or people that approved the "
"change; for developers, just the username on the FreeBSD cluster. It is "
"customary to get prior approval for a commit if it is to an area of the tree "
"to which you do not usually commit. In addition, during the run up to a new "
"release all commits <emphasis>must</emphasis> be approved by the release "
"engineering team."
msgstr ""

#. (itstool) path: entry/para
#: article.translate.xml:2584
msgid ""
"While under mentorship, get mentor approval before the commit. Enter the "
"mentor's username in this field, and note that they are a mentor:"
msgstr ""

#. (itstool) path: entry/screen
#: article.translate.xml:2588
#, no-wrap
msgid "Approved by: <userinput><replaceable>username-of-mentor</replaceable> <literal>(mentor)</literal></userinput>"
msgstr ""

#. (itstool) path: entry/para
#: article.translate.xml:2590
msgid ""
"If a team approved these commits then include the team name followed by the "
"username of the approver in parentheses. For example:"
msgstr ""

#. (itstool) path: entry/screen
#: article.translate.xml:2594
#, no-wrap
msgid "Approved by: <userinput><literal>re</literal> (<replaceable>username</replaceable>)</userinput>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2598
msgid "<literal>Obtained from:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2599
msgid ""
"The name of the project (if any) from which the code was obtained. Do not "
"use this line for the name of an individual person."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2605
msgid "<literal>Sponsored by:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2606
msgid ""
"Sponsoring organizations for this change, if any. Separate multiple "
"organizations with commas. If only a portion of the work was sponsored, or "
"different amounts of sponsorship were provided to different authors, please "
"give appropriate credit in parentheses after each sponsor name. For example, "
"<literal>Example.com (alice, code refactoring), Wormulon (bob), Momcorp "
"(cindy)</literal> shows that Alice was sponsored by Example.com to do code "
"refactoring, while Wormulon sponsored Bob's work and Momcorp sponsored "
"Cindy's work. Other authors were either not sponsored or chose not to list "
"sponsorship."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2621
msgid "<literal>MFC after:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2622
msgid ""
"To receive an e-mail reminder to <acronym>MFC</acronym> at a later date, "
"specify the number of days, weeks, or months after which an <acronym>MFC</"
"acronym> is planned."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2629
msgid "<literal>MFC to:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2630
msgid ""
"If the commit should be merged to a subset of stable branches, specify the "
"branch names."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2635
msgid "<literal>MFC with:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2636
msgid ""
"If the commit should be merged together with a previous one in a single "
"<acronym>MFC</acronym> commit (for example, where this commit corrects a bug "
"in the previous change), specify the corresponding revision number."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2644
msgid "<literal>Relnotes:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2645
msgid ""
"If the change is a candidate for inclusion in the release notes for the next "
"release from the branch, set to <literal>yes</literal>."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2651
msgid "<literal>Security:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2652
msgid ""
"If the change is related to a security vulnerability or security exposure, "
"include one or more references or a description of the issue. If possible, "
"include a VuXML URL or a CVE ID."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2659
msgid "<literal>Event:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2660
msgid ""
"The description for the event where this commit was made. If this is a "
"recurring event, add the year or even the month to it. For example, this "
"could be <literal>FooBSDcon 2019</literal>. The idea behind this line is to "
"put recognition to conferences, gatherings, and other types of meetups and "
"to show that these are useful to have. Please do not use the "
"<literal>Sponsored by:</literal> line for this as that is meant for "
"organizations sponsoring certain features or developers working on them."
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2673
msgid "<literal>Differential Revision:</literal>"
msgstr ""

#. (itstool) path: row/entry
#: article.translate.xml:2674
msgid ""
"The full URL of the Phabricator review. This line <emphasis>must be the last "
"line</emphasis>. For example: <literal>https://reviews.freebsd.org/D1708</"
"literal>."
msgstr ""

#. (itstool) path: example/title
#: article.translate.xml:2684
msgid "Commit Log for a Commit Based on a PR"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2686
msgid ""
"The commit is based on a patch from a PR submitted by John Smith. The commit "
"message <quote>PR</quote> and <quote>Submitted by</quote> fields are filled.."
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2690
#, no-wrap
msgid ""
"...\n"
"\n"
"\t    PR:                    12345\n"
"\t    Submitted by:\t   John Smith &lt;John.Smith@example.com&gt;"
msgstr ""

#. (itstool) path: example/title
#: article.translate.xml:2697
msgid "Commit Log for a Commit Needing Review"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2699
msgid ""
"The virtual memory system is being changed. After posting patches to the "
"appropriate mailing list (in this case, <literal>freebsd-arch</literal>) and "
"the changes have been approved."
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2704
#, no-wrap
msgid ""
"...\n"
"\n"
"\t    Reviewed by:       -arch"
msgstr ""

#. (itstool) path: example/title
#: article.translate.xml:2710
msgid "Commit Log for a Commit Needing Approval"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2712
msgid ""
"Commit a port, after working with the listed MAINTAINER, who said to go "
"ahead and commit."
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2716
#, no-wrap
msgid ""
"...\n"
"\n"
"\t    Approved by:\t    <replaceable>abc</replaceable> (maintainer)"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2720
msgid ""
"Where <replaceable>abc</replaceable> is the account name of the person who "
"approved."
msgstr ""

#. (itstool) path: example/title
#: article.translate.xml:2725
msgid "Commit Log for a Commit Bringing in Code from OpenBSD"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2728
msgid "Committing some code based on work done in the OpenBSD project."
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2731
#, no-wrap
msgid ""
"...\n"
"\n"
"\t    Obtained from:      OpenBSD"
msgstr ""

#. (itstool) path: example/title
#: article.translate.xml:2737
msgid ""
"Commit Log for a Change to FreeBSD-CURRENT with a Planned Commit to FreeBSD-"
"STABLE to Follow at a Later Date."
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2740
msgid ""
"Committing some code which will be merged from FreeBSD-CURRENT into the "
"FreeBSD-STABLE branch after two weeks."
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2744
#, no-wrap
msgid ""
"...\n"
"\n"
"MFC after:      <replaceable>2 weeks</replaceable>"
msgstr ""

#. (itstool) path: example/para
#: article.translate.xml:2748
msgid ""
"Where <replaceable>2</replaceable> is the number of days, weeks, or months "
"after which an <acronym>MFC</acronym> is planned. The <replaceable>weeks</"
"replaceable> option may be <literal>day</literal>, <literal>days</literal>, "
"<literal>week</literal>, <literal>weeks</literal>, <literal>month</literal>, "
"<literal>months</literal>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2756
msgid "It is often necessary to combine these."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2758
msgid ""
"Consider the situation where a user has submitted a PR containing code from "
"the NetBSD project. Looking at the PR, the developer sees it is not an area "
"of the tree they normally work in, so they have the change reviewed by the "
"<literal>arch</literal> mailing list. Since the change is complex, the "
"developer opts to <acronym>MFC</acronym> after one month to allow adequate "
"testing."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2766
msgid ""
"The extra information to include in the commit would look something like"
msgstr ""

#. (itstool) path: example/title
#: article.translate.xml:2770
msgid "Example Combined Commit Log"
msgstr ""

#. (itstool) path: example/programlisting
#: article.translate.xml:2772
#, no-wrap
msgid ""
"PR:                 54321\n"
"Submitted by:       John Smith &lt;John.Smith@example.com&gt;\n"
"Reviewed by:        -arch\n"
"Obtained from:      NetBSD\n"
"MFC after:          1 month\n"
"Relnotes:           yes"
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:2782
msgid "Preferred License for New Files"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2784
msgid ""
"The FreeBSD Project's full license policy can be found at <link xlink:href="
"\"@@URL_RELPREFIX@@/internal/software-license.html\">https://www.FreeBSD.org/"
"internal/software-license.html</link>. The rest of this section is intended "
"to help you get started. As a rule, when in doubt, ask. It is much easier to "
"give advice than to fix the source tree."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2789
msgid ""
"The FreeBSD Project suggests and uses this text as the preferred license "
"scheme:"
msgstr ""

#. (itstool) path: sect1/programlisting
#: article.translate.xml:2792
#, no-wrap
msgid ""
"/*-\n"
" * SPDX-License-Identifier: BSD-2-Clause-FreeBSD\n"
" *\n"
" * Copyright (c) [year] [your name]\n"
" *\n"
" * Redistribution and use in source and binary forms, with or without\n"
" * modification, are permitted provided that the following conditions\n"
" * are met:\n"
" * 1. Redistributions of source code must retain the above copyright\n"
" *    notice, this list of conditions and the following disclaimer.\n"
" * 2. Redistributions in binary form must reproduce the above copyright\n"
" *    notice, this list of conditions and the following disclaimer in the\n"
" *    documentation and/or other materials provided with the distribution.\n"
" *\n"
" * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n"
" * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n"
" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n"
" * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n"
" * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n"
" * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n"
" * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n"
" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n"
" * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n"
" * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n"
" * SUCH DAMAGE.\n"
" *\n"
" * [id for your version control system, if any]\n"
" */"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2821
msgid ""
"The FreeBSD project strongly discourages the so-called \"advertising clause"
"\" in new code. Due to the large number of contributors to the FreeBSD "
"project, complying with this clause for many commercial vendors has become "
"difficult. If you have code in the tree with the advertising clause, please "
"consider removing it. In fact, please consider using the above license for "
"your code."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2829
msgid ""
"The FreeBSD project discourages completely new licenses and variations on "
"the standard licenses. New licenses require the approval of the Core Team "
"<email>core@FreeBSD.org</email> to reside in the main repository. The more "
"different licenses that are used in the tree, the more problems that this "
"causes to those wishing to utilize this code, typically from unintended "
"consequences from a poorly worded license."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2837
msgid ""
"Project policy dictates that code under some non-BSD licenses must be placed "
"only in specific sections of the repository, and in some cases, compilation "
"must be conditional or even disabled by default. For example, the GENERIC "
"kernel must be compiled under only licenses identical to or substantially "
"similar to the BSD license. GPL, APSL, CDDL, etc, licensed software must not "
"be compiled into GENERIC."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2845
msgid ""
"Developers are reminded that in open source, getting \"open\" right is just "
"as important as getting \"source\" right, as improper handling of "
"intellectual property has serious consequences. Any questions or concerns "
"should immediately be brought to the attention of the core team."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:2853
msgid "Keeping Track of Licenses Granted to the FreeBSD Project"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2856
msgid ""
"Various software or data exist in the repositories where the FreeBSD project "
"has been granted a special licence to be able to use them. A case in point "
"are the Terminus fonts for use with <citerefentry><refentrytitle>vt</"
"refentrytitle><manvolnum>4</manvolnum></citerefentry>. Here the author "
"Dimitar Zhekov has allowed us to use the \"Terminus BSD Console\" font under "
"a 2-clause BSD license rather than the regular Open Font License he normally "
"uses."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2864
msgid ""
"It is clearly sensible to keep a record of any such license grants. To that "
"end, the Core Team <email>core@FreeBSD.org</email> has decided to keep an "
"archive of them. Whenever the FreeBSD project is granted a special license "
"we require the Core Team <email>core@FreeBSD.org</email> to be notified. Any "
"developers involved in arranging such a license grant, please send details "
"to the Core Team <email>core@FreeBSD.org</email> including:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2873
msgid ""
"Contact details for people or organizations granting the special license."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2878
msgid ""
"What files, directories etc. in the repositories are covered by the license "
"grant including the revision numbers where any specially licensed material "
"was committed."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2884
msgid ""
"The date the license comes into effect from. Unless otherwise agreed, this "
"will be the date the license was issued by the authors of the software in "
"question."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2890
msgid "The license text."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2894
msgid ""
"A note of any restrictions, limitations or exceptions that apply "
"specifically to FreeBSD's usage of the licensed material."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:2900
msgid "Any other relevant information."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2904
msgid ""
"Once the Core Team <email>core@FreeBSD.org</email> is satisfied that all the "
"necessary details have been gathered and are correct, the secretary will "
"send a PGP-signed acknowledgement of receipt including the license details. "
"This receipt will be persistently archived and serve as our permanent record "
"of the license grant."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2910
msgid ""
"The license archive should contain only details of license grants; this is "
"not the place for any discussions around licensing or other subjects. Access "
"to data within the license archive will be available on request to the Core "
"Team <email>core@FreeBSD.org</email>."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:2917
msgid "Developer Relations"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2919
msgid ""
"When working directly on your own code or on code which is already well "
"established as your responsibility, then there is probably little need to "
"check with other committers before jumping in with a commit. Working on a "
"bug in an area of the system which is clearly orphaned (and there are a few "
"such areas, to our shame), the same applies. When modifying parts of the "
"system which are maintained, formally, or informally, consider asking for "
"review just as a developer would have before becoming a committer. For "
"ports, contact the listed <varname>MAINTAINER</varname> in the "
"<filename>Makefile</filename>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2932
msgid ""
"To determine if an area of the tree is maintained, check the MAINTAINERS "
"file at the root of the tree. If nobody is listed, scan the revision history "
"to see who has committed changes in the past. An example script that lists "
"each person who has committed to a given file along with the number of "
"commits each person has made can be found at on <systemitem>freefall</"
"systemitem> at <filename>~eadler/bin/whodid</filename>. If queries go "
"unanswered or the committer otherwise indicates a lack of interest in the "
"area affected, go ahead and commit it."
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:2944
msgid ""
"Avoid sending private emails to maintainers. Other people might be "
"interested in the conversation, not just the final output."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2949
msgid ""
"If there is any doubt about a commit for any reason at all, have it reviewed "
"before committing. Better to have it flamed then and there rather than when "
"it is part of the repository. If a commit does results in controversy "
"erupting, it may be advisable to consider backing the change out again until "
"the matter is settled. Remember, with a version control system we can always "
"change it back."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2958
msgid ""
"Do not impugn the intentions of others. If they see a different solution to "
"a problem, or even a different problem, it is probably not because they are "
"stupid, because they have questionable parentage, or because they are trying "
"to destroy hard work, personal image, or FreeBSD, but basically because they "
"have a different outlook on the world. Different is good."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2966
msgid ""
"Disagree honestly. Argue your position from its merits, be honest about any "
"shortcomings it may have, and be open to seeing their solution, or even "
"their vision of the problem, with an open mind."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2971
msgid ""
"Accept correction. We are all fallible. When you have made a mistake, "
"apologize and get on with life. Do not beat up yourself, and certainly do "
"not beat up others for your mistake. Do not waste time on embarrassment or "
"recrimination, just fix the problem and move on."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2977
msgid ""
"Ask for help. Seek out (and give) peer reviews. One of the ways open source "
"software is supposed to excel is in the number of eyeballs applied to it; "
"this does not apply if nobody will review code."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:2984
msgid "If in Doubt..."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2986
msgid ""
"When unsure about something, whether it be a technical issue or a project "
"convention be sure to ask. If you stay silent you will never make progress."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2990
msgid ""
"If it relates to a technical issue ask on the public mailing lists. Avoid "
"the temptation to email the individual person that knows the answer. This "
"way everyone will be able to learn from the question and the answer."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:2995
msgid "For project specific or administrative questions ask, in order:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3000
msgid "Your mentor or former mentor."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3004
msgid "An experienced committer on IRC, email, etc."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3008
msgid "Any team with a \"hat\", as they can give you a definitive answer."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3013
msgid "If still not sure, ask on FreeBSD developers mailing list."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3017
msgid ""
"Once your question is answered, if no one pointed you to documentation that "
"spelled out the answer to your question, document it, as others will have "
"the same question."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:3023
msgid "Bugzilla"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3025
msgid ""
"The FreeBSD Project utilizes <application>Bugzilla</application> for "
"tracking bugs and change requests. Be sure that if you commit a fix or "
"suggestion found in the PR database to close it. It is also considered nice "
"if you take time to close any PRs associated with your commits, if "
"appropriate."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3032
msgid ""
"Committers with non-<systemitem class=\"domainname\">FreeBSD.org</"
"systemitem> Bugzilla accounts can have the old account merged with the "
"<systemitem class=\"domainname\">FreeBSD.org</systemitem> account by "
"following these steps:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3040
msgid "Log in using your old account."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3044
msgid ""
"Open new bug. Choose <literal>Services</literal> as the Product, and "
"<literal>Bug Tracker</literal> as the Component. In bug description list "
"accounts you wish to be merged."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3051
msgid ""
"Log in using <systemitem class=\"domainname\">FreeBSD.org</systemitem> "
"account and post comment to newly opened bug to confirm ownership. See <xref "
"linkend=\"kerberos-ldap\"/> for more details on how to generate or set a "
"password for your <systemitem class=\"domainname\">FreeBSD.org</systemitem> "
"account."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3057
msgid ""
"If there are more than two accounts to merge, post comments from each of "
"them."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3062
msgid "You can find out more about <application>Bugzilla</application> at:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3067
msgid ""
"<link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/pr-"
"guidelines/index.html\">FreeBSD Problem Report Handling Guidelines</link>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3072
msgid ""
"<link xlink:href=\"@@URL_RELPREFIX@@/support.html\">https://www.FreeBSD.org/"
"support.html</link>"
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:3078
msgid "Phabricator"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3080
msgid ""
"The FreeBSD Project utilizes <link xlink:href=\"https://reviews.freebsd.org"
"\">Phabricator</link> for code review requests. See the <link xlink:href="
"\"https://wiki.freebsd.org/CodeReview\">CodeReview</link> wiki page for "
"details."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3084
msgid ""
"Committers with non-<systemitem class=\"domainname\">FreeBSD.org</"
"systemitem> Phabricator accounts can have the old account renamed to the "
"<systemitem class=\"domainname\">FreeBSD.org</systemitem> account by "
"following these steps:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3092
msgid ""
"Change your <application>Phabricator</application> account email to your "
"<systemitem class=\"domainname\">FreeBSD.org</systemitem> email."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3097
msgid ""
"Open new bug on our bug tracker using your <systemitem class=\"domainname"
"\">FreeBSD.org</systemitem> account, see <xref linkend=\"bugzilla\"/> for "
"more information. Choose <literal>Services</literal> as the Product, and "
"<literal>Code Review</literal> as the Component. In bug description request "
"that your <application>Phabricator</application> account be renamed, and "
"provide a link to your <application>Phabricator</application> user. For "
"example, <literal>https://reviews.freebsd.org/p/<replaceable>bob_example."
"com</replaceable>/</literal>"
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:3110
msgid ""
"<application>Phabricator</application> accounts cannot be merged, please do "
"not open a new account."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:3116
msgid "Who's Who"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3118
msgid ""
"Besides the repository meisters, there are other FreeBSD project members and "
"teams whom you will probably get to know in your role as a committer. "
"Briefly, and by no means all-inclusively, these are:"
msgstr ""

#. (itstool) path: varlistentry/term
#: article.translate.xml:3125
msgid "Documentation Engineering Team <email>doceng@FreeBSD.org</email>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3128
msgid ""
"doceng is the group responsible for the documentation build infrastructure, "
"approving new documentation committers, and ensuring that the FreeBSD "
"website and documentation on the FTP site is up to date with respect to the "
"<application>subversion</application> tree. It is not a conflict resolution "
"body. The vast majority of documentation related discussion takes place on "
"the <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc"
"\">FreeBSD documentation project mailing list</link>. More details regarding "
"the doceng team can be found in its <link xlink:href=\"https://www.FreeBSD."
"org/internal/doceng.html\">charter</link>. Committers interested in "
"contributing to the documentation should familiarize themselves with the "
"<link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/fdp-primer/"
"index.html\">Documentation Project Primer</link>."
msgstr ""

#. (itstool) path: varlistentry/term
#: article.translate.xml:3144
msgid ""
"Glen Barber <email>gjb@FreeBSD.org</email>, Konstantin Belousov "
"<email>kib@FreeBSD.org</email>, Bryan Drewery <email>bdrewery@FreeBSD.org</"
"email>, Marc Fonvieille <email>blackend@FreeBSD.org</email>, Xin Li "
"<email>delphij@FreeBSD.org</email>, Colin Percival <email>cperciva@FreeBSD."
"org</email> Hiroki Sato <email>hrs@FreeBSD.org</email>, Gleb Smirnoff "
"<email>glebius@FreeBSD.org</email>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3147
msgid ""
"These are the members of the Release Engineering Team <email>re@FreeBSD.org</"
"email>. This team is responsible for setting release deadlines and "
"controlling the release process. During code freezes, the release engineers "
"have final authority on all changes to the system for whichever branch is "
"pending release status. If there is something you want merged from FreeBSD-"
"CURRENT to FreeBSD-STABLE (whatever values those may have at any given "
"time), these are the people to talk to about it."
msgstr ""

#. (itstool) path: varlistentry/term
#: article.translate.xml:3159
msgid "Gordon Tetlow <email>gordon@FreeBSD.org</email>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3162
msgid ""
"Gordon Tetlow is the <link xlink:href=\"@@URL_RELPREFIX@@/security/"
"\">FreeBSD Security Officer</link> and oversees the Security Officer Team "
"<email>security-officer@FreeBSD.org</email>."
msgstr ""

#. (itstool) path: varlistentry/term
#: article.translate.xml:3170
msgid "Garrett Wollman <email>wollman@FreeBSD.org</email>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3173
msgid ""
"If you need advice on obscure network internals or are not sure of some "
"potential change to the networking subsystem you have in mind, Garrett is "
"someone to talk to. Garrett is also very knowledgeable on the various "
"standards applicable to FreeBSD."
msgstr ""

#. (itstool) path: varlistentry/term
#: article.translate.xml:3182
msgid "FreeBSD committer's mailing list"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3185
msgid ""
"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-all"
"\">svn-src-all</link>, <link xlink:href=\"http://lists.FreeBSD.org/mailman/"
"listinfo/svn-ports-all\">svn-ports-all</link> and <link xlink:href=\"http://"
"lists.FreeBSD.org/mailman/listinfo/svn-doc-all\">svn-doc-all</link> are the "
"mailing lists that the version control system uses to send commit messages "
"to. <emphasis>Never</emphasis> send email directly to these lists. Only send "
"replies to this list when they are short and are directly related to a "
"commit."
msgstr ""

#. (itstool) path: varlistentry/term
#: article.translate.xml:3196
msgid "FreeBSD developers mailing list"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3199
msgid ""
"All committers are subscribed to -developers. This list was created to be a "
"forum for the committers <quote>community</quote> issues. Examples are Core "
"voting, announcements, etc."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3204
msgid ""
"The FreeBSD developers mailing list is for the exclusive use of FreeBSD "
"committers. To develop FreeBSD, committers must have the ability to openly "
"discuss matters that will be resolved before they are publicly announced. "
"Frank discussions of work in progress are not suitable for open publication "
"and may harm FreeBSD."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3211
msgid ""
"All FreeBSD committers are expected not to not publish or forward messages "
"from the FreeBSD developers mailing list outside the list membership without "
"permission of all of the authors. Violators will be removed from the FreeBSD "
"developers mailing list, resulting in a suspension of commit privileges. "
"Repeated or flagrant violations may result in permanent revocation of commit "
"privileges."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3220
msgid ""
"This list is <emphasis>not</emphasis> intended as a place for code reviews "
"or for any technical discussion. In fact using it as such hurts the FreeBSD "
"Project as it gives a sense of a closed list where general decisions "
"affecting all of the FreeBSD using community are made without being "
"<quote>open</quote>. Last, but not least <emphasis>never, never ever, email "
"the FreeBSD developers mailing list and CC:/BCC: another FreeBSD list</"
"emphasis>. Never, ever email another FreeBSD email list and CC:/BCC: the "
"FreeBSD developers mailing list. Doing so can greatly diminish the benefits "
"of this list."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:3237
msgid "SSH Quick-Start Guide"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3241
msgid ""
"If you do not wish to type your password in every time you use "
"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry>, and you use keys to authenticate, "
"<citerefentry><refentrytitle>ssh-agent</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry> is there for your convenience. If you want to use "
"<citerefentry><refentrytitle>ssh-agent</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry>, make sure that you run it before running other "
"applications. X users, for example, usually do this from their <filename>."
"xsession</filename> or <filename>.xinitrc</filename>. See "
"<citerefentry><refentrytitle>ssh-agent</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry> for details."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3253
msgid ""
"Generate a key pair using <citerefentry><refentrytitle>ssh-keygen</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>. The key pair will "
"wind up in your <filename>$HOME/.ssh/</filename> directory."
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:3259
msgid ""
"Only <acronym>ECDSA</acronym>, <acronym>Ed25519</acronym> or <acronym>RSA</"
"acronym> keys are supported."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:3266
msgid ""
"Send your public key (<filename>$HOME/.ssh/id_ecdsa.pub</filename>, "
"<filename>$HOME/.ssh/id_ed25519.pub</filename>, or <filename>$HOME/.ssh/"
"id_rsa.pub</filename>) to the person setting you up as a committer so it can "
"be put into <filename><replaceable>yourlogin</replaceable></filename> in "
"<filename>/etc/ssh-keys/</filename> on <systemitem>freefall</systemitem>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3279
msgid ""
"Now <citerefentry><refentrytitle>ssh-add</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry> can be used for authentication once per session. "
"It prompts for the private key's pass phrase, and then stores it in the "
"authentication agent (<citerefentry><refentrytitle>ssh-agent</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>). Use <command>ssh-add "
"-d</command> to remove keys stored in the agent."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3285
msgid ""
"Test with a simple remote command: <command>ssh freefall.FreeBSD.org ls /"
"usr</command>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3288
msgid ""
"For more information, see <package>security/openssh-portable</package>, "
"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry>, <citerefentry><refentrytitle>ssh-add</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>, "
"<citerefentry><refentrytitle>ssh-agent</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry>, <citerefentry><refentrytitle>ssh-keygen</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>, and "
"<citerefentry><refentrytitle>scp</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3293
msgid ""
"For information on adding, changing, or removing "
"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry> keys, see <uri xlink:href=\"https://wiki.freebsd.org/"
"clusteradm/ssh-keys\">this article</uri>."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:3299
msgid ""
"<trademark class=\"registered\">Coverity</trademark> Availability for "
"FreeBSD Committers"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3301
msgid ""
"All FreeBSD developers can obtain access to <application>Coverity</"
"application> analysis results of all FreeBSD Project software. All who are "
"interested in obtaining access to the analysis results of the automated "
"<application>Coverity</application> runs, can sign up at <uri xlink:href="
"\"http://scan.coverity.com/\">Coverity Scan</uri>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3308
msgid ""
"The FreeBSD wiki includes a mini-guide for developers who are interested in "
"working with the <trademark class=\"registered\">Coverity</trademark> "
"analysis reports: <uri xlink:href=\"https://wiki.freebsd.org/CoverityPrevent"
"\">https://wiki.freebsd.org/CoverityPrevent</uri>. Please note that this "
"mini-guide is only readable by FreeBSD developers, so if you cannot access "
"this page, you will have to ask someone to add you to the appropriate Wiki "
"access list."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3315
msgid ""
"Finally, all FreeBSD developers who are going to use <trademark class="
"\"registered\">Coverity</trademark> are always encouraged to ask for more "
"details and usage information, by posting any questions to the mailing list "
"of the FreeBSD developers."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:3322
msgid "The FreeBSD Committers' Big List of Rules"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3324
msgid ""
"Everyone involved with the FreeBSD project is expected to abide by the "
"<emphasis>Code of Conduct</emphasis> available from <link xlink:href="
"\"@@URL_RELPREFIX@@/internal/code-of-conduct.html\">https://www.FreeBSD.org/"
"internal/code-of-conduct.html</link>. As committers, you form the public "
"face of the project, and how you behave has a vital impact on the public "
"perception of it. This guide expands on the parts of the <emphasis>Code of "
"Conduct</emphasis> specific to committers."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3335 article.translate.xml:3442
msgid "Respect other committers."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3339 article.translate.xml:3488
msgid "Respect other contributors."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3343 article.translate.xml:3508
msgid "Discuss any significant change <emphasis>before</emphasis> committing."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3348
msgid ""
"Respect existing maintainers (if listed in the <varname>MAINTAINER</varname> "
"field in <filename>Makefile</filename> or in <filename>MAINTAINER</filename> "
"in the top-level directory)."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3356 article.translate.xml:3553
msgid ""
"Any disputed change must be backed out pending resolution of the dispute if "
"requested by a maintainer. Security related changes may override a "
"maintainer's wishes at the Security Officer's discretion."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3363
msgid ""
"Changes go to FreeBSD-CURRENT before FreeBSD-STABLE unless specifically "
"permitted by the release engineer or unless they are not applicable to "
"FreeBSD-CURRENT. Any non-trivial or non-urgent change which is applicable "
"should also be allowed to sit in FreeBSD-CURRENT for at least 3 days before "
"merging so that it can be given sufficient testing. The release engineer has "
"the same authority over the FreeBSD-STABLE branch as outlined for the "
"maintainer in rule #5."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3374 article.translate.xml:3613
msgid "Do not fight in public with other committers; it looks bad."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3379
msgid ""
"Respect all code freezes and read the <literal>committers</literal> and "
"<literal>developers</literal> mailing lists in a timely manner so you know "
"when a code freeze is in effect."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3386 article.translate.xml:3662
msgid "When in doubt on any procedure, ask first!"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3390 article.translate.xml:3677
msgid "Test your changes before committing them."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3394 article.translate.xml:3697
msgid ""
"Do not commit to contributed software without <emphasis>explicit</emphasis> "
"approval from the respective maintainers."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3400
msgid ""
"As noted, breaking some of these rules can be grounds for suspension or, "
"upon repeated offense, permanent removal of commit privileges. Individual "
"members of core have the power to temporarily suspend commit privileges "
"until core as a whole has the chance to review the issue. In case of an "
"<quote>emergency</quote> (a committer doing damage to the repository), a "
"temporary suspension may also be done by the repository meisters. Only a 2/3 "
"majority of core has the authority to suspend commit privileges for longer "
"than a week or to remove them permanently. This rule does not exist to set "
"core up as a bunch of cruel dictators who can dispose of committers as "
"casually as empty soda cans, but to give the project a kind of safety fuse. "
"If someone is out of control, it is important to be able to deal with this "
"immediately rather than be paralyzed by debate. In all cases, a committer "
"whose privileges are suspended or revoked is entitled to a <quote>hearing</"
"quote> by core, the total duration of the suspension being determined at "
"that time. A committer whose privileges are suspended may also request a "
"review of the decision after 30 days and every 30 days thereafter (unless "
"the total suspension period is less than 30 days). A committer whose "
"privileges have been revoked entirely may request a review after a period of "
"6 months has elapsed. This review policy is <emphasis>strictly informal</"
"emphasis> and, in all cases, core reserves the right to either act on or "
"disregard requests for review if they feel their original decision to be the "
"right one."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3428
msgid ""
"In all other aspects of project operation, core is a subset of committers "
"and is bound by the <emphasis>same rules</emphasis>. Just because someone is "
"in core this does not mean that they have special dispensation to step "
"outside any of the lines painted here; core's <quote>special powers</quote> "
"only kick in when it acts as a group, not on an individual basis. As "
"individuals, the core team members are all committers first and core second."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:3438
msgid "Details"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3444
msgid ""
"This means that you need to treat other committers as the peer-group "
"developers that they are. Despite our occasional attempts to prove the "
"contrary, one does not get to be a committer by being stupid and nothing "
"rankles more than being treated that way by one of your peers. Whether we "
"always feel respect for one another or not (and everyone has off days), we "
"still have to <emphasis>treat</emphasis> other committers with respect at "
"all times, on public forums and in private email."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3455
msgid ""
"Being able to work together long term is this project's greatest asset, one "
"far more important than any set of changes to the code, and turning "
"arguments about code into issues that affect our long-term ability to work "
"harmoniously together is just not worth the trade-off by any conceivable "
"stretch of the imagination."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3462
msgid ""
"To comply with this rule, do not send email when you are angry or otherwise "
"behave in a manner which is likely to strike others as needlessly "
"confrontational. First calm down, then think about how to communicate in the "
"most effective fashion for convincing the other persons that your side of "
"the argument is correct, do not just blow off some steam so you can feel "
"better in the short term at the cost of a long-term flame war. Not only is "
"this very bad <quote>energy economics</quote>, but repeated displays of "
"public aggression which impair our ability to work well together will be "
"dealt with severely by the project leadership and may result in suspension "
"or termination of your commit privileges. The project leadership will take "
"into account both public and private communications brought before it. It "
"will not seek the disclosure of private communications, but it will take it "
"into account if it is volunteered by the committers involved in the "
"complaint."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3481
msgid ""
"All of this is never an option which the project's leadership enjoys in the "
"slightest, but unity comes first. No amount of code or good advice is worth "
"trading that away."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3490
msgid ""
"You were not always a committer. At one time you were a contributor. "
"Remember that at all times. Remember what it was like trying to get help and "
"attention. Do not forget that your work as a contributor was very important "
"to you. Remember what it was like. Do not discourage, belittle, or demean "
"contributors. Treat them with respect. They are our committers in waiting. "
"They are every bit as important to the project as committers. Their "
"contributions are as valid and as important as your own. After all, you made "
"many contributions before you became a committer. Always remember that."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3502
msgid ""
"Consider the points raised under <xref linkend=\"respect\"/> and apply them "
"also to contributors."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3511
msgid ""
"The repository is not where changes are initially submitted for correctness "
"or argued over, that happens first in the mailing lists or by use of the "
"Phabricator service. The commit will only happen once something resembling "
"consensus has been reached. This does not mean that permission is required "
"before correcting every obvious syntax error or manual page misspelling, "
"just that it is good to develop a feel for when a proposed change is not "
"quite such a no-brainer and requires some feedback first. People really do "
"not mind sweeping changes if the result is something clearly better than "
"what they had before, they just do not like being <emphasis>surprised</"
"emphasis> by those changes. The very best way of making sure that things are "
"on the right track is to have code reviewed by one or more other committers."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3528
msgid "When in doubt, ask for review!"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3532
msgid "Respect existing maintainers if listed."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3534
msgid ""
"Many parts of FreeBSD are not <quote>owned</quote> in the sense that any "
"specific individual will jump up and yell if you commit a change to "
"<quote>their</quote> area, but it still pays to check first. One convention "
"we use is to put a maintainer line in the <filename>Makefile</filename> for "
"any package or subtree which is being actively maintained by one or more "
"people; see <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/"
"developers-handbook/policies.html\">https://www.FreeBSD.org/doc/en_US."
"ISO8859-1/books/developers-handbook/policies.html</link> for documentation "
"on this. Where sections of code have several maintainers, commits to "
"affected areas by one maintainer need to be reviewed by at least one other "
"maintainer. In cases where the <quote>maintainer-ship</quote> of something "
"is not clear, look at the repository logs for the files in question and see "
"if someone has been working recently or predominantly in that area."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3558
msgid ""
"This may be hard to swallow in times of conflict (when each side is "
"convinced that they are in the right, of course) but a version control "
"system makes it unnecessary to have an ongoing dispute raging when it is far "
"easier to simply reverse the disputed change, get everyone calmed down again "
"and then try to figure out what is the best way to proceed. If the change "
"turns out to be the best thing after all, it can be easily brought back. If "
"it turns out not to be, then the users did not have to live with the bogus "
"change in the tree while everyone was busily debating its merits. People "
"<emphasis>very</emphasis> rarely call for back-outs in the repository since "
"discussion generally exposes bad or controversial changes before the commit "
"even happens, but on such rare occasions the back-out should be done without "
"argument so that we can get immediately on to the topic of figuring out "
"whether it was bogus or not."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3578
msgid ""
"Changes go to FreeBSD-CURRENT before FreeBSD-STABLE unless specifically "
"permitted by the release engineer or unless they are not applicable to "
"FreeBSD-CURRENT. Any non-trivial or non-urgent change which is applicable "
"should also be allowed to sit in FreeBSD-CURRENT for at least 3 days before "
"merging so that it can be given sufficient testing. The release engineer has "
"the same authority over the FreeBSD-STABLE branch as outlined in rule #5."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3587
msgid ""
"This is another <quote>do not argue about it</quote> issue since it is the "
"release engineer who is ultimately responsible (and gets beaten up) if a "
"change turns out to be bad. Please respect this and give the release "
"engineer your full cooperation when it comes to the FreeBSD-STABLE branch. "
"The management of FreeBSD-STABLE may frequently seem to be overly "
"conservative to the casual observer, but also bear in mind the fact that "
"conservatism is supposed to be the hallmark of FreeBSD-STABLE and different "
"rules apply there than in FreeBSD-CURRENT. There is also really no point in "
"having FreeBSD-CURRENT be a testing ground if changes are merged over to "
"FreeBSD-STABLE immediately. Changes need a chance to be tested by the "
"FreeBSD-CURRENT developers, so allow some time to elapse before merging "
"unless the FreeBSD-STABLE fix is critical, time sensitive or so obvious as "
"to make further testing unnecessary (spelling fixes to manual pages, obvious "
"bug/typo fixes, etc.) In other words, apply common sense."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3606
msgid ""
"Changes to the security branches (for example, <literal>releng/9.3</"
"literal>) must be approved by a member of the Security Officer Team "
"<email>security-officer@FreeBSD.org</email>, or in some cases, by a member "
"of the Release Engineering Team <email>re@FreeBSD.org</email>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3616
msgid ""
"This project has a public image to uphold and that image is very important "
"to all of us, especially if we are to continue to attract new members. There "
"will be occasions when, despite everyone's very best attempts at self-"
"control, tempers are lost and angry words are exchanged. The best thing that "
"can be done in such cases is to minimize the effects of this until everyone "
"has cooled back down. Do not air angry words in public and do not forward "
"private correspondence or other private communications to public mailing "
"lists, mail aliases, instant messaging channels or social media sites. What "
"people say one-to-one is often much less sugar-coated than what they would "
"say in public, and such communications therefore have no place there - they "
"only serve to inflame an already bad situation. If the person sending a "
"flame-o-gram at least had the grace to send it privately, then have the "
"grace to keep it private yourself. If you feel you are being unfairly "
"treated by another developer, and it is causing you anguish, bring the "
"matter up with core rather than taking it public. Core will do its best to "
"play peace makers and get things back to sanity. In cases where the dispute "
"involves a change to the codebase and the participants do not appear to be "
"reaching an amicable agreement, core may appoint a mutually-agreeable third "
"party to resolve the dispute. All parties involved must then agree to be "
"bound by the decision reached by this third party."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3646
msgid ""
"Respect all code freezes and read the <literal>committers</literal> and "
"<literal>developers</literal> mailing list on a timely basis so you know "
"when a code freeze is in effect."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3651
msgid ""
"Committing unapproved changes during a code freeze is a really big mistake "
"and committers are expected to keep up-to-date on what is going on before "
"jumping in after a long absence and committing 10 megabytes worth of "
"accumulated stuff. People who abuse this on a regular basis will have their "
"commit privileges suspended until they get back from the FreeBSD Happy "
"Reeducation Camp we run in Greenland."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3664
msgid ""
"Many mistakes are made because someone is in a hurry and just assumes they "
"know the right way of doing something. If you have not done it before, "
"chances are good that you do not actually know the way we do things and "
"really need to ask first or you are going to completely embarrass yourself "
"in public. There is no shame in asking <quote>how in the heck do I do this?</"
"quote> We already know you are an intelligent person; otherwise, you would "
"not be a committer."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3679
msgid ""
"This may sound obvious, but if it really were so obvious then we probably "
"would not see so many cases of people clearly not doing this. If your "
"changes are to the kernel, make sure you can still compile both GENERIC and "
"LINT. If your changes are anywhere else, make sure you can still make world. "
"If your changes are to a branch, make sure your testing occurs with a "
"machine which is running that code. If you have a change which also may "
"break another architecture, be sure and test on all supported architectures. "
"Please refer to the <link xlink:href=\"https://www.FreeBSD.org/internal/"
"\">FreeBSD Internal Page</link> for a list of available resources. As other "
"architectures are added to the FreeBSD supported platforms list, the "
"appropriate shared testing resources will be made available."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3701
msgid ""
"Contributed software is anything under the <filename>src/contrib</filename>, "
"<filename>src/crypto</filename>, or <filename>src/sys/contrib</filename> "
"trees."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3706
msgid ""
"The trees mentioned above are for contributed software usually imported onto "
"a vendor branch. Committing something there may cause unnecessary headaches "
"when importing newer versions of the software. As a general consider sending "
"patches upstream to the vendor. Patches may be committed to FreeBSD first "
"with permission of the maintainer."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3714
msgid ""
"Reasons for modifying upstream software range from wanting strict control "
"over a tightly coupled dependency to lack of portability in the canonical "
"repository's distribution of their code. Regardless of the reason, effort to "
"minimize the maintenance burden of fork is helpful to fellow maintainers. "
"Avoid committing trivial or cosmetic changes to files since it makes every "
"merge thereafter more difficult: such patches need to be manually re-"
"verified every import."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3724
msgid ""
"If a particular piece of software lacks a maintainer, you are encouraged to "
"take up ownership. If you are unsure of the current maintainership email "
"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-arch"
"\">FreeBSD architecture and design mailing list</link> and ask."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:3733
msgid "Policy on Multiple Architectures"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3735
msgid ""
"FreeBSD has added several new architecture ports during recent release "
"cycles and is truly no longer an <trademark>i386</trademark> centric "
"operating system. In an effort to make it easier to keep FreeBSD portable "
"across the platforms we support, core has developed this mandate:"
msgstr ""

#. (itstool) path: blockquote/para
#: article.translate.xml:3742
msgid ""
"Our 32-bit reference platform is i386, and our 64-bit reference platform is "
"amd64. Major design work (including major API and ABI changes) must prove "
"itself on at least one 32-bit and at least one 64-bit platform, preferably "
"the primary reference platforms, before it may be committed to the source "
"tree."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3750
msgid ""
"The i386 and amd64 platforms were chosen due to being more readily available "
"to developers and as representatives of more diverse processor and system "
"designs - big versus little endian, register file versus register stack, "
"different DMA and cache implementations, hardware page tables versus "
"software TLB management etc."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3757
msgid ""
"We will continue to re-evaluate this policy as cost and availability of the "
"64-bit platforms change."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3760
msgid ""
"Developers should also be aware of our Tier Policy for the long term support "
"of hardware architectures. The rules here are intended to provide guidance "
"during the development process, and are distinct from the requirements for "
"features and architectures listed in that section. The Tier rules for "
"feature support on architectures at release-time are more strict than the "
"rules for changes during the development process."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:3771
msgid "Other Suggestions"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3773
msgid ""
"When committing documentation changes, use a spell checker before "
"committing. For all XML docs, verify that the formatting directives are "
"correct by running <command>make lint</command> and <package>textproc/igor</"
"package>."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3779
msgid ""
"For manual pages, run <package>sysutils/manck</package> and "
"<package>textproc/igor</package> over the manual page to verify all of the "
"cross references and file references are correct and that the man page has "
"all of the appropriate <varname>MLINK</varname>s installed."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3786
msgid ""
"Do not mix style fixes with new functionality. A style fix is any change "
"which does not modify the functionality of the code. Mixing the changes "
"obfuscates the functionality change when asking for differences between "
"revisions, which can hide any new bugs. Do not include whitespace changes "
"with content changes in commits to <filename>doc/</filename> . The extra "
"clutter in the diffs makes the translators' job much more difficult. "
"Instead, make any style or whitespace changes in separate commits that are "
"clearly labeled as such in the commit message."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:3799
msgid "Deprecating Features"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3801
msgid ""
"When it is necessary to remove functionality from software in the base "
"system, follow these guidelines whenever possible:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3807
msgid ""
"Mention is made in the manual page and possibly the release notes that the "
"option, utility, or interface is deprecated. Use of the deprecated feature "
"generates a warning."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3814
msgid ""
"The option, utility, or interface is preserved until the next major (point "
"zero) release."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3819
msgid ""
"The option, utility, or interface is removed and no longer documented. It is "
"now obsolete. It is also generally a good idea to note its removal in the "
"release notes."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:3828
msgid "Privacy and Confidentiality"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3832
msgid "Most FreeBSD business is done in public."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3834
msgid ""
"FreeBSD is an <emphasis>open</emphasis> project. Which means that not only "
"can anyone use the source code, but that most of the development process is "
"open to public scrutiny."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3841
msgid "Certain sensitive matters must remain private or held under embargo."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3844
msgid ""
"There unfortunately cannot be complete transparency. As a FreeBSD developer "
"you will have a certain degree of privileged access to information. "
"Consequently you are expected to respect certain requirements for "
"confidentiality. Sometimes the need for confidentiality comes from external "
"collaborators or has a specific time limit. Mostly though, it is a matter of "
"not releasing private communications."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3855
msgid ""
"The Security Officer has sole control over the release of security "
"advisories."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3858
msgid ""
"Where there are security problems that affect many different operating "
"systems, FreeBSD frequently depends on early access to be able to prepare "
"advisories for coordinated release. Unless FreeBSD developers can be trusted "
"to maintain security, such early access will not be made available. The "
"Security Officer is responsible for controlling pre-release access to "
"information about vulnerabilities, and for timing the release of all "
"advisories. He may request help under condition of confidentiality from any "
"developer with relevant knowledge to prepare security fixes."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3872
msgid ""
"Communications with Core are kept confidential for as long as necessary."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3875
msgid ""
"Communications to core will initially be treated as confidential. Eventually "
"however, most of Core's business will be summarized into the monthly or "
"quarterly core reports. Care will be taken to avoid publicising any "
"sensitive details. Records of some particularly sensitive subjects may not "
"be reported on at all and will be retained only in Core's private archives."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3885
msgid ""
"Non-disclosure Agreements may be required for access to certain commercially "
"sensitive data."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3888
msgid ""
"Access to certain commercially sensitive data may only be available under a "
"Non-Disclosure Agreement. The FreeBSD Foundation legal staff must be "
"consulted before any binding agreements are entered into."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3895
msgid "Private communications must not be made public without permission."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3898
msgid ""
"Beyond the specific requirements above there is a general expectation not to "
"publish private communications between developers without the consent of all "
"parties involved. Ask permission before forwarding a message onto a public "
"mailing list, or posting it to a forum or website that can be accessed by "
"other than the original correspondents."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3908
msgid ""
"Communications on project-only or restricted access channels must be kept "
"private."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3911
msgid ""
"Similarly to personal communications, certain internal communications "
"channels, including FreeBSD Committer only mailing lists and restricted "
"access IRC channels are considered private communications. Permission is "
"required to publish material from these sources."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3920
msgid "Core may approve publication."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:3922
msgid ""
"Where it is impractical to obtain permission due to the number of "
"correspondents or where permission to publish is unreasonably withheld, Core "
"may approve release of such private matters that merit more general "
"publication."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:3933
msgid "Support for Multiple Architectures"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:3935
msgid ""
"FreeBSD is a highly portable operating system intended to function on many "
"different types of hardware architectures. Maintaining clean separation of "
"Machine Dependent (MD) and Machine Independent (MI) code, as well as "
"minimizing MD code, is an important part of our strategy to remain agile "
"with regards to current hardware trends. Each new hardware architecture "
"supported by FreeBSD adds substantially to the cost of code maintenance, "
"toolchain support, and release engineering. It also dramatically increases "
"the cost of effective testing of kernel changes. As such, there is strong "
"motivation to differentiate between classes of support for various "
"architectures while remaining strong in a few key architectures that are "
"seen as the FreeBSD <quote>target audience</quote>."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:3950
msgid "Statement of General Intent"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3952
msgid ""
"The FreeBSD Project targets \"production quality commercial off-the-shelf "
"(COTS) workstation, server, and high-end embedded systems\". By retaining a "
"focus on a narrow set of architectures of interest in these environments, "
"the FreeBSD Project is able to maintain high levels of quality, stability, "
"and performance, as well as minimize the load on various support teams on "
"the project, such as the ports team, documentation team, security officer, "
"and release engineering teams. Diversity in hardware support broadens the "
"options for FreeBSD consumers by offering new features and usage "
"opportunities, but these benefits must always be carefully considered in "
"terms of the real-world maintenance cost associated with additional platform "
"support."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3966
msgid ""
"The FreeBSD Project differentiates platform targets into four tiers. Each "
"tier includes a list of guarantees consumers may rely on as well as "
"obligations by the Project and developers to fulfill those guarantees. These "
"lists define the minimum guarantees for each tier. The Project and "
"developers may provide additional levels of support beyond the minimum "
"guarantees for a given tier, but such additional support is not guaranteed. "
"Each platform target is assigned to a specific tier for each stable branch. "
"As a result, a platform target might be assigned to different tiers on "
"concurrent stable branches."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:3980
msgid "Platform Targets"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3982
msgid ""
"Support for a hardware platform consists of two components: kernel support "
"and userland Application Binary Interfaces (ABIs). Kernel platform support "
"includes things needed to run a FreeBSD kernel on a hardware platform such "
"as machine-dependent virtual memory management and device drivers. A "
"userland ABI specifies an interface for user processes to interact with a "
"FreeBSD kernel and base system libraries. A userland ABI includes system "
"call interfaces, the layout and semantics of public data structures, and the "
"layout and semantics of arguments passed to subroutines. Some components of "
"an ABI may be defined by specifications such as the layout of C++ exception "
"objects or calling conventions for C functions."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:3996
msgid ""
"A FreeBSD kernel also uses an ABI (sometimes referred to as the Kernel "
"Binary Interface (KBI)) which includes the semantics and layouts of public "
"data structures and the layout and semantics of arguments to public "
"functions within the kernel itself."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4002
msgid ""
"A FreeBSD kernel may support multiple userland ABIs. For example, FreeBSD's "
"amd64 kernel supports FreeBSD amd64 and i386 userland ABIs as well as Linux "
"x86_64 and i386 userland ABIs. A FreeBSD kernel should support a "
"<quote>native</quote> ABI as the default ABI. The native <quote>ABI</quote> "
"generally shares certain properties with the kernel ABI such as the C "
"calling convention, sizes of basic types, etc."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4010
msgid ""
"Tiers are defined for both kernels and userland ABIs. In the common case, a "
"platform's kernel and FreeBSD ABIs are assigned to the same tier."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:4016
msgid "Tier 1: Fully-Supported Architectures"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4018
msgid ""
"Tier 1 platforms are the most mature FreeBSD platforms. They are supported "
"by the security officer, release engineering, and port management teams. "
"Tier 1 architectures are expected to be Production Quality with respect to "
"all aspects of the FreeBSD operating system, including installation and "
"development environments."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4025
msgid ""
"The FreeBSD Project provides the following guarantees to consumers of Tier 1 "
"platforms:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4030
msgid ""
"Official FreeBSD release images will be provided by the release engineering "
"team."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4034
msgid ""
"Binary updates and source patches for Security Advisories and Errata Notices "
"will be provided for supported releases."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4039
msgid ""
"Source patches for Security Advisories will be provided for supported "
"branches."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4043
msgid ""
"Binary updates and source patches for cross-platform Security Advisories "
"will typically be provided at the time of the announcement."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4048
msgid ""
"Changes to userland ABIs will generally include compatibility shims to "
"ensure correct operation of binaries compiled against any stable branch "
"where the platform is Tier 1. These shims might not be enabled in the "
"default install. If compatibility shims are not provided for an ABI change, "
"the lack of shims will be clearly documented in the release notes."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4057
msgid ""
"Changes to certain portions of the kernel ABI will include compatibility "
"shims to ensure correct operation of kernel modules compiled against the "
"oldest supported release on the branch. Note that not all parts of the "
"kernel ABI are protected."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4064
msgid ""
"Official binary packages for third party software will be provided by the "
"ports team. For embedded architectures, these packages may be cross-built "
"from a different architecture."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4070
msgid ""
"Most relevant ports should either build or have the appropriate filters to "
"prevent inappropriate ones from building."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4075
msgid ""
"New features which are not inherently platform-specific will be fully "
"functional on all Tier 1 architectures."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4080
msgid ""
"Features and compatibility shims used by binaries compiled against older "
"stable branches may be removed in newer major versions. Such removals will "
"be clearly documented in the release notes."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4086
msgid ""
"Tier 1 platforms should be fully documented. Basic operations will be "
"documented in the FreeBSD Handbook."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4090
msgid "Tier 1 platforms will be included in the source tree."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4094
msgid ""
"Tier 1 platforms should be self-hosting either via the in-tree toolchain or "
"an external toolchain. If an external toolchain is required, official binary "
"packages for an external toolchain will be provided."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4101
msgid ""
"To maintain maturity of Tier 1 platforms, the FreeBSD Project will maintain "
"the following resources to support development:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4107
msgid ""
"Build and test automation support either in the FreeBSD.org cluster or some "
"other location easily available for all developers. Embedded platforms may "
"substitute an emulator available in the FreeBSD.org cluster for actual "
"hardware."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4114 article.translate.xml:4213
msgid ""
"Inclusion in the <userinput>make universe</userinput> and <userinput>make "
"tinderbox</userinput> targets."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4118
msgid ""
"Dedicated hardware in one of the FreeBSD clusters for package building "
"(either natively or via qemu-user)."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4124
msgid ""
"Collectively, developers are required to provide the following to maintain "
"the Tier 1 status of a platform:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4129
msgid ""
"Changes to the source tree should not knowingly break the build of a Tier 1 "
"platform."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4133
msgid ""
"Tier 1 architectures must have a mature, healthy ecosystem of users and "
"active developers."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4137
msgid ""
"Developers should be able to build packages on commonly available, non-"
"embedded Tier 1 systems. This can mean either native builds if non-embedded "
"systems are commonly available for the platform in question, or it can mean "
"cross-builds hosted on some other Tier 1 architecture."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4145
msgid ""
"Changes cannot break the userland ABI. If an ABI change is required, ABI "
"compatibility for existing binaries should be provided via use of symbol "
"versioning or shared library version bumps."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4151
msgid ""
"Changes merged to stable branches cannot break the protected portions of the "
"kernel ABI. If a kernel ABI change is required, the change should be "
"modified to preserve functionality of existing kernel modules."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:4160
msgid "Tier 2: Developmental and Niche Architectures"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4162
msgid ""
"Tier 2 platforms are functional, but less mature FreeBSD platforms. They are "
"not supported by the security officer, release engineering, and port "
"management teams."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4166
msgid ""
"Tier 2 platforms may be Tier 1 platform candidates that are still under "
"active development. Architectures reaching end of life may also be moved "
"from Tier 1 status to Tier 2 status as the availability of resources to "
"continue to maintain the system in a Production Quality state diminishes. "
"Well-supported niche architectures may also be Tier 2."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4173
msgid ""
"The FreeBSD Project provides the following guarantees to consumers of Tier 2 "
"platforms:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4178
msgid ""
"The ports infrastructure should include basic support for Tier 2 "
"architectures sufficient to support building ports and packages. This "
"includes support for basic packages such as ports-mgmt/pkg, but there is no "
"guarantee that arbitrary ports will be buildable or functional."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4186
msgid ""
"New features which are not inherently platform-specific should be feasible "
"on all Tier 2 architectures if not implemented."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4191
msgid "Tier 2 platforms will be included in the source tree."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4195
msgid ""
"Tier 2 platforms should be self-hosting either via the in-tree toolchain or "
"an external toolchain. If an external toolchain is required, official binary "
"packages for an external toolchain will be provided."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4201
msgid ""
"Tier 2 platforms should provide functional kernels and userlands even if an "
"official release distribution is not provided."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4207
msgid ""
"To maintain maturity of Tier 2 platforms, the FreeBSD Project will maintain "
"the following resources to support development:"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4218
msgid ""
"Collectively, developers are required to provide the following to maintain "
"the Tier 2 status of a platform:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4223
msgid ""
"Changes to the source tree should not knowingly break the build of a Tier 2 "
"platform."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4227
msgid ""
"Tier 2 architectures must have an active ecosystem of users and developers."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4231
msgid ""
"While changes are permitted to break the userland ABI, the ABI should not be "
"broken gratuitously. Significant userland ABI changes should be restricted "
"to major versions."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4237
msgid ""
"New features that are not yet implemented on Tier 2 architectures should "
"provide a means of disabling them on those architectures."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:4245
msgid "Tier 3: Experimental Architectures"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4247
msgid ""
"Tier 3 platforms have at least partial FreeBSD support. They are "
"<emphasis>not</emphasis> supported by the security officer, release "
"engineering, and port management teams."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4252
msgid ""
"Tier 3 platforms are architectures in the early stages of development, for "
"non-mainstream hardware platforms, or which are considered legacy systems "
"unlikely to see broad future use. Initial support for Tier 3 platforms may "
"exist in a separate repository rather than the main source repository."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4259
msgid ""
"The FreeBSD Project provides no guarantees to consumers of Tier 3 platforms "
"and is not committed to maintaining resources to support development. Tier 3 "
"platforms may not always be buildable, nor are any kernel or userland ABIs "
"considered stable."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:4267
msgid "Tier 4: Unsupported Architectures"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4269
msgid "Tier 4 platforms are not supported in any form by the project."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4272
msgid ""
"All systems not otherwise classified are Tier 4 systems. When a platform "
"transitions to Tier 4, all support for the platform is removed from the "
"source and ports trees. Note that ports support should remain as long as the "
"platform is supported in a branch supported by ports."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:4280
msgid "Policy on Changing the Tier of an Architecture"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:4282
msgid ""
"Systems may only be moved from one tier to another by approval of the "
"FreeBSD Core Team, which shall make that decision in collaboration with the "
"Security Officer, Release Engineering, and ports management teams. For a "
"platform to be promoted to a higher tier, any missing support guarantees "
"must be satisfied before the promotion is completed."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:4292
msgid "Ports Specific FAQ"
msgstr ""

#. (itstool) path: qandadiv/title
#: article.translate.xml:4296
msgid "Adding a New Port"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4300
msgid "How do I add a new port?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4304
msgid "First, please read the section about repository copies."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4307
msgid ""
"The easiest way to add a new port is the <command>addport</command> script "
"located in the <filename>ports/Tools/scripts</filename> directory. It adds a "
"port from the directory specified, determining the category automatically "
"from the port <filename>Makefile</filename>. It also adds an entry to the "
"port's category <filename>Makefile</filename>. It was written by Michael "
"Haro <email>mharo@FreeBSD.org</email>, Will Andrews <email>will@FreeBSD.org</"
"email>, and Renato Botelho <email>garga@FreeBSD.org</email>. When sending "
"questions about this script to the <link xlink:href=\"http://lists.FreeBSD."
"org/mailman/listinfo/freebsd-ports\">FreeBSD ports mailing list</link>, "
"please also CC Chris Rees <email>crees@FreeBSD.org</email>, the current "
"maintainer."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4323
msgid "Any other things I need to know when I add a new port?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4328
msgid ""
"Check the port, preferably to make sure it compiles and packages correctly. "
"This is the recommended sequence:"
msgstr ""

#. (itstool) path: answer/screen
#: article.translate.xml:4332
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>make install</userinput>\n"
"<prompt>#</prompt> <userinput>make package</userinput>\n"
"<prompt>#</prompt> <userinput>make deinstall</userinput>\n"
"<prompt>#</prompt> <userinput>pkg add <replaceable>package you built above</replaceable></userinput>\n"
"<prompt>#</prompt> <userinput>make deinstall</userinput>\n"
"<prompt>#</prompt> <userinput>make reinstall</userinput>\n"
"<prompt>#</prompt> <userinput>make package</userinput>"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4340
msgid ""
"The <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/porters-"
"handbook/index.html\">Porters Handbook</link> contains more detailed "
"instructions."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4344
msgid ""
"Use <citerefentry vendor=\"ports\"><refentrytitle>portlint</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry> to check the syntax of "
"the port. You do not necessarily have to eliminate all warnings but make "
"sure you have fixed the simple ones."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4349
msgid ""
"If the port came from a submitter who has not contributed to the Project "
"before, add that person's name to the <link xlink:href=\"@@URL_RELPREFIX@@/"
"doc/en_US.ISO8859-1/articles/contributors/contrib-additional.html"
"\">Additional Contributors</link> section of the FreeBSD Contributors List."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4355
msgid ""
"Close the PR if the port came in as a PR. To close a PR, change the state to "
"<literal>Issue Resolved</literal> and the resolution as <literal>Fixed</"
"literal>."
msgstr ""

#. (itstool) path: qandadiv/title
#: article.translate.xml:4364
msgid "Removing an Existing Port"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4368
msgid "How do I remove an existing port?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4372
msgid ""
"First, please read the section about repository copies. Before you remove "
"the port, you have to verify there are no other ports depending on it."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4378
msgid "Make sure there is no dependency on the port in the ports collection:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4383
msgid "The port's PKGNAME appears in exactly one line in a recent INDEX file."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4388
msgid ""
"No other ports contains any reference to the port's directory or PKGNAME in "
"their Makefiles"
msgstr ""

#. (itstool) path: tip/para
#: article.translate.xml:4393
msgid ""
"When using <application>Git</application>, consider using <command>git grep</"
"command>, it is much faster than <command>grep -r</command>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4403
msgid "Then, remove the port:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4407
msgid ""
"Remove the port's files and directory with <command>svn remove</command>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4412
msgid ""
"Remove the <varname>SUBDIR</varname> listing of the port in the parent "
"directory <filename>Makefile</filename>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4418 article.translate.xml:4671
msgid "Add an entry to <filename>ports/MOVED</filename>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4423
msgid ""
"Search for entries in <filename>ports/security/vuxml/vuln.xml</filename> and "
"adjust them accordingly. In particular, check for previous packages with the "
"new name which version could include the new port."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4431
msgid "Remove the port from <filename>ports/LEGAL</filename> if it is there."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4439
msgid ""
"Alternatively, you can use the <command>rmport</command> script, from "
"<filename>ports/Tools/scripts</filename>. This script was written by Vasil "
"Dimov <email>vd@FreeBSD.org</email>. When sending questions about this "
"script to the <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/"
"freebsd-ports\">FreeBSD ports mailing list</link>, please also CC Chris Rees "
"<email>crees@FreeBSD.org</email>, the current maintainer."
msgstr ""

#. (itstool) path: qandadiv/title
#: article.translate.xml:4450
msgid "Re-adding a Deleted Port"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4454
msgid "How do I re-add a deleted port?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4458
msgid "This is essentially the reverse of deleting a port."
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:4462
msgid ""
"Do not use <command>svn add</command> to add the port. Follow these steps. "
"If they are unclear, or are not working, ask for help, do not just "
"<command>svn add</command> the port."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4470
msgid ""
"Figure out when the port was removed. Use this <link xlink:href=\"https://"
"people.FreeBSD.org/~crees/removed_ports/index.xml\">list</link>, or look for "
"the port on <link xlink:href=\"http://www.freshports.org/\">freshports</"
"link>, and then copy the last living revision of the port:"
msgstr ""

#. (itstool) path: step/screen
#: article.translate.xml:4476
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd /usr/ports/<replaceable>category</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn cp 'svn+ssh://repo.freebsd.org/ports/head/<replaceable>category</replaceable>/<replaceable>portname</replaceable>/@<replaceable>XXXXXX</replaceable>' <replaceable>portname</replaceable></userinput>"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4479
msgid ""
"Pick the revision that is just before the removal. For example, if the "
"revision where it was removed is <literal>269874</literal>, use "
"<literal>269873</literal>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4484
msgid ""
"It is also possible to specify a date. In that case, pick a date that is "
"before the removal but after the last commit to the port."
msgstr ""

#. (itstool) path: step/screen
#: article.translate.xml:4488
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>cd /usr/ports/<replaceable>category</replaceable></userinput>\n"
"<prompt>%</prompt> <userinput>svn cp 'svn+ssh://repo.freebsd.org/ports/head/<replaceable>category</replaceable>/<replaceable>portname</replaceable>/@{<replaceable>YYYY-MM-DD</replaceable>}' <replaceable>portname</replaceable></userinput>"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4493
msgid ""
"Make the changes necessary to get the port working again. If it was deleted "
"because the distfiles are no longer available, either volunteer to host the "
"distfiles, or find someone else to do so."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4501
msgid ""
"If some files have been added, or were removed during the resurrection "
"process, use <command>svn add</command> or <command>svn remove</command> to "
"make sure all the files in the port will be committed."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4509
msgid ""
"Restore the <varname>SUBDIR</varname> listing of the port in the parent "
"directory <filename>Makefile</filename>, keeping the entries sorted."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4516
msgid "Delete the port entry from <filename>ports/MOVED</filename>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4521
msgid ""
"If the port had an entry in <filename>ports/LEGAL</filename>, restore it."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4526
msgid "<command>svn commit</command> these changes, preferably in one step."
msgstr ""

#. (itstool) path: tip/para
#: article.translate.xml:4532
msgid ""
"The <command>addport</command> script mentioned in <xref linkend=\"ports-qa-"
"adding\"/> now detects when the port to add has previously existed, and "
"attempts to handle all except the <filename>ports/LEGAL</filename> step "
"automatically."
msgstr ""

#. (itstool) path: qandadiv/title
#: article.translate.xml:4543
msgid "Repository Copies"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4547
msgid "When do we need a repository copy?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4551
msgid ""
"When you want to add a port that is related to any port that is already in "
"the tree in a separate directory, you have to do a repository copy. Here "
"<wordasword>related</wordasword> means it is a different version or a "
"slightly modified version. Examples are <filename>print/ghostscript*</"
"filename> (different versions) and <filename>x11-wm/windowmaker*</filename> "
"(English-only and internationalized version)."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4560
msgid ""
"Another example is when a port is moved from one subdirectory to another, or "
"when the name of a directory must be changed because the authors renamed "
"their software even though it is a descendant of a port already in a tree."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4570
msgid "What do I need to do?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4574
msgid "With Subversion, a repo copy can be done by any committer:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4579
msgid "Doing a repo copy:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4583
msgid "Verify that the target directory does not exist."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4588
msgid ""
"Use <command>svn up</command> to make certain the original files, "
"directories, and checkout information is current."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4594
msgid ""
"Use <command>svn move</command> or <command>svn copy</command> to do the "
"repo copy."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4600
msgid ""
"Upgrade the copied port to the new version. Remember to add or change the "
"<varname>PKGNAMEPREFIX</varname> or <varname>PKGNAMESUFFIX</varname> so "
"there are no duplicate ports with the same name. In some rare cases it may "
"be necessary to change the <varname>PORTNAME</varname> instead of adding "
"<varname>PKGNAMEPREFIX</varname> or <varname>PKGNAMESUFFIX</varname>, but "
"this is only done when it is really needed — for example, using an existing "
"port as the base for a very similar program with a different name, or "
"upgrading a port to a new upstream version which actually changes the "
"distribution name, like the transition from <filename>textproc/libxml</"
"filename> to <filename>textproc/libxml2</filename>. In most cases, adding or "
"changing <varname>PKGNAMEPREFIX</varname> or <varname>PKGNAMESUFFIX</"
"varname> suffices."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4624
msgid ""
"Add the new subdirectory to the <varname>SUBDIR</varname> listing in the "
"parent directory <filename>Makefile</filename>. You can run <command>make "
"checksubdirs</command> in the parent directory to check this."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4632
msgid ""
"If the port changed categories, modify the <varname>CATEGORIES</varname> "
"line of the port's <filename>Makefile</filename> accordingly"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4638
msgid ""
"Add an entry to <filename>ports/MOVED</filename>, if you remove the original "
"port."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4644
msgid "Commit all changes on one commit."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4650
msgid "When removing a port:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4654
msgid ""
"Perform a thorough check of the ports collection for any dependencies on the "
"old port location/name, and update them. Running <command>grep</command> on "
"<filename>INDEX</filename> is not enough because some ports have "
"dependencies enabled by compile-time options. A full <command>grep -r</"
"command> of the ports collection is recommended."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4666
msgid "Remove the old port and the old <varname>SUBDIR</varname> entry."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4678
msgid ""
"After repo moves (<quote>rename</quote> operations where a port is copied "
"and the old location is removed):"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4684
msgid ""
"Follow the same steps that are outlined in the previous two entries, to "
"activate the new location of the port and remove the old one."
msgstr ""

#. (itstool) path: qandadiv/title
#: article.translate.xml:4697
msgid "Ports Freeze"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4701
msgid "What is a <quote>ports freeze</quote>?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4705
msgid ""
"A <quote>ports freeze</quote> was a restricted state the ports tree was put "
"in before a release. It was used to ensure a higher quality for the packages "
"shipped with a release. It usually lasted a couple of weeks. During that "
"time, build problems were fixed, and the release packages were built. This "
"practice is no longer used, as the packages for the releases are built from "
"the current stable, quarterly branch."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4714
msgid ""
"For more information on how to merge commits to the quarterly branch, see "
"<xref linkend=\"ports-qa-misc-request-mfh\"/>."
msgstr ""

#. (itstool) path: qandadiv/title
#: article.translate.xml:4721
msgid "Quarterly Branches"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4725
msgid ""
"What is the procedure to request authorization for merging a commit to the "
"quarterly branch?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4730
msgid ""
"When doing the commit, add the branch name to the <literal>MFH:</literal> "
"line, for example:"
msgstr ""

#. (itstool) path: answer/programlisting
#: article.translate.xml:4733
#, no-wrap
msgid "MFH:\t<replaceable>2014Q1</replaceable>"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4735
msgid ""
"It will automatically notify the Ports Security Team <email>ports-"
"secteam@FreeBSD.org</email> and the Ports Management Team "
"<email>portmgr@FreeBSD.org</email>. They will then decide if the commit can "
"be merged and answer with the procedure."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4740
msgid ""
"If the commit has already been made, send an email to the Ports Security "
"Team <email>ports-secteam@FreeBSD.org</email> and the Ports Management Team "
"<email>portmgr@FreeBSD.org</email> with the revision number and a small "
"description of why the commit needs to be merged."
msgstr ""

#. (itstool) path: tip/para
#: article.translate.xml:4746
msgid ""
"If the MFH is covered by a blanket approval, please explain why with a "
"couple of words on the <literal>MFH</literal> line, so that the reviewing "
"team can skip this commit and save time. For example:"
msgstr ""

#. (itstool) path: tip/programlisting
#: article.translate.xml:4752
#, no-wrap
msgid ""
"MFH:  <replaceable>2014Q1 (runtime fix)</replaceable>\n"
"MFH:  <replaceable>2014Q1 (browser blanket)</replaceable>"
msgstr ""

#. (itstool) path: tip/para
#: article.translate.xml:4755
msgid ""
"The list of blanket approvals is available in <xref linkend=\"ports-qa-"
"blanket\"/>."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4763
msgid "Are there any changes that can be merged without asking for approval?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4768
msgid ""
"The following blanket approvals for merging to the quarterly branches are in "
"effect:"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:4772
msgid ""
"This blanket approval also applies to direct commits for ports that have "
"been removed from <literal>head</literal>."
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:4778
msgid ""
"These fixes <emphasis>must</emphasis> be tested on the quarterly branch."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4785
msgid ""
"Fixes that do not result in a change in contents of the resulting package. "
"For example:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4790
msgid ""
"<filename>pkg-descr</filename>: <literal>WWW:</literal> URL updates "
"(existing 404, moved or incorrect)"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4798
msgid ""
"Build, runtime or packaging fixes, if the quarterly branch version is "
"currently broken."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4803
msgid ""
"Missing dependencies (detected, linked against but not registered via "
"<varname><replaceable>*</replaceable>_DEPENDS</varname>)."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4809
msgid ""
"Fixing <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/"
"porters-handbook/uses-shebangfix.html\">shebangs</link>, stripping installed "
"libraries and binaries, and plist fixes."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4815
msgid ""
"Backport of security and reliability fixes which only result in "
"<varname>PORTREVISION</varname> bumps and no changes to enabled features. "
"for example, adding a patch fixing a buffer overflow."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4822
msgid ""
"Minor version changes that do nothing but fix security or crash-related "
"issues."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4827
msgid "Adding/fixing <varname>CONFLICTS</varname>."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:4832
msgid "Web Browsers, browser plugins, and their required dependencies."
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:4838
msgid ""
"Commits that are not covered by these blanket approvals always require "
"explicit approval of either Ports Security Team <email>ports-secteam@FreeBSD."
"org</email> or Ports Management Team <email>portmgr@FreeBSD.org</email>."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4847
msgid "What is the procedure for merging commits to the quarterly branch?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4852
msgid ""
"A script is provided to automate merging a specific commit: <filename>ports/"
"Tools/scripts/mfh</filename>. It is used as follows:"
msgstr ""

#. (itstool) path: answer/screen
#: article.translate.xml:4856
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>/usr/ports/Tools/scripts/mfh 380362</userinput>\n"
" U   2015Q1\n"
"Checked out revision 380443.\n"
"A    2015Q1/security\n"
"Updating '2015Q1/security/rubygem-sshkit':\n"
"A    2015Q1/security/rubygem-sshkit\n"
"A    2015Q1/security/rubygem-sshkit/Makefile\n"
"A    2015Q1/security/rubygem-sshkit/distinfo\n"
"A    2015Q1/security/rubygem-sshkit/pkg-descr\n"
"Updated to revision 380443.\n"
"--- Merging r380362 into '2015Q1':\n"
"U    2015Q1/security/rubygem-sshkit/Makefile\n"
"U    2015Q1/security/rubygem-sshkit/distinfo\n"
"--- Recording mergeinfo for merge of r380362 into '2015Q1':\n"
" U   2015Q1\n"
"--- Recording mergeinfo for merge of r380362 into '2015Q1/security':\n"
" G   2015Q1/security\n"
"--- Eliding mergeinfo from '2015Q1/security':\n"
" U   2015Q1/security\n"
"--- Recording mergeinfo for merge of r380362 into '2015Q1/security/rubygem-sshkit':\n"
" G   2015Q1/security/rubygem-sshkit\n"
"--- Eliding mergeinfo from '2015Q1/security/rubygem-sshkit':\n"
" U   2015Q1/security/rubygem-sshkit\n"
" M      2015Q1\n"
"M       2015Q1/security/rubygem-sshkit/Makefile\n"
"M       2015Q1/security/rubygem-sshkit/distinfo\n"
"Index: 2015Q1/security/rubygem-sshkit/Makefile\n"
"===================================================================\n"
"--- 2015Q1/security/rubygem-sshkit/Makefile     (revision 380443)\n"
"+++ 2015Q1/security/rubygem-sshkit/Makefile     (working copy)\n"
"@@ -2,7 +2,7 @@\n"
" # $FreeBSD$\n"
"\n"
" PORTNAME=      sshkit\n"
"-PORTVERSION=   1.6.1\n"
"+PORTVERSION=   1.7.0\n"
" CATEGORIES=    security rubygems\n"
" MASTER_SITES=  RG\n"
"\n"
"Index: 2015Q1/security/rubygem-sshkit/distinfo\n"
"===================================================================\n"
"--- 2015Q1/security/rubygem-sshkit/distinfo     (revision 380443)\n"
"+++ 2015Q1/security/rubygem-sshkit/distinfo     (working copy)\n"
"@@ -1,2 +1,2 @@\n"
"-SHA256 (rubygem/sshkit-1.6.1.gem) = 8ca67e46bb4ea50fdb0553cda77552f3e41b17a5aa919877d93875dfa22c03a7\n"
"-SIZE (rubygem/sshkit-1.6.1.gem) = 135680\n"
"+SHA256 (rubygem/sshkit-1.7.0.gem) = 90effd1813363bae7355f4a45ebc8335a8ca74acc8d0933ba6ee6d40f281a2cf\n"
"+SIZE (rubygem/sshkit-1.7.0.gem) = 136192\n"
"Index: 2015Q1\n"
"===================================================================\n"
"--- 2015Q1      (revision 380443)\n"
"+++ 2015Q1      (working copy)\n"
"\n"
"Property changes on: 2015Q1\n"
"___________________________________________________________________\n"
"Modified: svn:mergeinfo\n"
"   Merged /head:r380362\n"
"Do you want to commit? (no = start a shell) [y/n]"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4915
msgid ""
"At that point, the script will either open a shell for you to fix things, or "
"open your text editor with the commit message all prepared and then commit "
"the merge."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4920
msgid ""
"The script assumes that you can connect to <literal>repo.FreeBSD.org</"
"literal> with <application>SSH</application> directly, so if your local "
"login name is different than your FreeBSD cluster account, you need a few "
"lines in your <filename>~/.ssh/config</filename>:"
msgstr ""

#. (itstool) path: answer/programlisting
#: article.translate.xml:4927
#, no-wrap
msgid ""
"Host *.freebsd.org\n"
"    User <replaceable>freebsd-login</replaceable>"
msgstr ""

#. (itstool) path: tip/para
#: article.translate.xml:4931
msgid ""
"The script is also able to merge more than one revision at a time. If there "
"have been other updates to the port since the branch was created that have "
"not been merged because they were not security related. Add the different "
"revisions <emphasis>in the order they were committed</emphasis> on the "
"<command>mfh</command> line. The new commit log message will contain the "
"combined log messages from all the original commits. These messages "
"<emphasis>must</emphasis> be edited to show what is actually being done with "
"the new commit."
msgstr ""

#. (itstool) path: tip/screen
#: article.translate.xml:4943
#, no-wrap
msgid "<prompt>%</prompt> <userinput>/usr/ports/Tools/scripts/mfh r407208 r407713 r407722 r408567 r408943 r410728</userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:4947
msgid ""
"The mfh script can also take an optional first argument, the branch where "
"the merge is being done. Only the latest quarterly branch is supported, so "
"specifying the branch is discouraged. To be safe, the script will give a "
"warning if the quarterly branch is not the latest:"
msgstr ""

#. (itstool) path: note/screen
#: article.translate.xml:4954
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>/usr/ports/Tools/scripts/mfh 2016Q1 r407208 r407713</userinput>\n"
"/!\\ The latest branch is 2016Q2, do you really want to commit to 2016Q1? [y/n]"
msgstr ""

#. (itstool) path: qandadiv/title
#: article.translate.xml:4962
msgid "Creating a New Category"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4966
msgid "What is the procedure for creating a new category?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:4971
msgid ""
"Please see <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/"
"porters-handbook/makefile-categories.html#proposing-categories\"> Proposing "
"a New Category</link> in the Porter's Handbook. Once that procedure has been "
"followed and the PR has been assigned to the Ports Management Team "
"<email>portmgr@FreeBSD.org</email>, it is their decision whether or not to "
"approve it. If they do, it is their responsibility to:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4980
msgid "Perform any needed moves. (This only applies to physical categories.)"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4985
msgid ""
"Update the <varname>VALID_CATEGORIES</varname> definition in <filename>ports/"
"Mk/bsd.port.mk</filename>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:4991
msgid "Assign the PR back to you."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:4999
msgid "What do I need to do to implement a new physical category?"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5006
msgid ""
"Upgrade each moved port's <filename>Makefile</filename>. Do not connect the "
"new category to the build yet."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5010
msgid "To do this, you will need to:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5014
msgid ""
"Change the port's <varname>CATEGORIES</varname> (this was the point of the "
"exercise, remember?) The new category is listed <emphasis>first</emphasis>. "
"This will help to ensure that the <varname>PKGORIGIN</varname> is correct."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5024
msgid ""
"Run a <command>make describe</command>. Since the top-level <command>make "
"index</command> that you will be running in a few steps is an iteration of "
"<command>make describe</command> over the entire ports hierarchy, catching "
"any errors here will save you having to re-run that step later on."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5035
msgid ""
"If you want to be really thorough, now might be a good time to run "
"<citerefentry vendor=\"ports\"><refentrytitle>portlint</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5043
msgid ""
"Check that the <varname>PKGORIGIN</varname>s are correct. The ports system "
"uses each port's <varname>CATEGORIES</varname> entry to create its "
"<varname>PKGORIGIN</varname>, which is used to connect installed packages to "
"the port directory they were built from. If this entry is wrong, common port "
"tools like <citerefentry><refentrytitle>pkg_version</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry> and <citerefentry "
"vendor=\"ports\"><refentrytitle>portupgrade</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry> fail."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5052
msgid ""
"To do this, use the <filename>chkorigin.sh</filename> tool: <command>env "
"PORTSDIR=<replaceable>/path/to/ports</replaceable> sh -e <replaceable>/path/"
"to/ports</replaceable>/Tools/scripts/chkorigin.sh</command>. This will check "
"<emphasis>every</emphasis> port in the ports tree, even those not connected "
"to the build, so you can run it directly after the move operation. Hint: do "
"not forget to look at the <varname>PKGORIGIN</varname>s of any slave ports "
"of the ports you just moved!"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5067
msgid ""
"On your own local system, test the proposed changes: first, comment out the "
"<varname>SUBDIR</varname> entries in the old ports' categories' "
"<filename>Makefile</filename>s; then enable building the new category in "
"<filename>ports/Makefile</filename>. Run <command>make checksubdirs</"
"command> in the affected category directories to check the <varname>SUBDIR</"
"varname> entries. Next, in the <filename>ports/</filename> directory, run "
"<command>make index</command>. This can take over 40 minutes on even modern "
"systems; however, it is a necessary step to prevent problems for other "
"people."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5084
msgid ""
"Once this is done, you can commit the updated <filename>ports/Makefile</"
"filename> to connect the new category to the build and also commit the "
"<filename>Makefile</filename> changes for the old category or categories."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5092
msgid "Add appropriate entries to <filename>ports/MOVED</filename>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5097
msgid "Update the documentation by modifying:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5101 article.translate.xml:5149
msgid ""
"the <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/porters-"
"handbook/makefile-categories.html#PORTING-CATEGORIES\">list of categories</"
"link> in the Porter's Handbook"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5107
msgid ""
"<filename>doc/en_US.ISO8859-1/htdocs/ports</filename>. Note that these are "
"now displayed by sub-groups, as specified in <filename>doc/en_US.ISO8859-1/"
"htdocs/ports/categories.descriptions</filename>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5114
msgid ""
"(Note: these are in the docs, not the ports, repository). If you are not a "
"docs committer, you will need to submit a PR for this."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5120
msgid ""
"Only once all the above have been done, and no one is any longer reporting "
"problems with the new ports, should the old ports be deleted from their "
"previous locations in the repository."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5127
msgid ""
"It is not necessary to manually update the <link xlink:href="
"\"@@URL_RELPREFIX@@/ports/index.html\">ports web pages</link> to reflect the "
"new category. This is done automatically via the change to <filename>en_US."
"ISO8859-1/htdocs/ports/categories</filename> and the automated rebuild of "
"<filename>INDEX</filename>."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5139
msgid "What do I need to do to implement a new virtual category?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5144
msgid ""
"This is much simpler than a physical category. Only a few modifications are "
"needed:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5155
msgid "<filename>en_US.ISO8859-1/htdocs/ports/categories</filename>"
msgstr ""

#. (itstool) path: qandadiv/title
#. (itstool) path: sect1/title
#: article.translate.xml:5163 article.translate.xml:5484
msgid "Miscellaneous Questions"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5167
msgid ""
"Are there changes that can be committed without asking the maintainer for "
"approval?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5172
msgid "Blanket approval for most ports applies to these types of fixes:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5177
msgid ""
"Most infrastructure changes to a port (that is, modernizing, but not "
"changing the functionality). For example, the blanket covers converting to "
"new <varname>USES</varname> macros, enabling verbose builds, and switching "
"to new ports system syntaxes."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5186
msgid "Trivial and <emphasis>tested</emphasis> build and runtime fixes."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5191
msgid ""
"Documentations or metadata changes to ports, like <filename>pkg-descr</"
"filename> or <varname>COMMENT</varname>."
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:5198
msgid ""
"Exceptions to this are anything maintained by the Ports Management Team "
"<email>portmgr@FreeBSD.org</email>, or the Security Officer Team "
"<email>security-officer@FreeBSD.org</email>. No unauthorized commits may "
"ever be made to ports maintained by those groups."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5209
msgid "How do I know if my port is building correctly or not?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5214
msgid ""
"The packages are built multiple times each week. If a port fails, the "
"maintainer will receive an email from <literal>pkg-fallout@FreeBSD.org</"
"literal>."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5218
msgid ""
"Reports for all the package builds (official, experimental, and non-"
"regression) are aggregated at <link xlink:href=\"https://pkg-status.freebsd."
"org/\">pkg-status.FreeBSD.org</link>."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5226
msgid ""
"I added a new port. Do I need to add it to the <filename>INDEX</filename>?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5231
msgid ""
"No. The file can either be generated by running <command>make index</"
"command>, or a pre-generated version can be downloaded with <command>make "
"fetchindex</command>."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5240
msgid "Are there any other files I am not allowed to touch?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5245
msgid ""
"Any file directly under <filename>ports/</filename>, or any file under a "
"subdirectory that starts with an uppercase letter (<filename>Mk/</filename>, "
"<filename>Tools/</filename>, etc.). In particular, the Ports Management Team "
"<email>portmgr@FreeBSD.org</email> is very protective of <filename>ports/Mk/"
"bsd.port*.mk</filename> so do not commit changes to those files unless you "
"want to face their wrath."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5258
msgid ""
"What is the proper procedure for updating the checksum for a port distfile "
"when the file changes without a version change?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5264
msgid ""
"When the checksum for a distribution file is updated due to the author "
"updating the file without changing the port revision, the commit message "
"includes a summary of the relevant diffs between the original and new "
"distfile to ensure that the distfile has not been corrupted or maliciously "
"altered. If the current version of the port has been in the ports tree for a "
"while, a copy of the old distfile will usually be available on the ftp "
"servers; otherwise the author or maintainer should be contacted to find out "
"why the distfile has changed."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5280
msgid ""
"How can an experimental test build of the ports tree (<emphasis>exp-run</"
"emphasis>) be requested?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5285
msgid ""
"An exp-run must be completed before patches with a significant ports impact "
"are committed. The patch can be against the ports tree or the base system."
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5289
msgid ""
"Full package builds will be done with the patches provided by the submitter, "
"and the submitter is required to fix detected problems (<emphasis>fallout</"
"emphasis>) before commit."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5296
msgid ""
"Go to the <link xlink:href=\"https://bugs.freebsd.org/submit\">Bugzilla new "
"<acronym>PR</acronym> page</link>."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5301
msgid "Select the product your patch is about."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5305
msgid "Fill in the bug report as normal. Remember to attach the patch."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5310
msgid ""
"If at the top it says <quote>Show Advanced Fields</quote> click on it. It "
"will now say <quote>Hide Advanced Fields</quote>. Many new fields will be "
"available. If it already says <quote>Hide Advanced Fields</quote>, no need "
"to do anything."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5319
msgid ""
"In the <quote>Flags</quote> section, set the <quote>exp-run</quote> one to "
"<literal>?</literal>. As for all other fields, hovering the mouse over any "
"field shows more details."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5326
msgid "Submit. Wait for the build to run."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5330
msgid ""
"Ports Management Team <email>portmgr@FreeBSD.org</email> will reply with a "
"possible fallout."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5335
msgid "Depending on the fallout:"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5339
msgid ""
"If there is no fallout, the procedure stops here, and the change can be "
"committed, pending any other approval required."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5347
msgid ""
"If there is fallout, it <emphasis>must</emphasis> be fixed, either by fixing "
"the ports directly in the ports tree, or adding to the submitted patch."
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:5355
msgid ""
"When this is done, go back to step 6 saying the fallout was fixed and wait "
"for the exp-run to be run again. Repeat as long as there are broken ports."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:5372
msgid "Issues Specific to Developers Who Are Not Committers"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:5375
msgid ""
"A few people who have access to the FreeBSD machines do not have commit "
"bits. Almost all of this document will apply to these developers as well "
"(except things specific to commits and the mailing list memberships that go "
"with them). In particular, we recommend that you read:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5383
msgid "<link linkend=\"admin\">Administrative Details</link>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5388
msgid "<link linkend=\"conventions-everyone\">Conventions</link>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:5391
msgid ""
"Get your mentor to add you to the <quote>Additional Contributors</quote> "
"(<filename>doc/en_US.ISO8859-1/articles/contributors/contrib.additional.xml</"
"filename>), if you are not already listed there."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5399
msgid "<link linkend=\"developer.relations\">Developer Relations</link>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5404
msgid "<link linkend=\"ssh.guide\">SSH Quick-Start Guide</link>"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5409
msgid ""
"<link linkend=\"rules\">The FreeBSD Committers' Big List of Rules</link>"
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:5417
msgid "Information About Google Analytics"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:5419
msgid ""
"As of December 12, 2012, Google Analytics was enabled on the FreeBSD Project "
"website to collect anonymized usage statistics regarding usage of the site. "
"The information collected is valuable to the FreeBSD Documentation Project, "
"to identify various problems on the FreeBSD website."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:5426
msgid "Google Analytics General Policy"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5428
msgid ""
"The FreeBSD Project takes visitor privacy very seriously. As such, the "
"FreeBSD Project website honors the <quote>Do Not Track</quote> header "
"<emphasis>before</emphasis> fetching the tracking code from Google. For more "
"information, please see the <link xlink:href=\"https://www.FreeBSD.org/"
"privacy.html\">FreeBSD Privacy Policy</link>."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5436
msgid ""
"Google Analytics access is <emphasis>not</emphasis> arbitrarily allowed — "
"access must be requested, voted on by the Documentation Engineering Team "
"<email>doceng@FreeBSD.org</email>, and explicitly granted."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5440
msgid ""
"Requests for Google Analytics data must include a specific purpose. For "
"example, a valid reason for requesting access would be <quote>to see the "
"most frequently used web browsers when viewing FreeBSD web pages to ensure "
"page rendering speeds are acceptable.</quote>"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5446
msgid ""
"Conversely, <quote>to see what web browsers are most frequently used</quote> "
"(without stating <emphasis>why</emphasis>) would be rejected."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5450
msgid ""
"All requests must include the timeframe for which the data would be "
"required. For example, it must be explicitly stated if the requested data "
"would be needed for a timeframe covering a span of 3 weeks, or if the "
"request would be one-time only."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5456
msgid ""
"Any request for Google Analytics data without a clear, reasonable reason "
"beneficial to the FreeBSD Project will be rejected."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:5462
msgid "Data Available Through Google Analytics"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5464
msgid "A few examples of the types of Google Analytics data available include:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5469
msgid "Commonly used web browsers"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5473
msgid "Page load times"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:5477
msgid "Site access by language"
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5489
msgid "How do I add a new file to a branch?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5493
msgid ""
"To add a file onto a branch, simply checkout or update to the branch you "
"want to add to and then add the file using the add operation as you normally "
"would. This works fine for the <literal>doc</literal> and <literal>ports</"
"literal> trees. The <literal>src</literal> tree uses SVN and requires more "
"care because of the <literal>mergeinfo</literal> properties. See the <link "
"linkend=\"subversion-primer\">Subversion Primer</link> for details on how to "
"perform an MFC."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5508
msgid ""
"How do I access <systemitem class=\"fqdomainname\">people.FreeBSD.org</"
"systemitem> to put up personal or project information?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5513
msgid ""
"<systemitem class=\"fqdomainname\">people.FreeBSD.org</systemitem> is the "
"same as <systemitem class=\"fqdomainname\">freefall.FreeBSD.org</"
"systemitem>. Just create a <filename>public_html</filename> directory. "
"Anything you place in that directory will automatically be visible under "
"<uri xlink:href=\"https://people.FreeBSD.org/\">https://people.FreeBSD.org/</"
"uri>."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5523
msgid "Where are the mailing list archives stored?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5527
msgid ""
"The mailing lists are archived under <filename>/local/mail</filename> on "
"<systemitem class=\"fqdomainname\">freefall.FreeBSD.org</systemitem>."
msgstr ""

#. (itstool) path: question/para
#: article.translate.xml:5534
msgid ""
"I would like to mentor a new committer. What process do I need to follow?"
msgstr ""

#. (itstool) path: answer/para
#: article.translate.xml:5539
msgid ""
"See the <link xlink:href=\"https://www.freebsd.org/internal/new-account.html"
"\">New Account Creation Procedure</link> document on the internal pages."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:5548
msgid "Benefits and Perks for FreeBSD Committers"
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:5551
msgid "Recognition"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5553
msgid ""
"Recognition as a competent software engineer is the longest lasting value. "
"In addition, getting a chance to work with some of the best people that "
"every engineer would dream of meeting is a great perk!"
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:5560
msgid "FreeBSD Mall"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5562
msgid ""
"FreeBSD committers can get a free 4-CD or DVD set at conferences from <link "
"xlink:href=\"http://www.freebsdmall.com\">FreeBSD Mall, Inc.</link>."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:5569
msgid "<acronym>IRC</acronym>"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5571
msgid ""
"In addition, developers may request a cloaked hostmask for their account on "
"the Freenode IRC network in the form of <literal>freebsd/developer/</"
"literal><replaceable>freefall name</replaceable> or <literal>freebsd/"
"developer/</literal><replaceable>NickServ name</replaceable>. To request a "
"cloak, send an email to <email>irc@FreeBSD.org</email> with your requested "
"hostmask and NickServ account name."
msgstr ""

#. (itstool) path: sect2/title
#: article.translate.xml:5583
msgid "<systemitem class=\"domainname\">Gandi.net</systemitem>"
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5585
msgid ""
"Gandi provides website hosting, cloud computing, domain registration, and "
"X.509 certificate services."
msgstr ""

#. (itstool) path: sect2/para
#: article.translate.xml:5588
msgid ""
"Gandi offers an E-rate discount to all FreeBSD developers. Send mail to "
"<email>non-profit@gandi.net</email> using your <literal>@freebsd.org</"
"literal> mail address, and indicate your Gandi handle."
msgstr ""
