From owner-dev-commits-doc-all@freebsd.org Mon Jun 14 13:12:27 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7F52C642A35 for ; Mon, 14 Jun 2021 13:12:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G3X1738tcz4t4g; Mon, 14 Jun 2021 13:12:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 54D2815459; Mon, 14 Jun 2021 13:12:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15EDCRFv086963; Mon, 14 Jun 2021 13:12:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15EDCRXn086962; Mon, 14 Jun 2021 13:12:27 GMT (envelope-from git) Date: Mon, 14 Jun 2021 13:12:27 GMT Message-Id: <202106141312.15EDCRXn086962@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ceri Davies Subject: git: 3dfac3f91b - main - handbook: No need to specify the md device number, so don't. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ceri X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3dfac3f91bbf9e987b3e10c2980c7ca40de6abbc Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2021 13:12:27 -0000 The branch main has been updated by ceri: URL: https://cgit.FreeBSD.org/doc/commit/?id=3dfac3f91bbf9e987b3e10c2980c7ca40de6abbc commit 3dfac3f91bbf9e987b3e10c2980c7ca40de6abbc Author: Ceri Davies AuthorDate: 2021-06-14 13:04:57 +0000 Commit: Ceri Davies CommitDate: 2021-06-14 13:11:48 +0000 handbook: No need to specify the md device number, so don't. --- documentation/content/en/books/handbook/config/_index.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/documentation/content/en/books/handbook/config/_index.adoc b/documentation/content/en/books/handbook/config/_index.adoc index 9eba4273e8..5fd0076cc2 100644 --- a/documentation/content/en/books/handbook/config/_index.adoc +++ b/documentation/content/en/books/handbook/config/_index.adoc @@ -1657,10 +1657,9 @@ See crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel] for infor + [.programlisting] .... -md99 none swap sw,file=/usr/swap0,late 0 0 +md none swap sw,file=/usr/swap0,late 0 0 .... + -The man:md[4] device [.filename]#md99# is used, leaving lower device numbers available for interactive use. . Swap space will be added on system startup. To add swap space immediately, use man:swapon[8]: + [source,shell] From owner-dev-commits-doc-all@freebsd.org Mon Jun 14 13:12:28 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A0C70642BB5 for ; Mon, 14 Jun 2021 13:12:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G3X184DjDz4tP2; Mon, 14 Jun 2021 13:12:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7890E151E5; Mon, 14 Jun 2021 13:12:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15EDCSkD086987; Mon, 14 Jun 2021 13:12:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15EDCSTk086986; Mon, 14 Jun 2021 13:12:28 GMT (envelope-from git) Date: Mon, 14 Jun 2021 13:12:28 GMT Message-Id: <202106141312.15EDCSTk086986@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ceri Davies Subject: git: 2666a5d12e - main - handbook: Add new crypt formats, and a pointer to futureproof this. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ceri X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2666a5d12ec2654b8730a45a17dba2d48fdb5664 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2021 13:12:28 -0000 The branch main has been updated by ceri: URL: https://cgit.FreeBSD.org/doc/commit/?id=2666a5d12ec2654b8730a45a17dba2d48fdb5664 commit 2666a5d12ec2654b8730a45a17dba2d48fdb5664 Author: Ceri Davies AuthorDate: 2021-06-14 13:10:59 +0000 Commit: Ceri Davies CommitDate: 2021-06-14 13:11:48 +0000 handbook: Add new crypt formats, and a pointer to futureproof this. --- documentation/content/en/books/handbook/network-servers/_index.adoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/documentation/content/en/books/handbook/network-servers/_index.adoc b/documentation/content/en/books/handbook/network-servers/_index.adoc index 14a9e888b2..1100c915eb 100644 --- a/documentation/content/en/books/handbook/network-servers/_index.adoc +++ b/documentation/content/en/books/handbook/network-servers/_index.adoc @@ -1238,8 +1238,9 @@ default:\ [Further entries elided] .... -In this example, the system is using the DES format. -Other possible values are `blf` for Blowfish and `md5` for MD5 encrypted passwords. +In this example, the system is using the DES format for password hashing. +Other possible values include `blf` for Blowfish, `md5` for MD5, `sha256` and `sha512` for SHA-256 and SHA-512 respectively. +For more information and the up to date list of what is available on your system, consult the man:crypt[3] manpage. If the format on a host needs to be edited to match the one being used in the NIS domain, the login capability database must be rebuilt after saving the change: From owner-dev-commits-doc-all@freebsd.org Mon Jun 14 17:37:40 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C623E65FA9C for ; Mon, 14 Jun 2021 17:37:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G3dv84xDgz3tbF; Mon, 14 Jun 2021 17:37:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8D63518F5B; Mon, 14 Jun 2021 17:37:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15EHbeLO037701; Mon, 14 Jun 2021 17:37:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15EHbeqe037700; Mon, 14 Jun 2021 17:37:40 GMT (envelope-from git) Date: Mon, 14 Jun 2021 17:37:40 GMT Message-Id: <202106141737.15EHbeqe037700@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 09d6adaf27 - main - committer-guide: Add link to migration article MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 09d6adaf27ed0a4333a4bcc1267851c6a9125e34 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2021 17:37:40 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=09d6adaf27ed0a4333a4bcc1267851c6a9125e34 commit 09d6adaf27ed0a4333a4bcc1267851c6a9125e34 Author: Warner Losh AuthorDate: 2021-06-14 17:35:53 +0000 Commit: Warner Losh CommitDate: 2021-06-14 17:37:09 +0000 committer-guide: Add link to migration article Although the final commit in the old, legacy repo had excellent details on migration, this article has a few details that might also be helpful in migrating. Add it as an additional resource. Sponsored by: Netflix --- documentation/content/en/articles/committers-guide/_index.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 8cc8a8beeb..638c2a8100 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -1769,6 +1769,7 @@ The hex number after 'commit' is the hash you can use to refer to this commit. Note: as of this writing, https://github.com/freebsd/freebsd-src is mirroring all official branches, along with a `master` branch which is the legacy svn2git result. The `master` branch will not be updated anymore, and the link:https://github.com/freebsd/freebsd-src/commit/de1aa3dab23c06fec962a14da3e7b4755c5880cf[last commit] contains the instructions for migrating to the new `main` branch. We'll retain the `master` branch for a certain time, but in the future it will only be kept in the link:https://github.com/freebsd/freebsd-legacy[freebsd-legacy] repository. +In addition, link:https://github.com/freebsd/git_conv/wiki/Migrating-merge-based-project-from-legacy-git-tree[this article] has an earlier version of the last commit instructions that may be helpful. When migrating branches from a GitHub fork from the old GitHub mirror to the official repo, the process is straight forward. This assumes that you have a `freebsd` upstream pointing to GitHub, adjust if necessary. From owner-dev-commits-doc-all@freebsd.org Tue Jun 15 01:17:29 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A559365B8FD for ; Tue, 15 Jun 2021 01:17:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G3r5j4KDRz3qcb; Tue, 15 Jun 2021 01:17:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7CA551F0F0; Tue, 15 Jun 2021 01:17:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15F1HTiB062592; Tue, 15 Jun 2021 01:17:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15F1HT42062591; Tue, 15 Jun 2021 01:17:29 GMT (envelope-from git) Date: Tue, 15 Jun 2021 01:17:29 GMT Message-Id: <202106150117.15F1HT42062591@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: bccb39375b - main - comitter-guide: Add link to git for computer scientists MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bccb39375bab8c2e9304993feef2564c13e2ec65 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2021 01:17:29 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=bccb39375bab8c2e9304993feef2564c13e2ec65 commit bccb39375bab8c2e9304993feef2564c13e2ec65 Author: Warner Losh AuthorDate: 2021-06-15 01:16:07 +0000 Commit: Warner Losh CommitDate: 2021-06-15 01:16:07 +0000 comitter-guide: Add link to git for computer scientists Add a link that I've shared with several people who found it useful to get a good mental model of git. It's written specifically for computer scientists. Sponsored by: Netflix --- documentation/content/en/articles/committers-guide/_index.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 638c2a8100..401d0c97c0 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -283,6 +283,7 @@ There's a lot of them (search for "Git primer"). https://danielmiessler.com/study/git/ and https://gist.github.com/williewillus/068e9a8543de3a7ef80adb2938657b6b are good overviews. The Git book is also complete, but much longer https://git-scm.com/book/en/v2. There is also this website https://ohshitgit.com/ for common traps and pitfalls of Git, in case you need guidance to fix things up. +In addition, an introduction link:https://eagain.net/articles/git-for-computer-scientists/[targeted at computer scientists] has proven helpful to some. This document will assume that you've read through it and will try not to belabor the basics (though it will cover them briefly). From owner-dev-commits-doc-all@freebsd.org Tue Jun 15 04:43:09 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3BC8165F0A8 for ; Tue, 15 Jun 2021 04:43:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G3wg110gYz4XrP; Tue, 15 Jun 2021 04:43:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F40E521E26; Tue, 15 Jun 2021 04:43:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15F4h8NY044466; Tue, 15 Jun 2021 04:43:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15F4h83c044465; Tue, 15 Jun 2021 04:43:08 GMT (envelope-from git) Date: Tue, 15 Jun 2021 04:43:08 GMT Message-Id: <202106150443.15F4h83c044465@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 2c7165edba - main - committers-guide: wordsmith the basics with the links a little. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2c7165edbaf2f2ba70f9919cbb1910bfe86c4e1c Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2021 04:43:09 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=2c7165edbaf2f2ba70f9919cbb1910bfe86c4e1c commit 2c7165edbaf2f2ba70f9919cbb1910bfe86c4e1c Author: Warner Losh AuthorDate: 2021-06-15 04:42:11 +0000 Commit: Warner Losh CommitDate: 2021-06-15 04:42:11 +0000 committers-guide: wordsmith the basics with the links a little. Sponsored by: Netflix --- documentation/content/en/articles/committers-guide/_index.adoc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 401d0c97c0..6dffae7c69 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -278,12 +278,11 @@ Mentored committers can provide a "Reviewed by" but not an "Approved by". [[git-basics]] === Git basics -There are many primers on how to use Git on the web. -There's a lot of them (search for "Git primer"). -https://danielmiessler.com/study/git/ and https://gist.github.com/williewillus/068e9a8543de3a7ef80adb2938657b6b are good overviews. +When one searches for "Git Primer" a number of good ones come up. +Daniel Miessler's link:https://danielmiessler.com/study/git/[A git primer] and Willie Willus' link:https://gist.github.com/williewillus/068e9a8543de3a7ef80adb2938657b6b[Git - Quick Primer] are both good overviews. The Git book is also complete, but much longer https://git-scm.com/book/en/v2. There is also this website https://ohshitgit.com/ for common traps and pitfalls of Git, in case you need guidance to fix things up. -In addition, an introduction link:https://eagain.net/articles/git-for-computer-scientists/[targeted at computer scientists] has proven helpful to some. +Finally, an introduction link:https://eagain.net/articles/git-for-computer-scientists/[targeted at computer scientists] has proven helpful to some at explaining the Git world view. This document will assume that you've read through it and will try not to belabor the basics (though it will cover them briefly). From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 02:49:31 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9DDCD65915A for ; Wed, 16 Jun 2021 02:49:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G4V5R3mkdz4Wbn; Wed, 16 Jun 2021 02:49:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6937C13F32; Wed, 16 Jun 2021 02:49:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15G2nVkO012501; Wed, 16 Jun 2021 02:49:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15G2nVOD012500; Wed, 16 Jun 2021 02:49:31 GMT (envelope-from git) Date: Wed, 16 Jun 2021 02:49:31 GMT Message-Id: <202106160249.15G2nVOD012500@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 1962be9beb - main - Change Docbook to AsciiDoc in the contributing article. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1962be9bebf70b024c9148a4362cfbc5dff8063d Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 02:49:31 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=1962be9bebf70b024c9148a4362cfbc5dff8063d commit 1962be9bebf70b024c9148a4362cfbc5dff8063d Author: Warner Losh AuthorDate: 2021-06-16 02:45:50 +0000 Commit: Warner Losh CommitDate: 2021-06-16 02:48:25 +0000 Change Docbook to AsciiDoc in the contributing article. Also change ASCII to plain text to reflect more recent usage. Sponsored by: Netflix --- documentation/content/en/articles/contributing/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/content/en/articles/contributing/_index.adoc b/documentation/content/en/articles/contributing/_index.adoc index 4692420631..e3f4017d4a 100644 --- a/documentation/content/en/articles/contributing/_index.adoc +++ b/documentation/content/en/articles/contributing/_index.adoc @@ -75,7 +75,7 @@ Many people who are involved in FreeBSD are not programmers. The Project includes documentation writers, Web designers, and support people. All that these people need to contribute is an investment of time and a willingness to learn. -. Read through the FAQ and Handbook periodically. If anything is poorly explained, ambiguous, out of date or incorrect, let us know. Even better, send us a fix (Docbook is not difficult to learn, but there is no objection to ASCII submissions). +. Read through the FAQ and Handbook periodically. If anything is poorly explained, ambiguous, out of date or incorrect, let us know. Even better, send us a fix (AsciiDoc is not difficult to learn, but there is no objection to plain text submissions). . Help translate FreeBSD documentation into your native language. If documentation already exists for your language, you can help translate additional documents or verify that the translations are up-to-date and correct. First take a look at the link:{fdp-primer}#translations[Translations FAQ] in the FreeBSD Documentation Project Primer. You are not committing yourself to translating every single FreeBSD document by doing this - as a volunteer, you can do as much or as little translation as you desire. Once someone begins translating, others almost always join the effort. If you only have the time or energy to translate one part of the documentation, please translate the installation instructions. . Read the {freebsd-questions} occasionally (or even regularly). It can be very satisfying to share your expertise and help people solve their problems; sometimes you may even learn something new yourself! These forums can also be a source of ideas for things to improve upon. From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 14:52:56 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E7B44663CE8 for ; Wed, 16 Jun 2021 14:52:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G4p885xNyz4Xmk; Wed, 16 Jun 2021 14:52:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B47661DC12; Wed, 16 Jun 2021 14:52:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GEquw5087721; Wed, 16 Jun 2021 14:52:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GEqu08087720; Wed, 16 Jun 2021 14:52:56 GMT (envelope-from git) Date: Wed, 16 Jun 2021 14:52:56 GMT Message-Id: <202106161452.15GEqu08087720@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 8dd6ba22af - main - committers-guide: fix thinko: this should be --ff-only to match elsewhere MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8dd6ba22afde42ad1da8b48b8b11414378e0248c Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 14:52:57 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=8dd6ba22afde42ad1da8b48b8b11414378e0248c commit 8dd6ba22afde42ad1da8b48b8b11414378e0248c Author: Warner Losh AuthorDate: 2021-06-16 14:52:14 +0000 Commit: Warner Losh CommitDate: 2021-06-16 14:52:14 +0000 committers-guide: fix thinko: this should be --ff-only to match elsewhere --- documentation/content/en/articles/committers-guide/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 6dffae7c69..44360132c1 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -744,7 +744,7 @@ It is important to start rebasing operations with a clean tree (Git usually requ [source,shell] .... % git checkout main -% git pull --no-ff +% git pull --ff-only % git rebase -i main no-color-ls .... From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 14:55:01 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34172663CEB for ; Wed, 16 Jun 2021 14:55:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G4pBY06GCz4Xmt; Wed, 16 Jun 2021 14:55:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DC5501DC81; Wed, 16 Jun 2021 14:55:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GEt0iF088072; Wed, 16 Jun 2021 14:55:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GEt05G088071; Wed, 16 Jun 2021 14:55:00 GMT (envelope-from git) Date: Wed, 16 Jun 2021 14:55:00 GMT Message-Id: <202106161455.15GEt05G088071@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 3da6865c14 - main - committers-guide: git always requires a clean tree to rebase. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3da6865c14b60d0a0d94e1e66158c5bfb9f11e96 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 14:55:01 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=3da6865c14b60d0a0d94e1e66158c5bfb9f11e96 commit 3da6865c14b60d0a0d94e1e66158c5bfb9f11e96 Author: Warner Losh AuthorDate: 2021-06-16 14:54:04 +0000 Commit: Warner Losh CommitDate: 2021-06-16 14:54:04 +0000 committers-guide: git always requires a clean tree to rebase. Remove confusing word. Sponsored by: Netflix --- documentation/content/en/articles/committers-guide/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 44360132c1..e27ffcfe8e 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -739,7 +739,7 @@ I have opted to do it on the commit command line, but you can also do it with 'g When it is time to bring in a new version, it is almost the same as w/o the branches. You would update like you would above, but there is one extra command before you update, and one after. The following assumes you are starting with an unmodified tree. -It is important to start rebasing operations with a clean tree (Git usually requires this). +It is important to start rebasing operations with a clean tree (Git requires this). [source,shell] .... From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 15:44:49 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 001386647BD for ; Wed, 16 Jun 2021 15:44:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G4qJ06Q9Xz4d7h; Wed, 16 Jun 2021 15:44:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C421E1DEF5; Wed, 16 Jun 2021 15:44:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GFimGZ055685; Wed, 16 Jun 2021 15:44:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GFimlG055684; Wed, 16 Jun 2021 15:44:48 GMT (envelope-from git) Date: Wed, 16 Jun 2021 15:44:48 GMT Message-Id: <202106161544.15GFimlG055684@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 304a5e3754 - main - port-handbook: $FreeBSD$ was removed from the ports tree, remove it here MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 304a5e375433010af45617db042fd545385c02cb Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 15:44:49 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=304a5e375433010af45617db042fd545385c02cb commit 304a5e375433010af45617db042fd545385c02cb Author: Warner Losh AuthorDate: 2021-06-16 15:43:37 +0000 Commit: Warner Losh CommitDate: 2021-06-16 15:43:40 +0000 port-handbook: $FreeBSD$ was removed from the ports tree, remove it here Sponsored by: Netflix --- documentation/content/en/books/handbook/ports/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/content/en/books/handbook/ports/_index.adoc b/documentation/content/en/books/handbook/ports/_index.adoc index 310b9d3c35..38d84a4154 100644 --- a/documentation/content/en/books/handbook/ports/_index.adoc +++ b/documentation/content/en/books/handbook/ports/_index.adoc @@ -1314,7 +1314,7 @@ This decision is left to the individual system administrator. When a port does not build or install, try the following: . Search to see if there is a fix pending for the port in the link:https://www.FreeBSD.org/support/[Problem Report database]. If so, implementing the proposed fix may fix the issue. -. Ask the maintainer of the port for help. Type `make maintainer` in the ports skeleton or read the port's [.filename]#Makefile# to find the maintainer's email address. Remember to include the `$FreeBSD:` line from the port's [.filename]#Makefile# and the output leading up to the error in the email to the maintainer. +. Ask the maintainer of the port for help. Type `make maintainer` in the ports skeleton or read the port's [.filename]#Makefile# to find the maintainer's email address. Remember to include the output leading up to the error in the email to the maintainer. + [NOTE] ==== From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 20:00:33 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5EFF6641F40 for ; Wed, 16 Jun 2021 20:00:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G4wz51VtLz3JhY; Wed, 16 Jun 2021 20:00:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C0FDB21960; Wed, 16 Jun 2021 20:00:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GK0WEh098867; Wed, 16 Jun 2021 20:00:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GK0Wg3098866; Wed, 16 Jun 2021 20:00:32 GMT (envelope-from git) Date: Wed, 16 Jun 2021 20:00:32 GMT Message-Id: <202106162000.15GK0Wg3098866@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ceri Davies Subject: git: 55ff91a87b - main - documentation/tools: warn, but don't fail, on languages without books. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ceri X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 55ff91a87b9b8de6af8ae5a871af3f5b46a7b747 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 20:00:33 -0000 The branch main has been updated by ceri: URL: https://cgit.FreeBSD.org/doc/commit/?id=55ff91a87b9b8de6af8ae5a871af3f5b46a7b747 commit 55ff91a87b9b8de6af8ae5a871af3f5b46a7b747 Author: Ceri Davies AuthorDate: 2021-06-16 13:11:00 +0000 Commit: Ceri Davies CommitDate: 2021-06-16 20:00:26 +0000 documentation/tools: warn, but don't fail, on languages without books. This allows us to pass a full list of languages to the pdf target. The -o option does not warn, continuing merely to print a list of files that it would create. --- documentation/tools/books-toc-creator.py | 6 ++++++ documentation/tools/books-toc-examples-creator.py | 6 ++++++ documentation/tools/books-toc-figures-creator.py | 6 ++++++ documentation/tools/books-toc-parts-creator.py | 5 +++++ documentation/tools/books-toc-tables-creator.py | 6 ++++++ 5 files changed, 29 insertions(+) diff --git a/documentation/tools/books-toc-creator.py b/documentation/tools/books-toc-creator.py index bd85b7e923..33b15ca1ff 100644 --- a/documentation/tools/books-toc-creator.py +++ b/documentation/tools/books-toc-creator.py @@ -9,6 +9,7 @@ This script will generate the Table of Contents of the books. import sys, getopt import re +import os.path languages = [] @@ -147,6 +148,11 @@ def main(argv): for language in langargs: + if not os.path.exists('./content/{}/books/books.adoc'.format(language)): + if not justPrintOutput: + print('Warning: no books found for language "{0}"'.format(language)) + continue + with open('./content/{}/books/books.adoc'.format(language), 'r', encoding = 'utf-8') as booksFile: books = [line.strip() for line in booksFile] diff --git a/documentation/tools/books-toc-examples-creator.py b/documentation/tools/books-toc-examples-creator.py index 423239c30d..638073d397 100644 --- a/documentation/tools/books-toc-examples-creator.py +++ b/documentation/tools/books-toc-examples-creator.py @@ -12,6 +12,7 @@ books. import sys, getopt import re +import os.path languages = [] @@ -78,6 +79,11 @@ def main(argv): for language in langargs: + if not os.path.exists('./content/{}/books/books.adoc'.format(language)): + if not justPrintOutput: + print('Warning: no books found for language "{0}"'.format(language)) + continue + with open('./content/{}/books/books.adoc'.format(language), 'r', encoding = 'utf-8') as booksFile: books = [line.strip() for line in booksFile] diff --git a/documentation/tools/books-toc-figures-creator.py b/documentation/tools/books-toc-figures-creator.py index fbe1d62c65..db8b06c639 100644 --- a/documentation/tools/books-toc-figures-creator.py +++ b/documentation/tools/books-toc-figures-creator.py @@ -12,6 +12,7 @@ in the books. import sys, getopt import re +import os.path languages = [] @@ -78,6 +79,11 @@ def main(argv): for language in langargs: + if not os.path.exists('./content/{}/books/books.adoc'.format(language)): + if not justPrintOutput: + print('Warning: no books found for language "{0}"'.format(language)) + continue + with open('./content/{}/books/books.adoc'.format(language), 'r', encoding = 'utf-8') as booksFile: books = [line.strip() for line in booksFile] diff --git a/documentation/tools/books-toc-parts-creator.py b/documentation/tools/books-toc-parts-creator.py index aeb035b8cb..98d1636953 100644 --- a/documentation/tools/books-toc-parts-creator.py +++ b/documentation/tools/books-toc-parts-creator.py @@ -144,6 +144,11 @@ def main(argv): for language in langargs: + if not os.path.exists('./content/{}/books/books.adoc'.format(language)): + if not justPrintOutput: + print('Warning: no books found for language "{0}"'.format(language)) + continue + with open('./content/{}/books/books.adoc'.format(language), 'r', encoding = 'utf-8') as booksFile: books = [line.strip() for line in booksFile] diff --git a/documentation/tools/books-toc-tables-creator.py b/documentation/tools/books-toc-tables-creator.py index 67f1733d45..049098914a 100644 --- a/documentation/tools/books-toc-tables-creator.py +++ b/documentation/tools/books-toc-tables-creator.py @@ -11,6 +11,7 @@ This script will generate the Table of Contents for tables in the books. import sys, getopt import re +import os.path languages = [] @@ -77,6 +78,11 @@ def main(argv): for language in langargs: + if not os.path.exists('./content/{}/books/books.adoc'.format(language)): + if not justPrintOutput: + print('Warning: no books found for language "{0}"'.format(language)) + continue + with open('./content/{}/books/books.adoc'.format(language), 'r', encoding = 'utf-8') as booksFile: books = [line.strip() for line in booksFile] From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 20:00:34 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25937641FB8 for ; Wed, 16 Jun 2021 20:00:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G4wz60VPmz3Jrb; Wed, 16 Jun 2021 20:00:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB91721D80; Wed, 16 Jun 2021 20:00:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GK0XuZ098891; Wed, 16 Jun 2021 20:00:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GK0XLZ098890; Wed, 16 Jun 2021 20:00:33 GMT (envelope-from git) Date: Wed, 16 Jun 2021 20:00:33 GMT Message-Id: <202106162000.15GK0XLZ098890@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ceri Davies Subject: git: 0b54eb3971 - main - documentation/Makefile: use all languages by default MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ceri X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0b54eb39712d50ae3b3e02ff5f08aa86483a4d7b Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 20:00:34 -0000 The branch main has been updated by ceri: URL: https://cgit.FreeBSD.org/doc/commit/?id=0b54eb39712d50ae3b3e02ff5f08aa86483a4d7b commit 0b54eb39712d50ae3b3e02ff5f08aa86483a4d7b Author: Ceri Davies AuthorDate: 2021-06-16 16:42:28 +0000 Commit: Ceri Davies CommitDate: 2021-06-16 20:00:26 +0000 documentation/Makefile: use all languages by default Previously we only added languages with content in books/ to the LANGUAGES variable because they would cause the build to fail, and this meant that they did not get PDFs built either. It also meant they could not be included in DOC_LANG as this then break the build. Add a new variable, ARTICLEONLY_LANGS, to identify them and, with the safety of the new logic in the tools/book-toc*py scripts to warn if we miss one, build all of the content by default under the PDF target. This also makes DOC_LANG safe to use even if there isn't a book in that language. --- documentation/Makefile | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/documentation/Makefile b/documentation/Makefile index 0c4725d19e..9ce6a8b616 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -16,6 +16,9 @@ MAINTAINER=carlavilla@FreeBSD.org +# List of languages without book translations +ARTICLEONLY_LANGS= bd da ko tr + LOCALBASE?= /usr/local PYTHON_CMD = ${LOCALBASE}/bin/python3 @@ -24,9 +27,9 @@ HUGO_CMD = ${LOCALBASE}/bin/hugo HUGO_ARGS?= --verbose --minify ASCIIDOCTORPDF_CMD= ${LOCALBASE}/bin/asciidoctor-pdf .if defined(DOC_LANG) && !empty(DOC_LANG) -LANGUAGES = ${DOC_LANG} +LANGUAGES= ${DOC_LANG:S/,/ /g} .else -LANGUAGES = en,es,pt-br,de,ja,zh-cn,zh-tw,ru,el,hu,it,mn,nl,pl,fr +LANGUAGES= bd da de el en es fr hu it ja ko mn nl pl pt-br ru tr zh-cn zh-tw .endif RUBYLIB = ../shared/lib @@ -48,6 +51,13 @@ RUN_DEPENDS= ${PYTHON_CMD} \ .HOST=$(HOSTNAME) .endif +# Strip the languages without articles from the list of languages we +# will use to build books. +BOOK_LANGS= ${LANGUAGES} +.for a in ${ARTICLEONLY_LANGS} +BOOK_LANGS:= ${BOOK_LANGS:N${a}} +.endfor + .ORDER: all run .ORDER: requirements @@ -71,11 +81,11 @@ starting-message: .PHONY @echo --------------------------------------------------------------- generate-books-toc: .PHONY - ${PYTHON_CMD} ./tools/books-toc-parts-creator.py -l ${LANGUAGES} - ${PYTHON_CMD} ./tools/books-toc-creator.py -l ${LANGUAGES} - ${PYTHON_CMD} ./tools/books-toc-figures-creator.py -l ${LANGUAGES} - ${PYTHON_CMD} ./tools/books-toc-tables-creator.py -l ${LANGUAGES} - ${PYTHON_CMD} ./tools/books-toc-examples-creator.py -l ${LANGUAGES} + ${PYTHON_CMD} ./tools/books-toc-parts-creator.py -l ${BOOK_LANGS} + ${PYTHON_CMD} ./tools/books-toc-creator.py -l ${BOOK_LANGS} + ${PYTHON_CMD} ./tools/books-toc-figures-creator.py -l ${BOOK_LANGS} + ${PYTHON_CMD} ./tools/books-toc-tables-creator.py -l ${BOOK_LANGS} + ${PYTHON_CMD} ./tools/books-toc-examples-creator.py -l ${BOOK_LANGS} generate-pgpkeys-txt: static/pgpkeys/pgpkeys.txt @@ -90,7 +100,7 @@ build: .PHONY # # PDF targets -# Use DOC_LANG to choose the language, e.g., make DOC_LANG="en,fr" pdf-books +# Use DOC_LANG to choose the language, e.g., make DOC_LANG="en fr" pdf-books # pdf: pdf-articles pdf-books From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 21:37:17 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EDB3D644321 for ; Wed, 16 Jun 2021 21:37:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G4z6j5fQlz3qRD; Wed, 16 Jun 2021 21:37:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A4ED7230C6; Wed, 16 Jun 2021 21:37:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GLbHx9022149; Wed, 16 Jun 2021 21:37:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GLbHg7022148; Wed, 16 Jun 2021 21:37:17 GMT (envelope-from git) Date: Wed, 16 Jun 2021 21:37:17 GMT Message-Id: <202106162137.15GLbHg7022148@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 563afbd6f0 - main - committer-guide: Add an anchor for the how to land a github pull request section. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 563afbd6f0ea882e4696f0f6c5c7d0256d0c3b79 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 21:37:18 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=563afbd6f0ea882e4696f0f6c5c7d0256d0c3b79 commit 563afbd6f0ea882e4696f0f6c5c7d0256d0c3b79 Author: Warner Losh AuthorDate: 2021-06-16 21:36:02 +0000 Commit: Warner Losh CommitDate: 2021-06-16 21:36:39 +0000 committer-guide: Add an anchor for the how to land a github pull request section. So I can start dropping it into chats when people ask :) Sponsored by: Netflix --- documentation/content/en/articles/committers-guide/_index.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index e27ffcfe8e..9998694e0f 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -2303,6 +2303,7 @@ To github.com:gvnn3/freebsd-src.git At this point your work is now in your branch on +GitHub+ and you can share the link with other collaborators. +[[github-pull-land]] === Landing a github pull request This section documents how to land a GitHub pull request that's submitted against the FreeBSD Git mirrors at GitHub. While this is not an official way to submit patches at this time, sometimes good fixes come in this way and it is easiest just to bring them into a committer's tree and have them pushed into the FreeBSD's tree from there. From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 22:16:37 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D5D55645D5C for ; Wed, 16 Jun 2021 22:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G50055PDDz4S5m; Wed, 16 Jun 2021 22:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A16B823A2B; Wed, 16 Jun 2021 22:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GMGbIo076894; Wed, 16 Jun 2021 22:16:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GMGbDj076893; Wed, 16 Jun 2021 22:16:37 GMT (envelope-from git) Date: Wed, 16 Jun 2021 22:16:37 GMT Message-Id: <202106162216.15GMGbDj076893@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 8d6cf88d2f - main - committers-guide: Add note to check for default anonymous github names MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8d6cf88d2faad4c9ce4c8e6e23ac041b42f969f4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 22:16:37 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=8d6cf88d2faad4c9ce4c8e6e23ac041b42f969f4 commit 8d6cf88d2faad4c9ce4c8e6e23ac041b42f969f4 Author: Warner Losh AuthorDate: 2021-06-16 22:14:34 +0000 Commit: Warner Losh CommitDate: 2021-06-16 22:14:34 +0000 committers-guide: Add note to check for default anonymous github names Github generates names like github-user <38923459+github-user@users.noreply.github.com> for it's web-created content. Add a note for people doing pull requests to check for this construct and to request a real name. Sponsored by: Netflix --- .../content/en/articles/committers-guide/_index.adoc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 9998694e0f..fffc6ef128 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -2329,6 +2329,17 @@ However, when there's multiple commits, especially when minor adjustments are ne Briefly, these commands create a branch; cherry-picks the changes from the pull request; tests it; adjusts the commit messages; and fast forward merges it back to `main`. The PR number is `$PR` below. When adjusting the message, add `Pull Request: https://github.com/freebsd-src/pull/$PR`. +[NOTE] +====== +In addition, please check to make sure that the pull request author name is not anonymous. +Github's web interface generates names like: +[source,shell] +.... +Author: github-user <38923459+github-user@users.noreply.github.com> +.... +A polite request to the author for a better name and/or email should be made. +====== + [source,shell] .... % git fetch github pull/$PR/head:staging From owner-dev-commits-doc-all@freebsd.org Wed Jun 16 23:55:39 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5C2D5647AA1 for ; Wed, 16 Jun 2021 23:55:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G52BM29k6z4bNW; Wed, 16 Jun 2021 23:55:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 32CE6250E5; Wed, 16 Jun 2021 23:55:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15GNtdtO009103; Wed, 16 Jun 2021 23:55:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15GNtdx4009102; Wed, 16 Jun 2021 23:55:39 GMT (envelope-from git) Date: Wed, 16 Jun 2021 23:55:39 GMT Message-Id: <202106162355.15GNtdx4009102@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: "Danilo G. Baio" Subject: git: 44bb3f68fb - main - books/fdp-primer: Update tools and add advanced build examples MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dbaio X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 44bb3f68fbe8aeef7ccbc3dc838ed11d4f53b067 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 23:55:39 -0000 The branch main has been updated by dbaio: URL: https://cgit.FreeBSD.org/doc/commit/?id=44bb3f68fbe8aeef7ccbc3dc838ed11d4f53b067 commit 44bb3f68fbe8aeef7ccbc3dc838ed11d4f53b067 Author: Danilo G. Baio AuthorDate: 2021-06-16 23:45:46 +0000 Commit: Danilo G. Baio CommitDate: 2021-06-16 23:54:21 +0000 books/fdp-primer: Update tools and add advanced build examples This updates the documentation to reflect the changes that were made recently. Reviewed by: ceri Differential Revision: https://reviews.freebsd.org/D30749 --- .../en/books/fdp-primer/doc-build/_index.adoc | 39 ++++++++++++++++++++++ .../en/books/fdp-primer/overview/_index.adoc | 11 ++---- .../content/en/books/fdp-primer/tools/_index.adoc | 2 +- 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/documentation/content/en/books/fdp-primer/doc-build/_index.adoc b/documentation/content/en/books/fdp-primer/doc-build/_index.adoc index 146f32ad11..c39adf8a40 100644 --- a/documentation/content/en/books/fdp-primer/doc-build/_index.adoc +++ b/documentation/content/en/books/fdp-primer/doc-build/_index.adoc @@ -89,6 +89,45 @@ To render the documentation and the website to `html` use one of the following e .... ==== +Advanced build examples are given below: + +[[documentation-build-example-verbose]] +.Build the documentation with verbose and debug messages +[example] +==== +[source,shell] +.... +% cd ~/doc/documentation +% make HUGO_ARGS="--verbose --debug --path-warnings" +.... +==== + +[[documentation-build-example-server]] +.Build and serve the content with Hugo’s internal webserver +[example] +==== +[source,shell] +.... +% cd ~/doc/documentation +% make run +.... +This webserver runs on `localhost`, port `1313` by default. + +To serve the content with Hugo’s internal webserver binding a specific IP address: + +[source,shell] +.... +% make run BIND=192.168.15.10 +.... + +A `hostname` can also be set as base url to Hugo’s internal webserver: + +[source,shell] +.... +% make run BIND=192.168.15.10 HOSTNAME=example.com +.... +==== + [[doc-build-rendering-pdf]] === Rendering to pdf diff --git a/documentation/content/en/books/fdp-primer/overview/_index.adoc b/documentation/content/en/books/fdp-primer/overview/_index.adoc index 2fef4f9b53..fcea50e851 100644 --- a/documentation/content/en/books/fdp-primer/overview/_index.adoc +++ b/documentation/content/en/books/fdp-primer/overview/_index.adoc @@ -50,18 +50,11 @@ These people can help with questions or problems involving the documentation. [.procedure] ==== -. Install these packages. These packages are all of the software needed to edit and build FreeBSD documentation. The Git package is needed to obtain a working copy of the documentation and generate patches with. +. Install these packages. The `docproj` _meta-port_ installs all the applications required to do useful work with the FreeBSD documentation. + [source,shell] .... -# pkg install gohugo python3 git-lite rubygem-asciidoctor rubygem-rouge -.... -+ -. Optional: to generate PDF documentation install `asciidoctor-pdf` -+ -[source,shell] -.... -# pkg install rubygem-asciidoctor-pdf +# pkg install docproj python3 .... + . Install a local working copy of the documentation from the FreeBSD repository in [.filename]#~/doc# (see crossref:working-copy[working-copy,The Working Copy]). diff --git a/documentation/content/en/books/fdp-primer/tools/_index.adoc b/documentation/content/en/books/fdp-primer/tools/_index.adoc index 459ce9aa5b..a5acaf0859 100644 --- a/documentation/content/en/books/fdp-primer/tools/_index.adoc +++ b/documentation/content/en/books/fdp-primer/tools/_index.adoc @@ -31,7 +31,7 @@ Some are optional, adding capabilities or making the job of creating documentati [[tools-required]] == Required Tools -Install `gohugo` and `rubygem-asciidoctor` as shown in crossref:overview[overview,the overview chapter] from the Ports Collection. +Install `docproj` and `python3` as shown in crossref:overview[overview,the overview chapter] from the Ports Collection. These applications are required to do useful work with the FreeBSD documentation. Some further notes on particular components are given below. From owner-dev-commits-doc-all@freebsd.org Thu Jun 17 10:47:08 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 063246512AB for ; Thu, 17 Jun 2021 10:47:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G5Jf36ktfz4WxR; Thu, 17 Jun 2021 10:47:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CF0BB5CF9; Thu, 17 Jun 2021 10:47:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15HAl7T0077118; Thu, 17 Jun 2021 10:47:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15HAl7kr077117; Thu, 17 Jun 2021 10:47:07 GMT (envelope-from git) Date: Thu, 17 Jun 2021 10:47:07 GMT Message-Id: <202106171047.15HAl7kr077117@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ceri Davies Subject: git: c603905d83 - main - events: Consistently sort events by start date MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ceri X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c603905d8303ee561fa8c7f10b2c6b170d017ce2 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jun 2021 10:47:08 -0000 The branch main has been updated by ceri: URL: https://cgit.FreeBSD.org/doc/commit/?id=c603905d8303ee561fa8c7f10b2c6b170d017ce2 commit c603905d8303ee561fa8c7f10b2c6b170d017ce2 Author: Ceri Davies AuthorDate: 2021-06-17 10:43:56 +0000 Commit: Ceri Davies CommitDate: 2021-06-17 10:46:53 +0000 events: Consistently sort events by start date More recent events now go at the bottom, which is largely what people were doing anyway despite the comment in the files. --- website/data/en/events/events2003.toml | 111 +++++++------- website/data/en/events/events2004.toml | 163 ++++++++++----------- website/data/en/events/events2005.toml | 138 +++++++++--------- website/data/en/events/events2006.toml | 230 ++++++++++++++--------------- website/data/en/events/events2007.toml | 254 ++++++++++++++++----------------- website/data/en/events/events2008.toml | 160 ++++++++++----------- website/data/en/events/events2009.toml | 150 +++++++++---------- website/data/en/events/events2010.toml | 154 ++++++++++---------- website/data/en/events/events2011.toml | 26 ++-- website/data/en/events/events2012.toml | 2 +- website/data/en/events/events2013.toml | 2 +- website/data/en/events/events2014.toml | 2 +- website/data/en/events/events2015.toml | 2 +- website/data/en/events/events2016.toml | 74 +++++----- website/data/en/events/events2017.toml | 2 +- website/data/en/events/events2018.toml | 2 +- website/data/en/events/events2019.toml | 2 +- website/data/en/events/events2020.toml | 2 +- website/data/en/events/events2021.toml | 2 +- 19 files changed, 739 insertions(+), 739 deletions(-) diff --git a/website/data/en/events/events2003.toml b/website/data/en/events/events2003.toml index 2961d5edd4..5085ed4505 100644 --- a/website/data/en/events/events2003.toml +++ b/website/data/en/events/events2003.toml @@ -1,4 +1,4 @@ -# Sort events by start date, with more recent events earlier in the file +# Sort events by start date, with more recent events lower in the file # $FreeBSD$ year = 2003 @@ -14,18 +14,6 @@ city = "San Mateo" state = "California" description = "For the fourth time, the main BSD Event, BSDCon is happening. Two days of tutorials will precede two and a half days of technical sessions. An opportunity for people of all experience levels to learn from BSD experts, professionals with real world experience, and industry leaders." -[[events]] -id = "bsdcon-japan-2003" -name = "BSDCon Japan 2003" -url = "http://bsdcon.jp/" -startDate = "2003-10-18" -endDate = "2003-10-18" -countryCode = "JP" -country = "Japan" -city = "Tokyo" -site = "BIZ Shinjuku" -description = "BSD Conference Japan 2003, the second conference concerning *BSD in Japan, was held in Tokyo on October 18th, 2003. There were about 170 attendees. It had two parallel sessions (general and technical), and four technical papers and twelve work-in-progress style talks were presented during the conference." - [[events]] id = "linux-kongress-03" name = "Linux-Kongress 2003" @@ -39,17 +27,29 @@ site = "University of the Saarland" description = "FreeBSD will be present with a booth at the Linux-Kongress, probably Europe's best known Linux developer conference. We will answer questions, show you the system and sell some FreeBSD merchandising." [[events]] -id = "sf10yearparty" -name = "FreeBSD 10 Year Anniversary Party" -url = "http://www.offmyserver.com/cgi-bin/store/rsvp.html" -startDate = "2003-11-24" -endDate = "2003-11-24" -countryCode = "US" -country = "USA" -city = "San Francisco" -site = "DNA Lounge" -address = "www.dnalounge.com" -description = "Join us Monday November 24th to celebrate 10 years of FreeBSD! Please RSVP here so we can order enough food and drink for everyone." +id = "bsdcon-japan-2003" +name = "BSDCon Japan 2003" +url = "http://bsdcon.jp/" +startDate = "2003-10-18" +endDate = "2003-10-18" +countryCode = "JP" +country = "Japan" +city = "Tokyo" +site = "BIZ Shinjuku" +description = "BSD Conference Japan 2003, the second conference concerning *BSD in Japan, was held in Tokyo on October 18th, 2003. There were about 170 attendees. It had two parallel sessions (general and technical), and four technical papers and twelve work-in-progress style talks were presented during the conference." + +[[events]] +id = "linuxday-5" +name = "5. Linuxday Vorarlberg" +url = "http://www.linuxday.at/" +startDate = "2003-11-15" +endDate = "2003-11-15" +countryCode = "AT" +country = "Austria" +city = "Dornbirn" +site = "HTL Dornbirn" +address = "Höchsterstrasse 73" +description = "The Linuxday in Vorarlberg is an event where people from opensource projects present their efforts to the community. Entrance is free of charge. There will also be a talk about FreeBSD." [[events]] id = "scale-2003" @@ -65,30 +65,28 @@ state = "California" description = "The Second Annual Southern California Linux Expo. FreeBSD will be present and handing out promotional material." [[events]] -id = "linuxday-5" -name = "5. Linuxday Vorarlberg" -url = "http://www.linuxday.at/" -startDate = "2003-11-15" -endDate = "2003-11-15" -countryCode = "AT" -country = "Austria" -city = "Dornbirn" -site = "HTL Dornbirn" -address = "Höchsterstrasse 73" -description = "The Linuxday in Vorarlberg is an event where people from opensource projects present their efforts to the community. Entrance is free of charge. There will also be a talk about FreeBSD." +id = "sf10yearparty" +name = "FreeBSD 10 Year Anniversary Party" +url = "http://www.offmyserver.com/cgi-bin/store/rsvp.html" +startDate = "2003-11-24" +endDate = "2003-11-24" +countryCode = "US" +country = "USA" +city = "San Francisco" +site = "DNA Lounge" +address = "www.dnalounge.com" +description = "Join us Monday November 24th to celebrate 10 years of FreeBSD! Please RSVP here so we can order enough food and drink for everyone." [[events]] -id = "ccc-20" -name = "20. Chaos Communication Congress" -url = "http://www.ccc.de/congress/2003/" -startDate = "2003-12-27" -endDate = "2003-12-29" -countryCode = "DE" -country = "Germany" -city = "Berlin" -site = "Berliner Congress Center" -address = "Alexanderplatz 2" -description = "The Chaos Communication Congress is a three-day conference on technology, society and utopia. FreeBSD will be present with a booth. If you are interested in helping out, please contact Christian Brueffer." +id = "bsdlinuxday-2003" +name = "BSD/Linux Day" +url = "http://www.jus.or.jp/events/bsd-linux-day/" +startDate = "2003-12-02" +endDate = "2003-12-02" +countryCode = "JP" +country = "Japan" +city = "Yokohama" +description = "During the InternetWeek 2003 Conference, which takes place in Yokohama, between December 2nd and 5th, there will be a BSD/Linux Day, organized by the Japan Unix Society." [[events]] id = "bsdcon-brasil-2003" @@ -102,13 +100,14 @@ city = "Rio de Janeiro" description = "This is the first edition of BSDCon Brasil. BSDCon Brasil is being promoted and organized by a pool of corporations connected with the BSD community. There will be two intensive days of workshops, presentations and mini-tutorials related to BSD at large." [[events]] -id = "bsdlinuxday-2003" -name = "BSD/Linux Day" -url = "http://www.jus.or.jp/events/bsd-linux-day/" -startDate = "2003-12-02" -endDate = "2003-12-02" -countryCode = "JP" -country = "Japan" -city = "Yokohama" -description = "During the InternetWeek 2003 Conference, which takes place in Yokohama, between December 2nd and 5th, there will be a BSD/Linux Day, organized by the Japan Unix Society." - +id = "ccc-20" +name = "20. Chaos Communication Congress" +url = "http://www.ccc.de/congress/2003/" +startDate = "2003-12-27" +endDate = "2003-12-29" +countryCode = "DE" +country = "Germany" +city = "Berlin" +site = "Berliner Congress Center" +address = "Alexanderplatz 2" +description = "The Chaos Communication Congress is a three-day conference on technology, society and utopia. FreeBSD will be present with a booth. If you are interested in helping out, please contact Christian Brueffer." diff --git a/website/data/en/events/events2004.toml b/website/data/en/events/events2004.toml index 43a9f1ce12..d1532ca2ae 100644 --- a/website/data/en/events/events2004.toml +++ b/website/data/en/events/events2004.toml @@ -1,20 +1,7 @@ -# Sort events by start date, with more recent events earlier in the file +# Sort events by start date, with more recent events lower in the file # $FreeBSD$ year = 2004 -[[events]] -id = "fosdem-2004" -name = "Fosdem 2004" -url = "http://www.fosdem.org/" -startDate = "2004-02-21" -endDate = "2004-02-22" -countryCode = "BE" -country = "Belgium" -city = "Brussels" -site = "Universite Libre de Bruxelles" -address = "Avenue Franklin D. Roosevelt 50" -description = "A 2 day event to promote the widespread use of Free and Open Source software. Among the projects present at the event will be Mozilla, KDE and, of course, FreeBSD." - [[events]] id = "linuxexpofr-2004" name = "Solutions Linux 2004" @@ -29,16 +16,17 @@ address = "La Defense" description = "A 3 day event to promote GNU/Linux and Open Source software. French FreeBSD User Group will be present in the Association Village to promote FreeBSD of course !" [[events]] -id = "asia-bsdcon-2004" -name = "Asia BSDCon 2004" -url = "http://www.asiabsdcon.org/" -startDate = "2004-03-12" -endDate = "2004-03-15" -countryCode = "TW" -country = "Taiwan (ROC)" -city = "Taipei" -site = "Academica Sinica" -description = "The first BSDCon held in Asia, and sponsored by USENIX Association. Two days of tutorials will precede two days of technical sessions and a vendor exhibit." +id = "fosdem-2004" +name = "Fosdem 2004" +url = "http://www.fosdem.org/" +startDate = "2004-02-21" +endDate = "2004-02-22" +countryCode = "BE" +country = "Belgium" +city = "Brussels" +site = "Universite Libre de Bruxelles" +address = "Avenue Franklin D. Roosevelt 50" +description = "A 2 day event to promote the widespread use of Free and Open Source software. Among the projects present at the event will be Mozilla, KDE and, of course, FreeBSD." [[events]] id = "linuxforum-2004" @@ -54,16 +42,16 @@ address = "Fruebjergvej 3" description = "Annual Danish Open Source conference. The Danish BSD user group BSD-DK will present the BSD's." [[events]] -id = "linuxwochen04" -name = "Linuxwochen Wien" -url = "http://www.linuxwochen.at" -startDate = "2004-05-26" -endDate = "2004-05-29" -countryCode = "AT" -country = "Austria" -city = "Vienna" -site = "Museumsquartier, A-1070 Wien Museumsplatz 1" -description = "Linuxwochen is an annual roadshow of open source conferences, which take place in all major cities in Austria. Vienna is the biggest event. There will be a FreeBSD speech and a booth by Josef El-Rayes." +id = "asia-bsdcon-2004" +name = "Asia BSDCon 2004" +url = "http://www.asiabsdcon.org/" +startDate = "2004-03-12" +endDate = "2004-03-15" +countryCode = "TW" +country = "Taiwan (ROC)" +city = "Taipei" +site = "Academica Sinica" +description = "The first BSDCon held in Asia, and sponsored by USENIX Association. Two days of tutorials will precede two days of technical sessions and a vendor exhibit." [[events]] id = "bsdcan-2004" @@ -78,16 +66,16 @@ site = "University of Ottawa" description = "BSDCan is a developers conference with a strong focus on emerging technologies, research projects, and works in progress. It also features Userland infrastructure projects and invite contribution from both free software developers and those from commercial vendors." [[events]] -id = "usenix-2004" -name = "2004 USENIX Annual Technical Conference" -url = "http://www.usenix.org/events/usenix04/" -startDate = "2004-06-27" -endDate = "2004-07-02" -countryCode = "US" -country = "USA" -city = "Boston" -state = "Massachusetts" -description = "The 2004 USENIX ATC will have FREENIX and general refereed paper session, along with new UseBSD Special Interest Group Sessions. There will not be a separate Usenix-sponsored BSDCon in the U.S. in 2004, so this is THE big conference of the year for BSD enthusiasts in the U.S." +id = "linuxwochen04" +name = "Linuxwochen Wien" +url = "http://www.linuxwochen.at" +startDate = "2004-05-26" +endDate = "2004-05-29" +countryCode = "AT" +country = "Austria" +city = "Vienna" +site = "Museumsquartier, A-1070 Wien Museumsplatz 1" +description = "Linuxwochen is an annual roadshow of open source conferences, which take place in all major cities in Austria. Vienna is the biggest event. There will be a FreeBSD speech and a booth by Josef El-Rayes." [[events]] id = "linuxtag04" @@ -101,6 +89,18 @@ city = "Karlsruhe" site = "Kongresszentrum" description = "The Linuxtag is one of Europe's biggest Linux and Open Source related tradeshows and conferences. As in previous years, FreeBSD will be present with a booth." +[[events]] +id = "usenix-2004" +name = "2004 USENIX Annual Technical Conference" +url = "http://www.usenix.org/events/usenix04/" +startDate = "2004-06-27" +endDate = "2004-07-02" +countryCode = "US" +country = "USA" +city = "Boston" +state = "Massachusetts" +description = "The 2004 USENIX ATC will have FREENIX and general refereed paper session, along with new UseBSD Special Interest Group Sessions. There will not be a separate Usenix-sponsored BSDCon in the U.S. in 2004, so this is THE big conference of the year for BSD enthusiasts in the U.S." + [[events]] id = "auug2004" name = "The AUUG'2004 Annual Conference" @@ -135,16 +135,27 @@ city = "Shanghai" description = "Linux Expo Shanghai is the biggest Linux/Open Source conference in Shanghai this summer. Murray Stokely and members of the FreeBSD China group will have a booth there both days." [[events]] -id = "eurobsdcon-2004" -name = "EuroBSDCon 2004" -url = "http://2004.eurobsdcon.org/" -startDate = "2004-10-29" -endDate = "2004-10-31" +id = "guficon5" +name = "Italian FreeBSD User Group (GUFI) Conference 2004" +url = "http://www.gufi.org/guficon5/" +startDate = "2004-10-02" +endDate = "2004-10-03" +countryCode = "IT" +country = "Italy" +city = "Milan" +description = "The Italian FreeBSD User Group (GUFI) Conference. Information available (in Italian) from the conference website." + +[[events]] +id = "systems-2004" +name = "Systems 2004" +url = "http://www.systems.de/" +startDate = "2004-10-18" +endDate = "2004-10-22" countryCode = "DE" country = "Germany" -city = "Karlsruhe" -site = "Queens Hotel Karlsruhe" -description = "The third annual European BSD Conference. It is oriented to developers and users of all BSD flavors, including FreeBSD of course." +city = "Munich" +site = "New Munich Trade Fair Centre" +description = "Systems is a trade fair for IT, media and communications. There will be a combined BSD booth. If you are interested in helping, please contact Daniel Ettle." [[events]] id = "bsdcon-japan-2004" @@ -159,27 +170,29 @@ site = "Business Innovation Center Osaka" description = "BSD Conference Japan 2004, the third conference concerning *BSD in Japan, will be held in Osaka on October 23th, 2004. Furthermore, Kansai Open Source 2004 and Kansai Community Contest will be held in the same place also." [[events]] -id = "systems-2004" -name = "Systems 2004" -url = "http://www.systems.de/" -startDate = "2004-10-18" -endDate = "2004-10-22" +id = "eurobsdcon-2004" +name = "EuroBSDCon 2004" +url = "http://2004.eurobsdcon.org/" +startDate = "2004-10-29" +endDate = "2004-10-31" countryCode = "DE" country = "Germany" -city = "Munich" -site = "New Munich Trade Fair Centre" -description = "Systems is a trade fair for IT, media and communications. There will be a combined BSD booth. If you are interested in helping, please contact Daniel Ettle." +city = "Karlsruhe" +site = "Queens Hotel Karlsruhe" +description = "The third annual European BSD Conference. It is oriented to developers and users of all BSD flavors, including FreeBSD of course." [[events]] -id = "guficon5" -name = "Italian FreeBSD User Group (GUFI) Conference 2004" -url = "http://www.gufi.org/guficon5/" -startDate = "2004-10-02" -endDate = "2004-10-03" -countryCode = "IT" -country = "Italy" -city = "Milan" -description = "The Italian FreeBSD User Group (GUFI) Conference. Information available (in Italian) from the conference website." +id = "enderunix-04" +name = "Free Software Development and the FreeBSD Operating System" +url = "http://www.enderunix.org/events/metu2004" +startDate = "2004-12-10" +endDate = "2004-12-10" +countryCode = "TR" +country = "Turkey" +city = "Ankara" +site = "ODTU Culture and Congress Center" +address = "Saloon D" +description = "This conference is organized with the cooperation of the EnderUNIX Software Development Team and the Middle East Technical University Computer Center. The conference will be a one-day event and the official language for the conference is Turkish. For more information and a schedule of talks, please see the website." [[events]] id = "ccc-21" @@ -194,16 +207,4 @@ site = "Berliner Congress Center" address = "Alexanderplatz 2" description = "The Chaos Communication Congress is a three-day conference on technology, society and utopia. FreeBSD will be present with a booth. If you are interested in helping out, please contact Christian Brueffer." -[[events]] -id = "enderunix-04" -name = "Free Software Development and the FreeBSD Operating System" -url = "http://www.enderunix.org/events/metu2004" -startDate = "2004-12-10" -endDate = "2004-12-10" -countryCode = "TR" -country = "Turkey" -city = "Ankara" -site = "ODTU Culture and Congress Center" -address = "Saloon D" -description = "This conference is organized with the cooperation of the EnderUNIX Software Development Team and the Middle East Technical University Computer Center. The conference will be a one-day event and the official language for the conference is Turkish. For more information and a schedule of talks, please see the website." diff --git a/website/data/en/events/events2005.toml b/website/data/en/events/events2005.toml index 062544a356..032b8c892c 100644 --- a/website/data/en/events/events2005.toml +++ b/website/data/en/events/events2005.toml @@ -1,19 +1,19 @@ -# Sort events by start date, with more recent events earlier in the file +# Sort events by start date, with more recent events lower in the file # $FreeBSD$ year = 2005 [[events]] -id = "fosdem-2005" -name = "Fosdem 2005" -url = "http://www.fosdem.org/" -startDate = "2005-02-26" -endDate = "2005-02-27" -countryCode = "BE" -country = "Belgium" -city = "Brussels" -site = "Universite Libre de Bruxelles" -address = "Avenue Franklin D. Roosevelt 50" -description = "A 2 day event to promote the widespread use of Free and Open Source software. Among the projects present at the event will be Mozilla, KDE and, of course, FreeBSD." +id = "scale-2005" +name = "SCALE: Southern California Linux Expo 2005" +url = "http://www.socallinuxexpo.org/" +startDate = "2005-02-12" +endDate = "2005-02-13" +countryCode = "US" +country = "USA" +city = "Los Angeles" +site = "Los Angeles Convention Center" +state = "California" +description = "The third Southern California Linux Expo will have an exhibition booth on FreeBSD. A computer will be available and CDROMs provided by FreeBSD Mall will be handed out." [[events]] id = "ffg-2005" @@ -28,17 +28,17 @@ site = "Munich University of Applied Sciences" description = "The Frühjahrsfachgespräch is an annual event on practical Linux/UNIX topics. Most of the talks are in german, among them a talk about FreeBSD Filesystem Snapshots by Dirk Meyer \"dinoex@FreeBSD.org\"." [[events]] -id = "scale-2005" -name = "SCALE: Southern California Linux Expo 2005" -url = "http://www.socallinuxexpo.org/" -startDate = "2005-02-12" -endDate = "2005-02-13" -countryCode = "US" -country = "USA" -city = "Los Angeles" -site = "Los Angeles Convention Center" -state = "California" -description = "The third Southern California Linux Expo will have an exhibition booth on FreeBSD. A computer will be available and CDROMs provided by FreeBSD Mall will be handed out." +id = "fosdem-2005" +name = "Fosdem 2005" +url = "http://www.fosdem.org/" +startDate = "2005-02-26" +endDate = "2005-02-27" +countryCode = "BE" +country = "Belgium" +city = "Brussels" +site = "Universite Libre de Bruxelles" +address = "Avenue Franklin D. Roosevelt 50" +description = "A 2 day event to promote the widespread use of Free and Open Source software. Among the projects present at the event will be Mozilla, KDE and, of course, FreeBSD." [[events]] id = "linuxforum-2005" @@ -53,18 +53,6 @@ site = "Kunstakademiets Arkitektskole" address = "Philip de Langes Allé" description = "Annual Danish Open Source conference. The Danish BSD user group BSD-DK will present the BSD's." -[[events]] -id = "osf-russia-2005" -name = "Open Source Forum Russia 2005" -url = "http://www.opensource-forum.ru/" -startDate = "2005-04-27" -endDate = "2005-04-29" -countryCode = "RU" -country = "Russia" -city = "Moscow" -site = "Radisson SAS Hotel" -description = "Open Source Forum Russia is the first conference and exhibition which will bring together Russian, American and European leaders of the OS industry, customers interested in using reliable and efficient Linux-based technologies and IT companies which intend developing business on the base of Open Source. Murray Stokely will present on the subject of FreeBSD Release Engineering and the Business Case for BSD." - [[events]] id = "usenix-2005" name = "2005 USENIX Annual Technical Conference" @@ -77,6 +65,18 @@ city = "Anaheim" state = "California" description = "The 2005 USENIX ATC will have FREENIX and general refereed paper sessions. This is THE big conference of the year for BSD enthusiasts in the U.S." +[[events]] +id = "osf-russia-2005" +name = "Open Source Forum Russia 2005" +url = "http://www.opensource-forum.ru/" +startDate = "2005-04-27" +endDate = "2005-04-29" +countryCode = "RU" +country = "Russia" +city = "Moscow" +site = "Radisson SAS Hotel" +description = "Open Source Forum Russia is the first conference and exhibition which will bring together Russian, American and European leaders of the OS industry, customers interested in using reliable and efficient Linux-based technologies and IT companies which intend developing business on the base of Open Source. Murray Stokely will present on the subject of FreeBSD Release Engineering and the Business Case for BSD." + [[events]] id = "bsdcan-2005" name = "BSDCan 2005" @@ -89,18 +89,6 @@ city = "Ottawa" site = "University of Ottawa" description = "BSDCan is a developers conference with a strong focus on emerging technologies, research projects, and works in progress. It also features Userland infrastructure projects and invite contribution from both free software developers and those from commercial vendors." -[[events]] -id = "linuxtag-2005" -name = "Linuxtag 2005" -url = "http://www.linuxtag.org/2005/" -startDate = "2005-06-22" -endDate = "2005-06-25" -countryCode = "DE" -country = "Germany" -city = "Karlsruhe" -site = "Kongresszentrum" -description = "The Linuxtag is one of Europe's biggest Linux and Open Source related tradeshows and conferences. As in previous years, FreeBSD will be present with a booth." - [[events]] id = "meetbsd-2005" name = "MeetBSD 2005" @@ -113,6 +101,18 @@ city = "Kraków" site = "Hotel Chopin" description = "The second annual MeetBSD conference will be held in Poland to bring together BSD experts from around Europe. Poul-Henning Kamp and others will be presenting on FreeBSD topics." +[[events]] +id = "linuxtag-2005" +name = "Linuxtag 2005" +url = "http://www.linuxtag.org/2005/" +startDate = "2005-06-22" +endDate = "2005-06-25" +countryCode = "DE" +country = "Germany" +city = "Karlsruhe" +site = "Kongresszentrum" +description = "The Linuxtag is one of Europe's biggest Linux and Open Source related tradeshows and conferences. As in previous years, FreeBSD will be present with a booth." + [[events]] id = "bsdcon-japan-2005" name = "BSDCon Japan 2005" @@ -149,18 +149,6 @@ city = "New York City" site = "Columbia University" description = "New York City BSD Conference (NYCBSDCon) is a one day technical conference hosted by the New York City *BSD User Group. The all day conference will include a variety of speakers representing the BSD projects and the open source community." -[[events]] -id = "freebsd-korea-2005" -name = "Korean FreeBSD users group Conference 2005" -url = "http://seminar.freebsdcity.org" -startDate = "2005-10-29" -endDate = "2005-10-29" -countryCode = "KR" -country = "Korea" -city = "Seoul" -site = "HP Korea Conference Room 20th floor" -description = "A Conference for Everyone Who is interested in FreeBSD in Korea." - [[events]] id = "euro-oscon-2005" name = "O'Reilly European Open Source Convention" @@ -174,16 +162,16 @@ site = "NH Grand Hotel Krasnapolsky" description = "The popular O'Reilly Open Source Conference is coming to Europe in October. There will be FreeBSD related talks, BoF sessions, and opportunities for general advocacy." [[events]] -id = "eurobsdcon-2005" -name = "EuroBSDCon 2005" -url = "http://2005.eurobsdcon.org/" -startDate = "2005-11-25" -endDate = "2005-11-27" -countryCode = "CH" -country = "Switzerland" -city = "Basel" -site = "University of Basel" -description = "The fourth annual European BSD Conference. It is oriented to developers and users of all BSD flavors, including FreeBSD of course." +id = "freebsd-korea-2005" +name = "Korean FreeBSD users group Conference 2005" +url = "http://seminar.freebsdcity.org" +startDate = "2005-10-29" +endDate = "2005-10-29" +countryCode = "KR" +country = "Korea" +city = "Seoul" +site = "HP Korea Conference Room 20th floor" +description = "A Conference for Everyone Who is interested in FreeBSD in Korea." [[events]] id = "usenix-baysug-2005" @@ -197,6 +185,18 @@ city = "Mountain View, CA" site = "Computer History Museum" description = "Join USENIX and BayLISA for the first Bay Area Super User Group Meeting (BaySUG '05) followed by a reception hosted by Google. We're looking for more FreeBSD representation. Please contact Murray Stokely if you are interested in discussing and promoting FreeBSD at the event." +[[events]] +id = "eurobsdcon-2005" +name = "EuroBSDCon 2005" +url = "http://2005.eurobsdcon.org/" +startDate = "2005-11-25" +endDate = "2005-11-27" +countryCode = "CH" +country = "Switzerland" +city = "Basel" +site = "University of Basel" +description = "The fourth annual European BSD Conference. It is oriented to developers and users of all BSD flavors, including FreeBSD of course." + [[events]] id = "guficon-6" name = "GUFICon #6" diff --git a/website/data/en/events/events2006.toml b/website/data/en/events/events2006.toml index 4f38700c28..4d334ae839 100644 --- a/website/data/en/events/events2006.toml +++ b/website/data/en/events/events2006.toml @@ -1,7 +1,31 @@ -# Sort events by start date, with more recent events earlier in the file +# Sort events by start date, with more recent events lower in the file # $FreeBSD$ year = 2006 +[[events]] +id = "fsatc-2006" +name = "FreeBSD System Administration Training Course" +url = "http://www.pugetsoundtechnology.com/training/freebsd/" +startDate = "2006-02-07" +endDate = "2006-02-10" +countryCode = "US" +country = "USA" +city = "Fort Worth" +state = "Texas" +description = "Four-day hands-on class taught by BSD developer and advocate, Jeremy C. Reed, covers essential FreeBSD and Unix administration skills, including beginning Mail, BIND, and Apache administration." + +[[events]] +id = "mckusick-adv-spring-2006" +name = "FreeBSD Kernel Code Reading Evening Course" +url = "http://www.mckusick.com/courses/adveveclass.html" +startDate = "2006-02-22" +endDate = "2006-06-13" +countryCode = "US" +country = "USA" +city = "Berkeley" +state = "California" +description = "The ``FreeBSD Kernel Internals: An Intensive Code Walkthrough'' course will be taught during the Spring of 2006. The class will be held at the historic Hillside Club at 2286 Cedar Street, Berkeley, CA 94709 just three blocks north of the Berkeley campus once per week from 6:30PM to 9:45PM starting Wednesday February 22nd and finishing Tuesday June 13th. You can get more information or sign up for the class at http://www.mckusick.com/courses/adveveclass.html." + [[events]] id = "fosdem-2006" name = "Fosdem 2006" @@ -16,28 +40,29 @@ address = "Avenue Franklin D. Roosevelt 50" description = "A 2 day event to promote the widespread use of Free and Open Source software. Several BSD developers, including FreeBSD developers, will be present and give a series of talks." [[events]] -id = "mckusick-adv-spring-2006" -name = "FreeBSD Kernel Code Reading Evening Course" -url = "http://www.mckusick.com/courses/adveveclass.html" -startDate = "2006-02-22" -endDate = "2006-06-13" -countryCode = "US" -country = "USA" -city = "Berkeley" -state = "California" -description = "The ``FreeBSD Kernel Internals: An Intensive Code Walkthrough'' course will be taught during the Spring of 2006. The class will be held at the historic Hillside Club at 2286 Cedar Street, Berkeley, CA 94709 just three blocks north of the Berkeley campus once per week from 6:30PM to 9:45PM starting Wednesday February 22nd and finishing Tuesday June 13th. You can get more information or sign up for the class at http://www.mckusick.com/courses/adveveclass.html." +id = "linuxforum-2006" +name = "LinuxForum 2006" +url = "http://linuxforum.dk/2006/" +startDate = "2006-03-03" +endDate = "2006-03-04" +countryCode = "DK" +country = "Denmark" +city = "Copenhagen" +site = "Kunstakademiets Arkitektskole" +address = "Philip de Langes Allé" +description = "Annual Danish Open Source conference. The Danish BSD user group BSD-DK will present the BSDs. Also, a series of BSD related talks is scheduled." [[events]] -id = "fsatc-2006" -name = "FreeBSD System Administration Training Course" -url = "http://www.pugetsoundtechnology.com/training/freebsd/" -startDate = "2006-02-07" -endDate = "2006-02-10" -countryCode = "US" -country = "USA" -city = "Fort Worth" -state = "Texas" -description = "Four-day hands-on class taught by BSD developer and advocate, Jeremy C. Reed, covers essential FreeBSD and Unix administration skills, including beginning Mail, BIND, and Apache administration." +id = "cebit-2006" +name = "CeBIT 2006" +url = "http://www.cebit.de/homepage_e?x=1" +startDate = "2006-03-09" +endDate = "2006-03-15" +countryCode = "DE" +country = "Germany" +city = "Hannover" +site = "Messegelände" +description = "CeBIT is a large trade fair in Germany. FreeBSD will be present with a booth inside the LinuxPark (hall 5, booth E 56) from March 12-15. For more information, please see http://www.AllBSD.de/events/cebit/." [[events]] id = "ukuug-lisa-2006" @@ -52,41 +77,28 @@ site = "University of Durham" description = "UKUUG's annual Large Installation Systems Administration (LISA) conference will take place in the historic city of Durham on Wednesday 22nd and Thursday 23rd March 2006. This conference is a must-attend event for system and network administrators. As well as the technical talks, the conference provides a friendly environment for members to meet, learn, and enjoy lively debate on a host of subjects. This year, a series of talks on the BSD family of operating systems is also planned to run alongside the main systems administration stream." [[events]] -id = "cebit-2006" -name = "CeBIT 2006" -url = "http://www.cebit.de/homepage_e?x=1" -startDate = "2006-03-09" -endDate = "2006-03-15" +id = "linuxtag-2006" +name = "LinuxTag 2006" +url = "http://www.linuxtag.org/2006/en/" +startDate = "2006-05-03" +endDate = "2006-05-06" countryCode = "DE" country = "Germany" -city = "Hannover" -site = "Messegelände" -description = "CeBIT is a large trade fair in Germany. FreeBSD will be present with a booth inside the LinuxPark (hall 5, booth E 56) from March 12-15. For more information, please see http://www.AllBSD.de/events/cebit/." - -[[events]] -id = "linuxforum-2006" -name = "LinuxForum 2006" -url = "http://linuxforum.dk/2006/" -startDate = "2006-03-03" -endDate = "2006-03-04" -countryCode = "DK" -country = "Denmark" -city = "Copenhagen" -site = "Kunstakademiets Arkitektskole" -address = "Philip de Langes Allé" -description = "Annual Danish Open Source conference. The Danish BSD user group BSD-DK will present the BSDs. Also, a series of BSD related talks is scheduled." +city = "Wiesbaden" +site = "Rhein-Main-Hallen" +description = "LinuxTag is Europe's largest event about Free Software, Linux and Open Source. This year there will be the traditional FreeBSD-Booth, some BSD-Talks and maybe BSD-Tutorials. For more information, please see http://www.AllBSD.de/events/linuxtag/." [[events]] -id = "usenix-2006" -name = "2006 USENIX Annual Technical Conference" -url = "http://www.usenix.org/events/usenix06/" -startDate = "2006-05-30" -endDate = "2006-06-03" -countryCode = "US" -country = "USA" -city = "Boston" -state = "Massachusetts" -description = "The 2006 USENIX ATC will have FREENIX and general refereed paper sessions. This is THE big conference of the year for BSD enthusiasts in the U.S." +id = "bsdcan-2006" +name = "BSDCan 2006" +url = "http://www.bsdcan.org/" +startDate = "2006-05-12" +endDate = "2006-05-13" +countryCode = "CA" +country = "Canada" +city = "Ottawa" +site = "University of Ottawa" +description = "BSDCan is a developers conference with a strong focus on emerging technologies, research projects, and works in progress. It also features Userland infrastructure projects and invites contributions from both free software developers and those from commercial vendors." [[events]] id = "sane-2006" @@ -101,28 +113,28 @@ site = "Aula Congresscentre" description = "The SANE conference program is filled with the latest developments in system administration, network engineering, security and open source software. Several prominent FreeBSD team members will be speaking and FreeBSD related papers will be presented." [[events]] -id = "bsdcan-2006" -name = "BSDCan 2006" -url = "http://www.bsdcan.org/" -startDate = "2006-05-12" -endDate = "2006-05-13" -countryCode = "CA" -country = "Canada" -city = "Ottawa" -site = "University of Ottawa" -description = "BSDCan is a developers conference with a strong focus on emerging technologies, research projects, and works in progress. It also features Userland infrastructure projects and invites contributions from both free software developers and those from commercial vendors." +id = "usenix-2006" +name = "2006 USENIX Annual Technical Conference" +url = "http://www.usenix.org/events/usenix06/" +startDate = "2006-05-30" +endDate = "2006-06-03" +countryCode = "US" +country = "USA" +city = "Boston" +state = "Massachusetts" +description = "The 2006 USENIX ATC will have FREENIX and general refereed paper sessions. This is THE big conference of the year for BSD enthusiasts in the U.S." [[events]] -id = "linuxtag-2006" -name = "LinuxTag 2006" -url = "http://www.linuxtag.org/2006/en/" -startDate = "2006-05-03" -endDate = "2006-05-06" -countryCode = "DE" -country = "Germany" -city = "Wiesbaden" -site = "Rhein-Main-Hallen" -description = "LinuxTag is Europe's largest event about Free Software, Linux and Open Source. This year there will be the traditional FreeBSD-Booth, some BSD-Talks and maybe BSD-Tutorials. For more information, please see http://www.AllBSD.de/events/linuxtag/." +id = "mckusick-ucb-fall-2006" +name = "FreeBSD Kernel Short Course at UC Berkeley Extension" +url = "http://www.unex.berkeley.edu/cat/course692.html" +startDate = "2006-06-19" +endDate = "2006-06-23" +countryCode = "US" +country = "USA" +city = "Berkeley" +site = "University of California" +description = "The ``Using the FreeBSD Open-Source Operating System'' course will be taught June 19-23, 2006 as part of the University of California at Berkeley Summer Engineering Program. You can get more information or sign up for the class at: http://www.unex.berkeley.edu/cat/course692.html." [[events]] id = "froscon-2006" @@ -138,16 +150,17 @@ address = "Grantham-Allee 20" description = "FrOSCon is a two day conference on Free Software and Open Source, taking place in Sankt Augustin near the cities of Bonn and Cologne. The conference revolves around a rich schedule of talks, highlighting current topics in Free Software and Open Source, including an introductory talk about FreeBSD." [[events]] -id = "mckusick-ucb-fall-2006" -name = "FreeBSD Kernel Short Course at UC Berkeley Extension" -url = "http://www.unex.berkeley.edu/cat/course692.html" -startDate = "2006-06-19" -endDate = "2006-06-23" -countryCode = "US" -country = "USA" -city = "Berkeley" -site = "University of California" -description = "The ``Using the FreeBSD Open-Source Operating System'' course will be taught June 19-23, 2006 as part of the University of California at Berkeley Summer Engineering Program. You can get more information or sign up for the class at: http://www.unex.berkeley.edu/cat/course692.html." +id = "linuxtageinessen-2006" +name = "come2linux - Linuxtage in Essen" +url = "http://www.com2linux.de/" +startDate = "2006-09-09" +endDate = "2006-09-10" +countryCode = "DE" +country = "Germany" +city = "Essen" +site = "Universität Duisburg-Essen, Glas-Pavilion" +address = "Universitätsstraße 2" +description = "Linuxtage in Essen is a two day event on Linux and Free Software in general. There will be workshops, talks, a theme park and room for various projects to present themselves. FreeBSD will be present with a booth as well as several talks." [[events]] id = "cimm-2006" @@ -161,19 +174,6 @@ city = "Bogota" site = "Universidad Nacional de Colombia" description = "Every two (sometimes three) years the leading Colombian Mechanical Engineering Universities organize a congress. This year the congress will become an international event and will feature an article about free Mechanical Engineering applications recently ported to FreeBSD. Note: the scheduled FreeBSD talk has been canceled but the related paper is available here." -[[events]] -id = "linuxtageinessen-2006" -name = "come2linux - Linuxtage in Essen" -url = "http://www.com2linux.de/" -startDate = "2006-09-09" -endDate = "2006-09-10" -countryCode = "DE" -country = "Germany" -city = "Essen" -site = "Universität Duisburg-Essen, Glas-Pavilion" -address = "Universitätsstraße 2" -description = "Linuxtage in Essen is a two day event on Linux and Free Software in general. There will be workshops, talks, a theme park and room for various projects to present themselves. FreeBSD will be present with a booth as well as several talks." - [[events]] id = "nycbsdcon-2006" name = "NYCBSDCon 2006" @@ -186,6 +186,17 @@ city = "New York City" site = "Davis Auditorium, Columbia University" description = "Continuing on the success of last year, the New York City BSD Conference (NYCBSDCon) is the main technical conference on the East Coast for the BSD community to get together to share and gain knowledge, to network with like-minded people, and to have fun. This event is organized by members of the New York City *BSD Users Group (NYC*BUG)." +[[events]] +id = "eurobsdcon-2006" +name = "EuroBSDCon 2006" +url = "http://www.eurobsdcon.org/" +startDate = "2006-11-10" +endDate = "2006-11-12" +countryCode = "IT" +country = "Italy" +city = "Milan" +description = "The fifth annual European BSD Conference. It is oriented to developers and users of all BSD flavors, including FreeBSD of course." + [[events]] id = "meetbsd-2006" name = "MeetBSD 2006" @@ -199,15 +210,15 @@ site = "Centrum Konferencyjno-Kongresowe PWSBiA" description = "The third annual MeetBSD conference will be held in Poland to bring together BSD experts from around Europe. Several FreeBSD developers will be presenting on FreeBSD topics." [[events]] -id = "eurobsdcon-2006" -name = "EuroBSDCon 2006" -url = "http://www.eurobsdcon.org/" -startDate = "2006-11-10" -endDate = "2006-11-12" -countryCode = "IT" -country = "Italy" -city = "Milan" -description = "The fifth annual European BSD Conference. It is oriented to developers and users of all BSD flavors, including FreeBSD of course." +id = "lisa-2007" +name = "LISA '06" +url = "http://www.usenix.org/events/lisa06/" +startDate = "2006-12-03" +endDate = "2006-12-08" +countryCode = "US" +country = "USA" +city = "Washington, D.C." +description = "The annual LISA conference is the meeting place of choice for system, network, database, storage, security, and all other computer-related administrators. Administrators of all specialties and levels of expertise meet at LISA to exchange ideas, sharpen old skills, learn new techniques, debate current issues, and meet colleagues and friends. A BSD booth will be available in the exhibit hall." [[events]] id = "chilebsdcon-2006" @@ -221,14 +232,3 @@ city = "Santiago" site = "Universidad Diego Portales" description = "The first BSD related conference in Chile. The objective is to join the developers, users, and BSD sysadmins in Chile to share and interchange ideas, experiences, and knowledge. In addition, it aims to provide a chance to socialize and construct future links to expand the knowledge of the BSD systems. The conference is for anyone developing, administrating, and using systems based on FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, and Darwin as well as MacOS X and Solaris." -[[events]] -id = "lisa-2007" -name = "LISA '06" -url = "http://www.usenix.org/events/lisa06/" -startDate = "2006-12-03" -endDate = "2006-12-08" -countryCode = "US" -country = "USA" -city = "Washington, D.C." -description = "The annual LISA conference is the meeting place of choice for system, network, database, storage, security, and all other computer-related administrators. Administrators of all specialties and levels of expertise meet at LISA to exchange ideas, sharpen old skills, learn new techniques, debate current issues, and meet colleagues and friends. A BSD booth will be available in the exhibit hall." - diff --git a/website/data/en/events/events2007.toml b/website/data/en/events/events2007.toml index 6218d4e2dd..627c06b50d 100644 --- a/website/data/en/events/events2007.toml +++ b/website/data/en/events/events2007.toml @@ -1,19 +1,7 @@ -# Sort events by start date, with more recent events earlier in the file +# Sort events by start date, with more recent events lower in the file # $FreeBSD$ year = 2007 -[[events]] -id = "fosdem-2007" -name = "FOSDEM 2007" -url = "http://www.fosdem.org/2007/" -startDate = "2007-02-24" -endDate = "2007-02-25" -countryCode = "BE" -country = "Belgium" -city = "Brussels" -site = "Universite Libre de Bruxelles" -description = "A 2-day event to promote the widespread use of Free and Open Source software. Several BSD developers, including FreeBSD developers, will be present." - [[events]] id = "scale-2007" name = "SCALE: Southern California Linux Expo 2007" @@ -28,16 +16,28 @@ state = "California" description = "The fifth Southern California Linux Expo will have an exhibition booth on FreeBSD. A computer will be available and CDROMs provided by FreeBSD Mall will be handed out." [[events]] -id = "augsburger-linuxinfotag-2007" -name = "Augsburger Linux-Infotag 2007" -url = "http://www.luga.de/Aktionen/LIT-2007/" -startDate = "2007-03-24" -endDate = "2007-03-24" +id = "fosdem-2007" +name = "FOSDEM 2007" +url = "http://www.fosdem.org/2007/" +startDate = "2007-02-24" +endDate = "2007-02-25" +countryCode = "BE" +country = "Belgium" +city = "Brussels" +site = "Universite Libre de Bruxelles" +description = "A 2-day event to promote the widespread use of Free and Open Source software. Several BSD developers, including FreeBSD developers, will be present." + +[[events]] +id = "linuxtage-chemnitz-2007" +name = "Linuxtage Chemnitz 2007" +url = "http://chemnitzer.linux-tage.de/2007/info/" +startDate = "2007-03-03" +endDate = "2007-03-04" countryCode = "DE" country = "Germany" -city = "Augsburg" -site = "FH Augsburg" -description = "The Augsburger Linux-Infotag offers two parallel tracks of talks to show the capabilities of free and open source software. There will be several talks about FreeBSD as well as a FreeBSD booth." +city = "Chemnitz" +site = "Technical University Chemnitz" +description = "Linuxtage Chemnitz is a two day event on Linux and Free Software in general. There will be workshops, talks and room for various projects to present themselves. FreeBSD will be present with a booth as well as several talks." [[events]] id = "asiabsdcon-2007" @@ -52,28 +52,28 @@ site = "University of Tokyo" description = "AsiaBSDCon is a conference for users and developers on BSD based systems. The conference is for anyone developing, deploying and using systems based on FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Darwin and MacOS X. AsiaBSDCon is a technical conference and aims to collect the best technical papers and presentations available to ensure that the latest developments in our open source community are shared with the widest possible audience." [[events]] -id = "linuxtage-chemnitz-2007" -name = "Linuxtage Chemnitz 2007" -url = "http://chemnitzer.linux-tage.de/2007/info/" -startDate = "2007-03-03" *** 1163 LINES SKIPPED *** From owner-dev-commits-doc-all@freebsd.org Thu Jun 17 14:59:48 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DFFB06549C9 for ; Thu, 17 Jun 2021 14:59:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G5QFc60Hmz3C05; Thu, 17 Jun 2021 14:59:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B61381173E; Thu, 17 Jun 2021 14:59:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15HExm1i011385; Thu, 17 Jun 2021 14:59:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15HExmIx011384; Thu, 17 Jun 2021 14:59:48 GMT (envelope-from git) Date: Thu, 17 Jun 2021 14:59:48 GMT Message-Id: <202106171459.15HExmIx011384@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Li-Wen Hsu Subject: git: a950ff1aed - main - Add freebsd-friday-2021-06-18 event MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: lwhsu X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a950ff1aedef26cf44675211ea0e6b2b6c28a5fa Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jun 2021 14:59:48 -0000 The branch main has been updated by lwhsu (ports, src committer): URL: https://cgit.FreeBSD.org/doc/commit/?id=a950ff1aedef26cf44675211ea0e6b2b6c28a5fa commit a950ff1aedef26cf44675211ea0e6b2b6c28a5fa Author: Li-Wen Hsu AuthorDate: 2021-06-17 14:58:02 +0000 Commit: Li-Wen Hsu CommitDate: 2021-06-17 14:58:02 +0000 Add freebsd-friday-2021-06-18 event Approved by: carlavilla (implicitly) Sponsored by: The FreeBSD Foundation --- website/data/en/events/events2021.toml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/website/data/en/events/events2021.toml b/website/data/en/events/events2021.toml index a103de94b0..623e17eac8 100644 --- a/website/data/en/events/events2021.toml +++ b/website/data/en/events/events2021.toml @@ -73,3 +73,12 @@ startDate = "2021-06-09" endDate = "2021-06-11" site = "Online" description = "Join us for the online June 2021 FreeBSD Developer Summit. The event will consist of virtual, half day sessions, taking place June 9-11, 2021. It is free to attend, but we ask that you register with the eventbrite system to gain access to the meeting room. In addition to developer discussion sessions, we will also have vendor talks." + +[[events]] +id = "freebsd-friday-2021-06-18" +name = "FreeBSD Friday: How to Submit a Patch to FreeBSD" +url = "https://live.freebsd.org/FreeBSD/freebsdfriday/" +startDate = "2021-06-18" +endDate = "2021-06-18" +site = "live.FreeBSD.org" +description = "On June 18th 2021 from 17:00 UTC there will be an 1 hour live streaming session of the FreeBSD Fridays. The topic of this week is: \"How to Submit a Patch to #FreeBSD\" by Drew Gurkowski and Ed Maste." From owner-dev-commits-doc-all@freebsd.org Thu Jun 17 16:39:06 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59817656082 for ; Thu, 17 Jun 2021 16:39:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G5SSB21zMz3Jjv; Thu, 17 Jun 2021 16:39:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E71312F00; Thu, 17 Jun 2021 16:39:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15HGd6hH043152; Thu, 17 Jun 2021 16:39:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15HGd6ue043151; Thu, 17 Jun 2021 16:39:06 GMT (envelope-from git) Date: Thu, 17 Jun 2021 16:39:06 GMT Message-Id: <202106171639.15HGd6ue043151@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: b7385189ef - main - committers-guide: Strongly suggest careful review of all pull requests MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b7385189ef01de0a37ad5490ce14f3c85bab1af2 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jun 2021 16:39:06 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=b7385189ef01de0a37ad5490ce14f3c85bab1af2 commit b7385189ef01de0a37ad5490ce14f3c85bab1af2 Author: Warner Losh AuthorDate: 2021-06-16 22:33:08 +0000 Commit: Warner Losh CommitDate: 2021-06-17 16:38:19 +0000 committers-guide: Strongly suggest careful review of all pull requests Pull requests should be treated with extreme caution and be carefully reviewed. Add this advice. Reviewed by: allanjude,bcr Sponsored by: Netflix Differential Revsion: https://reviews.freebsd.org/D30794 --- documentation/content/en/articles/committers-guide/_index.adoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index fffc6ef128..1d1d3df923 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -2329,15 +2329,21 @@ However, when there's multiple commits, especially when minor adjustments are ne Briefly, these commands create a branch; cherry-picks the changes from the pull request; tests it; adjusts the commit messages; and fast forward merges it back to `main`. The PR number is `$PR` below. When adjusting the message, add `Pull Request: https://github.com/freebsd-src/pull/$PR`. +All pull requests committed to the FreeBSD repository should be reviewed by at least one person. +This need not be the person committing it, but in that case the person committing it should trust the other reviewers competence to review the commit. +Committers that do a code review of pull requests before pushing them into the repo should add a `Reviewed by:` line to the commit, because in this case it is not implicit. +Add anybody that reviews and approves the commit on github to `Reviewed by:` as well. +As always, care should be taken to ensure the change does what it is supposed to, and that no malicious code is present. [NOTE] ====== In addition, please check to make sure that the pull request author name is not anonymous. -Github's web interface generates names like: +Github's web editing interface generates names like: [source,shell] .... Author: github-user <38923459+github-user@users.noreply.github.com> .... A polite request to the author for a better name and/or email should be made. +Extra care should be taken to ensure no style issue or malicious code is introduced. ====== [source,shell] From owner-dev-commits-doc-all@freebsd.org Fri Jun 18 00:13:22 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BAD9E63804A for ; Fri, 18 Jun 2021 00:13:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G5fXL4WB5z4WLR; Fri, 18 Jun 2021 00:13:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 81CB018F26; Fri, 18 Jun 2021 00:13:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15I0DMnF054579; Fri, 18 Jun 2021 00:13:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15I0DMb0054578; Fri, 18 Jun 2021 00:13:22 GMT (envelope-from git) Date: Fri, 18 Jun 2021 00:13:22 GMT Message-Id: <202106180013.15I0DMb0054578@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Philip Paeps Subject: git: d9ed34de4f - main - List the Bulgaria mirror in the Handbook MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d9ed34de4fe4ae5fb0c7c2f8203f50d931cc96a3 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 00:13:22 -0000 The branch main has been updated by philip (ports, src committer): URL: https://cgit.FreeBSD.org/doc/commit/?id=d9ed34de4fe4ae5fb0c7c2f8203f50d931cc96a3 commit d9ed34de4fe4ae5fb0c7c2f8203f50d931cc96a3 Author: Philip Paeps AuthorDate: 2021-06-17 13:30:05 +0000 Commit: Philip Paeps CommitDate: 2021-06-18 00:12:53 +0000 List the Bulgaria mirror in the Handbook Reported by: Valentin Nikolov Reviewed by: bcr --- documentation/content/en/books/handbook/mirrors/_index.adoc | 9 ++++++++- shared/mirrors.adoc | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/documentation/content/en/books/handbook/mirrors/_index.adoc b/documentation/content/en/books/handbook/mirrors/_index.adoc index 501a30f77a..af814f52cc 100644 --- a/documentation/content/en/books/handbook/mirrors/_index.adoc +++ b/documentation/content/en/books/handbook/mirrors/_index.adoc @@ -74,7 +74,7 @@ The regional sites carry the most recent versions for the most popular architect All sites provide access via anonymous FTP but some sites also provide access via other methods. The access methods available for each site are provided in parentheses after the hostname. -<>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>. +<>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>. (as of UTC) @@ -132,6 +132,13 @@ In case of problems, please contact the hostmaster `<{mirrors-brazil-email}>` fo * {mirrors-brazil-ftp3} (ftp / rsync) * {mirrors-brazil-ftp4} (ftp) +[[bulgaria]] +*{mirrors-bulgaria}* + +In case of problems, please contact the hostmaster `<{mirrors-bulgaria-email}>` for this domain. + +* {mirrors-bulgaria-ftp} (ftp / {mirrors-bulgaria-ftpv6} / {mirrors-bulgaria-ftp-http} / {mirrors-bulgaria-ftp-httpv6} / rsync / rsyncv6) + [[czech-republic]] *{mirrors-czech}* diff --git a/shared/mirrors.adoc b/shared/mirrors.adoc index 7132c4f1b6..87b1d103b6 100644 --- a/shared/mirrors.adoc +++ b/shared/mirrors.adoc @@ -62,6 +62,11 @@ :mirrors-brazil-email: hostmaster@br.FreeBSD.org :mirrors-brazil: Brazil +:mirrors-bulgaria-ftp: ftp://ftp.bg.FreeBSD.org/pub/FreeBSD/ +:mirrors-bulgaria-email: mirror@telepoint.bg +:mirrors-bulgaria-rsync: rsync.bg.FreeBSD.org +:mirrors-bulgaria: Bulgaria + // Czech Republic mirrors :mirrors-czech-www-http: http://www.cz.FreeBSD.org/ :mirrors-czech-www-httpv6: http://www.cz.FreeBSD.org/ From owner-dev-commits-doc-all@freebsd.org Fri Jun 18 10:20:28 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8673464202D for ; Fri, 18 Jun 2021 10:20:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G5w0r34tYz3lqw; Fri, 18 Jun 2021 10:20:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5244F209E6; Fri, 18 Jun 2021 10:20:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15IAKSv4059860; Fri, 18 Jun 2021 10:20:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15IAKS4Q059859; Fri, 18 Jun 2021 10:20:28 GMT (envelope-from git) Date: Fri, 18 Jun 2021 10:20:28 GMT Message-Id: <202106181020.15IAKS4Q059859@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ceri Davies Subject: git: f47dae7801 - main - relnotes.adoc: Fix broken link MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ceri X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f47dae7801932f35f4367e3ca6fc85be41a602f4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 10:20:28 -0000 The branch main has been updated by ceri: URL: https://cgit.FreeBSD.org/doc/commit/?id=f47dae7801932f35f4367e3ca6fc85be41a602f4 commit f47dae7801932f35f4367e3ca6fc85be41a602f4 Author: Ceri Davies AuthorDate: 2021-06-18 10:18:51 +0000 Commit: Ceri Davies CommitDate: 2021-06-18 10:20:15 +0000 relnotes.adoc: Fix broken link Reported by: allanjude --- website/content/en/relnotes.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/en/relnotes.adoc b/website/content/en/relnotes.adoc index bbce583bc1..a0dd8085a2 100644 --- a/website/content/en/relnotes.adoc +++ b/website/content/en/relnotes.adoc @@ -22,7 +22,7 @@ The release notes, hardware notes, and installation instructions are customized == RELEASE versions of FreeBSD -The release documentation for each -RELEASE version of FreeBSD (for example, {rel120-current}-RELEASE) can be found on the link:..releases/[releases] page of the FreeBSD web site and on mirror sites. +The release documentation for each -RELEASE version of FreeBSD (for example, {rel120-current}-RELEASE) can be found on the link:../releases/[releases] page of the FreeBSD web site and on mirror sites. These files are located in the top-level directory of each distribution. Both HTML and text forms are usually provided. From owner-dev-commits-doc-all@freebsd.org Fri Jun 18 15:08:40 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D4860647AE5 for ; Fri, 18 Jun 2021 15:08:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G62PN5RFwz4lHy; Fri, 18 Jun 2021 15:08:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A30BD24B63; Fri, 18 Jun 2021 15:08:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15IF8ei6037947; Fri, 18 Jun 2021 15:08:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15IF8efl037946; Fri, 18 Jun 2021 15:08:40 GMT (envelope-from git) Date: Fri, 18 Jun 2021 15:08:40 GMT Message-Id: <202106181508.15IF8efl037946@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 8e3f48400a - main - arch-handbook: reformat scsi chapter one sentence per line before editing. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8e3f48400a61a87e4df4e3cdc0c9f3528b788e9d Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 15:08:40 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=8e3f48400a61a87e4df4e3cdc0c9f3528b788e9d commit 8e3f48400a61a87e4df4e3cdc0c9f3528b788e9d Author: Warner Losh AuthorDate: 2021-06-18 15:07:40 +0000 Commit: Warner Losh CommitDate: 2021-06-18 15:07:54 +0000 arch-handbook: reformat scsi chapter one sentence per line before editing. --- .../en/books/arch-handbook/scsi/_index.adoc | 301 ++++++++++++++++----- 1 file changed, 227 insertions(+), 74 deletions(-) diff --git a/documentation/content/en/books/arch-handbook/scsi/_index.adoc b/documentation/content/en/books/arch-handbook/scsi/_index.adoc index 684ecd184c..c9a889df66 100644 --- a/documentation/content/en/books/arch-handbook/scsi/_index.adoc +++ b/documentation/content/en/books/arch-handbook/scsi/_index.adoc @@ -34,25 +34,37 @@ toc::[] [[scsi-synopsis]] == Synopsis -This document assumes that the reader has a general understanding of device drivers in FreeBSD and of the SCSI protocol. Much of the information in this document was extracted from the drivers: +This document assumes that the reader has a general understanding of device drivers in FreeBSD and of the SCSI protocol. +Much of the information in this document was extracted from the drivers: * ncr ([.filename]#/sys/pci/ncr.c#) by Wolfgang Stanglmeier and Stefan Esser * sym ([.filename]#/sys/dev/sym/sym_hipd.c#) by Gerard Roudier * aic7xxx ([.filename]#/sys/dev/aic7xxx/aic7xxx.c#) by Justin T. Gibbs -and from the CAM code itself (by Justin T. Gibbs, see [.filename]#/sys/cam/*#). When some solution looked the most logical and was essentially verbatim extracted from the code by Justin T. Gibbs, I marked it as "recommended". +and from the CAM code itself (by Justin T. Gibbs, see [.filename]#/sys/cam/*#). +When some solution looked the most logical and was essentially verbatim extracted from the code by Justin T. Gibbs, I marked it as "recommended". -The document is illustrated with examples in pseudo-code. Although sometimes the examples have many details and look like real code, it is still pseudo-code. It was written to demonstrate the concepts in an understandable way. For a real driver other approaches may be more modular and efficient. It also abstracts from the hardware details, as well as issues that would cloud the demonstrated concepts or that are supposed to be described in the other chapters of the developers handbook. Such details are commonly shown as calls to functions with descriptive names, comments or pseudo-statements. Fortunately real life full-size examples with all the details can be found in the real drivers. +The document is illustrated with examples in pseudo-code. +Although sometimes the examples have many details and look like real code, it is still pseudo-code. +It was written to demonstrate the concepts in an understandable way. +For a real driver other approaches may be more modular and efficient. +It also abstracts from the hardware details, as well as issues that would cloud the demonstrated concepts or that are supposed to be described in the other chapters of the developers handbook. +Such details are commonly shown as calls to functions with descriptive names, comments or pseudo-statements. +Fortunately real life full-size examples with all the details can be found in the real drivers. [[scsi-general]] == General Architecture -CAM stands for Common Access Method. It is a generic way to address the I/O buses in a SCSI-like way. This allows a separation of the generic device drivers from the drivers controlling the I/O bus: for example the disk driver becomes able to control disks on both SCSI, IDE, and/or any other bus so the disk driver portion does not have to be rewritten (or copied and modified) for every new I/O bus. Thus the two most important active entities are: +CAM stands for Common Access Method. +It is a generic way to address the I/O buses in a SCSI-like way. +This allows a separation of the generic device drivers from the drivers controlling the I/O bus: for example the disk driver becomes able to control disks on both SCSI, IDE, and/or any other bus so the disk driver portion does not have to be rewritten (or copied and modified) for every new I/O bus. +Thus the two most important active entities are: * _Peripheral Modules_ - a driver for peripheral devices (disk, tape, CD-ROM, etc.) * _SCSI Interface Modules_ (SIM) - a Host Bus Adapter drivers for connecting to an I/O bus such as SCSI or IDE. -A peripheral driver receives requests from the OS, converts them to a sequence of SCSI commands and passes these SCSI commands to a SCSI Interface Module. The SCSI Interface Module is responsible for passing these commands to the actual hardware (or if the actual hardware is not SCSI but, for example, IDE then also converting the SCSI commands to the native commands of the hardware). +A peripheral driver receives requests from the OS, converts them to a sequence of SCSI commands and passes these SCSI commands to a SCSI Interface Module. +The SCSI Interface Module is responsible for passing these commands to the actual hardware (or if the actual hardware is not SCSI but, for example, IDE then also converting the SCSI commands to the native commands of the hardware). As we are interested in writing a SCSI adapter driver here, from this point on we will consider everything from the SIM standpoint. @@ -68,7 +80,9 @@ A typical SIM driver needs to include the following CAM-related header files: #include .... -The first thing each SIM driver must do is register itself with the CAM subsystem. This is done during the driver's `xxx_attach()` function (here and further xxx_ is used to denote the unique driver name prefix). The `xxx_attach()` function itself is called by the system bus auto-configuration code which we do not describe here. +The first thing each SIM driver must do is register itself with the CAM subsystem. +This is done during the driver's `xxx_attach()` function (here and further xxx_ is used to denote the unique driver name prefix). +The `xxx_attach()` function itself is called by the system bus auto-configuration code which we do not describe here. This is achieved in multiple steps: first it is necessary to allocate the queue of requests associated with this SIM: @@ -81,7 +95,9 @@ This is achieved in multiple steps: first it is necessary to allocate the queue } .... -Here `SIZE` is the size of the queue to be allocated, maximal number of requests it could contain. It is the number of requests that the SIM driver can handle in parallel on one SCSI card. Commonly it can be calculated as: +Here `SIZE` is the size of the queue to be allocated, maximal number of requests it could contain. +It is the number of requests that the SIM driver can handle in parallel on one SCSI card. +Commonly it can be calculated as: [.programlisting] .... @@ -106,11 +122,12 @@ Note that if we are not able to create a SIM descriptor we free the `devq` also If a SCSI card has multiple SCSI buses on it then each bus requires its own `cam_sim` structure. -An interesting question is what to do if a SCSI card has more than one SCSI bus, do we need one `devq` structure per card or per SCSI bus? The answer given in the comments to the CAM code is: either way, as the driver's author prefers. +An interesting question is what to do if a SCSI card has more than one SCSI bus, do we need one `devq` structure per card or per SCSI bus? +The answer given in the comments to the CAM code is: either way, as the driver's author prefers. The arguments are: -* `action_func` - pointer to the driver's `xxx_action` function. +* `action_func` - pointer to the driver's `xxx_action` function. + [source,c] ---- @@ -127,11 +144,21 @@ static void (); ---- * driver_name - the name of the actual driver, such as "ncr" or "wds". -* `softc` - pointer to the driver's internal descriptor for this SCSI card. This pointer will be used by the driver in future to get private data. +* `softc` - pointer to the driver's internal descriptor for this SCSI card. +This pointer will be used by the driver in future to get private data. * unit - the controller unit number, for example for controller "mps0" this number will be 0 -* mtx - Lock associated with this SIM. For SIMs that don't know about locking, pass in Giant. For SIMs that do, pass in the lock used to guard this SIM's data structures. This lock will be held when xxx_action and xxx_poll are called. -* max_dev_transactions - maximal number of simultaneous transactions per SCSI target in the non-tagged mode. This value will be almost universally equal to 1, with possible exceptions only for the non-SCSI cards. Also the drivers that hope to take advantage by preparing one transaction while another one is executed may set it to 2 but this does not seem to be worth the complexity. -* max_tagged_dev_transactions - the same thing, but in the tagged mode. Tags are the SCSI way to initiate multiple transactions on a device: each transaction is assigned a unique tag and the transaction is sent to the device. When the device completes some transaction it sends back the result together with the tag so that the SCSI adapter (and the driver) can tell which transaction was completed. This argument is also known as the maximal tag depth. It depends on the abilities of the SCSI adapter. +* mtx - Lock associated with this SIM. +For SIMs that don't know about locking, pass in Giant. +For SIMs that do, pass in the lock used to guard this SIM's data structures. +This lock will be held when xxx_action and xxx_poll are called. +* max_dev_transactions - maximal number of simultaneous transactions per SCSI target in the non-tagged mode. +This value will be almost universally equal to 1, with possible exceptions only for the non-SCSI cards. +Also the drivers that hope to take advantage by preparing one transaction while another one is executed may set it to 2 but this does not seem to be worth the complexity. +* max_tagged_dev_transactions - the same thing, but in the tagged mode. +Tags are the SCSI way to initiate multiple transactions on a device: each transaction is assigned a unique tag and the transaction is sent to the device. +When the device completes some transaction it sends back the result together with the tag so that the SCSI adapter (and the driver) can tell which transaction was completed. +This argument is also known as the maximal tag depth. +It depends on the abilities of the SCSI adapter. Finally we register the SCSI buses associated with our SCSI adapter: @@ -143,13 +170,23 @@ Finally we register the SCSI buses associated with our SCSI adapter: } .... -If there is one `devq` structure per SCSI bus (i.e., we consider a card with multiple buses as multiple cards with one bus each) then the bus number will always be 0, otherwise each bus on the SCSI card should be get a distinct number. Each bus needs its own separate structure cam_sim. +If there is one `devq` structure per SCSI bus (i.e., we consider a card with multiple buses as multiple cards with one bus each) then the bus number will always be 0, otherwise each bus on the SCSI card should be get a distinct number. +Each bus needs its own separate structure cam_sim. -After that our controller is completely hooked to the CAM system. The value of `devq` can be discarded now: sim will be passed as an argument in all further calls from CAM and devq can be derived from it. +After that our controller is completely hooked to the CAM system. +The value of `devq` can be discarded now: sim will be passed as an argument in all further calls from CAM and devq can be derived from it. -CAM provides the framework for such asynchronous events. Some events originate from the lower levels (the SIM drivers), some events originate from the peripheral drivers, some events originate from the CAM subsystem itself. Any driver can register callbacks for some types of the asynchronous events, so that it would be notified if these events occur. +CAM provides the framework for such asynchronous events. +Some events originate from the lower levels (the SIM drivers), some events originate from the peripheral drivers, some events originate from the CAM subsystem itself. +Any driver can register callbacks for some types of the asynchronous events, so that it would be notified if these events occur. -A typical example of such an event is a device reset. Each transaction and event identifies the devices to which it applies by the means of "path". The target-specific events normally occur during a transaction with this device. So the path from that transaction may be re-used to report this event (this is safe because the event path is copied in the event reporting routine but not deallocated nor passed anywhere further). Also it is safe to allocate paths dynamically at any time including the interrupt routines, although that incurs certain overhead, and a possible problem with this approach is that there may be no free memory at that time. For a bus reset event we need to define a wildcard path including all devices on the bus. So we can create the path for the future bus reset events in advance and avoid problems with the future memory shortage: +A typical example of such an event is a device reset. +Each transaction and event identifies the devices to which it applies by the means of "path". +The target-specific events normally occur during a transaction with this device. +So the path from that transaction may be re-used to report this event (this is safe because the event path is copied in the event reporting routine but not deallocated nor passed anywhere further). +Also it is safe to allocate paths dynamically at any time including the interrupt routines, although that incurs certain overhead, and a possible problem with this approach is that there may be no free memory at that time. +For a bus reset event we need to define a wildcard path including all devices on the bus. +So we can create the path for the future bus reset events in advance and avoid problems with the future memory shortage: [.programlisting] .... @@ -176,11 +213,16 @@ As you can see the path includes: If the driver can not allocate this path it will not be able to work normally, so in that case we dismantle that SCSI bus. -And we save the path pointer in the `softc` structure for future use. After that we save the value of sim (or we can also discard it on the exit from `xxx_probe()` if we wish). +And we save the path pointer in the `softc` structure for future use. +After that we save the value of sim (or we can also discard it on the exit from `xxx_probe()` if we wish). -That is all for a minimalistic initialization. To do things right there is one more issue left. +That is all for a minimalistic initialization. +To do things right there is one more issue left. -For a SIM driver there is one particularly interesting event: when a target device is considered lost. In this case resetting the SCSI negotiations with this device may be a good idea. So we register a callback for this event with CAM. The request is passed to CAM by requesting CAM action on a CAM control block for this type of request: +For a SIM driver there is one particularly interesting event: when a target device is considered lost. +In this case resetting the SCSI negotiations with this device may be a good idea. +So we register a callback for this event with CAM. +The request is passed to CAM by requesting CAM action on a CAM control block for this type of request: [.programlisting] .... @@ -203,9 +245,14 @@ static void (); ---- -Do some action on request of the CAM subsystem. Sim describes the SIM for the request, CCB is the request itself. CCB stands for "CAM Control Block". It is a union of many specific instances, each describing arguments for some type of transactions. All of these instances share the CCB header where the common part of arguments is stored. +Do some action on request of the CAM subsystem. +Sim describes the SIM for the request, CCB is the request itself. +CCB stands for "CAM Control Block". +It is a union of many specific instances, each describing arguments for some type of transactions. +All of these instances share the CCB header where the common part of arguments is stored. -CAM supports the SCSI controllers working in both initiator ("normal") mode and target (simulating a SCSI device) mode. Here we only consider the part relevant to the initiator mode. +CAM supports the SCSI controllers working in both initiator ("normal") mode and target (simulating a SCSI device) mode. +Here we only consider the part relevant to the initiator mode. There are a few function and macros (in other words, methods) defined to access the public data in the struct sim: @@ -217,7 +264,8 @@ There are a few function and macros (in other words, methods) defined to access To identify the device, `xxx_action()` can get the unit number and pointer to its structure softc using these functions. -The type of request is stored in `ccb->ccb_h.func_code`. So generally `xxx_action()` consists of a big switch: +The type of request is stored in `ccb->ccb_h.func_code`. +So generally `xxx_action()` consists of a big switch: [.programlisting] .... @@ -238,17 +286,30 @@ The type of request is stored in `ccb->ccb_h.func_code`. So generally `xxx_actio As can be seen from the default case (if an unknown command was received) the return code of the command is set into `ccb->ccb_h.status` and the completed CCB is returned back to CAM by calling `xpt_done(ccb)`. -`xpt_done()` does not have to be called from `xxx_action()`: For example an I/O request may be enqueued inside the SIM driver and/or its SCSI controller. Then when the device would post an interrupt signaling that the processing of this request is complete `xpt_done()` may be called from the interrupt handling routine. - -Actually, the CCB status is not only assigned as a return code but a CCB has some status all the time. Before CCB is passed to the `xxx_action()` routine it gets the status CCB_REQ_INPROG meaning that it is in progress. There are a surprising number of status values defined in [.filename]#/sys/cam/cam.h# which should be able to represent the status of a request in great detail. More interesting yet, the status is in fact a "bitwise or" of an enumerated status value (the lower 6 bits) and possible additional flag-like bits (the upper bits). The enumerated values will be discussed later in more detail. The summary of them can be found in the Errors Summary section. The possible status flags are: - -* _CAM_DEV_QFRZN_ - if the SIM driver gets a serious error (for example, the device does not respond to the selection or breaks the SCSI protocol) when processing a CCB it should freeze the request queue by calling `xpt_freeze_simq()`, return the other enqueued but not processed yet CCBs for this device back to the CAM queue, then set this flag for the troublesome CCB and call `xpt_done()`. This flag causes the CAM subsystem to unfreeze the queue after it handles the error. -* _CAM_AUTOSNS_VALID_ - if the device returned an error condition and the flag CAM_DIS_AUTOSENSE is not set in CCB the SIM driver must execute the REQUEST SENSE command automatically to extract the sense (extended error information) data from the device. If this attempt was successful the sense data should be saved in the CCB and this flag set. -* _CAM_RELEASE_SIMQ_ - like CAM_DEV_QFRZN but used in case there is some problem (or resource shortage) with the SCSI controller itself. Then all the future requests to the controller should be stopped by `xpt_freeze_simq()`. The controller queue will be restarted after the SIM driver overcomes the shortage and informs CAM by returning some CCB with this flag set. -* _CAM_SIM_QUEUED_ - when SIM puts a CCB into its request queue this flag should be set (and removed when this CCB gets dequeued before being returned back to CAM). This flag is not used anywhere in the CAM code now, so its purpose is purely diagnostic. +`xpt_done()` does not have to be called from `xxx_action()`: For example an I/O request may be enqueued inside the SIM driver and/or its SCSI controller. +Then when the device would post an interrupt signaling that the processing of this request is complete `xpt_done()` may be called from the interrupt handling routine. + +Actually, the CCB status is not only assigned as a return code but a CCB has some status all the time. +Before CCB is passed to the `xxx_action()` routine it gets the status CCB_REQ_INPROG meaning that it is in progress. +There are a surprising number of status values defined in [.filename]#/sys/cam/cam.h# which should be able to represent the status of a request in great detail. +More interesting yet, the status is in fact a "bitwise or" of an enumerated status value (the lower 6 bits) and possible additional flag-like bits (the upper bits). +The enumerated values will be discussed later in more detail. +The summary of them can be found in the Errors Summary section. +The possible status flags are: + +* _CAM_DEV_QFRZN_ - if the SIM driver gets a serious error (for example, the device does not respond to the selection or breaks the SCSI protocol) when processing a CCB it should freeze the request queue by calling `xpt_freeze_simq()`, return the other enqueued but not processed yet CCBs for this device back to the CAM queue, then set this flag for the troublesome CCB and call `xpt_done()`. +This flag causes the CAM subsystem to unfreeze the queue after it handles the error. +* _CAM_AUTOSNS_VALID_ - if the device returned an error condition and the flag CAM_DIS_AUTOSENSE is not set in CCB the SIM driver must execute the REQUEST SENSE command automatically to extract the sense (extended error information) data from the device. +If this attempt was successful the sense data should be saved in the CCB and this flag set. +* _CAM_RELEASE_SIMQ_ - like CAM_DEV_QFRZN but used in case there is some problem (or resource shortage) with the SCSI controller itself. +Then all the future requests to the controller should be stopped by `xpt_freeze_simq()`. +The controller queue will be restarted after the SIM driver overcomes the shortage and informs CAM by returning some CCB with this flag set. +* _CAM_SIM_QUEUED_ - when SIM puts a CCB into its request queue this flag should be set (and removed when this CCB gets dequeued before being returned back to CAM). +This flag is not used anywhere in the CAM code now, so its purpose is purely diagnostic. * _CAM_QOS_VALID_ - The QOS data is now valid. -The function `xxx_action()` is not allowed to sleep, so all the synchronization for resource access must be done using SIM or device queue freezing. Besides the aforementioned flags the CAM subsystem provides functions `xpt_release_simq()` and `xpt_release_devq()` to unfreeze the queues directly, without passing a CCB to CAM. +The function `xxx_action()` is not allowed to sleep, so all the synchronization for resource access must be done using SIM or device queue freezing. +Besides the aforementioned flags the CAM subsystem provides functions `xpt_release_simq()` and `xpt_release_devq()` to unfreeze the queues directly, without passing a CCB to CAM. The CCB header contains the following fields: @@ -271,7 +332,8 @@ The most common initiator mode requests are: * _XPT_SCSI_IO_ - execute an I/O transaction + -The instance "struct ccb_scsiio csio" of the union ccb is used to transfer the arguments. They are: +The instance "struct ccb_scsiio csio" of the union ccb is used to transfer the arguments. +They are: ** _cdb_io_ - pointer to the SCSI command buffer or the buffer itself ** _cdb_len_ - SCSI command length @@ -280,7 +342,9 @@ The instance "struct ccb_scsiio csio" of the union ccb is used to transfer the a ** _sglist_cnt_ - counter of the scatter/gather segments ** _scsi_status_ - place to return the SCSI status ** _sense_data_ - buffer for the SCSI sense information if the command returns an error (the SIM driver is supposed to run the REQUEST SENSE command automatically in this case if the CCB flag CAM_DIS_AUTOSENSE is not set) -** _sense_len_ - the length of that buffer (if it happens to be higher than size of sense_data the SIM driver must silently assume the smaller value) resid, sense_resid - if the transfer of data or SCSI sense returned an error these are the returned counters of the residual (not transferred) data. They do not seem to be especially meaningful, so in a case when they are difficult to compute (say, counting bytes in the SCSI controller's FIFO buffer) an approximate value will do as well. For a successfully completed transfer they must be set to zero. +** _sense_len_ - the length of that buffer (if it happens to be higher than size of sense_data the SIM driver must silently assume the smaller value) resid, sense_resid - if the transfer of data or SCSI sense returned an error these are the returned counters of the residual (not transferred) data. +They do not seem to be especially meaningful, so in a case when they are difficult to compute (say, counting bytes in the SCSI controller's FIFO buffer) an approximate value will do as well. +For a successfully completed transfer they must be set to zero. ** _tag_action_ - the kind of tag to use: *** CAM_TAG_ACTION_NONE - do not use tags for this transaction @@ -317,7 +381,10 @@ Also we check that the device is supported at all by our controller: } .... + -Then allocate whatever data structures (such as card-dependent hardware control block) we need to process this request. If we can not then freeze the SIM queue and remember that we have a pending operation, return the CCB back and ask CAM to re-queue it. Later when the resources become available the SIM queue must be unfrozen by returning a ccb with the `CAM_SIMQ_RELEASE` bit set in its status. Otherwise, if all went well, link the CCB with the hardware control block (HCB) and mark it as queued. +Then allocate whatever data structures (such as card-dependent hardware control block) we need to process this request. +If we can not then freeze the SIM queue and remember that we have a pending operation, return the CCB back and ask CAM to re-queue it. +Later when the resources become available the SIM queue must be unfrozen by returning a ccb with the `CAM_SIMQ_RELEASE` bit set in its status. +Otherwise, if all went well, link the CCB with the hardware control block (HCB) and mark it as queued. + [.programlisting] .... @@ -335,7 +402,9 @@ Then allocate whatever data structures (such as card-dependent hardware control ccb_h->status |= CAM_SIM_QUEUED; .... + -Extract the target data from CCB into the hardware control block. Check if we are asked to assign a tag and if yes then generate an unique tag and build the SCSI tag messages. The SIM driver is also responsible for negotiations with the devices to set the maximal mutually supported bus width, synchronous rate and offset. +Extract the target data from CCB into the hardware control block. +Check if we are asked to assign a tag and if yes then generate an unique tag and build the SCSI tag messages. +The SIM driver is also responsible for negotiations with the devices to set the maximal mutually supported bus width, synchronous rate and offset. + [.programlisting] .... @@ -347,9 +416,13 @@ Extract the target data from CCB into the hardware control block. Check if we ar generate_negotiation_messages(hcb); .... + -Then set up the SCSI command. The command storage may be specified in the CCB in many interesting ways, specified by the CCB flags. The command buffer can be contained in CCB or pointed to, in the latter case the pointer may be physical or virtual. Since the hardware commonly needs physical address we always convert the address to the physical one, typically using the busdma API. +Then set up the SCSI command. +The command storage may be specified in the CCB in many interesting ways, specified by the CCB flags. +The command buffer can be contained in CCB or pointed to, in the latter case the pointer may be physical or virtual. +Since the hardware commonly needs physical address we always convert the address to the physical one, typically using the busdma API. + -In case if a physical address is requested it is OK to return the CCB with the status `CAM_REQ_INVALID`, the current drivers do that. If necessary a physical address can be also converted or mapped back to a virtual address but with big pain, so we do not do that. +In case if a physical address is requested it is OK to return the CCB with the status `CAM_REQ_INVALID`, the current drivers do that. +If necessary a physical address can be also converted or mapped back to a virtual address but with big pain, so we do not do that. + [.programlisting] .... @@ -369,7 +442,10 @@ In case if a physical address is requested it is OK to return the CCB with the s hcb->cmdlen = csio->cdb_len; .... + -Now it is time to set up the data. Again, the data storage may be specified in the CCB in many interesting ways, specified by the CCB flags. First we get the direction of the data transfer. The simplest case is if there is no data to transfer: +Now it is time to set up the data. +Again, the data storage may be specified in the CCB in many interesting ways, specified by the CCB flags. +First we get the direction of the data transfer. +The simplest case is if there is no data to transfer: + [.programlisting] .... @@ -379,7 +455,15 @@ Now it is time to set up the data. Again, the data storage may be specified in t goto end_data; .... + -Then we check if the data is in one chunk or in a scatter-gather list, and the addresses are physical or virtual. The SCSI controller may be able to handle only a limited number of chunks of limited length. If the request hits this limitation we return an error. We use a special function to return the CCB to handle in one place the HCB resource shortages. The functions to add chunks are driver-dependent, and here we leave them without detailed implementation. See description of the SCSI command (CDB) handling for the details on the address-translation issues. If some variation is too difficult or impossible to implement with a particular card it is OK to return the status `CAM_REQ_INVALID`. Actually, it seems like the scatter-gather ability is not used anywhere in the CAM code now. But at least the case for a single non-scattered virtual buffer must be implemented, it is actively used by CAM. +Then we check if the data is in one chunk or in a scatter-gather list, and the addresses are physical or virtual. +The SCSI controller may be able to handle only a limited number of chunks of limited length. +If the request hits this limitation we return an error. +We use a special function to return the CCB to handle in one place the HCB resource shortages. +The functions to add chunks are driver-dependent, and here we leave them without detailed implementation. +See description of the SCSI command (CDB) handling for the details on the address-translation issues. +If some variation is too difficult or impossible to implement with a particular card it is OK to return the status `CAM_REQ_INVALID`. +Actually, it seems like the scatter-gather ability is not used anywhere in the CAM code now. +But at least the case for a single non-scattered virtual buffer must be implemented, it is actively used by CAM. + [.programlisting] .... @@ -480,16 +564,20 @@ And here is a possible implementation of the function returning CCB: * _XPT_RESET_DEV_ - send the SCSI "BUS DEVICE RESET" message to a device + -There is no data transferred in CCB except the header and the most interesting argument of it is target_id. Depending on the controller hardware a hardware control block just like for the XPT_SCSI_IO request may be constructed (see XPT_SCSI_IO request description) and sent to the controller or the SCSI controller may be immediately programmed to send this RESET message to the device or this request may be just not supported (and return the status `CAM_REQ_INVALID`). Also on completion of the request all the disconnected transactions for this target must be aborted (probably in the interrupt routine). +There is no data transferred in CCB except the header and the most interesting argument of it is target_id. +Depending on the controller hardware a hardware control block just like for the XPT_SCSI_IO request may be constructed (see XPT_SCSI_IO request description) and sent to the controller or the SCSI controller may be immediately programmed to send this RESET message to the device or this request may be just not supported (and return the status `CAM_REQ_INVALID`). +Also on completion of the request all the disconnected transactions for this target must be aborted (probably in the interrupt routine). + -Also all the current negotiations for the target are lost on reset, so they might be cleaned too. Or they clearing may be deferred, because anyway the target would request re-negotiation on the next transaction. +Also all the current negotiations for the target are lost on reset, so they might be cleaned too. +Or they clearing may be deferred, because anyway the target would request re-negotiation on the next transaction. * _XPT_RESET_BUS_ - send the RESET signal to the SCSI bus + No arguments are passed in the CCB, the only interesting argument is the SCSI bus indicated by the struct sim pointer. + A minimalistic implementation would forget the SCSI negotiations for all the devices on the bus and return the status CAM_REQ_CMP. + -The proper implementation would in addition actually reset the SCSI bus (possible also reset the SCSI controller) and mark all the CCBs being processed, both those in the hardware queue and those being disconnected, as done with the status CAM_SCSI_BUS_RESET. Like: +The proper implementation would in addition actually reset the SCSI bus (possible also reset the SCSI controller) and mark all the CCBs being processed, both those in the hardware queue and those being disconnected, as done with the status CAM_SCSI_BUS_RESET. +Like: + [.programlisting] .... @@ -546,13 +634,16 @@ The proper implementation would in addition actually reset the SCSI bus (possibl Implementing the SCSI bus reset as a function may be a good idea because it would be re-used by the timeout function as a last resort if the things go wrong. * _XPT_ABORT_ - abort the specified CCB + -The arguments are transferred in the instance "struct ccb_abort cab" of the union ccb. The only argument field in it is: +The arguments are transferred in the instance "struct ccb_abort cab" of the union ccb. +The only argument field in it is: + _abort_ccb_ - pointer to the CCB to be aborted + -If the abort is not supported just return the status CAM_UA_ABORT. This is also the easy way to minimally implement this call, return CAM_UA_ABORT in any case. +If the abort is not supported just return the status CAM_UA_ABORT. +This is also the easy way to minimally implement this call, return CAM_UA_ABORT in any case. + -The hard way is to implement this request honestly. First check that abort applies to a SCSI transaction: +The hard way is to implement this request honestly. +First check that abort applies to a SCSI transaction: + [.programlisting] .... @@ -567,7 +658,8 @@ The hard way is to implement this request honestly. First check that abort appli .... + -Then it is necessary to find this CCB in our queue. This can be done by walking the list of all our hardware control blocks in search for one associated with this CCB: +Then it is necessary to find this CCB in our queue. +This can be done by walking the list of all our hardware control blocks in search for one associated with this CCB: + [.programlisting] .... @@ -596,7 +688,9 @@ Then it is necessary to find this CCB in our queue. This can be done by walking hcb=found_hcb; .... + -Now we look at the current processing status of the HCB. It may be either sitting in the queue waiting to be sent to the SCSI bus, being transferred right now, or disconnected and waiting for the result of the command, or actually completed by hardware but not yet marked as done by software. To make sure that we do not get in any races with hardware we mark the HCB as being aborted, so that if this HCB is about to be sent to the SCSI bus the SCSI controller will see this flag and skip it. +Now we look at the current processing status of the HCB. +It may be either sitting in the queue waiting to be sent to the SCSI bus, being transferred right now, or disconnected and waiting for the result of the command, or actually completed by hardware but not yet marked as done by software. +To make sure that we do not get in any races with hardware we mark the HCB as being aborted, so that if this HCB is about to be sent to the SCSI bus the SCSI controller will see this flag and skip it. + [.programlisting] .... @@ -620,7 +714,11 @@ Now we look at the current processing status of the HCB. It may be either sittin break; .... + -If the CCB is being transferred right now we would like to signal to the SCSI controller in some hardware-dependent way that we want to abort the current transfer. The SCSI controller would set the SCSI ATTENTION signal and when the target responds to it send an ABORT message. We also reset the timeout to make sure that the target is not sleeping forever. If the command would not get aborted in some reasonable time like 10 seconds the timeout routine would go ahead and reset the whole SCSI bus. Since the command will be aborted in some reasonable time we can just return the abort request now as successfully completed, and mark the aborted CCB as aborted (but not mark it as done yet). +If the CCB is being transferred right now we would like to signal to the SCSI controller in some hardware-dependent way that we want to abort the current transfer. +The SCSI controller would set the SCSI ATTENTION signal and when the target responds to it send an ABORT message. +We also reset the timeout to make sure that the target is not sleeping forever. +If the command would not get aborted in some reasonable time like 10 seconds the timeout routine would go ahead and reset the whole SCSI bus. +Since the command will be aborted in some reasonable time we can just return the abort request now as successfully completed, and mark the aborted CCB as aborted (but not mark it as done yet). + [.programlisting] .... @@ -641,7 +739,8 @@ If the CCB is being transferred right now we would like to signal to the SCSI co break; .... + -If the CCB is in the list of disconnected then set it up as an abort request and re-queue it at the front of hardware queue. Reset the timeout and report the abort request to be completed. +If the CCB is in the list of disconnected then set it up as an abort request and re-queue it at the front of hardware queue. +Reset the timeout and report the abort request to be completed. + [.programlisting] .... @@ -658,9 +757,13 @@ If the CCB is in the list of disconnected then set it up as an abort request and return; .... + -That is all for the ABORT request, although there is one more issue. As the ABORT message cleans all the ongoing transactions on a LUN we have to mark all the other active transactions on this LUN as aborted. That should be done in the interrupt routine, after the transaction gets aborted. +That is all for the ABORT request, although there is one more issue. +As the ABORT message cleans all the ongoing transactions on a LUN we have to mark all the other active transactions on this LUN as aborted. +That should be done in the interrupt routine, after the transaction gets aborted. + -Implementing the CCB abort as a function may be quite a good idea, this function can be re-used if an I/O transaction times out. The only difference would be that the timed out transaction would return the status CAM_CMD_TIMEOUT for the timed out request. Then the case XPT_ABORT would be small, like that: +Implementing the CCB abort as a function may be quite a good idea, this function can be re-used if an I/O transaction times out. +The only difference would be that the timed out transaction would return the status CAM_CMD_TIMEOUT for the timed out request. +Then the case XPT_ABORT would be small, like that: + [.programlisting] .... @@ -692,7 +795,8 @@ The arguments are transferred in the instance "struct ccb_trans_setting cts" of ** _CCB_TRANS_BUS_WIDTH_VALID_ - bus width ** _CCB_TRANS_DISC_VALID_ - set enable/disable disconnection ** _CCB_TRANS_TQ_VALID_ - set enable/disable tagged queuing -** _flags_ - consists of two parts, binary arguments and identification of sub-operations. The binary arguments are: +** _flags_ - consists of two parts, binary arguments and identification of sub-operations. +The binary arguments are: *** _CCB_TRANS_DISC_ENB_ - enable disconnection *** _CCB_TRANS_TAG_ENB_ - enable tagged queuing @@ -702,9 +806,15 @@ The arguments are transferred in the instance "struct ccb_trans_setting cts" of *** _CCB_TRANS_CURRENT_SETTINGS_ - change the current negotiations *** _CCB_TRANS_USER_SETTINGS_ - remember the desired user values sync_period, sync_offset - self-explanatory, if sync_offset==0 then the asynchronous mode is requested bus_width - bus width, in bits (not bytes) + -Two sets of negotiated parameters are supported, the user settings and the current settings. The user settings are not really used much in the SIM drivers, this is mostly just a piece of memory where the upper levels can store (and later recall) its ideas about the parameters. Setting the user parameters does not cause re-negotiation of the transfer rates. But when the SCSI controller does a negotiation it must never set the values higher than the user parameters, so it is essentially the top boundary. +Two sets of negotiated parameters are supported, the user settings and the current settings. +The user settings are not really used much in the SIM drivers, this is mostly just a piece of memory where the upper levels can store (and later recall) its ideas about the parameters. +Setting the user parameters does not cause re-negotiation of the transfer rates. +But when the SCSI controller does a negotiation it must never set the values higher than the user parameters, so it is essentially the top boundary. + -The current settings are, as the name says, current. Changing them means that the parameters must be re-negotiated on the next transfer. Again, these "new current settings" are not supposed to be forced on the device, just they are used as the initial step of negotiations. Also they must be limited by actual capabilities of the SCSI controller: for example, if the SCSI controller has 8-bit bus and the request asks to set 16-bit wide transfers this parameter must be silently truncated to 8-bit transfers before sending it to the device. +The current settings are, as the name says, current. +Changing them means that the parameters must be re-negotiated on the next transfer. +Again, these "new current settings" are not supposed to be forced on the device, just they are used as the initial step of negotiations. +Also they must be limited by actual capabilities of the SCSI controller: for example, if the SCSI controller has 8-bit bus and the request asks to set 16-bit wide transfers this parameter must be silently truncated to 8-bit transfers before sending it to the device. + One caveat is that the bus width and synchronous parameters are per target while the disconnection and tag enabling parameters are per lun. + @@ -767,7 +877,8 @@ The code looks like: return; .... + -Then when the next I/O request will be processed it will check if it has to re-negotiate, for example by calling the function target_negotiated(hcb). It can be implemented like this: +Then when the next I/O request will be processed it will check if it has to re-negotiate, for example by calling the function target_negotiated(hcb). +It can be implemented like this: + [.programlisting] .... @@ -786,11 +897,14 @@ Then when the next I/O request will be processed it will check if it has to re-n } .... + -After the values are re-negotiated the resulting values must be assigned to both current and goal parameters, so for future I/O transactions the current and goal parameters would be the same and `target_negotiated()` would return TRUE. When the card is initialized (in `xxx_attach()`) the current negotiation values must be initialized to narrow asynchronous mode, the goal and current values must be initialized to the maximal values supported by controller. +After the values are re-negotiated the resulting values must be assigned to both current and goal parameters, so for future I/O transactions the current and goal parameters would be the same and `target_negotiated()` would return TRUE. +When the card is initialized (in `xxx_attach()`) the current negotiation values must be initialized to narrow asynchronous mode, the goal and current values must be initialized to the maximal values supported by controller. + _XPT_GET_TRAN_SETTINGS_ - get values of SCSI transfer settings + -This operations is the reverse of XPT_SET_TRAN_SETTINGS. Fill up the CCB instance "struct ccb_trans_setting cts" with data as requested by the flags CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both are set then the existing drivers return the current settings). Set all the bits in the valid field. +This operations is the reverse of XPT_SET_TRAN_SETTINGS. +Fill up the CCB instance "struct ccb_trans_setting cts" with data as requested by the flags CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both are set then the existing drivers return the current settings). +Set all the bits in the valid field. + _XPT_CALC_GEOMETRY_ - calculate logical (BIOS) geometry of the disk + @@ -802,7 +916,8 @@ The arguments are transferred in the instance "struct ccb_calc_geometry ccg" of ** _heads_ - output, logical heads ** _secs_per_track_ - output, logical sectors per track + -If the returned geometry differs much enough from what the SCSI controller BIOS thinks and a disk on this SCSI controller is used as bootable the system may not be able to boot. The typical calculation example taken from the aic7xxx driver is: +If the returned geometry differs much enough from what the SCSI controller BIOS thinks and a disk on this SCSI controller is used as bootable the system may not be able to boot. +The typical calculation example taken from the aic7xxx driver is: + [.programlisting] .... @@ -830,7 +945,9 @@ If the returned geometry differs much enough from what the SCSI controller BIOS return; .... + -This gives the general idea, the exact calculation depends on the quirks of the particular BIOS. If BIOS provides no way set the "extended translation" flag in EEPROM this flag should normally be assumed equal to 1. Other popular geometries are: +This gives the general idea, the exact calculation depends on the quirks of the particular BIOS. +If BIOS provides no way set the "extended translation" flag in EEPROM this flag should normally be assumed equal to 1. +Other popular geometries are: + [.programlisting] .... @@ -891,7 +1008,13 @@ static void (); ---- -The poll function is used to simulate the interrupts when the interrupt subsystem is not functioning (for example, when the system has crashed and is creating the system dump). The CAM subsystem sets the proper interrupt level before calling the poll routine. So all it needs to do is to call the interrupt routine (or the other way around, the poll routine may be doing the real action and the interrupt routine would just call the poll routine). Why bother about a separate function then? This has to do with different calling conventions. The `xxx_poll` routine gets the struct cam_sim pointer as its argument while the PCI interrupt routine by common convention gets pointer to the struct `xxx_softc` and the ISA interrupt routine gets just the device unit number. So the poll routine would normally look as: +The poll function is used to simulate the interrupts when the interrupt subsystem is not functioning (for example, when the system has crashed and is creating the system dump). +The CAM subsystem sets the proper interrupt level before calling the poll routine. +So all it needs to do is to call the interrupt routine (or the other way around, the poll routine may be doing the real action and the interrupt routine would just call the poll routine). +Why bother about a separate function then? +This has to do with different calling conventions. +The `xxx_poll` routine gets the struct cam_sim pointer as its argument while the PCI interrupt routine by common convention gets pointer to the struct `xxx_softc` and the ISA interrupt routine gets just the device unit number. +So the poll routine would normally look as: [.programlisting] .... @@ -963,7 +1086,12 @@ Implementation for a single type of event, AC_LOST_DEVICE, looks like: The exact type of the interrupt routine depends on the type of the peripheral bus (PCI, ISA and so on) to which the SCSI controller is connected. -The interrupt routines of the SIM drivers run at the interrupt level splcam. So `splcam()` should be used in the driver to synchronize activity between the interrupt routine and the rest of the driver (for a multiprocessor-aware driver things get yet more interesting but we ignore this case here). The pseudo-code in this document happily ignores the problems of synchronization. The real code must not ignore them. A simple-minded approach is to set `splcam()` on the entry to the other routines and reset it on return thus protecting them by one big critical section. To make sure that the interrupt level will be always restored a wrapper function can be defined, like: +The interrupt routines of the SIM drivers run at the interrupt level splcam. +So `splcam()` should be used in the driver to synchronize activity between the interrupt routine and the rest of the driver (for a multiprocessor-aware driver things get yet more interesting but we ignore this case here). +The pseudo-code in this document happily ignores the problems of synchronization. +The real code must not ignore them. +A simple-minded approach is to set `splcam()` on the entry to the other routines and reset it on return thus protecting them by one big critical section. +To make sure that the interrupt level will be always restored a wrapper function can be defined, like: [.programlisting] .... @@ -983,11 +1111,16 @@ The interrupt routines of the SIM drivers run at the interrupt level splcam. So } .... -This approach is simple and robust but the problem with it is that interrupts may get blocked for a relatively long time and this would negatively affect the system's performance. On the other hand the functions of the `spl()` family have rather high overhead, so vast amount of tiny critical sections may not be good either. +This approach is simple and robust but the problem with it is that interrupts may get blocked for a relatively long time and this would negatively affect the system's performance. +On the other hand the functions of the `spl()` family have rather high overhead, so vast amount of tiny critical sections may not be good either. -The conditions handled by the interrupt routine and the details depend very much on the hardware. We consider the set of "typical" conditions. +The conditions handled by the interrupt routine and the details depend very much on the hardware. +We consider the set of "typical" conditions. -First, we check if a SCSI reset was encountered on the bus (probably caused by another SCSI controller on the same SCSI bus). If so we drop all the enqueued and disconnected requests, report the events and re-initialize our SCSI controller. It is important that during this initialization the controller will not issue another reset or else two controllers on the same SCSI bus could ping-pong resets forever. The case of fatal controller error/hang could be handled in the same place, but it will probably need also sending RESET signal to the SCSI bus to reset the status of the connections with the SCSI devices. +First, we check if a SCSI reset was encountered on the bus (probably caused by another SCSI controller on the same SCSI bus). +If so we drop all the enqueued and disconnected requests, report the events and re-initialize our SCSI controller. +It is important that during this initialization the controller will not issue another reset or else two controllers on the same SCSI bus could ping-pong resets forever. +The case of fatal controller error/hang could be handled in the same place, but it will probably need also sending RESET signal to the SCSI bus to reset the status of the connections with the SCSI devices. [.programlisting] .... @@ -1052,7 +1185,9 @@ First, we check if a SCSI reset was encountered on the bus (probably caused by a } .... -If interrupt is not caused by a controller-wide condition then probably something has happened to the current hardware control block. Depending on the hardware there may be other non-HCB-related events, we just do not consider them here. Then we analyze what happened to this HCB: +If interrupt is not caused by a controller-wide condition then probably something has happened to the current hardware control block. +Depending on the hardware there may be other non-HCB-related events, we just do not consider them here. +Then we analyze what happened to this HCB: [.programlisting] .... @@ -1100,7 +1235,8 @@ Then look if this status is related to the REQUEST SENSE command and if so handl } .... -Else the command itself has completed, pay more attention to details. If auto-sense is not disabled for this CCB and the command has failed with sense data then run REQUEST SENSE command to receive that data. +Else the command itself has completed, pay more attention to details. +If auto-sense is not disabled for this CCB and the command has failed with sense data then run REQUEST SENSE command to receive that data. [.programlisting] .... @@ -1182,7 +1318,8 @@ One typical thing would be negotiation events: negotiation messages received fro } .... -Then we handle any errors that could have happened during auto-sense in the same simple-minded way as before. Otherwise we look closer at the details again. +Then we handle any errors that could have happened during auto-sense in the same simple-minded way as before. +Otherwise we look closer at the details again. [.programlisting] .... @@ -1192,7 +1329,8 @@ Then we handle any errors that could have happened during auto-sense in the same switch(hcb_status) { .... -The next event we consider is unexpected disconnect. Which is considered normal after an ABORT or BUS DEVICE RESET message and abnormal in other cases. +The next event we consider is unexpected disconnect. +Which is considered normal after an ABORT or BUS DEVICE RESET message and abnormal in other cases. [.programlisting] .... @@ -1308,9 +1446,13 @@ This concludes the generic interrupt handling although specific controllers may [[scsi-errors]] == Errors Summary -When executing an I/O request many things may go wrong. The reason of error can be reported in the CCB status with great detail. Examples of use are spread throughout this document. For completeness here is the summary of recommended responses for the typical error conditions: +When executing an I/O request many things may go wrong. +The reason of error can be reported in the CCB status with great detail. +Examples of use are spread throughout this document. +For completeness here is the summary of recommended responses for the typical error conditions: -* _CAM_RESRC_UNAVAIL_ - some resource is temporarily unavailable and the SIM driver cannot generate an event when it will become available. An example of this resource would be some intra-controller hardware resource for which the controller does not generate an interrupt when it becomes available. +* _CAM_RESRC_UNAVAIL_ - some resource is temporarily unavailable and the SIM driver cannot generate an event when it will become available. +An example of this resource would be some intra-controller hardware resource for which the controller does not generate an interrupt when it becomes available. * _CAM_UNCOR_PARITY_ - unrecovered parity error occurred * _CAM_DATA_RUN_ERR_ - data overrun or unexpected data phase (going in other direction than specified in CAM_DIR_MASK) or odd transfer length for wide transfer * _CAM_SEL_TIMEOUT_ - selection timeout occurred (target does not respond) @@ -1324,14 +1466,22 @@ When executing an I/O request many things may go wrong. The reason of error can * _CAM_BDR_SENT_ - BUS DEVICE RESET message was sent to the target * _CAM_UNREC_HBA_ERROR_ - unrecoverable Host Bus Adapter Error * _CAM_REQ_TOO_BIG_ - the request was too large for this controller -* _CAM_REQUEUE_REQ_ - this request should be re-queued to preserve transaction ordering. This typically occurs when the SIM recognizes an error that should freeze the queue and must place other queued requests for the target at the sim level back into the XPT queue. Typical cases of such errors are selection timeouts, command timeouts and other like conditions. In such cases the troublesome command returns the status indicating the error, the and the other commands which have not be sent to the bus yet get re-queued. +* _CAM_REQUEUE_REQ_ - this request should be re-queued to preserve transaction ordering. +This typically occurs when the SIM recognizes an error that should freeze the queue and must place other queued requests for the target at the sim level back into the XPT queue. +Typical cases of such errors are selection timeouts, command timeouts and other like conditions. +In such cases the troublesome command returns the status indicating the error, the and the other commands which have not be sent to the bus yet get re-queued. * _CAM_LUN_INVALID_ - the LUN ID in the request is not supported by the SCSI controller * _CAM_TID_INVALID_ - the target ID in the request is not supported by the SCSI controller [[scsi-timeout]] == Timeout Handling -When the timeout for an HCB expires that request should be aborted, just like with an XPT_ABORT request. The only difference is that the returned status of aborted request should be CAM_CMD_TIMEOUT instead of CAM_REQ_ABORTED (that is why implementation of the abort better be done as a function). But there is one more possible problem: what if the abort request itself will get stuck? In this case the SCSI bus should be reset, just like with an XPT_RESET_BUS request (and the idea about implementing it as a function called from both places applies here too). Also we should reset the whole SCSI bus if a device reset request got stuck. So after all the timeout function would look like: +When the timeout for an HCB expires that request should be aborted, just like with an XPT_ABORT request. +The only difference is that the returned status of aborted request should be CAM_CMD_TIMEOUT instead of CAM_REQ_ABORTED (that is why implementation of the abort better be done as a function). +But there is one more possible problem: what if the abort request itself will get stuck? +In this case the SCSI bus should be reset, just like with an XPT_RESET_BUS request (and the idea about implementing it as a function called from both places applies here too). +Also we should reset the whole SCSI bus if a device reset request got stuck. +So after all the timeout function would look like: [.programlisting] .... @@ -1354,4 +1504,7 @@ xxx_timeout(void *arg) } .... -When we abort a request all the other disconnected requests to the same target/LUN get aborted too. So there appears a question, should we return them with status CAM_REQ_ABORTED or CAM_CMD_TIMEOUT? The current drivers use CAM_CMD_TIMEOUT. This seems logical because if one request got timed out then probably something really bad is happening to the device, so if they would not be disturbed they would time out by themselves. +When we abort a request all the other disconnected requests to the same target/LUN get aborted too. +So there appears a question, should we return them with status CAM_REQ_ABORTED or CAM_CMD_TIMEOUT? +The current drivers use CAM_CMD_TIMEOUT. +This seems logical because if one request got timed out then probably something really bad is happening to the device, so if they would not be disturbed they would time out by themselves. From owner-dev-commits-doc-all@freebsd.org Fri Jun 18 15:41:55 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21C8764899C for ; Fri, 18 Jun 2021 15:41:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G637l0Wxbz4pHb; Fri, 18 Jun 2021 15:41:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E42DF25525; Fri, 18 Jun 2021 15:41:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15IFfsMh089468; Fri, 18 Jun 2021 15:41:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15IFfslE089467; Fri, 18 Jun 2021 15:41:54 GMT (envelope-from git) Date: Fri, 18 Jun 2021 15:41:54 GMT Message-Id: <202106181541.15IFfslE089467@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ceri Davies Subject: git: 83574aa805 - main - faq/ and community: update IRC information. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ceri X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 83574aa80524b2717192086841a7c93e798130cf Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 15:41:55 -0000 The branch main has been updated by ceri: URL: https://cgit.FreeBSD.org/doc/commit/?id=83574aa80524b2717192086841a7c93e798130cf commit 83574aa80524b2717192086841a7c93e798130cf Author: Ceri Davies AuthorDate: 2021-06-18 15:40:58 +0000 Commit: Ceri Davies CommitDate: 2021-06-18 15:41:50 +0000 faq/ and community: update IRC information. Reported by: koobs --- documentation/content/en/books/faq/_index.adoc | 11 +---------- website/content/en/community/irc.adoc | 4 +++- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/documentation/content/en/books/faq/_index.adoc b/documentation/content/en/books/faq/_index.adoc index 852fbf7ce6..d7cbaaeb48 100644 --- a/documentation/content/en/books/faq/_index.adoc +++ b/documentation/content/en/books/faq/_index.adoc @@ -413,16 +413,7 @@ Refer to the link:{handbook}#eresources-mail[Handbook entry on mailing-lists] an [[irc]] === Are there FreeBSD IRC (Internet Relay Chat) channels? -Yes, most major IRC networks host a FreeBSD chat channel: - -* Channel `#FreeBSDhelp` on http://www.efnet.org/index.php[EFNet] is a channel dedicated to helping FreeBSD users. -* Channel `#FreeBSD` on http://freenode.net/[Freenode] is a general help channel with many users at any time. The conversations have been known to run off-topic for a while, but priority is given to users with FreeBSD questions. Other users can help with the basics, referring to the Handbook whenever possible and providing links for learning more about a particular topic. This is primarily an English speaking channel, though it does have users from all over the world. Non-native English speakers should try to ask the question in English first and then relocate to `##freebsd-lang` as appropriate. -* Channel `#FreeBSD` on http://www.dal.net/[DALNET] is available at `irc.dal.net` in the US and `irc.eu.dal.net` in Europe. -* Channel `#FreeBSD` on http://www.undernet.org/[UNDERNET] is available at `us.undernet.org` in the US and `eu.undernet.org` in Europe. Since it is a help channel, be prepared to read the documents you are referred to. -* Channel `#FreeBSD` on http://www.rusnet.org.ru/[RUSNET] is a Russian language channel dedicated to helping FreeBSD users. This is also a good place for non-technical discussions. -* Channel `#bsdchat` on http://freenode.net/[Freenode] is a Traditional Chinese (UTF-8 encoding) language channel dedicated to helping FreeBSD users. This is also a good place for non-technical discussions. - -The FreeBSD wiki has a https://wiki.freebsd.org/IRC/Channels[good list] of IRC channels. +Yes, most major IRC networks host a FreeBSD chat channel and the FreeBSD wiki holds an up to date https://wiki.freebsd.org/IRC/Channels[list of IRC channels]. Each of these channels are distinct and are not connected to each other. Since their chat styles differ, try each to find one suited to your chat style. diff --git a/website/content/en/community/irc.adoc b/website/content/en/community/irc.adoc index 7f9c25fff6..86d66af142 100644 --- a/website/content/en/community/irc.adoc +++ b/website/content/en/community/irc.adoc @@ -7,4 +7,6 @@ include::shared/en/urls.adoc[] = IRC -While #freebsd channels exist on various IRC networks, the FreeBSD project does not control them or endorse IRC as a support medium. You may be ignored, insulted, or kicked out if you ask questions on any channel in IRC, though you may have slightly better luck in channels named #freebsdhelp where such exist. A list of known FreeBSD related IRC channels is available in the FreeBSD https://wiki.freebsd.org/IRC/Channels[wiki]. If you want to try these or any other channels on IRC, it is nonetheless at your own risk and any complaints about conduct on those channels should not be directed to the FreeBSD project. See also link:{faq}#irc[the FAQ entry] for more information. +FreeBSD officially maintains an IRC presence with many channels covering subjects and topics ranging from general support to contribution and development. +Many project teams have dedicated channels where they plan and coordinate, so if you have a particular area of interest or just want to hang out and learn, check out our https://wiki.freebsd.org/IRC/Channels[wiki] for more information on our https://wiki.freebsd.org/IRC[FreeBSD IRC Channels]. + From owner-dev-commits-doc-all@freebsd.org Fri Jun 18 22:04:40 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0B6EF64E2A9 for ; Fri, 18 Jun 2021 22:04:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G6CdM6tLTz3Nx4; Fri, 18 Jun 2021 22:04:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D077A295F; Fri, 18 Jun 2021 22:04:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15IM4dCA096019; Fri, 18 Jun 2021 22:04:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15IM4dLf096018; Fri, 18 Jun 2021 22:04:39 GMT (envelope-from git) Date: Fri, 18 Jun 2021 22:04:39 GMT Message-Id: <202106182204.15IM4dLf096018@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: a2ae758760 - main - arch-handbook/scsi: Preen formatting MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a2ae75876071b91d800d3eb3ed68f6d4ec7a10ba Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 22:04:40 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=a2ae75876071b91d800d3eb3ed68f6d4ec7a10ba commit a2ae75876071b91d800d3eb3ed68f6d4ec7a10ba Author: Warner Losh AuthorDate: 2021-06-18 21:40:56 +0000 Commit: Warner Losh CommitDate: 2021-06-18 22:03:29 +0000 arch-handbook/scsi: Preen formatting Go through and fix the bits that the automatic conversion from docbook got wrong (and/or were wrong before). o Use [programlisting] for the xxx_ routine declarations o Un-nest the level of bullet points: make the outer ones sections or subsections o get the proper nesting for bits defined in some flags (they were in some places at the same level) o Minor code style preening to make thigns a little closer to style(9) since the examples used differing style. o Add subsection marking to a few places that didn't get converted to bullet points, but should have been. No actual content changes (yet), apart from the new sections. This document is somewhat out of date in places and needs to be modernized around locking, synchronization and a few short-cut APIs that used to need to be spelled out longhand. All that will be in followup commits. Sponsored by: Netflix --- .../en/books/arch-handbook/scsi/_index.adoc | 453 ++++++++++----------- 1 file changed, 223 insertions(+), 230 deletions(-) diff --git a/documentation/content/en/books/arch-handbook/scsi/_index.adoc b/documentation/content/en/books/arch-handbook/scsi/_index.adoc index c9a889df66..7c225d88fb 100644 --- a/documentation/content/en/books/arch-handbook/scsi/_index.adoc +++ b/documentation/content/en/books/arch-handbook/scsi/_index.adoc @@ -68,6 +68,8 @@ The SCSI Interface Module is responsible for passing these commands to the actua As we are interested in writing a SCSI adapter driver here, from this point on we will consider everything from the SIM standpoint. +== Globals and Boilerplate + A typical SIM driver needs to include the following CAM-related header files: [.programlisting] @@ -80,6 +82,8 @@ A typical SIM driver needs to include the following CAM-related header files: #include .... +== Device configuration: xxx_attach + The first thing each SIM driver must do is register itself with the CAM subsystem. This is done during the driver's `xxx_attach()` function (here and further xxx_ is used to denote the unique driver name prefix). The `xxx_attach()` function itself is called by the system bus auto-configuration code which we do not describe here. @@ -90,7 +94,7 @@ This is achieved in multiple steps: first it is necessary to allocate the queue .... struct cam_devq *devq; - if(( devq = cam_simq_alloc(SIZE) )==NULL) { + if ((devq = cam_simq_alloc(SIZE)) == NULL) { error; /* some code to handle the error */ } .... @@ -110,9 +114,9 @@ Next we create a descriptor of our SIM: .... struct cam_sim *sim; - if(( sim = cam_sim_alloc(action_func, poll_func, driver_name, + if ((sim = cam_sim_alloc(action_func, poll_func, driver_name, softc, unit, mtx, max_dev_transactions, - max_tagged_dev_transactions, devq) )==NULL) { + max_tagged_dev_transactions, devq)) == NULL) { cam_simq_free(devq); error; /* some code to handle the error */ } @@ -128,21 +132,17 @@ The answer given in the comments to the CAM code is: either way, as the driver's The arguments are: * `action_func` - pointer to the driver's `xxx_action` function. -+ -[source,c] ----- -static void - xxx_action - (); ----- + +[.programlisting] +.... +static void xxx_action(struct cam_sim *, union ccb *); +.... * `poll_func` - pointer to the driver's `xxx_poll()` + -[source,c] ----- -static void - xxx_poll - (); ----- +[.programlisting] +.... +static void xxx_poll(struct cam_sim *); +.... * driver_name - the name of the actual driver, such as "ncr" or "wds". * `softc` - pointer to the driver's internal descriptor for this SCSI card. This pointer will be used by the driver in future to get private data. @@ -164,7 +164,7 @@ Finally we register the SCSI buses associated with our SCSI adapter: [.programlisting] .... - if(xpt_bus_register(sim, softc, bus_number) != CAM_SUCCESS) { + if (xpt_bus_register(sim, softc, bus_number) != CAM_SUCCESS) { cam_sim_free(sim, /*free_devq*/ TRUE); error; /* some code to handle the error */ } @@ -192,7 +192,7 @@ So we can create the path for the future bus reset events in advance and avoid p .... struct cam_path *path; - if(xpt_create_path(&path, /*periph*/NULL, + if (xpt_create_path(&path, /*periph*/NULL, cam_sim_path(sim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { xpt_bus_deregister(cam_sim_path(sim)); @@ -236,14 +236,12 @@ The request is passed to CAM by requesting CAM action on a CAM control block for xpt_action((union ccb *)&csa); .... -Now we take a look at the `xxx_action()` and `xxx_poll()` driver entry points. +== Processing CAM messages: xxx_action -[source,c] ----- -static void - xxx_action - (); ----- +[.programlisting] +.... +static void xxx_action(struct cam_sim *sim, union ccb *ccb); +.... Do some action on request of the CAM subsystem. Sim describes the SIM for the request, CCB is the request itself. @@ -274,7 +272,7 @@ So generally `xxx_action()` consists of a big switch: int unit = cam_sim_unit(sim); int bus = cam_sim_bus(sim); - switch(ccb_h->func_code) { + switch (ccb_h->func_code) { case ...: ... default: @@ -330,30 +328,30 @@ The recommended way of using the SIM private fields of CCB is to define some mea The most common initiator mode requests are: -* _XPT_SCSI_IO_ - execute an I/O transaction -+ +=== _XPT_SCSI_IO_ - execute an I/O transaction + The instance "struct ccb_scsiio csio" of the union ccb is used to transfer the arguments. They are: -** _cdb_io_ - pointer to the SCSI command buffer or the buffer itself -** _cdb_len_ - SCSI command length -** _data_ptr_ - pointer to the data buffer (gets a bit complicated if scatter/gather is used) -** _dxfer_len_ - length of the data to transfer -** _sglist_cnt_ - counter of the scatter/gather segments -** _scsi_status_ - place to return the SCSI status -** _sense_data_ - buffer for the SCSI sense information if the command returns an error (the SIM driver is supposed to run the REQUEST SENSE command automatically in this case if the CCB flag CAM_DIS_AUTOSENSE is not set) -** _sense_len_ - the length of that buffer (if it happens to be higher than size of sense_data the SIM driver must silently assume the smaller value) resid, sense_resid - if the transfer of data or SCSI sense returned an error these are the returned counters of the residual (not transferred) data. +* _cdb_io_ - pointer to the SCSI command buffer or the buffer itself +* _cdb_len_ - SCSI command length +* _data_ptr_ - pointer to the data buffer (gets a bit complicated if scatter/gather is used) +* _dxfer_len_ - length of the data to transfer +* _sglist_cnt_ - counter of the scatter/gather segments +* _scsi_status_ - place to return the SCSI status +* _sense_data_ - buffer for the SCSI sense information if the command returns an error (the SIM driver is supposed to run the REQUEST SENSE command automatically in this case if the CCB flag CAM_DIS_AUTOSENSE is not set) +* _sense_len_ - the length of that buffer (if it happens to be higher than size of sense_data the SIM driver must silently assume the smaller value) +* _resid_, _sense_resid_ - if the transfer of data or SCSI sense returned an error these are the returned counters of the residual (not transferred) data. They do not seem to be especially meaningful, so in a case when they are difficult to compute (say, counting bytes in the SCSI controller's FIFO buffer) an approximate value will do as well. For a successfully completed transfer they must be set to zero. -** _tag_action_ - the kind of tag to use: +* _tag_action_ - the kind of tag to use: +** CAM_TAG_ACTION_NONE - do not use tags for this transaction +** MSG_SIMPLE_Q_TAG, MSG_HEAD_OF_Q_TAG, MSG_ORDERED_Q_TAG - value equal to the appropriate tag message (see /sys/cam/scsi/scsi_message.h); this gives only the tag type, the SIM driver must assign the tag value itself -*** CAM_TAG_ACTION_NONE - do not use tags for this transaction -*** MSG_SIMPLE_Q_TAG, MSG_HEAD_OF_Q_TAG, MSG_ORDERED_Q_TAG - value equal to the appropriate tag message (see /sys/cam/scsi/scsi_message.h); this gives only the tag type, the SIM driver must assign the tag value itself -+ The general logic of handling this request is the following: -+ + The first thing to do is to check for possible races, to make sure that the command did not get aborted when it was sitting in the queue: -+ + [.programlisting] .... struct ccb_scsiio *csio = &ccb->csio; @@ -363,34 +361,34 @@ The first thing to do is to check for possible races, to make sure that the comm return; } .... -+ + Also we check that the device is supported at all by our controller: -+ + [.programlisting] .... - if(ccb_h->target_id > OUR_MAX_SUPPORTED_TARGET_ID + if (ccb_h->target_id > OUR_MAX_SUPPORTED_TARGET_ID || cch_h->target_id == OUR_SCSI_CONTROLLERS_OWN_ID) { ccb_h->status = CAM_TID_INVALID; xpt_done(ccb); return; } - if(ccb_h->target_lun > OUR_MAX_SUPPORTED_LUN) { + if (ccb_h->target_lun > OUR_MAX_SUPPORTED_LUN) { ccb_h->status = CAM_LUN_INVALID; xpt_done(ccb); return; } .... -+ + Then allocate whatever data structures (such as card-dependent hardware control block) we need to process this request. If we can not then freeze the SIM queue and remember that we have a pending operation, return the CCB back and ask CAM to re-queue it. Later when the resources become available the SIM queue must be unfrozen by returning a ccb with the `CAM_SIMQ_RELEASE` bit set in its status. Otherwise, if all went well, link the CCB with the hardware control block (HCB) and mark it as queued. -+ + [.programlisting] .... struct xxx_hcb *hcb = allocate_hcb(softc, unit, bus); - if(hcb == NULL) { + if (hcb == NULL) { softc->flags |= RESOURCE_SHORTAGE; xpt_freeze_simq(sim, /*count*/1); ccb_h->status = CAM_REQUEUE_REQ; @@ -401,34 +399,34 @@ Otherwise, if all went well, link the CCB with the hardware control block (HCB) hcb->ccb = ccb; ccb_h->ccb_hcb = (void *)hcb; ccb_h->status |= CAM_SIM_QUEUED; .... -+ + Extract the target data from CCB into the hardware control block. Check if we are asked to assign a tag and if yes then generate an unique tag and build the SCSI tag messages. The SIM driver is also responsible for negotiations with the devices to set the maximal mutually supported bus width, synchronous rate and offset. -+ + [.programlisting] .... hcb->target = ccb_h->target_id; hcb->lun = ccb_h->target_lun; generate_identify_message(hcb); - if( ccb_h->tag_action != CAM_TAG_ACTION_NONE ) + if (ccb_h->tag_action != CAM_TAG_ACTION_NONE) generate_unique_tag_message(hcb, ccb_h->tag_action); - if( !target_negotiated(hcb) ) + if (!target_negotiated(hcb)) generate_negotiation_messages(hcb); .... -+ + Then set up the SCSI command. The command storage may be specified in the CCB in many interesting ways, specified by the CCB flags. The command buffer can be contained in CCB or pointed to, in the latter case the pointer may be physical or virtual. Since the hardware commonly needs physical address we always convert the address to the physical one, typically using the busdma API. -+ + In case if a physical address is requested it is OK to return the CCB with the status `CAM_REQ_INVALID`, the current drivers do that. If necessary a physical address can be also converted or mapped back to a virtual address but with big pain, so we do not do that. -+ + [.programlisting] .... - if(ccb_h->flags & CAM_CDB_POINTER) { + if (ccb_h->flags & CAM_CDB_POINTER) { /* CDB is a pointer */ - if(!(ccb_h->flags & CAM_CDB_PHYS)) { + if (!(ccb_h->flags & CAM_CDB_PHYS)) { /* CDB pointer is virtual */ hcb->cmd = vtobus(csio->cdb_io.cdb_ptr); } else { @@ -441,12 +439,12 @@ If necessary a physical address can be also converted or mapped back to a virtua } hcb->cmdlen = csio->cdb_len; .... -+ + Now it is time to set up the data. Again, the data storage may be specified in the CCB in many interesting ways, specified by the CCB flags. First we get the direction of the data transfer. The simplest case is if there is no data to transfer: -+ + [.programlisting] .... int dir = (ccb_h->flags & CAM_DIR_MASK); @@ -454,7 +452,7 @@ The simplest case is if there is no data to transfer: if (dir == CAM_DIR_NONE) goto end_data; .... -+ + Then we check if the data is in one chunk or in a scatter-gather list, and the addresses are physical or virtual. The SCSI controller may be able to handle only a limited number of chunks of limited length. If the request hits this limitation we return an error. @@ -464,16 +462,16 @@ See description of the SCSI command (CDB) handling for the details on the addres If some variation is too difficult or impossible to implement with a particular card it is OK to return the status `CAM_REQ_INVALID`. Actually, it seems like the scatter-gather ability is not used anywhere in the CAM code now. But at least the case for a single non-scattered virtual buffer must be implemented, it is actively used by CAM. -+ + [.programlisting] .... int rv; initialize_hcb_for_data(hcb); - if((!(ccb_h->flags & CAM_SCATTER_VALID)) { + if ((!(ccb_h->flags & CAM_SCATTER_VALID)) { /* single buffer */ - if(!(ccb_h->flags & CAM_DATA_PHYS)) { + if (!(ccb_h->flags & CAM_DATA_PHYS)) { rv = add_virtual_chunk(hcb, csio->data_ptr, csio->dxfer_len, dir); } } else { @@ -505,7 +503,7 @@ But at least the case for a single non-scattered virtual buffer must be implemen } } } - if(rv != CAM_REQ_CMP) { + if (rv != CAM_REQ_CMP) { /* we expect that add_*_chunk() functions return CAM_REQ_CMP * if they added a chunk successfully, CAM_REQ_TOO_BIG if * the request is too big (too many bytes or too many chunks), @@ -516,19 +514,19 @@ But at least the case for a single non-scattered virtual buffer must be implemen } end_data: .... -+ + If disconnection is disabled for this CCB we pass this information to the hcb: -+ + [.programlisting] .... - if(ccb_h->flags & CAM_DIS_DISCONNECT) + if (ccb_h->flags & CAM_DIS_DISCONNECT) hcb_disable_disconnect(hcb); .... -+ + If the controller is able to run REQUEST SENSE command all by itself then the value of the flag CAM_DIS_AUTOSENSE should also be passed to it, to prevent automatic REQUEST SENSE if the CAM subsystem does not want it. -+ + The only thing left is to set up the timeout, pass our hcb to the hardware and return, the rest will be done by the interrupt handler (or timeout handler). -+ + [.programlisting] .... ccb_h->timeout_ch = timeout(xxx_timeout, (caddr_t) hcb, @@ -536,9 +534,9 @@ The only thing left is to set up the timeout, pass our hcb to the hardware and r put_hcb_into_hardware_queue(hcb); return; .... -+ + And here is a possible implementation of the function returning CCB: -+ + [.programlisting] .... static void @@ -547,10 +545,10 @@ And here is a possible implementation of the function returning CCB: struct xxx_softc *softc = hcb->softc; ccb->ccb_h.ccb_hcb = 0; - if(hcb != NULL) { + if (hcb != NULL) { untimeout(xxx_timeout, (caddr_t) hcb, ccb->ccb_h.timeout_ch); /* we're about to free a hcb, so the shortage has ended */ - if(softc->flags & RESOURCE_SHORTAGE) { + if (softc->flags & RESOURCE_SHORTAGE) { softc->flags &= ~RESOURCE_SHORTAGE; status |= CAM_RELEASE_SIMQ; } @@ -562,23 +560,23 @@ And here is a possible implementation of the function returning CCB: } .... -* _XPT_RESET_DEV_ - send the SCSI "BUS DEVICE RESET" message to a device -+ +=== _XPT_RESET_DEV_ - send the SCSI "BUS DEVICE RESET" message to a device + There is no data transferred in CCB except the header and the most interesting argument of it is target_id. Depending on the controller hardware a hardware control block just like for the XPT_SCSI_IO request may be constructed (see XPT_SCSI_IO request description) and sent to the controller or the SCSI controller may be immediately programmed to send this RESET message to the device or this request may be just not supported (and return the status `CAM_REQ_INVALID`). Also on completion of the request all the disconnected transactions for this target must be aborted (probably in the interrupt routine). -+ + Also all the current negotiations for the target are lost on reset, so they might be cleaned too. Or they clearing may be deferred, because anyway the target would request re-negotiation on the next transaction. -* _XPT_RESET_BUS_ - send the RESET signal to the SCSI bus -+ + +=== _XPT_RESET_BUS_ - send the RESET signal to the SCSI bus + No arguments are passed in the CCB, the only interesting argument is the SCSI bus indicated by the struct sim pointer. -+ + A minimalistic implementation would forget the SCSI negotiations for all the devices on the bus and return the status CAM_REQ_CMP. -+ + The proper implementation would in addition actually reset the SCSI bus (possible also reset the SCSI controller) and mark all the CCBs being processed, both those in the hardware queue and those being disconnected, as done with the status CAM_SCSI_BUS_RESET. Like: -+ [.programlisting] .... int targ, lun; @@ -593,7 +591,7 @@ Like: reset_scsi_bus(softc); /* drop all enqueued CCBs */ - for(h = softc->first_queued_hcb; h != NULL; h = hh) { + for (h = softc->first_queued_hcb; h != NULL; h = hh) { hh = h->next; free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET); } @@ -605,19 +603,19 @@ Like: | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID); /* drop all disconnected CCBs and clean negotiations */ - for(targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) { + for (targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) { clean_negotiations(softc, targ); /* report the event if possible */ - if(xpt_create_path(&path, /*periph*/NULL, + if (xpt_create_path(&path, /*periph*/NULL, cam_sim_path(sim), targ, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { xpt_async(AC_TRANSFER_NEG, path, &neg); xpt_free_path(path); } - for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++) - for(h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) { + for (lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++) + for (h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) { hh=h->next; free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET); } @@ -630,37 +628,37 @@ Like: xpt_async(AC_BUS_RESET, softc->wpath, NULL); return; .... -+ + Implementing the SCSI bus reset as a function may be a good idea because it would be re-used by the timeout function as a last resort if the things go wrong. -* _XPT_ABORT_ - abort the specified CCB -+ + +=== _XPT_ABORT_ - abort the specified CCB + The arguments are transferred in the instance "struct ccb_abort cab" of the union ccb. The only argument field in it is: -+ -_abort_ccb_ - pointer to the CCB to be aborted -+ + +* _abort_ccb_ - pointer to the CCB to be aborted + If the abort is not supported just return the status CAM_UA_ABORT. This is also the easy way to minimally implement this call, return CAM_UA_ABORT in any case. -+ + The hard way is to implement this request honestly. First check that abort applies to a SCSI transaction: -+ + [.programlisting] .... struct ccb *abort_ccb; abort_ccb = ccb->cab.abort_ccb; - if(abort_ccb->ccb_h.func_code != XPT_SCSI_IO) { + if (abort_ccb->ccb_h.func_code != XPT_SCSI_IO) { ccb->ccb_h.status = CAM_UA_ABORT; xpt_done(ccb); return; } .... -+ Then it is necessary to find this CCB in our queue. This can be done by walking the list of all our hardware control blocks in search for one associated with this CCB: -+ + [.programlisting] .... struct xxx_hcb *hcb, *h; @@ -671,14 +669,14 @@ This can be done by walking the list of all our hardware control blocks in searc * HCBs associated with this bus, including those enqueued for * processing, being processed by hardware and disconnected ones. */ - for(h = softc->first_hcb; h != NULL; h = h->next) { - if(h->ccb == abort_ccb) { + for (h = softc->first_hcb; h != NULL; h = h->next) { + if (h->ccb == abort_ccb) { hcb = h; break; } } - if(hcb == NULL) { + if (hcb == NULL) { /* no such CCB in our queue */ ccb->ccb_h.status = CAM_PATH_INVALID; xpt_done(ccb); @@ -687,11 +685,11 @@ This can be done by walking the list of all our hardware control blocks in searc hcb=found_hcb; .... -+ + Now we look at the current processing status of the HCB. It may be either sitting in the queue waiting to be sent to the SCSI bus, being transferred right now, or disconnected and waiting for the result of the command, or actually completed by hardware but not yet marked as done by software. To make sure that we do not get in any races with hardware we mark the HCB as being aborted, so that if this HCB is about to be sent to the SCSI bus the SCSI controller will see this flag and skip it. -+ + [.programlisting] .... int hstatus; @@ -704,7 +702,7 @@ To make sure that we do not get in any races with hardware we mark the HCB as be abort_again: hstatus = get_hcb_status(hcb); - switch(hstatus) { + switch (hstatus) { case HCB_SITTING_IN_QUEUE: remove_hcb_from_hardware_queue(hcb); /* FALLTHROUGH */ @@ -713,13 +711,13 @@ To make sure that we do not get in any races with hardware we mark the HCB as be free_hcb_and_ccb_done(hcb, abort_ccb, CAM_REQ_ABORTED); break; .... -+ + If the CCB is being transferred right now we would like to signal to the SCSI controller in some hardware-dependent way that we want to abort the current transfer. The SCSI controller would set the SCSI ATTENTION signal and when the target responds to it send an ABORT message. We also reset the timeout to make sure that the target is not sleeping forever. If the command would not get aborted in some reasonable time like 10 seconds the timeout routine would go ahead and reset the whole SCSI bus. Since the command will be aborted in some reasonable time we can just return the abort request now as successfully completed, and mark the aborted CCB as aborted (but not mark it as done yet). -+ + [.programlisting] .... case HCB_BEING_TRANSFERRED: @@ -730,7 +728,7 @@ Since the command will be aborted in some reasonable time we can just return the /* ask the controller to abort that HCB, then generate * an interrupt and stop */ - if(signal_hardware_to_abort_hcb_and_stop(hcb) < 0) { + if (signal_hardware_to_abort_hcb_and_stop(hcb) < 0) { /* oops, we missed the race with hardware, this transaction * got off the bus before we aborted it, try again */ goto abort_again; @@ -738,10 +736,10 @@ Since the command will be aborted in some reasonable time we can just return the break; .... -+ + If the CCB is in the list of disconnected then set it up as an abort request and re-queue it at the front of hardware queue. Reset the timeout and report the abort request to be completed. -+ + [.programlisting] .... case HCB_DISCONNECTED: @@ -756,27 +754,27 @@ Reset the timeout and report the abort request to be completed. xpt_done(ccb); return; .... -+ + That is all for the ABORT request, although there is one more issue. As the ABORT message cleans all the ongoing transactions on a LUN we have to mark all the other active transactions on this LUN as aborted. That should be done in the interrupt routine, after the transaction gets aborted. -+ + Implementing the CCB abort as a function may be quite a good idea, this function can be re-used if an I/O transaction times out. The only difference would be that the timed out transaction would return the status CAM_CMD_TIMEOUT for the timed out request. Then the case XPT_ABORT would be small, like that: -+ + [.programlisting] .... case XPT_ABORT: struct ccb *abort_ccb; abort_ccb = ccb->cab.abort_ccb; - if(abort_ccb->ccb_h.func_code != XPT_SCSI_IO) { + if (abort_ccb->ccb_h.func_code != XPT_SCSI_IO) { ccb->ccb_h.status = CAM_UA_ABORT; xpt_done(ccb); return; } - if(xxx_abort_ccb(abort_ccb, CAM_REQ_ABORTED) < 0) + if (xxx_abort_ccb(abort_ccb, CAM_REQ_ABORTED) < 0) /* no such CCB in our queue */ ccb->ccb_h.status = CAM_PATH_INVALID; else @@ -785,47 +783,44 @@ Then the case XPT_ABORT would be small, like that: return; .... -* _XPT_SET_TRAN_SETTINGS_ - explicitly set values of SCSI transfer settings -+ +=== _XPT_SET_TRAN_SETTINGS_ - explicitly set values of SCSI transfer settings + The arguments are transferred in the instance "struct ccb_trans_setting cts" of the union ccb: -** _valid_ - a bitmask showing which settings should be updated: +* _valid_ - a bitmask showing which settings should be updated: ** _CCB_TRANS_SYNC_RATE_VALID_ - synchronous transfer rate ** _CCB_TRANS_SYNC_OFFSET_VALID_ - synchronous offset ** _CCB_TRANS_BUS_WIDTH_VALID_ - bus width ** _CCB_TRANS_DISC_VALID_ - set enable/disable disconnection ** _CCB_TRANS_TQ_VALID_ - set enable/disable tagged queuing -** _flags_ - consists of two parts, binary arguments and identification of sub-operations. +* _flags_ - consists of two parts, binary arguments and identification of sub-operations. The binary arguments are: +** _CCB_TRANS_DISC_ENB_ - enable disconnection +** _CCB_TRANS_TAG_ENB_ - enable tagged queuing +* the sub-operations are: +** _CCB_TRANS_CURRENT_SETTINGS_ - change the current negotiations +** _CCB_TRANS_USER_SETTINGS_ - remember the desired user values sync_period, sync_offset - self-explanatory, if sync_offset==0 then the asynchronous mode is requested bus_width - bus width, in bits (not bytes) -*** _CCB_TRANS_DISC_ENB_ - enable disconnection -*** _CCB_TRANS_TAG_ENB_ - enable tagged queuing - -** the sub-operations are: - -*** _CCB_TRANS_CURRENT_SETTINGS_ - change the current negotiations -*** _CCB_TRANS_USER_SETTINGS_ - remember the desired user values sync_period, sync_offset - self-explanatory, if sync_offset==0 then the asynchronous mode is requested bus_width - bus width, in bits (not bytes) -+ Two sets of negotiated parameters are supported, the user settings and the current settings. The user settings are not really used much in the SIM drivers, this is mostly just a piece of memory where the upper levels can store (and later recall) its ideas about the parameters. Setting the user parameters does not cause re-negotiation of the transfer rates. But when the SCSI controller does a negotiation it must never set the values higher than the user parameters, so it is essentially the top boundary. -+ + The current settings are, as the name says, current. Changing them means that the parameters must be re-negotiated on the next transfer. Again, these "new current settings" are not supposed to be forced on the device, just they are used as the initial step of negotiations. Also they must be limited by actual capabilities of the SCSI controller: for example, if the SCSI controller has 8-bit bus and the request asks to set 16-bit wide transfers this parameter must be silently truncated to 8-bit transfers before sending it to the device. -+ + One caveat is that the bus width and synchronous parameters are per target while the disconnection and tag enabling parameters are per lun. -+ + The recommended implementation is to keep 3 sets of negotiated (bus width and synchronous transfer) parameters: -** _user_ - the user set, as above -** _current_ - those actually in effect -** _goal_ - those requested by setting of the "current" parameters -+ +* _user_ - the user set, as above +* _current_ - those actually in effect +* _goal_ - those requested by setting of the "current" parameters + The code looks like: -+ + [.programlisting] .... struct ccb_trans_settings *cts; @@ -836,38 +831,38 @@ The code looks like: targ = ccb_h->target_id; lun = ccb_h->target_lun; flags = cts->flags; - if(flags & CCB_TRANS_USER_SETTINGS) { - if(flags & CCB_TRANS_SYNC_RATE_VALID) + if (flags & CCB_TRANS_USER_SETTINGS) { + if (flags & CCB_TRANS_SYNC_RATE_VALID) softc->user_sync_period[targ] = cts->sync_period; - if(flags & CCB_TRANS_SYNC_OFFSET_VALID) + if (flags & CCB_TRANS_SYNC_OFFSET_VALID) softc->user_sync_offset[targ] = cts->sync_offset; - if(flags & CCB_TRANS_BUS_WIDTH_VALID) + if (flags & CCB_TRANS_BUS_WIDTH_VALID) softc->user_bus_width[targ] = cts->bus_width; - if(flags & CCB_TRANS_DISC_VALID) { + if (flags & CCB_TRANS_DISC_VALID) { softc->user_tflags[targ][lun] &= ~CCB_TRANS_DISC_ENB; softc->user_tflags[targ][lun] |= flags & CCB_TRANS_DISC_ENB; } - if(flags & CCB_TRANS_TQ_VALID) { + if (flags & CCB_TRANS_TQ_VALID) { softc->user_tflags[targ][lun] &= ~CCB_TRANS_TQ_ENB; softc->user_tflags[targ][lun] |= flags & CCB_TRANS_TQ_ENB; } } - if(flags & CCB_TRANS_CURRENT_SETTINGS) { - if(flags & CCB_TRANS_SYNC_RATE_VALID) + if (flags & CCB_TRANS_CURRENT_SETTINGS) { + if (flags & CCB_TRANS_SYNC_RATE_VALID) softc->goal_sync_period[targ] = max(cts->sync_period, OUR_MIN_SUPPORTED_PERIOD); - if(flags & CCB_TRANS_SYNC_OFFSET_VALID) + if (flags & CCB_TRANS_SYNC_OFFSET_VALID) softc->goal_sync_offset[targ] = min(cts->sync_offset, OUR_MAX_SUPPORTED_OFFSET); - if(flags & CCB_TRANS_BUS_WIDTH_VALID) + if (flags & CCB_TRANS_BUS_WIDTH_VALID) softc->goal_bus_width[targ] = min(cts->bus_width, OUR_BUS_WIDTH); - if(flags & CCB_TRANS_DISC_VALID) { + if (flags & CCB_TRANS_DISC_VALID) { softc->current_tflags[targ][lun] &= ~CCB_TRANS_DISC_ENB; softc->current_tflags[targ][lun] |= flags & CCB_TRANS_DISC_ENB; } - if(flags & CCB_TRANS_TQ_VALID) { + if (flags & CCB_TRANS_TQ_VALID) { softc->current_tflags[targ][lun] &= ~CCB_TRANS_TQ_ENB; softc->current_tflags[targ][lun] |= flags & CCB_TRANS_TQ_ENB; } @@ -876,10 +871,10 @@ The code looks like: xpt_done(ccb); return; .... -+ + Then when the next I/O request will be processed it will check if it has to re-negotiate, for example by calling the function target_negotiated(hcb). It can be implemented like this: -+ + [.programlisting] .... int @@ -888,37 +883,37 @@ It can be implemented like this: struct softc *softc = hcb->softc; int targ = hcb->targ; - if( softc->current_sync_period[targ] != softc->goal_sync_period[targ] + if (softc->current_sync_period[targ] != softc->goal_sync_period[targ] || softc->current_sync_offset[targ] != softc->goal_sync_offset[targ] - || softc->current_bus_width[targ] != softc->goal_bus_width[targ] ) + || softc->current_bus_width[targ] != softc->goal_bus_width[targ]) return 0; /* FALSE */ else return 1; /* TRUE */ } .... -+ + After the values are re-negotiated the resulting values must be assigned to both current and goal parameters, so for future I/O transactions the current and goal parameters would be the same and `target_negotiated()` would return TRUE. When the card is initialized (in `xxx_attach()`) the current negotiation values must be initialized to narrow asynchronous mode, the goal and current values must be initialized to the maximal values supported by controller. -+ -_XPT_GET_TRAN_SETTINGS_ - get values of SCSI transfer settings -+ + +=== _XPT_GET_TRAN_SETTINGS_ - get values of SCSI transfer settings + This operations is the reverse of XPT_SET_TRAN_SETTINGS. Fill up the CCB instance "struct ccb_trans_setting cts" with data as requested by the flags CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both are set then the existing drivers return the current settings). Set all the bits in the valid field. -+ -_XPT_CALC_GEOMETRY_ - calculate logical (BIOS) geometry of the disk -+ + +=== _XPT_CALC_GEOMETRY_ - calculate logical (BIOS) geometry of the disk + The arguments are transferred in the instance "struct ccb_calc_geometry ccg" of the union ccb: -** _block_size_ - input, block (A.K.A sector) size in bytes -** _volume_size_ - input, volume size in bytes -** _cylinders_ - output, logical cylinders -** _heads_ - output, logical heads -** _secs_per_track_ - output, logical sectors per track -+ +* _block_size_ - input, block (A.K.A sector) size in bytes +* _volume_size_ - input, volume size in bytes +* _cylinders_ - output, logical cylinders +* _heads_ - output, logical heads +* _secs_per_track_ - output, logical sectors per track + If the returned geometry differs much enough from what the SCSI controller BIOS thinks and a disk on this SCSI controller is used as bootable the system may not be able to boot. The typical calculation example taken from the aic7xxx driver is: -+ + [.programlisting] .... struct ccb_calc_geometry *ccg; @@ -944,24 +939,25 @@ The typical calculation example taken from the aic7xxx driver is: xpt_done(ccb); return; .... -+ + This gives the general idea, the exact calculation depends on the quirks of the particular BIOS. If BIOS provides no way set the "extended translation" flag in EEPROM this flag should normally be assumed equal to 1. Other popular geometries are: -+ + [.programlisting] .... 128 heads, 63 sectors - Symbios controllers 16 heads, 63 sectors - old controllers .... -+ + Some system BIOSes and SCSI BIOSes fight with each other with variable success, for example a combination of Symbios 875/895 SCSI and Phoenix BIOS can give geometry 128/63 after power up and 255/63 after a hard reset or soft reboot. -* _XPT_PATH_INQ_ - path inquiry, in other words get the SIM driver and SCSI controller (also known as HBA - Host Bus Adapter) properties -+ + +=== _XPT_PATH_INQ_ - path inquiry, in other words get the SIM driver and SCSI controller (also known as HBA - Host Bus Adapter) properties + The properties are returned in the instance "struct ccb_pathinq cpi" of the union ccb: -** version_num - the SIM driver version number, now all drivers use 1 -** hba_inquiry - bitmask of features supported by the controller: +* version_num - the SIM driver version number, now all drivers use 1 +* hba_inquiry - bitmask of features supported by the controller: ** PI_MDP_ABLE - supports MDP message (something from SCSI3?) ** PI_WIDE_32 - supports 32 bit wide SCSI ** PI_WIDE_16 - supports 16 bit wide SCSI @@ -969,44 +965,42 @@ The properties are returned in the instance "struct ccb_pathinq cpi" of the unio ** PI_LINKED_CDB - supports linked commands ** PI_TAG_ABLE - supports tagged commands ** PI_SOFT_RST - supports soft reset alternative (hard reset and soft reset are mutually exclusive within a SCSI bus) -** target_sprt - flags for target mode support, 0 if unsupported -** hba_misc - miscellaneous controller features: +* target_sprt - flags for target mode support, 0 if unsupported +* hba_misc - miscellaneous controller features: ** PIM_SCANHILO - bus scans from high ID to low ID ** PIM_NOREMOVE - removable devices not included in scan ** PIM_NOINITIATOR - initiator role not supported ** PIM_NOBUSRESET - user has disabled initial BUS RESET -** hba_eng_cnt - mysterious HBA engine count, something related to compression, now is always set to 0 -** vuhba_flags - vendor-unique flags, unused now -** max_target - maximal supported target ID (7 for 8-bit bus, 15 for 16-bit bus, 127 for Fibre Channel) -** max_lun - maximal supported LUN ID (7 for older SCSI controllers, 63 for newer ones) -** async_flags - bitmask of installed Async handler, unused now -** hpath_id - highest Path ID in the subsystem, unused now -** unit_number - the controller unit number, cam_sim_unit(sim) -** bus_id - the bus number, cam_sim_bus(sim) -** initiator_id - the SCSI ID of the controller itself -** base_transfer_speed - nominal transfer speed in KB/s for asynchronous narrow transfers, equals to 3300 for SCSI -** sim_vid - SIM driver's vendor id, a zero-terminated string of maximal length SIM_IDLEN including the terminating zero -** hba_vid - SCSI controller's vendor id, a zero-terminated string of maximal length HBA_IDLEN including the terminating zero -** dev_name - device driver name, a zero-terminated string of maximal length DEV_IDLEN including the terminating zero, equal to cam_sim_name(sim) -+ +* hba_eng_cnt - mysterious HBA engine count, something related to compression, now is always set to 0 +* vuhba_flags - vendor-unique flags, unused now +* max_target - maximal supported target ID (7 for 8-bit bus, 15 for 16-bit bus, 127 for Fibre Channel) +* max_lun - maximal supported LUN ID (7 for older SCSI controllers, 63 for newer ones) +* async_flags - bitmask of installed Async handler, unused now +* hpath_id - highest Path ID in the subsystem, unused now +* unit_number - the controller unit number, cam_sim_unit(sim) +* bus_id - the bus number, cam_sim_bus(sim) +* initiator_id - the SCSI ID of the controller itself +* base_transfer_speed - nominal transfer speed in KB/s for asynchronous narrow transfers, equals to 3300 for SCSI +* sim_vid - SIM driver's vendor id, a zero-terminated string of maximal length SIM_IDLEN including the terminating zero +* hba_vid - SCSI controller's vendor id, a zero-terminated string of maximal length HBA_IDLEN including the terminating zero +* dev_name - device driver name, a zero-terminated string of maximal length DEV_IDLEN including the terminating zero, equal to cam_sim_name(sim) + The recommended way of setting the string fields is using strncpy, like: -+ + [.programlisting] .... strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); .... -+ + After setting the values set the status to CAM_REQ_CMP and mark the CCB as done. [[scsi-polling]] -== Polling +== Polling xxx_poll -[source,c] ----- -static void - xxx_poll - (); ----- +[.programlisting] +.... +static void xxx_poll(struct cam_sim *); +.... The poll function is used to simulate the interrupts when the interrupt subsystem is not functioning (for example, when the system has crashed and is creating the system dump). The CAM subsystem sets the proper interrupt level before calling the poll routine. @@ -1066,7 +1060,7 @@ Implementation for a single type of event, AC_LOST_DEVICE, looks like: switch (code) { case AC_LOST_DEVICE: targ = xpt_path_target_id(path); - if(targ <= OUR_MAX_SUPPORTED_TARGET) { + if (targ <= OUR_MAX_SUPPORTED_TARGET) { clean_negotiations(softc, targ); /* send indication to CAM */ neg.bus_width = 8; @@ -1128,8 +1122,8 @@ The case of fatal controller error/hang could be handled in the same place, but struct ccb_trans_settings neg; struct cam_path *path; - if( detected_scsi_reset(softc) - || (fatal = detected_fatal_controller_error(softc)) ) { + if (detected_scsi_reset(softc) + || (fatal = detected_fatal_controller_error(softc))) { int targ, lun; struct xxx_hcb *h, *hh; @@ -1146,21 +1140,21 @@ The case of fatal controller error/hang could be handled in the same place, but | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID); /* drop all disconnected CCBs and clean negotiations */ - for(targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) { + for (targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) { clean_negotiations(softc, targ); /* report the event if possible */ - if(xpt_create_path(&path, /*periph*/NULL, + if (xpt_create_path(&path, /*periph*/NULL, cam_sim_path(sim), targ, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { xpt_async(AC_TRANSFER_NEG, path, &neg); xpt_free_path(path); } - for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++) - for(h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) { + for (lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++) + for (h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) { hh=h->next; - if(fatal) + if (fatal) free_hcb_and_ccb_done(h, h->ccb, CAM_UNREC_HBA_ERROR); else free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET); @@ -1175,7 +1169,7 @@ The case of fatal controller error/hang could be handled in the same place, but * checked on timeout - but for simplicity we assume here that * it is really fast */ - if(!fatal) { + if (!fatal) { reinitialize_controller_without_scsi_reset(softc); } else { reinitialize_controller_with_scsi_reset(softc); @@ -1198,7 +1192,7 @@ Then we analyze what happened to this HCB: int lun_to_freeze; hcb = get_current_hcb(softc); - if(hcb == NULL) { + if (hcb == NULL) { /* either stray interrupt or something went very wrong * or this is something hardware-dependent */ @@ -1214,7 +1208,7 @@ First we check if the HCB has completed and if so we check the returned SCSI sta [.programlisting] .... - if(hcb_status == COMPLETED) { + if (hcb_status == COMPLETED) { scsi_status = get_completion_status(hcb); .... @@ -1222,8 +1216,8 @@ Then look if this status is related to the REQUEST SENSE command and if so handl [.programlisting] .... - if(hcb->flags & DOING_AUTOSENSE) { - if(scsi_status == GOOD) { /* autosense was successful */ + if (hcb->flags & DOING_AUTOSENSE) { + if (scsi_status == GOOD) { /* autosense was successful */ hcb->ccb->ccb_h.status |= CAM_AUTOSNS_VALID; free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_SCSI_STATUS_ERROR); } else { *** 124 LINES SKIPPED *** From owner-dev-commits-doc-all@freebsd.org Fri Jun 18 22:13:58 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A2E7A64E344 for ; Fri, 18 Jun 2021 22:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G6Cr640HHz3Pbd; Fri, 18 Jun 2021 22:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7139F25CF; Fri, 18 Jun 2021 22:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15IMDwmR009733; Fri, 18 Jun 2021 22:13:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15IMDwku009732; Fri, 18 Jun 2021 22:13:58 GMT (envelope-from git) Date: Fri, 18 Jun 2021 22:13:58 GMT Message-Id: <202106182213.15IMDwku009732@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 130b0430d4 - main - Document __FreeBSD_version 1400024 (LinuxKPI changes). MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 130b0430d42780a99b76f17f73ca6b46266cffd3 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 22:13:58 -0000 The branch main has been updated by bz (src committer): URL: https://cgit.FreeBSD.org/doc/commit/?id=130b0430d42780a99b76f17f73ca6b46266cffd3 commit 130b0430d42780a99b76f17f73ca6b46266cffd3 Author: Bjoern A. Zeeb AuthorDate: 2021-06-18 22:12:50 +0000 Commit: Bjoern A. Zeeb CommitDate: 2021-06-18 22:12:50 +0000 Document __FreeBSD_version 1400024 (LinuxKPI changes). Sponsored by: The FreeBSD Foundation --- documentation/content/en/books/porters-handbook/versions/_index.adoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/documentation/content/en/books/porters-handbook/versions/_index.adoc b/documentation/content/en/books/porters-handbook/versions/_index.adoc index 739d02faee..52ee514ef3 100644 --- a/documentation/content/en/books/porters-handbook/versions/_index.adoc +++ b/documentation/content/en/books/porters-handbook/versions/_index.adoc @@ -143,6 +143,11 @@ Here is a convenient list of `__FreeBSD_version` values as defined in https://cg |gitref:d409305fa3838fb39b38c26fc085fb729b8766d5[repository="src",length=12] |Jun 13, 2021 |14.0-CURRENT after upgrading llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release. + +|1400024 +|gitref:41dfd8bd6466fd39957dee2614d88c81cdf420a7[repository="src",length=12] +|Jun 18, 2021 +|14.0-CURRENT after various additions to LinuxKPI. |=== [[versions-13]] From owner-dev-commits-doc-all@freebsd.org Sat Jun 19 19:17:35 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DA73565F96B for ; Sat, 19 Jun 2021 19:17:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G6lt75VBBz4fxV; Sat, 19 Jun 2021 19:17:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A485B1B8F8; Sat, 19 Jun 2021 19:17:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15JJHZeF086889; Sat, 19 Jun 2021 19:17:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15JJHYfK086888; Sat, 19 Jun 2021 19:17:34 GMT (envelope-from git) Date: Sat, 19 Jun 2021 19:17:34 GMT Message-Id: <202106191917.15JJHYfK086888@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: "Danilo G. Baio" Subject: git: 3462d12db6 - main - Add Hugo's lang shortcode MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dbaio X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3462d12db6ebf303064db168a2333374344f369a Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2021 19:17:35 -0000 The branch main has been updated by dbaio: URL: https://cgit.FreeBSD.org/doc/commit/?id=3462d12db6ebf303064db168a2333374344f369a commit 3462d12db6ebf303064db168a2333374344f369a Author: Danilo G. Baio AuthorDate: 2021-06-19 18:56:16 +0000 Commit: Danilo G. Baio CommitDate: 2021-06-19 19:09:00 +0000 Add Hugo's lang shortcode This is a prerequisite for the translation workflow through .po files and Weblate. The asciidoctor include with the shortcode variable will help because won't be needed to change the includes manually after converting the translation (.po file) back to .adoc. It will help other areas like, language attributes, which today is fixed in every document. The use of shortcode was suggested by jmooring@ from Hugo's project on Github. Reviewed by: carlavilla Differential Revision: https://reviews.freebsd.org/D30823 --- .../content/de/articles/contributing/_index.adoc | 12 ++++++------ .../content/de/articles/leap-seconds/_index.adoc | 6 +++--- .../content/de/articles/linux-users/_index.adoc | 6 +++--- .../content/de/articles/new-users/_index.adoc | 12 ++++++------ .../de/articles/port-mentor-guidelines/_index.adoc | 6 +++--- .../content/de/books/developers-handbook/_index.adoc | 18 +++++++++--------- .../developers-handbook/bibliography/chapter.adoc | 6 +++--- .../developers-handbook/introduction/chapter.adoc | 6 +++--- .../de/books/developers-handbook/ipv6/chapter.adoc | 6 +++--- .../books/developers-handbook/kernelbuild/chapter.adoc | 6 +++--- .../books/developers-handbook/kerneldebug/chapter.adoc | 6 +++--- .../de/books/developers-handbook/l10n/chapter.adoc | 6 +++--- .../de/books/developers-handbook/policies/chapter.adoc | 6 +++--- .../de/books/developers-handbook/secure/chapter.adoc | 6 +++--- .../de/books/developers-handbook/sockets/chapter.adoc | 6 +++--- .../de/books/developers-handbook/testing/chapter.adoc | 6 +++--- .../de/books/developers-handbook/tools/chapter.adoc | 6 +++--- .../de/books/developers-handbook/x86/chapter.adoc | 6 +++--- documentation/content/de/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/de/books/handbook/_index.adoc | 2 +- .../de/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/de/books/handbook/audit/_index.adoc | 6 +++--- .../content/de/books/handbook/basics/_index.adoc | 6 +++--- documentation/content/de/books/handbook/book.adoc | 18 +++++++++--------- .../content/de/books/handbook/boot/_index.adoc | 6 +++--- .../content/de/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/de/books/handbook/config/_index.adoc | 6 +++--- .../content/de/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/de/books/handbook/desktop/_index.adoc | 6 +++--- .../content/de/books/handbook/disks/_index.adoc | 6 +++--- .../content/de/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/de/books/handbook/eresources/_index.adoc | 6 +++--- .../content/de/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/de/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/de/books/handbook/geom/_index.adoc | 6 +++--- .../content/de/books/handbook/introduction/_index.adoc | 6 +++--- .../content/de/books/handbook/jails/_index.adoc | 6 +++--- .../content/de/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/de/books/handbook/l10n/_index.adoc | 6 +++--- .../content/de/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/de/books/handbook/mac/_index.adoc | 6 +++--- .../content/de/books/handbook/mail/_index.adoc | 6 +++--- .../content/de/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/de/books/handbook/multimedia/_index.adoc | 6 +++--- .../content/de/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/de/books/handbook/ports/_index.adoc | 6 +++--- .../content/de/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/de/books/handbook/printing/_index.adoc | 6 +++--- .../content/de/books/handbook/security/_index.adoc | 6 +++--- .../content/de/books/handbook/serialcomms/_index.adoc | 6 +++--- .../de/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../content/de/books/handbook/x11/_index.adoc | 6 +++--- .../content/de/books/handbook/zfs/_index.adoc | 6 +++--- .../content/de/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../content/el/articles/contributing/_index.adoc | 12 ++++++------ .../content/el/articles/freebsd-questions/_index.adoc | 12 ++++++------ .../content/el/articles/gjournal-desktop/_index.adoc | 12 ++++++------ .../el/articles/greek-language-support/_index.adoc | 6 +++--- .../content/el/articles/linux-users/_index.adoc | 6 +++--- .../content/el/articles/mailing-list-faq/_index.adoc | 12 ++++++------ .../content/el/articles/new-users/_index.adoc | 6 +++--- .../content/el/articles/problem-reports/_index.adoc | 12 ++++++------ documentation/content/el/articles/releng/_index.adoc | 18 +++++++++--------- documentation/content/el/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/el/books/handbook/_index.adoc | 2 +- .../el/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/el/books/handbook/audit/_index.adoc | 6 +++--- .../content/el/books/handbook/basics/_index.adoc | 6 +++--- .../content/el/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/el/books/handbook/book.adoc | 18 +++++++++--------- .../content/el/books/handbook/boot/_index.adoc | 6 +++--- .../content/el/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/el/books/handbook/config/_index.adoc | 6 +++--- .../content/el/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/el/books/handbook/desktop/_index.adoc | 6 +++--- .../content/el/books/handbook/disks/_index.adoc | 6 +++--- .../content/el/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/el/books/handbook/eresources/_index.adoc | 6 +++--- .../content/el/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/el/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/el/books/handbook/geom/_index.adoc | 6 +++--- .../content/el/books/handbook/install/_index.adoc | 6 +++--- .../content/el/books/handbook/introduction/_index.adoc | 6 +++--- .../content/el/books/handbook/jails/_index.adoc | 6 +++--- .../content/el/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/el/books/handbook/l10n/_index.adoc | 6 +++--- .../content/el/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/el/books/handbook/mac/_index.adoc | 6 +++--- .../content/el/books/handbook/mail/_index.adoc | 6 +++--- .../content/el/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/el/books/handbook/multimedia/_index.adoc | 6 +++--- .../el/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/el/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/el/books/handbook/ports/_index.adoc | 6 +++--- .../content/el/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/el/books/handbook/printing/_index.adoc | 6 +++--- .../content/el/books/handbook/security/_index.adoc | 6 +++--- .../content/el/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/el/books/handbook/users/_index.adoc | 6 +++--- .../el/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/el/books/handbook/x11/_index.adoc | 6 +++--- .../content/en/articles/building-products/_index.adoc | 12 ++++++------ .../content/en/articles/committers-guide/_index.adoc | 18 +++++++++--------- .../content/en/articles/contributing/_index.adoc | 12 ++++++------ .../content/en/articles/contributors/_index.adoc | 6 +++--- .../content/en/articles/filtering-bridges/_index.adoc | 6 +++--- .../content/en/articles/freebsd-questions/_index.adoc | 12 ++++++------ .../en/articles/freebsd-update-server/_index.adoc | 6 +++--- .../content/en/articles/geom-class/_index.adoc | 6 +++--- .../content/en/articles/gjournal-desktop/_index.adoc | 12 ++++++------ documentation/content/en/articles/hubs/_index.adoc | 12 ++++++------ .../content/en/articles/ipsec-must/_index.adoc | 6 +++--- .../content/en/articles/leap-seconds/_index.adoc | 6 +++--- .../content/en/articles/linux-users/_index.adoc | 6 +++--- .../content/en/articles/mailing-list-faq/_index.adoc | 12 ++++++------ documentation/content/en/articles/nanobsd/_index.adoc | 6 +++--- documentation/content/en/articles/pgpkeys/_index.adoc | 6 +++--- .../en/articles/port-mentor-guidelines/_index.adoc | 6 +++--- .../content/en/articles/pr-guidelines/_index.adoc | 12 ++++++------ .../content/en/articles/problem-reports/_index.adoc | 12 ++++++------ .../content/en/articles/rc-scripting/_index.adoc | 6 +++--- documentation/content/en/articles/releng/_index.adoc | 18 +++++++++--------- .../content/en/articles/remote-install/_index.adoc | 6 +++--- .../content/en/articles/serial-uart/_index.adoc | 6 +++--- documentation/content/en/articles/vinum/_index.adoc | 4 ++-- .../content/en/books/arch-handbook/_index.adoc | 18 +++++++++--------- .../en/books/arch-handbook/bibliography/_index.adoc | 6 +++--- documentation/content/en/books/arch-handbook/book.adoc | 18 +++++++++--------- .../content/en/books/arch-handbook/boot/_index.adoc | 6 +++--- .../en/books/arch-handbook/driverbasics/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/isa/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/jail/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/kobj/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/locking/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/mac/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/newbus/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/pccard/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/pci/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/scsi/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/smp/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/sound/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/sysinit/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/usb/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/vm/_index.adoc | 6 +++--- .../content/en/books/design-44bsd/_index.adoc | 18 +++++++++--------- documentation/content/en/books/dev-model/_index.adoc | 18 +++++++++--------- .../content/en/books/developers-handbook/_index.adoc | 18 +++++++++--------- .../books/developers-handbook/bibliography/_index.adoc | 6 +++--- .../content/en/books/developers-handbook/book.adoc | 18 +++++++++--------- .../books/developers-handbook/introduction/_index.adoc | 6 +++--- .../en/books/developers-handbook/ipv6/_index.adoc | 6 +++--- .../books/developers-handbook/kernelbuild/_index.adoc | 6 +++--- .../books/developers-handbook/kerneldebug/_index.adoc | 6 +++--- .../en/books/developers-handbook/l10n/_index.adoc | 6 +++--- .../en/books/developers-handbook/policies/_index.adoc | 6 +++--- .../en/books/developers-handbook/secure/_index.adoc | 6 +++--- .../en/books/developers-handbook/sockets/_index.adoc | 6 +++--- .../en/books/developers-handbook/testing/_index.adoc | 6 +++--- .../en/books/developers-handbook/tools/_index.adoc | 6 +++--- .../en/books/developers-handbook/x86/_index.adoc | 6 +++--- documentation/content/en/books/faq/_index.adoc | 18 +++++++++--------- .../en/books/fdp-primer/asciidoctor-primer/_index.adoc | 2 +- documentation/content/en/books/fdp-primer/book.adoc | 18 +++++++++--------- .../content/en/books/fdp-primer/overview/_index.adoc | 2 +- .../en/books/fdp-primer/po-translations/_index.adoc | 2 +- .../content/en/books/fdp-primer/see-also/_index.adoc | 2 +- .../en/books/fdp-primer/translations/_index.adoc | 4 ++-- .../en/books/fdp-primer/writing-style/_index.adoc | 2 +- documentation/content/en/books/handbook/_index.adoc | 2 +- .../en/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/en/books/handbook/audit/_index.adoc | 6 +++--- .../content/en/books/handbook/basics/_index.adoc | 6 +++--- .../content/en/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/en/books/handbook/book.adoc | 18 +++++++++--------- .../content/en/books/handbook/boot/_index.adoc | 6 +++--- .../content/en/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/en/books/handbook/config/_index.adoc | 6 +++--- .../content/en/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/en/books/handbook/desktop/_index.adoc | 6 +++--- .../content/en/books/handbook/disks/_index.adoc | 6 +++--- .../content/en/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/en/books/handbook/eresources/_index.adoc | 6 +++--- .../content/en/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/en/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/en/books/handbook/geom/_index.adoc | 6 +++--- documentation/content/en/books/handbook/glossary.adoc | 2 +- .../content/en/books/handbook/introduction/_index.adoc | 6 +++--- .../content/en/books/handbook/jails/_index.adoc | 6 +++--- .../content/en/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/en/books/handbook/l10n/_index.adoc | 6 +++--- .../content/en/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/en/books/handbook/mac/_index.adoc | 6 +++--- .../content/en/books/handbook/mail/_index.adoc | 6 +++--- .../content/en/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/en/books/handbook/multimedia/_index.adoc | 6 +++--- .../en/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/en/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/en/books/handbook/ports/_index.adoc | 6 +++--- .../content/en/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/en/books/handbook/printing/_index.adoc | 6 +++--- .../content/en/books/handbook/security/_index.adoc | 6 +++--- .../content/en/books/handbook/serialcomms/_index.adoc | 6 +++--- .../en/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../en/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/en/books/handbook/wine/_index.adoc | 6 +++--- .../content/en/books/handbook/x11/_index.adoc | 6 +++--- .../content/en/books/handbook/zfs/_index.adoc | 6 +++--- .../content/en/books/porters-handbook/book.adoc | 18 +++++++++--------- .../en/books/porters-handbook/flavors/_index.adoc | 6 +++--- .../en/books/porters-handbook/keeping-up/_index.adoc | 6 +++--- .../en/books/porters-handbook/makefiles/_index.adoc | 6 +++--- .../en/books/porters-handbook/new-port/_index.adoc | 6 +++--- .../en/books/porters-handbook/order/_index.adoc | 6 +++--- .../en/books/porters-handbook/pkg-files/_index.adoc | 6 +++--- .../en/books/porters-handbook/plist/_index.adoc | 6 +++--- .../en/books/porters-handbook/porting-dads/_index.adoc | 6 +++--- .../books/porters-handbook/porting-samplem/_index.adoc | 6 +++--- .../en/books/porters-handbook/porting-why/_index.adoc | 6 +++--- .../books/porters-handbook/quick-porting/_index.adoc | 6 +++--- .../en/books/porters-handbook/security/_index.adoc | 6 +++--- .../en/books/porters-handbook/slow-porting/_index.adoc | 6 +++--- .../en/books/porters-handbook/special/_index.adoc | 6 +++--- .../en/books/porters-handbook/testing/_index.adoc | 6 +++--- .../en/books/porters-handbook/upgrading/_index.adoc | 6 +++--- .../content/en/books/porters-handbook/uses/_index.adoc | 6 +++--- .../en/books/porters-handbook/versions/_index.adoc | 6 +++--- .../content/es/articles/contributing/_index.adoc | 2 +- .../content/es/articles/filtering-bridges/_index.adoc | 2 +- .../content/es/articles/freebsd-questions/_index.adoc | 2 +- .../content/es/articles/ipsec-must/_index.adoc | 2 +- .../content/es/articles/leap-seconds/_index.adoc | 2 +- .../content/es/articles/linux-users/_index.adoc | 2 +- .../content/es/articles/mailing-list-faq/_index.adoc | 2 +- .../es/articles/port-mentor-guidelines/_index.adoc | 2 +- .../content/es/articles/pr-guidelines/_index.adoc | 2 +- .../content/es/articles/problem-reports/_index.adoc | 2 +- documentation/content/es/articles/releng/_index.adoc | 6 +++--- .../content/es/articles/remote-install/_index.adoc | 2 +- documentation/content/es/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/es/books/handbook/_index.adoc | 2 +- .../es/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/es/books/handbook/basics/_index.adoc | 6 +++--- .../content/es/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/es/books/handbook/book.adoc | 18 +++++++++--------- .../content/es/books/handbook/boot/_index.adoc | 6 +++--- .../content/es/books/handbook/config/_index.adoc | 6 +++--- .../content/es/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/es/books/handbook/desktop/_index.adoc | 6 +++--- .../content/es/books/handbook/disks/_index.adoc | 6 +++--- .../content/es/books/handbook/eresources/_index.adoc | 6 +++--- .../content/es/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/es/books/handbook/geom/_index.adoc | 6 +++--- .../content/es/books/handbook/install/_index.adoc | 6 +++--- .../content/es/books/handbook/introduction/_index.adoc | 6 +++--- .../content/es/books/handbook/jails/_index.adoc | 6 +++--- .../content/es/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/es/books/handbook/l10n/_index.adoc | 6 +++--- .../content/es/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/es/books/handbook/mac/_index.adoc | 6 +++--- .../content/es/books/handbook/mail/_index.adoc | 6 +++--- .../content/es/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/es/books/handbook/multimedia/_index.adoc | 6 +++--- .../es/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/es/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/es/books/handbook/ports/_index.adoc | 6 +++--- .../content/es/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/es/books/handbook/printing/_index.adoc | 6 +++--- .../content/es/books/handbook/security/_index.adoc | 6 +++--- .../content/es/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/es/books/handbook/users/_index.adoc | 6 +++--- .../content/es/books/handbook/vinum/_index.adoc | 6 +++--- .../es/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/es/books/handbook/x11/_index.adoc | 6 +++--- .../content/fr/articles/building-products/_index.adoc | 8 ++++---- .../content/fr/articles/committers-guide/_index.adoc | 12 ++++++------ .../content/fr/articles/contributing/_index.adoc | 12 ++++++------ .../content/fr/articles/filtering-bridges/_index.adoc | 6 +++--- .../content/fr/articles/ipsec-must/_index.adoc | 6 +++--- .../content/fr/articles/leap-seconds/_index.adoc | 6 +++--- .../content/fr/articles/linux-users/_index.adoc | 6 +++--- .../content/fr/articles/new-users/_index.adoc | 6 +++--- .../content/fr/books/developers-handbook/_index.adoc | 18 +++++++++--------- documentation/content/fr/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/fr/books/handbook/_index.adoc | 2 +- .../fr/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/fr/books/handbook/audit/_index.adoc | 6 +++--- .../content/fr/books/handbook/basics/_index.adoc | 6 +++--- documentation/content/fr/books/handbook/book.adoc | 18 +++++++++--------- .../content/fr/books/handbook/boot/_index.adoc | 6 +++--- .../content/fr/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/fr/books/handbook/config/_index.adoc | 6 +++--- .../content/fr/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/fr/books/handbook/desktop/_index.adoc | 6 +++--- .../content/fr/books/handbook/disks/_index.adoc | 6 +++--- .../content/fr/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/fr/books/handbook/eresources/_index.adoc | 6 +++--- .../content/fr/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/fr/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/fr/books/handbook/geom/_index.adoc | 6 +++--- .../content/fr/books/handbook/introduction/_index.adoc | 6 +++--- .../content/fr/books/handbook/jails/_index.adoc | 6 +++--- .../content/fr/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/fr/books/handbook/l10n/_index.adoc | 6 +++--- .../content/fr/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/fr/books/handbook/mac/_index.adoc | 6 +++--- .../content/fr/books/handbook/mail/_index.adoc | 6 +++--- .../content/fr/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/fr/books/handbook/multimedia/_index.adoc | 6 +++--- .../fr/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/fr/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/fr/books/handbook/ports/_index.adoc | 6 +++--- .../content/fr/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/fr/books/handbook/printing/_index.adoc | 6 +++--- .../content/fr/books/handbook/security/_index.adoc | 6 +++--- .../content/fr/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/fr/books/handbook/vinum/_index.adoc | 6 +++--- .../fr/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/fr/books/handbook/x11/_index.adoc | 6 +++--- .../content/fr/books/handbook/zfs/_index.adoc | 6 +++--- .../content/fr/books/porters-handbook/book.adoc | 18 +++++++++--------- .../content/hu/articles/gjournal-desktop/_index.adoc | 12 ++++++------ .../content/hu/articles/linux-users/_index.adoc | 6 +++--- documentation/content/hu/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/hu/books/handbook/_index.adoc | 2 +- .../hu/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/hu/books/handbook/audit/_index.adoc | 6 +++--- .../content/hu/books/handbook/basics/_index.adoc | 6 +++--- .../content/hu/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/hu/books/handbook/book.adoc | 18 +++++++++--------- .../content/hu/books/handbook/boot/_index.adoc | 6 +++--- .../content/hu/books/handbook/config/_index.adoc | 6 +++--- .../content/hu/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/hu/books/handbook/desktop/_index.adoc | 6 +++--- .../content/hu/books/handbook/disks/_index.adoc | 6 +++--- .../content/hu/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/hu/books/handbook/eresources/_index.adoc | 6 +++--- .../content/hu/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/hu/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/hu/books/handbook/geom/_index.adoc | 6 +++--- .../content/hu/books/handbook/install/_index.adoc | 6 +++--- .../content/hu/books/handbook/introduction/_index.adoc | 6 +++--- .../content/hu/books/handbook/jails/_index.adoc | 6 +++--- .../content/hu/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/hu/books/handbook/l10n/_index.adoc | 6 +++--- .../content/hu/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/hu/books/handbook/mac/_index.adoc | 6 +++--- .../content/hu/books/handbook/mail/_index.adoc | 6 +++--- .../content/hu/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/hu/books/handbook/multimedia/_index.adoc | 6 +++--- .../hu/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/hu/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/hu/books/handbook/ports/_index.adoc | 6 +++--- .../content/hu/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/hu/books/handbook/printing/_index.adoc | 6 +++--- .../content/hu/books/handbook/security/_index.adoc | 6 +++--- .../content/hu/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/hu/books/handbook/users/_index.adoc | 6 +++--- .../content/hu/books/handbook/vinum/_index.adoc | 6 +++--- .../hu/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/hu/books/handbook/x11/_index.adoc | 6 +++--- documentation/content/it/books/handbook/_index.adoc | 2 +- .../it/books/handbook/advanced-networking/_index.adoc | 4 ++-- .../content/it/books/handbook/audit/_index.adoc | 4 ++-- .../content/it/books/handbook/basics/_index.adoc | 4 ++-- .../content/it/books/handbook/bibliography/_index.adoc | 4 ++-- documentation/content/it/books/handbook/book.adoc | 18 +++++++++--------- .../content/it/books/handbook/boot/_index.adoc | 4 ++-- .../content/it/books/handbook/config/_index.adoc | 4 ++-- .../content/it/books/handbook/cutting-edge/_index.adoc | 4 ++-- .../content/it/books/handbook/desktop/_index.adoc | 4 ++-- .../content/it/books/handbook/disks/_index.adoc | 4 ++-- .../content/it/books/handbook/eresources/_index.adoc | 4 ++-- .../content/it/books/handbook/geom/_index.adoc | 4 ++-- .../content/it/books/handbook/install/_index.adoc | 4 ++-- .../content/it/books/handbook/introduction/_index.adoc | 4 ++-- .../content/it/books/handbook/jails/_index.adoc | 4 ++-- .../content/it/books/handbook/kernelconfig/_index.adoc | 4 ++-- .../content/it/books/handbook/l10n/_index.adoc | 4 ++-- .../content/it/books/handbook/linuxemu/_index.adoc | 4 ++-- .../content/it/books/handbook/mac/_index.adoc | 4 ++-- .../content/it/books/handbook/mail/_index.adoc | 4 ++-- .../content/it/books/handbook/mirrors/_index.adoc | 4 ++-- .../content/it/books/handbook/multimedia/_index.adoc | 4 ++-- .../it/books/handbook/network-servers/_index.adoc | 4 ++-- .../content/it/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/it/books/handbook/ports/_index.adoc | 4 ++-- .../content/it/books/handbook/ppp-and-slip/_index.adoc | 4 ++-- .../content/it/books/handbook/preface/_index.adoc | 4 ++-- .../content/it/books/handbook/printing/_index.adoc | 4 ++-- .../content/it/books/handbook/security/_index.adoc | 4 ++-- .../content/it/books/handbook/serialcomms/_index.adoc | 4 ++-- .../content/it/books/handbook/users/_index.adoc | 4 ++-- .../content/it/books/handbook/vinum/_index.adoc | 4 ++-- .../it/books/handbook/virtualization/_index.adoc | 4 ++-- .../content/it/books/handbook/x11/_index.adoc | 4 ++-- .../content/ja/articles/contributing/_index.adoc | 12 ++++++------ documentation/content/ja/articles/fonts/_index.adoc | 6 +++--- .../content/ja/articles/ipsec-must/_index.adoc | 6 +++--- .../content/ja/articles/leap-seconds/_index.adoc | 6 +++--- .../content/ja/articles/problem-reports/_index.adoc | 12 ++++++------ .../content/ja/books/design-44bsd/_index.adoc | 18 +++++++++--------- documentation/content/ja/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/ja/books/handbook/_index.adoc | 2 +- .../ja/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/ja/books/handbook/basics/_index.adoc | 6 +++--- .../content/ja/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/ja/books/handbook/book.adoc | 18 +++++++++--------- .../content/ja/books/handbook/boot/_index.adoc | 6 +++--- .../content/ja/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/ja/books/handbook/config/_index.adoc | 6 +++--- .../content/ja/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/ja/books/handbook/desktop/_index.adoc | 6 +++--- .../content/ja/books/handbook/disks/_index.adoc | 6 +++--- .../content/ja/books/handbook/eresources/_index.adoc | 6 +++--- .../content/ja/books/handbook/introduction/_index.adoc | 6 +++--- .../content/ja/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/ja/books/handbook/l10n/_index.adoc | 6 +++--- .../content/ja/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/ja/books/handbook/mail/_index.adoc | 6 +++--- .../content/ja/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/ja/books/handbook/multimedia/_index.adoc | 6 +++--- .../content/ja/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/ja/books/handbook/ports/_index.adoc | 6 +++--- .../content/ja/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/ja/books/handbook/printing/_index.adoc | 6 +++--- .../content/ja/books/handbook/security/_index.adoc | 6 +++--- .../content/ja/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/ja/books/handbook/users/_index.adoc | 6 +++--- .../content/ja/books/handbook/x11/_index.adoc | 6 +++--- .../content/ja/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../ja/books/porters-handbook/changes/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/makefile/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/own-port/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../books/porters-handbook/port-upgrading/chapter.adoc | 6 +++--- .../porters-handbook/porting-autoplist/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-info/chapter.adoc | 6 +++--- .../porters-handbook/porting-manpages/chapter.adoc | 6 +++--- .../porters-handbook/porting-masterdir/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-motif/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/shared/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/slow/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/special/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/why-port/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/x11-fonts/chapter.adoc | 6 +++--- .../content/ko/articles/contributing/_index.adoc | 6 +++--- documentation/content/mn/books/handbook/_index.adoc | 2 +- .../mn/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/mn/books/handbook/audit/_index.adoc | 6 +++--- .../content/mn/books/handbook/basics/_index.adoc | 6 +++--- .../content/mn/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/mn/books/handbook/book.adoc | 18 +++++++++--------- .../content/mn/books/handbook/boot/_index.adoc | 6 +++--- .../content/mn/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/mn/books/handbook/config/_index.adoc | 6 +++--- .../content/mn/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/mn/books/handbook/desktop/_index.adoc | 6 +++--- .../content/mn/books/handbook/disks/_index.adoc | 6 +++--- .../content/mn/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/mn/books/handbook/eresources/_index.adoc | 6 +++--- .../content/mn/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/mn/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/mn/books/handbook/geom/_index.adoc | 6 +++--- .../content/mn/books/handbook/install/_index.adoc | 6 +++--- .../content/mn/books/handbook/jails/_index.adoc | 6 +++--- .../content/mn/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/mn/books/handbook/l10n/_index.adoc | 6 +++--- .../content/mn/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/mn/books/handbook/mac/_index.adoc | 6 +++--- .../content/mn/books/handbook/mail/_index.adoc | 6 +++--- .../content/mn/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/mn/books/handbook/multimedia/_index.adoc | 6 +++--- .../mn/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/mn/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/mn/books/handbook/ports/_index.adoc | 6 +++--- .../content/mn/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/mn/books/handbook/printing/_index.adoc | 6 +++--- .../content/mn/books/handbook/security/_index.adoc | 6 +++--- .../content/mn/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/mn/books/handbook/users/_index.adoc | 6 +++--- .../content/mn/books/handbook/vinum/_index.adoc | 6 +++--- .../mn/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/mn/books/handbook/x11/_index.adoc | 6 +++--- .../content/nl/articles/contributing/_index.adoc | 12 ++++++------ .../content/nl/articles/leap-seconds/_index.adoc | 6 +++--- .../content/nl/articles/problem-reports/_index.adoc | 12 ++++++------ documentation/content/nl/books/handbook/_index.adoc | 2 +- .../nl/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/nl/books/handbook/audit/_index.adoc | 6 +++--- .../content/nl/books/handbook/basics/_index.adoc | 6 +++--- .../content/nl/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/nl/books/handbook/book.adoc | 18 +++++++++--------- .../content/nl/books/handbook/boot/_index.adoc | 6 +++--- .../content/nl/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/nl/books/handbook/config/_index.adoc | 6 +++--- .../content/nl/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/nl/books/handbook/desktop/_index.adoc | 6 +++--- .../content/nl/books/handbook/disks/_index.adoc | 6 +++--- .../content/nl/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/nl/books/handbook/eresources/_index.adoc | 6 +++--- .../content/nl/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/nl/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/nl/books/handbook/geom/_index.adoc | 6 +++--- .../content/nl/books/handbook/install/_index.adoc | 6 +++--- .../content/nl/books/handbook/introduction/_index.adoc | 6 +++--- .../content/nl/books/handbook/jails/_index.adoc | 6 +++--- .../content/nl/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/nl/books/handbook/l10n/_index.adoc | 6 +++--- .../content/nl/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/nl/books/handbook/mac/_index.adoc | 6 +++--- .../content/nl/books/handbook/mail/_index.adoc | 6 +++--- .../content/nl/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/nl/books/handbook/multimedia/_index.adoc | 6 +++--- .../nl/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/nl/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/nl/books/handbook/ports/_index.adoc | 6 +++--- .../content/nl/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/nl/books/handbook/printing/_index.adoc | 6 +++--- .../content/nl/books/handbook/security/_index.adoc | 6 +++--- .../content/nl/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/nl/books/handbook/users/_index.adoc | 6 +++--- .../nl/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/nl/books/handbook/x11/_index.adoc | 6 +++--- .../content/pl/articles/filtering-bridges/_index.adoc | 6 +++--- documentation/content/pl/books/handbook/_index.adoc | 2 +- .../pl/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/pl/books/handbook/audit/_index.adoc | 6 +++--- .../content/pl/books/handbook/basics/_index.adoc | 6 +++--- .../content/pl/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/pl/books/handbook/book.adoc | 18 +++++++++--------- .../content/pl/books/handbook/boot/_index.adoc | 6 +++--- .../content/pl/books/handbook/config/_index.adoc | 6 +++--- .../content/pl/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/pl/books/handbook/desktop/_index.adoc | 6 +++--- .../content/pl/books/handbook/disks/_index.adoc | 6 +++--- .../content/pl/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/pl/books/handbook/eresources/_index.adoc | 6 +++--- .../content/pl/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/pl/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/pl/books/handbook/geom/_index.adoc | 6 +++--- .../content/pl/books/handbook/install/_index.adoc | 6 +++--- .../content/pl/books/handbook/introduction/_index.adoc | 6 +++--- .../content/pl/books/handbook/jails/_index.adoc | 6 +++--- .../content/pl/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/pl/books/handbook/l10n/_index.adoc | 6 +++--- .../content/pl/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/pl/books/handbook/mac/_index.adoc | 6 +++--- .../content/pl/books/handbook/mail/_index.adoc | 6 +++--- .../content/pl/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/pl/books/handbook/multimedia/_index.adoc | 6 +++--- .../pl/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/pl/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/pl/books/handbook/ports/_index.adoc | 6 +++--- .../content/pl/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/pl/books/handbook/printing/_index.adoc | 6 +++--- .../content/pl/books/handbook/security/_index.adoc | 6 +++--- .../content/pl/books/handbook/serialcomms/_index.adoc | 6 +++--- .../pl/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../content/pl/books/handbook/users/_index.adoc | 6 +++--- .../pl/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/pl/books/handbook/x11/_index.adoc | 6 +++--- .../content/pl/books/handbook/zfs/_index.adoc | 6 +++--- .../pt-br/articles/building-products/_index.adoc | 2 +- .../pt-br/articles/committers-guide/_index.adoc | 2 +- .../content/pt-br/articles/contributing/_index.adoc | 2 +- .../content/pt-br/articles/contributors/_index.adoc | 2 +- .../pt-br/articles/filtering-bridges/_index.adoc | 2 +- .../pt-br/articles/freebsd-questions/_index.adoc | 2 +- .../pt-br/articles/freebsd-update-server/_index.adoc | 2 +- .../content/pt-br/articles/geom-class/_index.adoc | 2 +- .../pt-br/articles/gjournal-desktop/_index.adoc | 2 +- documentation/content/pt-br/articles/hubs/_index.adoc | 2 +- .../content/pt-br/articles/ipsec-must/_index.adoc | 2 +- .../content/pt-br/articles/leap-seconds/_index.adoc | 2 +- .../content/pt-br/articles/linux-users/_index.adoc | 2 +- .../pt-br/articles/mailing-list-faq/_index.adoc | 2 +- .../content/pt-br/articles/pgpkeys/_index.adoc | 2 +- .../pt-br/articles/port-mentor-guidelines/_index.adoc | 2 +- .../content/pt-br/articles/pr-guidelines/_index.adoc | 2 +- .../content/pt-br/articles/rc-scripting/_index.adoc | 2 +- .../content/pt-br/articles/releng/_index.adoc | 2 +- .../content/pt-br/articles/remote-install/_index.adoc | 2 +- .../content/pt-br/articles/serial-uart/_index.adoc | 2 +- documentation/content/pt-br/articles/vinum/_index.adoc | 2 +- .../content/pt-br/books/dev-model/_index.adoc | 18 +++++++++--------- documentation/content/pt-br/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/pt-br/books/handbook/_index.adoc | 2 +- .../books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/audit/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/basics/_index.adoc | 6 +++--- .../pt-br/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/pt-br/books/handbook/book.adoc | 18 +++++++++--------- .../content/pt-br/books/handbook/boot/_index.adoc | 6 +++--- .../pt-br/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/config/_index.adoc | 6 +++--- .../pt-br/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/disks/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/dtrace/_index.adoc | 6 +++--- .../pt-br/books/handbook/eresources/_index.adoc | 6 +++--- .../pt-br/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/geom/_index.adoc | 6 +++--- .../pt-br/books/handbook/introduction/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/jails/_index.adoc | 6 +++--- .../pt-br/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/l10n/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/mac/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/mail/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/mirrors/_index.adoc | 6 +++--- .../pt-br/books/handbook/multimedia/_index.adoc | 6 +++--- .../pt-br/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/ports/_index.adoc | 6 +++--- .../pt-br/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/printing/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/security/_index.adoc | 6 +++--- .../pt-br/books/handbook/serialcomms/_index.adoc | 6 +++--- .../pt-br/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../pt-br/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/zfs/_index.adoc | 6 +++--- .../content/pt-br/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../pt-br/books/porters-handbook/flavors/chapter.adoc | 6 +++--- .../books/porters-handbook/keeping-up/chapter.adoc | 6 +++--- .../books/porters-handbook/makefiles/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/new-port/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/order/chapter.adoc | 6 +++--- .../books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/plist/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-why/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/security/chapter.adoc | 6 +++--- .../books/porters-handbook/slow-porting/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/special/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../books/porters-handbook/upgrading/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/uses/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/versions/chapter.adoc | 6 +++--- .../content/ru/articles/committers-guide/_index.adoc | 6 +++--- .../content/ru/articles/contributing/_index.adoc | 4 ++-- .../content/ru/articles/freebsd-questions/_index.adoc | 4 ++-- .../content/ru/articles/geom-class/_index.adoc | 2 +- .../content/ru/articles/gjournal-desktop/_index.adoc | 4 ++-- documentation/content/ru/articles/hubs/_index.adoc | 4 ++-- .../content/ru/articles/ipsec-must/_index.adoc | 2 +- .../content/ru/articles/mailing-list-faq/_index.adoc | 4 ++-- .../content/ru/articles/pr-guidelines/_index.adoc | 4 ++-- .../content/ru/articles/problem-reports/_index.adoc | 6 +++--- documentation/content/ru/articles/releng/_index.adoc | 6 +++--- documentation/content/ru/books/arch-handbook/book.adoc | 18 +++++++++--------- .../content/ru/books/design-44bsd/_index.adoc | 18 +++++++++--------- .../content/ru/books/developers-handbook/_index.adoc | 18 +++++++++--------- documentation/content/ru/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/ru/books/handbook/_index.adoc | 2 +- .../ru/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/ru/books/handbook/audit/_index.adoc | 6 +++--- .../content/ru/books/handbook/basics/_index.adoc | 6 +++--- .../content/ru/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/ru/books/handbook/book.adoc | 18 +++++++++--------- .../content/ru/books/handbook/boot/_index.adoc | 6 +++--- .../content/ru/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/ru/books/handbook/config/_index.adoc | 6 +++--- .../content/ru/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/ru/books/handbook/desktop/_index.adoc | 6 +++--- .../content/ru/books/handbook/disks/_index.adoc | 6 +++--- .../content/ru/books/handbook/eresources/_index.adoc | 6 +++--- .../content/ru/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/ru/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/ru/books/handbook/geom/_index.adoc | 6 +++--- .../content/ru/books/handbook/install/_index.adoc | 6 +++--- .../content/ru/books/handbook/introduction/_index.adoc | 6 +++--- .../content/ru/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/ru/books/handbook/l10n/_index.adoc | 6 +++--- .../content/ru/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/ru/books/handbook/mac/_index.adoc | 6 +++--- .../content/ru/books/handbook/mail/_index.adoc | 6 +++--- .../content/ru/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/ru/books/handbook/multimedia/_index.adoc | 6 +++--- .../ru/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/ru/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/ru/books/handbook/ports/_index.adoc | 6 +++--- .../content/ru/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/ru/books/handbook/printing/_index.adoc | 6 +++--- .../content/ru/books/handbook/security/_index.adoc | 6 +++--- .../content/ru/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/ru/books/handbook/x11/_index.adoc | 6 +++--- .../content/ru/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../ru/books/porters-handbook/keeping-up/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/makefiles/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/new-port/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/plist/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/porting-why/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/security/chapter.adoc | 6 +++--- .../books/porters-handbook/slow-porting/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/special/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/upgrading/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/uses/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/versions/chapter.adoc | 6 +++--- .../content/zh-cn/articles/contributing/_index.adoc | 12 ++++++------ .../content/zh-cn/articles/leap-seconds/_index.adoc | 6 +++--- .../content/zh-cn/articles/linux-users/_index.adoc | 6 +++--- .../content/zh-cn/articles/rc-scripting/_index.adoc | 6 +++--- .../content/zh-cn/articles/remote-install/_index.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/_index.adoc | 18 +++++++++--------- .../books/arch-handbook/bibliography/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/boot/chapter.adoc | 6 +++--- .../books/arch-handbook/driverbasics/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/isa/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/jail/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/kobj/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/locking/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/mac/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/newbus/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/pccard/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/pci/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/scsi/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/smp/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/sound/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/sysinit/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/usb/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/vm/chapter.adoc | 6 +++--- documentation/content/zh-cn/books/handbook/_index.adoc | 2 +- .../books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/audit/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/basics/_index.adoc | 6 +++--- .../zh-cn/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/zh-cn/books/handbook/book.adoc | 18 +++++++++--------- .../content/zh-cn/books/handbook/boot/_index.adoc | 6 +++--- .../zh-cn/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/config/_index.adoc | 6 +++--- .../zh-cn/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/desktop/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/disks/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/dtrace/_index.adoc | 6 +++--- .../zh-cn/books/handbook/eresources/_index.adoc | 6 +++--- .../zh-cn/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/geom/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/install/_index.adoc | 6 +++--- .../zh-cn/books/handbook/introduction/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/jails/_index.adoc | 6 +++--- .../zh-cn/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/l10n/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/mac/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/mail/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/mirrors/_index.adoc | 6 +++--- .../zh-cn/books/handbook/multimedia/_index.adoc | 6 +++--- .../zh-cn/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/ports/_index.adoc | 6 +++--- .../zh-cn/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/printing/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/security/_index.adoc | 6 +++--- .../zh-cn/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/users/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/vinum/_index.adoc | 6 +++--- .../zh-cn/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/x11/_index.adoc | 6 +++--- .../content/zh-cn/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../books/porters-handbook/keeping-up/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/makefile/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/own-port/chapter.adoc | 6 +++--- .../books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/plist/chapter.adoc | 6 +++--- .../books/porters-handbook/port-upgrading/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/security/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/slow/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/special/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/why-port/chapter.adoc | 6 +++--- .../content/zh-tw/articles/contributing/_index.adoc | 12 ++++++------ .../zh-tw/articles/freebsd-questions/_index.adoc | 12 ++++++------ documentation/content/zh-tw/articles/hubs/_index.adoc | 6 +++--- .../content/zh-tw/articles/leap-seconds/_index.adoc | 6 +++--- .../zh-tw/articles/mailing-list-faq/_index.adoc | 12 ++++++------ .../content/zh-tw/articles/pr-guidelines/_index.adoc | 12 ++++++------ .../content/zh-tw/articles/problem-reports/_index.adoc | 12 ++++++------ .../content/zh-tw/articles/remote-install/_index.adoc | 6 +++--- .../zh-tw/books/developers-handbook/_index.adoc | 12 ++++++------ .../developers-handbook/bibliography/chapter.adoc | 4 ++-- .../developers-handbook/introduction/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/ipv6/chapter.adoc | 4 ++-- .../books/developers-handbook/kernelbuild/chapter.adoc | 4 ++-- .../books/developers-handbook/kerneldebug/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/l10n/chapter.adoc | 4 ++-- .../books/developers-handbook/policies/chapter.adoc | 4 ++-- .../books/developers-handbook/secure/chapter.adoc | 4 ++-- .../books/developers-handbook/sockets/chapter.adoc | 4 ++-- .../books/developers-handbook/testing/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/tools/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/x86/chapter.adoc | 4 ++-- documentation/content/zh-tw/books/handbook/_index.adoc | 2 +- .../books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/audit/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/basics/_index.adoc | 6 +++--- .../zh-tw/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/zh-tw/books/handbook/book.adoc | 14 +++++++------- .../content/zh-tw/books/handbook/boot/_index.adoc | 6 +++--- .../zh-tw/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/config/_index.adoc | 6 +++--- .../zh-tw/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/desktop/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/disks/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/dtrace/_index.adoc | 6 +++--- .../zh-tw/books/handbook/eresources/_index.adoc | 6 +++--- .../zh-tw/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/geom/_index.adoc | 6 +++--- .../zh-tw/books/handbook/introduction/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/jails/_index.adoc | 6 +++--- .../zh-tw/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/l10n/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/mac/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/mail/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/mirrors/_index.adoc | 6 +++--- .../zh-tw/books/handbook/multimedia/_index.adoc | 6 +++--- .../zh-tw/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/ports/_index.adoc | 6 +++--- .../zh-tw/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/printing/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/security/_index.adoc | 6 +++--- .../zh-tw/books/handbook/serialcomms/_index.adoc | 6 +++--- .../zh-tw/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../zh-tw/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/x11/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/zfs/_index.adoc | 6 +++--- .../content/zh-tw/books/porters-handbook/_index.adoc | 12 ++++++------ .../zh-tw/books/porters-handbook/flavors/chapter.adoc | 4 ++-- .../books/porters-handbook/keeping-up/chapter.adoc | 4 ++-- .../books/porters-handbook/makefiles/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/new-port/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/order/chapter.adoc | 4 ++-- .../books/porters-handbook/pkg-files/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/plist/chapter.adoc | 4 ++-- .../books/porters-handbook/porting-dads/chapter.adoc | 4 ++-- .../porters-handbook/porting-samplem/chapter.adoc | 4 ++-- .../books/porters-handbook/porting-why/chapter.adoc | 4 ++-- .../books/porters-handbook/quick-porting/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/security/chapter.adoc | 4 ++-- .../books/porters-handbook/slow-porting/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/special/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/testing/chapter.adoc | 4 ++-- .../books/porters-handbook/upgrading/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/uses/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/versions/chapter.adoc | 4 ++-- .../themes/beastie/layouts/shortcodes/lang.html | 2 ++ website/archetypes/new-release/readme.adoc | 4 ++-- website/archetypes/new-release/relnotes.adoc | 2 +- website/archetypes/new-release/schedule.adoc | 2 +- website/content/de/community/_index.adoc | 2 +- website/content/de/community/irc.adoc | 2 +- website/content/de/community/mailinglists.adoc | 2 +- website/content/de/community/newsgroups.adoc | 2 +- website/content/de/docproj/sgml.adoc | 2 +- website/content/de/docproj/submitting.adoc | 2 +- website/content/de/docproj/who.adoc | 2 +- website/content/de/docs/books.adoc | 2 +- website/content/de/java/_index.adoc | 2 +- website/content/de/platforms/_index.adoc | 2 +- website/content/de/platforms/amd64.adoc | 2 +- website/content/de/platforms/i386.adoc | 2 +- website/content/de/platforms/mips.adoc | 2 +- website/content/de/platforms/pc98.adoc | 2 +- website/content/de/platforms/ppc.adoc | 2 +- website/content/de/platforms/sparc.adoc | 2 +- website/content/de/ports/_index.adoc | 2 +- website/content/de/ports/installing.adoc | 2 +- website/content/de/ports/references.adoc | 2 +- website/content/de/ports/updating.adoc | 2 +- website/content/de/projects/_index.adoc | 2 +- website/content/de/projects/cvsweb.adoc | 2 +- website/content/de/releases/_index.adoc | 2 +- website/content/de/snapshots/_index.adoc | 2 +- website/content/de/support/bugreports.adoc | 2 +- website/content/de/where.adoc | 2 +- website/content/el/about.adoc | 2 +- website/content/el/docs/_index.adoc | 2 +- website/content/en/about.adoc | 2 +- website/content/en/advocacy/_index.adoc | 2 +- website/content/en/advocacy/myths.adoc | 2 +- website/content/en/community/_index.adoc | 2 +- website/content/en/community/irc.adoc | 2 +- website/content/en/community/mailinglists.adoc | 2 +- website/content/en/docproj/submitting.adoc | 2 +- website/content/en/docproj/who.adoc | 2 +- website/content/en/docs/_index.adoc | 2 +- website/content/en/docs/books.adoc | 2 +- website/content/en/gnome/contact.adoc | 2 +- website/content/en/gnome/docs/porting.adoc | 2 +- website/content/en/gnome/docs/volunteer.adoc | 2 +- website/content/en/internal/_index.adoc | 2 +- website/content/en/internal/about.adoc | 2 +- website/content/en/internal/developer.adoc | 2 +- website/content/en/internal/new-account.adoc | 2 +- website/content/en/internal/policies.adoc | 2 +- website/content/en/internal/resources.adoc | 2 +- website/content/en/ipv6/w6d.adoc | 2 +- website/content/en/java/_index.adoc | 2 +- website/content/en/mailto.adoc | 2 +- website/content/en/marketing/_index.adoc | 2 +- website/content/en/news/2012-compromise.adoc | 2 +- website/content/en/platforms/_index.adoc | 2 +- website/content/en/platforms/amd64.adoc | 2 +- website/content/en/platforms/arm.adoc | 2 +- website/content/en/platforms/i386.adoc | 2 +- website/content/en/platforms/mips.adoc | 2 +- website/content/en/platforms/pc98.adoc | 2 +- website/content/en/platforms/ppc.adoc | 2 +- website/content/en/platforms/sparc.adoc | 2 +- website/content/en/portmgr/_index.adoc | 2 +- website/content/en/portmgr/policies.adoc | 2 +- website/content/en/portmgr/policies_eol.adoc | 2 +- website/content/en/ports/_index.adoc | 2 +- website/content/en/ports/installing.adoc | 2 +- website/content/en/ports/references.adoc | 2 +- website/content/en/ports/updating.adoc | 2 +- website/content/en/projects/_index.adoc | 2 +- website/content/en/projects/newbies.adoc | 2 +- website/content/en/publish.adoc | 2 +- website/content/en/releases/10.0R/announce.adoc | 2 +- website/content/en/releases/10.0R/readme.adoc | 2 +- website/content/en/releases/10.0R/relnotes.adoc | 2 +- website/content/en/releases/10.0R/schedule.adoc | 2 +- website/content/en/releases/10.1R/announce.adoc | 2 +- website/content/en/releases/10.1R/readme.adoc | 2 +- website/content/en/releases/10.1R/relnotes.adoc | 2 +- website/content/en/releases/10.1R/schedule.adoc | 2 +- website/content/en/releases/10.2R/announce.adoc | 2 +- website/content/en/releases/10.2R/readme.adoc | 2 +- website/content/en/releases/10.2R/relnotes.adoc | 2 +- website/content/en/releases/10.2R/schedule.adoc | 2 +- website/content/en/releases/10.3R/announce.adoc | 2 +- website/content/en/releases/10.3R/readme.adoc | 2 +- website/content/en/releases/10.3R/schedule.adoc | 2 +- website/content/en/releases/10.4R/readme.adoc | 2 +- website/content/en/releases/10.4R/schedule.adoc | 2 +- website/content/en/releases/11.0R/announce.adoc | 2 +- website/content/en/releases/11.0R/readme.adoc | 2 +- website/content/en/releases/11.0R/relnotes.adoc | 2 +- website/content/en/releases/11.0R/schedule.adoc | 2 +- website/content/en/releases/11.1R/readme.adoc | 2 +- website/content/en/releases/11.1R/relnotes.adoc | 2 +- *** 21739 LINES SKIPPED *** From owner-dev-commits-doc-all@freebsd.org Sat Jun 19 21:42:25 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9E41F642285 for ; Sat, 19 Jun 2021 21:42:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G6q5F3qNSz4t7V; Sat, 19 Jun 2021 21:42:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6B9481E10D; Sat, 19 Jun 2021 21:42:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15JLgPtj086324; Sat, 19 Jun 2021 21:42:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15JLgOa4086323; Sat, 19 Jun 2021 21:42:24 GMT (envelope-from git) Date: Sat, 19 Jun 2021 21:42:24 GMT Message-Id: <202106192142.15JLgOa4086323@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: "Danilo G. Baio" Subject: git: 8e22e76d94 - main - Revert "Add Hugo's lang shortcode" MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dbaio X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8e22e76d94dc5fef83abcb3c082ab4242ef90ba2 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2021 21:42:25 -0000 The branch main has been updated by dbaio: URL: https://cgit.FreeBSD.org/doc/commit/?id=8e22e76d94dc5fef83abcb3c082ab4242ef90ba2 commit 8e22e76d94dc5fef83abcb3c082ab4242ef90ba2 Author: Danilo G. Baio AuthorDate: 2021-06-19 21:30:16 +0000 Commit: Danilo G. Baio CommitDate: 2021-06-19 21:30:16 +0000 Revert "Add Hugo's lang shortcode" This reverts commit 3462d12db6ebf303064db168a2333374344f369a. Too soon, it broke asciidoctor-pdf which doesn't know Hugo's shortcode. It will take more time and care. --- .../content/de/articles/contributing/_index.adoc | 12 ++++++------ .../content/de/articles/leap-seconds/_index.adoc | 6 +++--- .../content/de/articles/linux-users/_index.adoc | 6 +++--- .../content/de/articles/new-users/_index.adoc | 12 ++++++------ .../de/articles/port-mentor-guidelines/_index.adoc | 6 +++--- .../content/de/books/developers-handbook/_index.adoc | 18 +++++++++--------- .../developers-handbook/bibliography/chapter.adoc | 6 +++--- .../developers-handbook/introduction/chapter.adoc | 6 +++--- .../de/books/developers-handbook/ipv6/chapter.adoc | 6 +++--- .../books/developers-handbook/kernelbuild/chapter.adoc | 6 +++--- .../books/developers-handbook/kerneldebug/chapter.adoc | 6 +++--- .../de/books/developers-handbook/l10n/chapter.adoc | 6 +++--- .../de/books/developers-handbook/policies/chapter.adoc | 6 +++--- .../de/books/developers-handbook/secure/chapter.adoc | 6 +++--- .../de/books/developers-handbook/sockets/chapter.adoc | 6 +++--- .../de/books/developers-handbook/testing/chapter.adoc | 6 +++--- .../de/books/developers-handbook/tools/chapter.adoc | 6 +++--- .../de/books/developers-handbook/x86/chapter.adoc | 6 +++--- documentation/content/de/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/de/books/handbook/_index.adoc | 2 +- .../de/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/de/books/handbook/audit/_index.adoc | 6 +++--- .../content/de/books/handbook/basics/_index.adoc | 6 +++--- documentation/content/de/books/handbook/book.adoc | 18 +++++++++--------- .../content/de/books/handbook/boot/_index.adoc | 6 +++--- .../content/de/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/de/books/handbook/config/_index.adoc | 6 +++--- .../content/de/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/de/books/handbook/desktop/_index.adoc | 6 +++--- .../content/de/books/handbook/disks/_index.adoc | 6 +++--- .../content/de/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/de/books/handbook/eresources/_index.adoc | 6 +++--- .../content/de/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/de/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/de/books/handbook/geom/_index.adoc | 6 +++--- .../content/de/books/handbook/introduction/_index.adoc | 6 +++--- .../content/de/books/handbook/jails/_index.adoc | 6 +++--- .../content/de/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/de/books/handbook/l10n/_index.adoc | 6 +++--- .../content/de/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/de/books/handbook/mac/_index.adoc | 6 +++--- .../content/de/books/handbook/mail/_index.adoc | 6 +++--- .../content/de/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/de/books/handbook/multimedia/_index.adoc | 6 +++--- .../content/de/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/de/books/handbook/ports/_index.adoc | 6 +++--- .../content/de/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/de/books/handbook/printing/_index.adoc | 6 +++--- .../content/de/books/handbook/security/_index.adoc | 6 +++--- .../content/de/books/handbook/serialcomms/_index.adoc | 6 +++--- .../de/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../content/de/books/handbook/x11/_index.adoc | 6 +++--- .../content/de/books/handbook/zfs/_index.adoc | 6 +++--- .../content/de/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../content/el/articles/contributing/_index.adoc | 12 ++++++------ .../content/el/articles/freebsd-questions/_index.adoc | 12 ++++++------ .../content/el/articles/gjournal-desktop/_index.adoc | 12 ++++++------ .../el/articles/greek-language-support/_index.adoc | 6 +++--- .../content/el/articles/linux-users/_index.adoc | 6 +++--- .../content/el/articles/mailing-list-faq/_index.adoc | 12 ++++++------ .../content/el/articles/new-users/_index.adoc | 6 +++--- .../content/el/articles/problem-reports/_index.adoc | 12 ++++++------ documentation/content/el/articles/releng/_index.adoc | 18 +++++++++--------- documentation/content/el/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/el/books/handbook/_index.adoc | 2 +- .../el/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/el/books/handbook/audit/_index.adoc | 6 +++--- .../content/el/books/handbook/basics/_index.adoc | 6 +++--- .../content/el/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/el/books/handbook/book.adoc | 18 +++++++++--------- .../content/el/books/handbook/boot/_index.adoc | 6 +++--- .../content/el/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/el/books/handbook/config/_index.adoc | 6 +++--- .../content/el/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/el/books/handbook/desktop/_index.adoc | 6 +++--- .../content/el/books/handbook/disks/_index.adoc | 6 +++--- .../content/el/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/el/books/handbook/eresources/_index.adoc | 6 +++--- .../content/el/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/el/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/el/books/handbook/geom/_index.adoc | 6 +++--- .../content/el/books/handbook/install/_index.adoc | 6 +++--- .../content/el/books/handbook/introduction/_index.adoc | 6 +++--- .../content/el/books/handbook/jails/_index.adoc | 6 +++--- .../content/el/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/el/books/handbook/l10n/_index.adoc | 6 +++--- .../content/el/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/el/books/handbook/mac/_index.adoc | 6 +++--- .../content/el/books/handbook/mail/_index.adoc | 6 +++--- .../content/el/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/el/books/handbook/multimedia/_index.adoc | 6 +++--- .../el/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/el/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/el/books/handbook/ports/_index.adoc | 6 +++--- .../content/el/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/el/books/handbook/printing/_index.adoc | 6 +++--- .../content/el/books/handbook/security/_index.adoc | 6 +++--- .../content/el/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/el/books/handbook/users/_index.adoc | 6 +++--- .../el/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/el/books/handbook/x11/_index.adoc | 6 +++--- .../content/en/articles/building-products/_index.adoc | 12 ++++++------ .../content/en/articles/committers-guide/_index.adoc | 18 +++++++++--------- .../content/en/articles/contributing/_index.adoc | 12 ++++++------ .../content/en/articles/contributors/_index.adoc | 6 +++--- .../content/en/articles/filtering-bridges/_index.adoc | 6 +++--- .../content/en/articles/freebsd-questions/_index.adoc | 12 ++++++------ .../en/articles/freebsd-update-server/_index.adoc | 6 +++--- .../content/en/articles/geom-class/_index.adoc | 6 +++--- .../content/en/articles/gjournal-desktop/_index.adoc | 12 ++++++------ documentation/content/en/articles/hubs/_index.adoc | 12 ++++++------ .../content/en/articles/ipsec-must/_index.adoc | 6 +++--- .../content/en/articles/leap-seconds/_index.adoc | 6 +++--- .../content/en/articles/linux-users/_index.adoc | 6 +++--- .../content/en/articles/mailing-list-faq/_index.adoc | 12 ++++++------ documentation/content/en/articles/nanobsd/_index.adoc | 6 +++--- documentation/content/en/articles/pgpkeys/_index.adoc | 6 +++--- .../en/articles/port-mentor-guidelines/_index.adoc | 6 +++--- .../content/en/articles/pr-guidelines/_index.adoc | 12 ++++++------ .../content/en/articles/problem-reports/_index.adoc | 12 ++++++------ .../content/en/articles/rc-scripting/_index.adoc | 6 +++--- documentation/content/en/articles/releng/_index.adoc | 18 +++++++++--------- .../content/en/articles/remote-install/_index.adoc | 6 +++--- .../content/en/articles/serial-uart/_index.adoc | 6 +++--- documentation/content/en/articles/vinum/_index.adoc | 4 ++-- .../content/en/books/arch-handbook/_index.adoc | 18 +++++++++--------- .../en/books/arch-handbook/bibliography/_index.adoc | 6 +++--- documentation/content/en/books/arch-handbook/book.adoc | 18 +++++++++--------- .../content/en/books/arch-handbook/boot/_index.adoc | 6 +++--- .../en/books/arch-handbook/driverbasics/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/isa/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/jail/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/kobj/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/locking/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/mac/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/newbus/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/pccard/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/pci/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/scsi/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/smp/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/sound/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/sysinit/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/usb/_index.adoc | 6 +++--- .../content/en/books/arch-handbook/vm/_index.adoc | 6 +++--- .../content/en/books/design-44bsd/_index.adoc | 18 +++++++++--------- documentation/content/en/books/dev-model/_index.adoc | 18 +++++++++--------- .../content/en/books/developers-handbook/_index.adoc | 18 +++++++++--------- .../books/developers-handbook/bibliography/_index.adoc | 6 +++--- .../content/en/books/developers-handbook/book.adoc | 18 +++++++++--------- .../books/developers-handbook/introduction/_index.adoc | 6 +++--- .../en/books/developers-handbook/ipv6/_index.adoc | 6 +++--- .../books/developers-handbook/kernelbuild/_index.adoc | 6 +++--- .../books/developers-handbook/kerneldebug/_index.adoc | 6 +++--- .../en/books/developers-handbook/l10n/_index.adoc | 6 +++--- .../en/books/developers-handbook/policies/_index.adoc | 6 +++--- .../en/books/developers-handbook/secure/_index.adoc | 6 +++--- .../en/books/developers-handbook/sockets/_index.adoc | 6 +++--- .../en/books/developers-handbook/testing/_index.adoc | 6 +++--- .../en/books/developers-handbook/tools/_index.adoc | 6 +++--- .../en/books/developers-handbook/x86/_index.adoc | 6 +++--- documentation/content/en/books/faq/_index.adoc | 18 +++++++++--------- .../en/books/fdp-primer/asciidoctor-primer/_index.adoc | 2 +- documentation/content/en/books/fdp-primer/book.adoc | 18 +++++++++--------- .../content/en/books/fdp-primer/overview/_index.adoc | 2 +- .../en/books/fdp-primer/po-translations/_index.adoc | 2 +- .../content/en/books/fdp-primer/see-also/_index.adoc | 2 +- .../en/books/fdp-primer/translations/_index.adoc | 4 ++-- .../en/books/fdp-primer/writing-style/_index.adoc | 2 +- documentation/content/en/books/handbook/_index.adoc | 2 +- .../en/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/en/books/handbook/audit/_index.adoc | 6 +++--- .../content/en/books/handbook/basics/_index.adoc | 6 +++--- .../content/en/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/en/books/handbook/book.adoc | 18 +++++++++--------- .../content/en/books/handbook/boot/_index.adoc | 6 +++--- .../content/en/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/en/books/handbook/config/_index.adoc | 6 +++--- .../content/en/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/en/books/handbook/desktop/_index.adoc | 6 +++--- .../content/en/books/handbook/disks/_index.adoc | 6 +++--- .../content/en/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/en/books/handbook/eresources/_index.adoc | 6 +++--- .../content/en/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/en/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/en/books/handbook/geom/_index.adoc | 6 +++--- documentation/content/en/books/handbook/glossary.adoc | 2 +- .../content/en/books/handbook/introduction/_index.adoc | 6 +++--- .../content/en/books/handbook/jails/_index.adoc | 6 +++--- .../content/en/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/en/books/handbook/l10n/_index.adoc | 6 +++--- .../content/en/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/en/books/handbook/mac/_index.adoc | 6 +++--- .../content/en/books/handbook/mail/_index.adoc | 6 +++--- .../content/en/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/en/books/handbook/multimedia/_index.adoc | 6 +++--- .../en/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/en/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/en/books/handbook/ports/_index.adoc | 6 +++--- .../content/en/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/en/books/handbook/printing/_index.adoc | 6 +++--- .../content/en/books/handbook/security/_index.adoc | 6 +++--- .../content/en/books/handbook/serialcomms/_index.adoc | 6 +++--- .../en/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../en/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/en/books/handbook/wine/_index.adoc | 6 +++--- .../content/en/books/handbook/x11/_index.adoc | 6 +++--- .../content/en/books/handbook/zfs/_index.adoc | 6 +++--- .../content/en/books/porters-handbook/book.adoc | 18 +++++++++--------- .../en/books/porters-handbook/flavors/_index.adoc | 6 +++--- .../en/books/porters-handbook/keeping-up/_index.adoc | 6 +++--- .../en/books/porters-handbook/makefiles/_index.adoc | 6 +++--- .../en/books/porters-handbook/new-port/_index.adoc | 6 +++--- .../en/books/porters-handbook/order/_index.adoc | 6 +++--- .../en/books/porters-handbook/pkg-files/_index.adoc | 6 +++--- .../en/books/porters-handbook/plist/_index.adoc | 6 +++--- .../en/books/porters-handbook/porting-dads/_index.adoc | 6 +++--- .../books/porters-handbook/porting-samplem/_index.adoc | 6 +++--- .../en/books/porters-handbook/porting-why/_index.adoc | 6 +++--- .../books/porters-handbook/quick-porting/_index.adoc | 6 +++--- .../en/books/porters-handbook/security/_index.adoc | 6 +++--- .../en/books/porters-handbook/slow-porting/_index.adoc | 6 +++--- .../en/books/porters-handbook/special/_index.adoc | 6 +++--- .../en/books/porters-handbook/testing/_index.adoc | 6 +++--- .../en/books/porters-handbook/upgrading/_index.adoc | 6 +++--- .../content/en/books/porters-handbook/uses/_index.adoc | 6 +++--- .../en/books/porters-handbook/versions/_index.adoc | 6 +++--- .../content/es/articles/contributing/_index.adoc | 2 +- .../content/es/articles/filtering-bridges/_index.adoc | 2 +- .../content/es/articles/freebsd-questions/_index.adoc | 2 +- .../content/es/articles/ipsec-must/_index.adoc | 2 +- .../content/es/articles/leap-seconds/_index.adoc | 2 +- .../content/es/articles/linux-users/_index.adoc | 2 +- .../content/es/articles/mailing-list-faq/_index.adoc | 2 +- .../es/articles/port-mentor-guidelines/_index.adoc | 2 +- .../content/es/articles/pr-guidelines/_index.adoc | 2 +- .../content/es/articles/problem-reports/_index.adoc | 2 +- documentation/content/es/articles/releng/_index.adoc | 6 +++--- .../content/es/articles/remote-install/_index.adoc | 2 +- documentation/content/es/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/es/books/handbook/_index.adoc | 2 +- .../es/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/es/books/handbook/basics/_index.adoc | 6 +++--- .../content/es/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/es/books/handbook/book.adoc | 18 +++++++++--------- .../content/es/books/handbook/boot/_index.adoc | 6 +++--- .../content/es/books/handbook/config/_index.adoc | 6 +++--- .../content/es/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/es/books/handbook/desktop/_index.adoc | 6 +++--- .../content/es/books/handbook/disks/_index.adoc | 6 +++--- .../content/es/books/handbook/eresources/_index.adoc | 6 +++--- .../content/es/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/es/books/handbook/geom/_index.adoc | 6 +++--- .../content/es/books/handbook/install/_index.adoc | 6 +++--- .../content/es/books/handbook/introduction/_index.adoc | 6 +++--- .../content/es/books/handbook/jails/_index.adoc | 6 +++--- .../content/es/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/es/books/handbook/l10n/_index.adoc | 6 +++--- .../content/es/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/es/books/handbook/mac/_index.adoc | 6 +++--- .../content/es/books/handbook/mail/_index.adoc | 6 +++--- .../content/es/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/es/books/handbook/multimedia/_index.adoc | 6 +++--- .../es/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/es/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/es/books/handbook/ports/_index.adoc | 6 +++--- .../content/es/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/es/books/handbook/printing/_index.adoc | 6 +++--- .../content/es/books/handbook/security/_index.adoc | 6 +++--- .../content/es/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/es/books/handbook/users/_index.adoc | 6 +++--- .../content/es/books/handbook/vinum/_index.adoc | 6 +++--- .../es/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/es/books/handbook/x11/_index.adoc | 6 +++--- .../content/fr/articles/building-products/_index.adoc | 8 ++++---- .../content/fr/articles/committers-guide/_index.adoc | 12 ++++++------ .../content/fr/articles/contributing/_index.adoc | 12 ++++++------ .../content/fr/articles/filtering-bridges/_index.adoc | 6 +++--- .../content/fr/articles/ipsec-must/_index.adoc | 6 +++--- .../content/fr/articles/leap-seconds/_index.adoc | 6 +++--- .../content/fr/articles/linux-users/_index.adoc | 6 +++--- .../content/fr/articles/new-users/_index.adoc | 6 +++--- .../content/fr/books/developers-handbook/_index.adoc | 18 +++++++++--------- documentation/content/fr/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/fr/books/handbook/_index.adoc | 2 +- .../fr/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/fr/books/handbook/audit/_index.adoc | 6 +++--- .../content/fr/books/handbook/basics/_index.adoc | 6 +++--- documentation/content/fr/books/handbook/book.adoc | 18 +++++++++--------- .../content/fr/books/handbook/boot/_index.adoc | 6 +++--- .../content/fr/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/fr/books/handbook/config/_index.adoc | 6 +++--- .../content/fr/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/fr/books/handbook/desktop/_index.adoc | 6 +++--- .../content/fr/books/handbook/disks/_index.adoc | 6 +++--- .../content/fr/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/fr/books/handbook/eresources/_index.adoc | 6 +++--- .../content/fr/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/fr/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/fr/books/handbook/geom/_index.adoc | 6 +++--- .../content/fr/books/handbook/introduction/_index.adoc | 6 +++--- .../content/fr/books/handbook/jails/_index.adoc | 6 +++--- .../content/fr/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/fr/books/handbook/l10n/_index.adoc | 6 +++--- .../content/fr/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/fr/books/handbook/mac/_index.adoc | 6 +++--- .../content/fr/books/handbook/mail/_index.adoc | 6 +++--- .../content/fr/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/fr/books/handbook/multimedia/_index.adoc | 6 +++--- .../fr/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/fr/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/fr/books/handbook/ports/_index.adoc | 6 +++--- .../content/fr/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/fr/books/handbook/printing/_index.adoc | 6 +++--- .../content/fr/books/handbook/security/_index.adoc | 6 +++--- .../content/fr/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/fr/books/handbook/vinum/_index.adoc | 6 +++--- .../fr/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/fr/books/handbook/x11/_index.adoc | 6 +++--- .../content/fr/books/handbook/zfs/_index.adoc | 6 +++--- .../content/fr/books/porters-handbook/book.adoc | 18 +++++++++--------- .../content/hu/articles/gjournal-desktop/_index.adoc | 12 ++++++------ .../content/hu/articles/linux-users/_index.adoc | 6 +++--- documentation/content/hu/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/hu/books/handbook/_index.adoc | 2 +- .../hu/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/hu/books/handbook/audit/_index.adoc | 6 +++--- .../content/hu/books/handbook/basics/_index.adoc | 6 +++--- .../content/hu/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/hu/books/handbook/book.adoc | 18 +++++++++--------- .../content/hu/books/handbook/boot/_index.adoc | 6 +++--- .../content/hu/books/handbook/config/_index.adoc | 6 +++--- .../content/hu/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/hu/books/handbook/desktop/_index.adoc | 6 +++--- .../content/hu/books/handbook/disks/_index.adoc | 6 +++--- .../content/hu/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/hu/books/handbook/eresources/_index.adoc | 6 +++--- .../content/hu/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/hu/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/hu/books/handbook/geom/_index.adoc | 6 +++--- .../content/hu/books/handbook/install/_index.adoc | 6 +++--- .../content/hu/books/handbook/introduction/_index.adoc | 6 +++--- .../content/hu/books/handbook/jails/_index.adoc | 6 +++--- .../content/hu/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/hu/books/handbook/l10n/_index.adoc | 6 +++--- .../content/hu/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/hu/books/handbook/mac/_index.adoc | 6 +++--- .../content/hu/books/handbook/mail/_index.adoc | 6 +++--- .../content/hu/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/hu/books/handbook/multimedia/_index.adoc | 6 +++--- .../hu/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/hu/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/hu/books/handbook/ports/_index.adoc | 6 +++--- .../content/hu/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/hu/books/handbook/printing/_index.adoc | 6 +++--- .../content/hu/books/handbook/security/_index.adoc | 6 +++--- .../content/hu/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/hu/books/handbook/users/_index.adoc | 6 +++--- .../content/hu/books/handbook/vinum/_index.adoc | 6 +++--- .../hu/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/hu/books/handbook/x11/_index.adoc | 6 +++--- documentation/content/it/books/handbook/_index.adoc | 2 +- .../it/books/handbook/advanced-networking/_index.adoc | 4 ++-- .../content/it/books/handbook/audit/_index.adoc | 4 ++-- .../content/it/books/handbook/basics/_index.adoc | 4 ++-- .../content/it/books/handbook/bibliography/_index.adoc | 4 ++-- documentation/content/it/books/handbook/book.adoc | 18 +++++++++--------- .../content/it/books/handbook/boot/_index.adoc | 4 ++-- .../content/it/books/handbook/config/_index.adoc | 4 ++-- .../content/it/books/handbook/cutting-edge/_index.adoc | 4 ++-- .../content/it/books/handbook/desktop/_index.adoc | 4 ++-- .../content/it/books/handbook/disks/_index.adoc | 4 ++-- .../content/it/books/handbook/eresources/_index.adoc | 4 ++-- .../content/it/books/handbook/geom/_index.adoc | 4 ++-- .../content/it/books/handbook/install/_index.adoc | 4 ++-- .../content/it/books/handbook/introduction/_index.adoc | 4 ++-- .../content/it/books/handbook/jails/_index.adoc | 4 ++-- .../content/it/books/handbook/kernelconfig/_index.adoc | 4 ++-- .../content/it/books/handbook/l10n/_index.adoc | 4 ++-- .../content/it/books/handbook/linuxemu/_index.adoc | 4 ++-- .../content/it/books/handbook/mac/_index.adoc | 4 ++-- .../content/it/books/handbook/mail/_index.adoc | 4 ++-- .../content/it/books/handbook/mirrors/_index.adoc | 4 ++-- .../content/it/books/handbook/multimedia/_index.adoc | 4 ++-- .../it/books/handbook/network-servers/_index.adoc | 4 ++-- .../content/it/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/it/books/handbook/ports/_index.adoc | 4 ++-- .../content/it/books/handbook/ppp-and-slip/_index.adoc | 4 ++-- .../content/it/books/handbook/preface/_index.adoc | 4 ++-- .../content/it/books/handbook/printing/_index.adoc | 4 ++-- .../content/it/books/handbook/security/_index.adoc | 4 ++-- .../content/it/books/handbook/serialcomms/_index.adoc | 4 ++-- .../content/it/books/handbook/users/_index.adoc | 4 ++-- .../content/it/books/handbook/vinum/_index.adoc | 4 ++-- .../it/books/handbook/virtualization/_index.adoc | 4 ++-- .../content/it/books/handbook/x11/_index.adoc | 4 ++-- .../content/ja/articles/contributing/_index.adoc | 12 ++++++------ documentation/content/ja/articles/fonts/_index.adoc | 6 +++--- .../content/ja/articles/ipsec-must/_index.adoc | 6 +++--- .../content/ja/articles/leap-seconds/_index.adoc | 6 +++--- .../content/ja/articles/problem-reports/_index.adoc | 12 ++++++------ .../content/ja/books/design-44bsd/_index.adoc | 18 +++++++++--------- documentation/content/ja/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/ja/books/handbook/_index.adoc | 2 +- .../ja/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/ja/books/handbook/basics/_index.adoc | 6 +++--- .../content/ja/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/ja/books/handbook/book.adoc | 18 +++++++++--------- .../content/ja/books/handbook/boot/_index.adoc | 6 +++--- .../content/ja/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/ja/books/handbook/config/_index.adoc | 6 +++--- .../content/ja/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/ja/books/handbook/desktop/_index.adoc | 6 +++--- .../content/ja/books/handbook/disks/_index.adoc | 6 +++--- .../content/ja/books/handbook/eresources/_index.adoc | 6 +++--- .../content/ja/books/handbook/introduction/_index.adoc | 6 +++--- .../content/ja/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/ja/books/handbook/l10n/_index.adoc | 6 +++--- .../content/ja/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/ja/books/handbook/mail/_index.adoc | 6 +++--- .../content/ja/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/ja/books/handbook/multimedia/_index.adoc | 6 +++--- .../content/ja/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/ja/books/handbook/ports/_index.adoc | 6 +++--- .../content/ja/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/ja/books/handbook/printing/_index.adoc | 6 +++--- .../content/ja/books/handbook/security/_index.adoc | 6 +++--- .../content/ja/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/ja/books/handbook/users/_index.adoc | 6 +++--- .../content/ja/books/handbook/x11/_index.adoc | 6 +++--- .../content/ja/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../ja/books/porters-handbook/changes/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/makefile/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/own-port/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../books/porters-handbook/port-upgrading/chapter.adoc | 6 +++--- .../porters-handbook/porting-autoplist/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-info/chapter.adoc | 6 +++--- .../porters-handbook/porting-manpages/chapter.adoc | 6 +++--- .../porters-handbook/porting-masterdir/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-motif/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/shared/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/slow/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/special/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/why-port/chapter.adoc | 6 +++--- .../ja/books/porters-handbook/x11-fonts/chapter.adoc | 6 +++--- .../content/ko/articles/contributing/_index.adoc | 6 +++--- documentation/content/mn/books/handbook/_index.adoc | 2 +- .../mn/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/mn/books/handbook/audit/_index.adoc | 6 +++--- .../content/mn/books/handbook/basics/_index.adoc | 6 +++--- .../content/mn/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/mn/books/handbook/book.adoc | 18 +++++++++--------- .../content/mn/books/handbook/boot/_index.adoc | 6 +++--- .../content/mn/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/mn/books/handbook/config/_index.adoc | 6 +++--- .../content/mn/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/mn/books/handbook/desktop/_index.adoc | 6 +++--- .../content/mn/books/handbook/disks/_index.adoc | 6 +++--- .../content/mn/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/mn/books/handbook/eresources/_index.adoc | 6 +++--- .../content/mn/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/mn/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/mn/books/handbook/geom/_index.adoc | 6 +++--- .../content/mn/books/handbook/install/_index.adoc | 6 +++--- .../content/mn/books/handbook/jails/_index.adoc | 6 +++--- .../content/mn/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/mn/books/handbook/l10n/_index.adoc | 6 +++--- .../content/mn/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/mn/books/handbook/mac/_index.adoc | 6 +++--- .../content/mn/books/handbook/mail/_index.adoc | 6 +++--- .../content/mn/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/mn/books/handbook/multimedia/_index.adoc | 6 +++--- .../mn/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/mn/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/mn/books/handbook/ports/_index.adoc | 6 +++--- .../content/mn/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/mn/books/handbook/printing/_index.adoc | 6 +++--- .../content/mn/books/handbook/security/_index.adoc | 6 +++--- .../content/mn/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/mn/books/handbook/users/_index.adoc | 6 +++--- .../content/mn/books/handbook/vinum/_index.adoc | 6 +++--- .../mn/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/mn/books/handbook/x11/_index.adoc | 6 +++--- .../content/nl/articles/contributing/_index.adoc | 12 ++++++------ .../content/nl/articles/leap-seconds/_index.adoc | 6 +++--- .../content/nl/articles/problem-reports/_index.adoc | 12 ++++++------ documentation/content/nl/books/handbook/_index.adoc | 2 +- .../nl/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/nl/books/handbook/audit/_index.adoc | 6 +++--- .../content/nl/books/handbook/basics/_index.adoc | 6 +++--- .../content/nl/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/nl/books/handbook/book.adoc | 18 +++++++++--------- .../content/nl/books/handbook/boot/_index.adoc | 6 +++--- .../content/nl/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/nl/books/handbook/config/_index.adoc | 6 +++--- .../content/nl/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/nl/books/handbook/desktop/_index.adoc | 6 +++--- .../content/nl/books/handbook/disks/_index.adoc | 6 +++--- .../content/nl/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/nl/books/handbook/eresources/_index.adoc | 6 +++--- .../content/nl/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/nl/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/nl/books/handbook/geom/_index.adoc | 6 +++--- .../content/nl/books/handbook/install/_index.adoc | 6 +++--- .../content/nl/books/handbook/introduction/_index.adoc | 6 +++--- .../content/nl/books/handbook/jails/_index.adoc | 6 +++--- .../content/nl/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/nl/books/handbook/l10n/_index.adoc | 6 +++--- .../content/nl/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/nl/books/handbook/mac/_index.adoc | 6 +++--- .../content/nl/books/handbook/mail/_index.adoc | 6 +++--- .../content/nl/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/nl/books/handbook/multimedia/_index.adoc | 6 +++--- .../nl/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/nl/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/nl/books/handbook/ports/_index.adoc | 6 +++--- .../content/nl/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/nl/books/handbook/printing/_index.adoc | 6 +++--- .../content/nl/books/handbook/security/_index.adoc | 6 +++--- .../content/nl/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/nl/books/handbook/users/_index.adoc | 6 +++--- .../nl/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/nl/books/handbook/x11/_index.adoc | 6 +++--- .../content/pl/articles/filtering-bridges/_index.adoc | 6 +++--- documentation/content/pl/books/handbook/_index.adoc | 2 +- .../pl/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/pl/books/handbook/audit/_index.adoc | 6 +++--- .../content/pl/books/handbook/basics/_index.adoc | 6 +++--- .../content/pl/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/pl/books/handbook/book.adoc | 18 +++++++++--------- .../content/pl/books/handbook/boot/_index.adoc | 6 +++--- .../content/pl/books/handbook/config/_index.adoc | 6 +++--- .../content/pl/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/pl/books/handbook/desktop/_index.adoc | 6 +++--- .../content/pl/books/handbook/disks/_index.adoc | 6 +++--- .../content/pl/books/handbook/dtrace/_index.adoc | 6 +++--- .../content/pl/books/handbook/eresources/_index.adoc | 6 +++--- .../content/pl/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/pl/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/pl/books/handbook/geom/_index.adoc | 6 +++--- .../content/pl/books/handbook/install/_index.adoc | 6 +++--- .../content/pl/books/handbook/introduction/_index.adoc | 6 +++--- .../content/pl/books/handbook/jails/_index.adoc | 6 +++--- .../content/pl/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/pl/books/handbook/l10n/_index.adoc | 6 +++--- .../content/pl/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/pl/books/handbook/mac/_index.adoc | 6 +++--- .../content/pl/books/handbook/mail/_index.adoc | 6 +++--- .../content/pl/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/pl/books/handbook/multimedia/_index.adoc | 6 +++--- .../pl/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/pl/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/pl/books/handbook/ports/_index.adoc | 6 +++--- .../content/pl/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/pl/books/handbook/printing/_index.adoc | 6 +++--- .../content/pl/books/handbook/security/_index.adoc | 6 +++--- .../content/pl/books/handbook/serialcomms/_index.adoc | 6 +++--- .../pl/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../content/pl/books/handbook/users/_index.adoc | 6 +++--- .../pl/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/pl/books/handbook/x11/_index.adoc | 6 +++--- .../content/pl/books/handbook/zfs/_index.adoc | 6 +++--- .../pt-br/articles/building-products/_index.adoc | 2 +- .../pt-br/articles/committers-guide/_index.adoc | 2 +- .../content/pt-br/articles/contributing/_index.adoc | 2 +- .../content/pt-br/articles/contributors/_index.adoc | 2 +- .../pt-br/articles/filtering-bridges/_index.adoc | 2 +- .../pt-br/articles/freebsd-questions/_index.adoc | 2 +- .../pt-br/articles/freebsd-update-server/_index.adoc | 2 +- .../content/pt-br/articles/geom-class/_index.adoc | 2 +- .../pt-br/articles/gjournal-desktop/_index.adoc | 2 +- documentation/content/pt-br/articles/hubs/_index.adoc | 2 +- .../content/pt-br/articles/ipsec-must/_index.adoc | 2 +- .../content/pt-br/articles/leap-seconds/_index.adoc | 2 +- .../content/pt-br/articles/linux-users/_index.adoc | 2 +- .../pt-br/articles/mailing-list-faq/_index.adoc | 2 +- .../content/pt-br/articles/pgpkeys/_index.adoc | 2 +- .../pt-br/articles/port-mentor-guidelines/_index.adoc | 2 +- .../content/pt-br/articles/pr-guidelines/_index.adoc | 2 +- .../content/pt-br/articles/rc-scripting/_index.adoc | 2 +- .../content/pt-br/articles/releng/_index.adoc | 2 +- .../content/pt-br/articles/remote-install/_index.adoc | 2 +- .../content/pt-br/articles/serial-uart/_index.adoc | 2 +- documentation/content/pt-br/articles/vinum/_index.adoc | 2 +- .../content/pt-br/books/dev-model/_index.adoc | 18 +++++++++--------- documentation/content/pt-br/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/pt-br/books/handbook/_index.adoc | 2 +- .../books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/audit/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/basics/_index.adoc | 6 +++--- .../pt-br/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/pt-br/books/handbook/book.adoc | 18 +++++++++--------- .../content/pt-br/books/handbook/boot/_index.adoc | 6 +++--- .../pt-br/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/config/_index.adoc | 6 +++--- .../pt-br/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/disks/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/dtrace/_index.adoc | 6 +++--- .../pt-br/books/handbook/eresources/_index.adoc | 6 +++--- .../pt-br/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/geom/_index.adoc | 6 +++--- .../pt-br/books/handbook/introduction/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/jails/_index.adoc | 6 +++--- .../pt-br/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/l10n/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/mac/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/mail/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/mirrors/_index.adoc | 6 +++--- .../pt-br/books/handbook/multimedia/_index.adoc | 6 +++--- .../pt-br/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/ports/_index.adoc | 6 +++--- .../pt-br/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/printing/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/security/_index.adoc | 6 +++--- .../pt-br/books/handbook/serialcomms/_index.adoc | 6 +++--- .../pt-br/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../pt-br/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/pt-br/books/handbook/zfs/_index.adoc | 6 +++--- .../content/pt-br/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../pt-br/books/porters-handbook/flavors/chapter.adoc | 6 +++--- .../books/porters-handbook/keeping-up/chapter.adoc | 6 +++--- .../books/porters-handbook/makefiles/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/new-port/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/order/chapter.adoc | 6 +++--- .../books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/plist/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-why/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/security/chapter.adoc | 6 +++--- .../books/porters-handbook/slow-porting/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/special/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../books/porters-handbook/upgrading/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/uses/chapter.adoc | 6 +++--- .../pt-br/books/porters-handbook/versions/chapter.adoc | 6 +++--- .../content/ru/articles/committers-guide/_index.adoc | 6 +++--- .../content/ru/articles/contributing/_index.adoc | 4 ++-- .../content/ru/articles/freebsd-questions/_index.adoc | 4 ++-- .../content/ru/articles/geom-class/_index.adoc | 2 +- .../content/ru/articles/gjournal-desktop/_index.adoc | 4 ++-- documentation/content/ru/articles/hubs/_index.adoc | 4 ++-- .../content/ru/articles/ipsec-must/_index.adoc | 2 +- .../content/ru/articles/mailing-list-faq/_index.adoc | 4 ++-- .../content/ru/articles/pr-guidelines/_index.adoc | 4 ++-- .../content/ru/articles/problem-reports/_index.adoc | 6 +++--- documentation/content/ru/articles/releng/_index.adoc | 6 +++--- documentation/content/ru/books/arch-handbook/book.adoc | 18 +++++++++--------- .../content/ru/books/design-44bsd/_index.adoc | 18 +++++++++--------- .../content/ru/books/developers-handbook/_index.adoc | 18 +++++++++--------- documentation/content/ru/books/faq/_index.adoc | 18 +++++++++--------- documentation/content/ru/books/handbook/_index.adoc | 2 +- .../ru/books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/ru/books/handbook/audit/_index.adoc | 6 +++--- .../content/ru/books/handbook/basics/_index.adoc | 6 +++--- .../content/ru/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/ru/books/handbook/book.adoc | 18 +++++++++--------- .../content/ru/books/handbook/boot/_index.adoc | 6 +++--- .../content/ru/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/ru/books/handbook/config/_index.adoc | 6 +++--- .../content/ru/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/ru/books/handbook/desktop/_index.adoc | 6 +++--- .../content/ru/books/handbook/disks/_index.adoc | 6 +++--- .../content/ru/books/handbook/eresources/_index.adoc | 6 +++--- .../content/ru/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/ru/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/ru/books/handbook/geom/_index.adoc | 6 +++--- .../content/ru/books/handbook/install/_index.adoc | 6 +++--- .../content/ru/books/handbook/introduction/_index.adoc | 6 +++--- .../content/ru/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/ru/books/handbook/l10n/_index.adoc | 6 +++--- .../content/ru/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/ru/books/handbook/mac/_index.adoc | 6 +++--- .../content/ru/books/handbook/mail/_index.adoc | 6 +++--- .../content/ru/books/handbook/mirrors/_index.adoc | 6 +++--- .../content/ru/books/handbook/multimedia/_index.adoc | 6 +++--- .../ru/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/ru/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/ru/books/handbook/ports/_index.adoc | 6 +++--- .../content/ru/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/ru/books/handbook/printing/_index.adoc | 6 +++--- .../content/ru/books/handbook/security/_index.adoc | 6 +++--- .../content/ru/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/ru/books/handbook/x11/_index.adoc | 6 +++--- .../content/ru/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../ru/books/porters-handbook/keeping-up/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/makefiles/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/new-port/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/plist/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/porting-why/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/security/chapter.adoc | 6 +++--- .../books/porters-handbook/slow-porting/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/special/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/upgrading/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/uses/chapter.adoc | 6 +++--- .../ru/books/porters-handbook/versions/chapter.adoc | 6 +++--- .../content/zh-cn/articles/contributing/_index.adoc | 12 ++++++------ .../content/zh-cn/articles/leap-seconds/_index.adoc | 6 +++--- .../content/zh-cn/articles/linux-users/_index.adoc | 6 +++--- .../content/zh-cn/articles/rc-scripting/_index.adoc | 6 +++--- .../content/zh-cn/articles/remote-install/_index.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/_index.adoc | 18 +++++++++--------- .../books/arch-handbook/bibliography/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/boot/chapter.adoc | 6 +++--- .../books/arch-handbook/driverbasics/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/isa/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/jail/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/kobj/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/locking/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/mac/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/newbus/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/pccard/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/pci/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/scsi/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/smp/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/sound/chapter.adoc | 6 +++--- .../zh-cn/books/arch-handbook/sysinit/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/usb/chapter.adoc | 6 +++--- .../content/zh-cn/books/arch-handbook/vm/chapter.adoc | 6 +++--- documentation/content/zh-cn/books/handbook/_index.adoc | 2 +- .../books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/audit/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/basics/_index.adoc | 6 +++--- .../zh-cn/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/zh-cn/books/handbook/book.adoc | 18 +++++++++--------- .../content/zh-cn/books/handbook/boot/_index.adoc | 6 +++--- .../zh-cn/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/config/_index.adoc | 6 +++--- .../zh-cn/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/desktop/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/disks/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/dtrace/_index.adoc | 6 +++--- .../zh-cn/books/handbook/eresources/_index.adoc | 6 +++--- .../zh-cn/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/geom/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/install/_index.adoc | 6 +++--- .../zh-cn/books/handbook/introduction/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/jails/_index.adoc | 6 +++--- .../zh-cn/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/l10n/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/mac/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/mail/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/mirrors/_index.adoc | 6 +++--- .../zh-cn/books/handbook/multimedia/_index.adoc | 6 +++--- .../zh-cn/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/ports/_index.adoc | 6 +++--- .../zh-cn/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/printing/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/security/_index.adoc | 6 +++--- .../zh-cn/books/handbook/serialcomms/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/users/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/vinum/_index.adoc | 6 +++--- .../zh-cn/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/zh-cn/books/handbook/x11/_index.adoc | 6 +++--- .../content/zh-cn/books/porters-handbook/_index.adoc | 18 +++++++++--------- .../books/porters-handbook/keeping-up/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/makefile/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/own-port/chapter.adoc | 6 +++--- .../books/porters-handbook/pkg-files/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/plist/chapter.adoc | 6 +++--- .../books/porters-handbook/port-upgrading/chapter.adoc | 6 +++--- .../books/porters-handbook/porting-dads/chapter.adoc | 6 +++--- .../porters-handbook/porting-samplem/chapter.adoc | 6 +++--- .../books/porters-handbook/quick-porting/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/security/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/slow/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/special/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/testing/chapter.adoc | 6 +++--- .../zh-cn/books/porters-handbook/why-port/chapter.adoc | 6 +++--- .../content/zh-tw/articles/contributing/_index.adoc | 12 ++++++------ .../zh-tw/articles/freebsd-questions/_index.adoc | 12 ++++++------ documentation/content/zh-tw/articles/hubs/_index.adoc | 6 +++--- .../content/zh-tw/articles/leap-seconds/_index.adoc | 6 +++--- .../zh-tw/articles/mailing-list-faq/_index.adoc | 12 ++++++------ .../content/zh-tw/articles/pr-guidelines/_index.adoc | 12 ++++++------ .../content/zh-tw/articles/problem-reports/_index.adoc | 12 ++++++------ .../content/zh-tw/articles/remote-install/_index.adoc | 6 +++--- .../zh-tw/books/developers-handbook/_index.adoc | 12 ++++++------ .../developers-handbook/bibliography/chapter.adoc | 4 ++-- .../developers-handbook/introduction/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/ipv6/chapter.adoc | 4 ++-- .../books/developers-handbook/kernelbuild/chapter.adoc | 4 ++-- .../books/developers-handbook/kerneldebug/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/l10n/chapter.adoc | 4 ++-- .../books/developers-handbook/policies/chapter.adoc | 4 ++-- .../books/developers-handbook/secure/chapter.adoc | 4 ++-- .../books/developers-handbook/sockets/chapter.adoc | 4 ++-- .../books/developers-handbook/testing/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/tools/chapter.adoc | 4 ++-- .../zh-tw/books/developers-handbook/x86/chapter.adoc | 4 ++-- documentation/content/zh-tw/books/handbook/_index.adoc | 2 +- .../books/handbook/advanced-networking/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/audit/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/basics/_index.adoc | 6 +++--- .../zh-tw/books/handbook/bibliography/_index.adoc | 6 +++--- documentation/content/zh-tw/books/handbook/book.adoc | 14 +++++++------- .../content/zh-tw/books/handbook/boot/_index.adoc | 6 +++--- .../zh-tw/books/handbook/bsdinstall/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/config/_index.adoc | 6 +++--- .../zh-tw/books/handbook/cutting-edge/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/desktop/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/disks/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/dtrace/_index.adoc | 6 +++--- .../zh-tw/books/handbook/eresources/_index.adoc | 6 +++--- .../zh-tw/books/handbook/filesystems/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/firewalls/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/geom/_index.adoc | 6 +++--- .../zh-tw/books/handbook/introduction/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/jails/_index.adoc | 6 +++--- .../zh-tw/books/handbook/kernelconfig/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/l10n/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/linuxemu/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/mac/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/mail/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/mirrors/_index.adoc | 6 +++--- .../zh-tw/books/handbook/multimedia/_index.adoc | 6 +++--- .../zh-tw/books/handbook/network-servers/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/pgpkeys/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/ports/_index.adoc | 6 +++--- .../zh-tw/books/handbook/ppp-and-slip/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/printing/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/security/_index.adoc | 6 +++--- .../zh-tw/books/handbook/serialcomms/_index.adoc | 6 +++--- .../zh-tw/books/handbook/usb-device-mode/_index.adoc | 6 +++--- .../zh-tw/books/handbook/virtualization/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/x11/_index.adoc | 6 +++--- .../content/zh-tw/books/handbook/zfs/_index.adoc | 6 +++--- .../content/zh-tw/books/porters-handbook/_index.adoc | 12 ++++++------ .../zh-tw/books/porters-handbook/flavors/chapter.adoc | 4 ++-- .../books/porters-handbook/keeping-up/chapter.adoc | 4 ++-- .../books/porters-handbook/makefiles/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/new-port/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/order/chapter.adoc | 4 ++-- .../books/porters-handbook/pkg-files/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/plist/chapter.adoc | 4 ++-- .../books/porters-handbook/porting-dads/chapter.adoc | 4 ++-- .../porters-handbook/porting-samplem/chapter.adoc | 4 ++-- .../books/porters-handbook/porting-why/chapter.adoc | 4 ++-- .../books/porters-handbook/quick-porting/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/security/chapter.adoc | 4 ++-- .../books/porters-handbook/slow-porting/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/special/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/testing/chapter.adoc | 4 ++-- .../books/porters-handbook/upgrading/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/uses/chapter.adoc | 4 ++-- .../zh-tw/books/porters-handbook/versions/chapter.adoc | 4 ++-- .../themes/beastie/layouts/shortcodes/lang.html | 2 -- website/archetypes/new-release/readme.adoc | 4 ++-- website/archetypes/new-release/relnotes.adoc | 2 +- website/archetypes/new-release/schedule.adoc | 2 +- website/content/de/community/_index.adoc | 2 +- website/content/de/community/irc.adoc | 2 +- website/content/de/community/mailinglists.adoc | 2 +- website/content/de/community/newsgroups.adoc | 2 +- website/content/de/docproj/sgml.adoc | 2 +- website/content/de/docproj/submitting.adoc | 2 +- website/content/de/docproj/who.adoc | 2 +- website/content/de/docs/books.adoc | 2 +- website/content/de/java/_index.adoc | 2 +- website/content/de/platforms/_index.adoc | 2 +- website/content/de/platforms/amd64.adoc | 2 +- website/content/de/platforms/i386.adoc | 2 +- website/content/de/platforms/mips.adoc | 2 +- website/content/de/platforms/pc98.adoc | 2 +- website/content/de/platforms/ppc.adoc | 2 +- website/content/de/platforms/sparc.adoc | 2 +- website/content/de/ports/_index.adoc | 2 +- website/content/de/ports/installing.adoc | 2 +- website/content/de/ports/references.adoc | 2 +- website/content/de/ports/updating.adoc | 2 +- website/content/de/projects/_index.adoc | 2 +- website/content/de/projects/cvsweb.adoc | 2 +- website/content/de/releases/_index.adoc | 2 +- website/content/de/snapshots/_index.adoc | 2 +- website/content/de/support/bugreports.adoc | 2 +- website/content/de/where.adoc | 2 +- website/content/el/about.adoc | 2 +- website/content/el/docs/_index.adoc | 2 +- website/content/en/about.adoc | 2 +- website/content/en/advocacy/_index.adoc | 2 +- website/content/en/advocacy/myths.adoc | 2 +- website/content/en/community/_index.adoc | 2 +- website/content/en/community/irc.adoc | 2 +- website/content/en/community/mailinglists.adoc | 2 +- website/content/en/docproj/submitting.adoc | 2 +- website/content/en/docproj/who.adoc | 2 +- website/content/en/docs/_index.adoc | 2 +- website/content/en/docs/books.adoc | 2 +- website/content/en/gnome/contact.adoc | 2 +- website/content/en/gnome/docs/porting.adoc | 2 +- website/content/en/gnome/docs/volunteer.adoc | 2 +- website/content/en/internal/_index.adoc | 2 +- website/content/en/internal/about.adoc | 2 +- website/content/en/internal/developer.adoc | 2 +- website/content/en/internal/new-account.adoc | 2 +- website/content/en/internal/policies.adoc | 2 +- website/content/en/internal/resources.adoc | 2 +- website/content/en/ipv6/w6d.adoc | 2 +- website/content/en/java/_index.adoc | 2 +- website/content/en/mailto.adoc | 2 +- website/content/en/marketing/_index.adoc | 2 +- website/content/en/news/2012-compromise.adoc | 2 +- website/content/en/platforms/_index.adoc | 2 +- website/content/en/platforms/amd64.adoc | 2 +- website/content/en/platforms/arm.adoc | 2 +- website/content/en/platforms/i386.adoc | 2 +- website/content/en/platforms/mips.adoc | 2 +- website/content/en/platforms/pc98.adoc | 2 +- website/content/en/platforms/ppc.adoc | 2 +- website/content/en/platforms/sparc.adoc | 2 +- website/content/en/portmgr/_index.adoc | 2 +- website/content/en/portmgr/policies.adoc | 2 +- website/content/en/portmgr/policies_eol.adoc | 2 +- website/content/en/ports/_index.adoc | 2 +- website/content/en/ports/installing.adoc | 2 +- website/content/en/ports/references.adoc | 2 +- website/content/en/ports/updating.adoc | 2 +- website/content/en/projects/_index.adoc | 2 +- website/content/en/projects/newbies.adoc | 2 +- website/content/en/publish.adoc | 2 +- website/content/en/releases/10.0R/announce.adoc | 2 +- website/content/en/releases/10.0R/readme.adoc | 2 +- website/content/en/releases/10.0R/relnotes.adoc | 2 +- website/content/en/releases/10.0R/schedule.adoc | 2 +- website/content/en/releases/10.1R/announce.adoc | 2 +- website/content/en/releases/10.1R/readme.adoc | 2 +- website/content/en/releases/10.1R/relnotes.adoc | 2 +- website/content/en/releases/10.1R/schedule.adoc | 2 +- website/content/en/releases/10.2R/announce.adoc | 2 +- website/content/en/releases/10.2R/readme.adoc | 2 +- website/content/en/releases/10.2R/relnotes.adoc | 2 +- website/content/en/releases/10.2R/schedule.adoc | 2 +- website/content/en/releases/10.3R/announce.adoc | 2 +- website/content/en/releases/10.3R/readme.adoc | 2 +- website/content/en/releases/10.3R/schedule.adoc | 2 +- website/content/en/releases/10.4R/readme.adoc | 2 +- website/content/en/releases/10.4R/schedule.adoc | 2 +- website/content/en/releases/11.0R/announce.adoc | 2 +- website/content/en/releases/11.0R/readme.adoc | 2 +- website/content/en/releases/11.0R/relnotes.adoc | 2 +- website/content/en/releases/11.0R/schedule.adoc | 2 +- website/content/en/releases/11.1R/readme.adoc | 2 +- website/content/en/releases/11.1R/relnotes.adoc | 2 +- website/content/en/releases/11.1R/schedule.adoc | 2 +- website/content/en/releases/11.2R/errata.adoc | 2 +- website/content/en/releases/11.2R/readme.adoc | 2 +- website/content/en/releases/11.2R/relnotes.adoc | 2 +- website/content/en/releases/11.2R/schedule.adoc | 2 +- website/content/en/releases/11.3R/readme.adoc | 2 +- website/content/en/releases/11.3R/relnotes.adoc | 2 +- website/content/en/releases/11.3R/schedule.adoc | 2 +- website/content/en/releases/11.4R/readme.adoc | 2 +- website/content/en/releases/11.4R/relnotes.adoc | 2 +- website/content/en/releases/11.4R/schedule.adoc | 2 +- *** 21728 LINES SKIPPED *** From owner-dev-commits-doc-all@freebsd.org Sun Jun 20 04:21:21 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D0AD8647B6E for ; Sun, 20 Jun 2021 04:21:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G6zxY5XgCz3sxS; Sun, 20 Jun 2021 04:21:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A731B232BE; Sun, 20 Jun 2021 04:21:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15K4LLT5018645; Sun, 20 Jun 2021 04:21:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15K4LLel018644; Sun, 20 Jun 2021 04:21:21 GMT (envelope-from git) Date: Sun, 20 Jun 2021 04:21:21 GMT Message-Id: <202106200421.15K4LLel018644@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: dfde7327ba - main - handbook/cutting-edge: fix etcupdate bootstrapping MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dfde7327ba09ed2d49891a6a677ddeeccafc04cb Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2021 04:21:21 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=dfde7327ba09ed2d49891a6a677ddeeccafc04cb commit dfde7327ba09ed2d49891a6a677ddeeccafc04cb Author: Warner Losh AuthorDate: 2021-06-20 04:14:39 +0000 Commit: Warner Losh CommitDate: 2021-06-20 04:20:13 +0000 handbook/cutting-edge: fix etcupdate bootstrapping One bootstraps with etcupdate extract, not etcupdate bootstrap, so change the one example to use extract. PR: 256725 Sponsored by: Netflix --- documentation/content/en/books/handbook/cutting-edge/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/content/en/books/handbook/cutting-edge/_index.adoc b/documentation/content/en/books/handbook/cutting-edge/_index.adoc index c8ac2a5597..668dabe1d9 100644 --- a/documentation/content/en/books/handbook/cutting-edge/_index.adoc +++ b/documentation/content/en/books/handbook/cutting-edge/_index.adoc @@ -907,7 +907,7 @@ To prevent this, perform the following steps *before* updating sources and build [source,shell] .... -# etcupdate bootstrap <.> +# etcupdate extract <.> # etcupdate diff <.> .... From owner-dev-commits-doc-all@freebsd.org Sun Jun 20 15:49:18 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A8805653279 for ; Sun, 20 Jun 2021 15:49:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G7HCL2yT1z3nxC; Sun, 20 Jun 2021 15:49:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 49C18471F; Sun, 20 Jun 2021 15:49:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15KFnICW037948; Sun, 20 Jun 2021 15:49:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15KFnI96037947; Sun, 20 Jun 2021 15:49:18 GMT (envelope-from git) Date: Sun, 20 Jun 2021 15:49:18 GMT Message-Id: <202106201549.15KFnI96037947@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Warner Losh Subject: git: 4387bac4cd - main - committer-guide/git: Add what to do for pushing main MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4387bac4cdff2c52b2b65166ea3e54ce1590aa14 Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2021 15:49:18 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/doc/commit/?id=4387bac4cdff2c52b2b65166ea3e54ce1590aa14 commit 4387bac4cdff2c52b2b65166ea3e54ce1590aa14 Author: Warner Losh AuthorDate: 2021-06-20 15:43:35 +0000 Commit: Warner Losh CommitDate: 2021-06-20 15:47:18 +0000 committer-guide/git: Add what to do for pushing main git arc stage lands commits on main. Some people think it's more natural to put changes on main and push that. Document how to do that as an alternative to the somewhat safer way of rebasing a branch and pushing that branch otno main. Also add tags to these sections so we (I?) can reference them easily when people ask. Sponsored by: Netflix --- .../en/articles/committers-guide/_index.adoc | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 1d1d3df923..444aec401b 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -1705,6 +1705,7 @@ Everything should just apply. If not, then you'll need to resolve the diffs. https://docs.github.com/en/free-pro-team@latest/github/using-git/resolving-merge-conflicts-after-a-git-rebase[This github document] can help you navigate this process. +[[git-push-upstream]] ===== Time to push changes upstream First, ensure that the push URL is properly configured for the upstream repository. @@ -1726,8 +1727,10 @@ freefall% gen-gitconfig.sh on freefall.freebsd.org to get a recipe that you can use directly, assuming /usr/local/bin is in the PATH. -The below command merges the 'working' branch into the upstream main line. +The below command merges the `working` branch into the upstream main line. It's important that you curate your changes to be just like you want them in the FreeBSD source repo before doing this. +This syntax pushes the `working` branch to main, moving the `main` branch forward. +You will only be able to do this if this results in a linear change to `main1 (eg no merges). [source,shell] .... @@ -1744,6 +1747,28 @@ If your push is rejected due to losing a commit race, rebase your branch before % git push freebsd working:main .... +[[git-push-upstream-alt]] +===== Time to push changes upstream (alternative) + +Some people find it easier to merge their changes to their local `main` before pushing to the remote repository. +Also, `git arc stage` moves changes from a branch to the local `main` when you need to do a subset of a branch. +The instructions are similar to the prior section: +[source,shell] +.... +% git checkout main +% git merge --ff-only `working` +% git push freebsd +.... + +If you lose the race, then try again with +[source,shell] +.... +% git pull --rebase +% git push freebsd +.... +These commands will fetch the most recent `freebse/main` and then rebase the local `main` changes on top of that, which is what you want when you lose the commit race. +Note: merging vendor branch commits will not work with this technique. + ===== Finding the Subversion Revision You'll need to make sure that you've fetched the notes (see the `No staged changes migration` section above for details.