From nobody Mon Sep 15 22:07:11 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cQfJw1CPDz687qN for ; Mon, 15 Sep 2025 22:07:12 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cQfJw0M13z3Sgs; Mon, 15 Sep 2025 22:07:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1757974032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CazdVyViJI1tQeyrNc7Evt5QGZBg0W3XYdMhPKVs4Oo=; b=vXIMYJrfT+pc/HIqrA62z5Mz1MATZciD4wlmoYhonPBjyKhpRU2HazeKWdgOIT1eO8lzEk xXMT9+j7u/SQZJNogTtE7wa406b3NaC7OsL+nPg4YSMOwz5RWnrv2+i46DHILYY/tnoisM QyLeArRZ+FyX2UmQOflXxzfk3HYmbeKODmlqeoVYmlJjubwkZABogKtyV1ZnqK2Zr/K1ph 5MVZCHxNb8E2vbvx37JOuyuM45zhFEduZn/6b0YFsdMmPVpYl0nTpNEpbeG1OMcOZqS30Q p8KB1sPQtU4Up/0uGfwBFxVRzvXTWnWsxlivj5d+G5unCy1dpz3ZsfUW95hB4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1757974032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CazdVyViJI1tQeyrNc7Evt5QGZBg0W3XYdMhPKVs4Oo=; b=vEcoVHY5Zd8y0Dsoxhp1wkV9PCnQ/r+InGvn7W9yHPbispUTK2Y0y0OmnoRtHuogvidb7D sj9lLC6iWD/8m4VbQDMCThc2HPUPBprLWkejV8XUbhNZDVVtw1645y6tEnpaGaFqLmQH+j xoxZInPYOllGPy98izLHaTf6o+vkNnGRh4q7vAo4sRfZObwUyikxdXDNEwGjlnhz0CS+pz dHS8VLT63u7jKVHI8REXdHFogVXlGFFnQmipp+AI3Rqg0giUQQMsu54hwfyDDsJwr0ndbk Kdvukwy9B/3z35dVStNRQELySWZZp6+RJvQeZ83znqJ0ONFax0PQqnjL5fH/yQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1757974032; a=rsa-sha256; cv=none; b=uY2ngVN5K0mpCS9QljdnsnXWlPQy7Ep1sxfpy1HRQTuFxVq8Yr5/hmpC6fHNOPU3m6Clqa tI6ISMmYCoBbknbxb7kHxBKm9V7yY8OJjr1c2YipIHliqPHBUI6DW4j/HI0i4Ys+BWRifK CztgXXBWFY5On6OmJE4d+z0D5So90IWVpY4dxeEYZu5jDICjn7MGG+scMz0cwqdpugJwPF S+6FWY7PbdPjSFA2SMHRwFckhf2a/ae3H0YU1LScT0HwK8SwKkIwnp89wA63XeHS+Tnx3n N/tKeIhggN3c5sqfgdGfx4mRwPmoiwNKiPPDvwP0U0abJH5Kxb2xYgm4n+58pQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cQfJv6rXNz1BWd; Mon, 15 Sep 2025 22:07:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58FM7B6G076792; Mon, 15 Sep 2025 22:07:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58FM7Bdi076789; Mon, 15 Sep 2025 22:07:11 GMT (envelope-from git) Date: Mon, 15 Sep 2025 22:07:11 GMT Message-Id: <202509152207.58FM7Bdi076789@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Maxim Konovalov Subject: git: 3272fb9c55 - internal/admin - add Vladlen Popolitov, vladlen@, to the pool of FreeBSD doc committers List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: maxim X-Git-Repository: doc X-Git-Refname: refs/internal/admin X-Git-Reftype: branch X-Git-Commit: 3272fb9c5505d0ca72838e10306a23cefb1631b7 Auto-Submitted: auto-generated The branch internal/admin has been updated by maxim: URL: https://cgit.FreeBSD.org/doc/commit/?id=3272fb9c5505d0ca72838e10306a23cefb1631b7 commit 3272fb9c5505d0ca72838e10306a23cefb1631b7 Author: Maxim Konovalov AuthorDate: 2025-09-15 22:02:50 +0000 Commit: Maxim Konovalov CommitDate: 2025-09-15 22:02:50 +0000 add Vladlen Popolitov, vladlen@, to the pool of FreeBSD doc committers Vlad has contributed many high quality patches for the doc/ru translation, so it makes sense for him to commit them directly. I will be his mentor for an initial period. Approved by: doceng --- access | 1 + mentors | 1 + 2 files changed, 2 insertions(+) diff --git a/access b/access index b47e09b5e3..16bb582942 100644 --- a/access +++ b/access @@ -45,5 +45,6 @@ philip rcyu rene salvadore +vladlen wosch ziaee diff --git a/mentors b/mentors index 79aefd8e0b..e6cc90a8e8 100644 --- a/mentors +++ b/mentors @@ -9,3 +9,4 @@ # Mentee Mentor Optional comment mhorne 0mp +vladlen maxim From nobody Tue Sep 16 11:28:17 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cR05F2gP6z68pCW for ; Tue, 16 Sep 2025 11:28: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cR05F1XYDz47YS; Tue, 16 Sep 2025 11:28:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758022097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mu5nns/xM2xexRolsmzMEWbbTNT91YRzgcyprSD0RWg=; b=IHOkjBdysrIsax/dtsrBL8ptydc1mEY+o7EasOvjOHqjhBkxh9G2xGRx0e6d7BSzXA3N65 tMgUKOpTmpwWjdSkPynfYPIEdELyjz0aIQQYoSXL/QVVSxvVrAETtdim5graaJqhAswVrN gjLUBiziyHkwRp2UDlmU70LJxlcsibtYa03NIPXx/jvTV6tNMDGVP9pZnpJ45Zc1d5rfXc 8Z5cVi4vX9Xw227ZqSDfhKztQHLFY5mWFJx9gA2x7L61UdyfPZGCA+kmu6AV/7LC6ORDmI +lPPg3IrB+vz0Nley4GRvJcHUJO1mkGz8anINuf0DlF7PkSPwAHTxnns6wxmgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758022097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mu5nns/xM2xexRolsmzMEWbbTNT91YRzgcyprSD0RWg=; b=kREMFsTlbCaNoBEPDSsQ8PYC16Jax/xvgYdnqnz6AIRpIuEWIHXl02uLKVvp/q08LISL+v LhyQiGnOpJlnmPjUekCukUtQ0/bzq5E6SyKMv8+EBmr1dsWRjVHMK+i0ETJxID+Me5t4C7 S/a2YKx7MTd5pqd+s/0L3xDoApe5cXa5SUQKMkT3HriO7V66/MqFJNBw2GTILumaoyCiRQ vaIk5CWfr4OJdaWwgQ6e7kApzK5S9ZKEOmMoNKpSOOjzzvTLhW5+JJ0eGDEgzNRCF6oGXa GzYa5cZC9v0CgC1Yj3kktjhEFGloi867BUDAb61lrZYzuryO28/JEH1uaV5lrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758022097; a=rsa-sha256; cv=none; b=Ny/YNrPclYl/h09yusmaYt8d+PcJ1/lmIgknHTDdqNtBIXvRZV4XoWmODAgrtTPSaHNFVg KlJCR4v3/ttEivMnC0bGRO9h0VhUJtsZjHsOSwPumyphK4VKxNch7OjRkle4oGUn79wzGq pNfY9HK4ixXhwv4ijRQaN3broWaCBbCjCVc52YME2kRP5HjCpr9fAOXPh4nc829fblXuET 5Vzhul5GSTSGnKYfH+y6qAxwluIkoVSF6Kin5tmWoKHrMUnNJDy1rVmzkmwERY4XLSY6Ur Xg025CCzXn0NHvCPOlfLkTJ9lyUJ/bv4LzkOK2F3YHsmQaMvRk8xNrx1bNTHjg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cR05F13zgzfSL; Tue, 16 Sep 2025 11:28:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58GBSH0A081121; Tue, 16 Sep 2025 11:28:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58GBSHp1081118; Tue, 16 Sep 2025 11:28:17 GMT (envelope-from git) Date: Tue, 16 Sep 2025 11:28:17 GMT Message-Id: <202509161128.58GBSHp1081118@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Lorenzo Salvadore Subject: git: 7c850a8d5b - main - Status/2025Q3/bananapi-r64-drivers.adoc: Add report List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: salvadore X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7c850a8d5b175224b4c15674a75b52c1d4299ac5 Auto-Submitted: auto-generated The branch main has been updated by salvadore: URL: https://cgit.FreeBSD.org/doc/commit/?id=7c850a8d5b175224b4c15674a75b52c1d4299ac5 commit 7c850a8d5b175224b4c15674a75b52c1d4299ac5 Author: Martin Filla AuthorDate: 2025-08-22 17:58:11 +0000 Commit: Lorenzo Salvadore CommitDate: 2025-09-16 11:27:45 +0000 Status/2025Q3/bananapi-r64-drivers.adoc: Add report Pull Request: https://github.com/freebsd/freebsd-doc/pull/541 --- .../bananapi-r64-drivers.adoc | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/website/content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc b/website/content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc new file mode 100644 index 0000000000..6dd3180031 --- /dev/null +++ b/website/content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc @@ -0,0 +1,30 @@ +=== FreeBSD Driver Development for BananaPi-R64 + +Contact: Martin Filla +Wiki: https://wiki.freebsd.org/arm/Bananapi + +==== Introduction +The Banana Pi R64 is a MediaTek MT7622-based development board (ARM Cortex-A53, dual-core ~1.35 GHz) featuring 4× Gigabit LAN, 1× Gigabit WAN, Wi-Fi (4×4n), Bluetooth 5.0, and multiple peripheral interfaces (UART, SPI, I²C, GPIO, SATA, mini-PCIe, eMMC, etc.). + +==== Current State of FreeBSD Support +- Implemented so far: + * **UART driver** + * **Clock management (clocks)** + * **Pinctrl/gpio driver** – in active development gpio part + +Other essential components—Ethernet, USB, SATA, Wi-Fi, etc.—are not yet implemented. + +==== Technical Context and Significance +Support for Banana Pi R64 in FreeBSD is in the early stages—UART and clocks drivers exist but ppl clock is under development, gpio is under development -- while most critical subsystems remain unimplemented. + +==== Development roadmap +* Implement missing drivers + - Ethernet (GMAC ports) + - USB (XHCI/OTG) + - SATA / AHCI + - Storage controllers (eMMC/SD/MMC) + - Wi-Fi (likely MediaTek MT7615) + - GPIO subsystems + +==== Conclusion +Support for Banana Pi R64 in FreeBSD is in the early stages—UART and clocks drivers exist but ppl clock is under develoment, gpio is under development—while most critical subsystems remain unimplemented. Publishing working code and artifacts, plus active collaboration with the FreeBSD community, will be essential to bring this board toward usable status under FreeBSD. \ No newline at end of file From nobody Tue Sep 16 11:28:18 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cR05G46Wlz68pCX for ; Tue, 16 Sep 2025 11:28: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cR05G2Tlwz47YW; Tue, 16 Sep 2025 11:28:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758022098; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vH+ZRvnc6oT6+KbCWjjNkYGSRjZaI43M+ag1cSSzwvQ=; b=qssB+ghQAtRJshu1T3yIDf3AmOSMhhqGxZYL8Sp3ALkvab5k3DDuen+Kew8jVDXBjW4hRb XluV8oBldVJaP3R2blz6Fr5bTMWxz6kVOE+W1beiSXumPyvpE9kYSDvW11D/waCbPJcXBY 2Y0T8nImf1N3lwdK3SKim8+tBuqgNmBsZBY2ygnoymdlvkaZzgb/LK+jwcWf8pjIFuwH6x Kq3gn4dij2AGu1HNaJo7W9DAcXD/bMDzbTpXS9oFm2Z5GyF7+BAPX2wAtOFrge8sCadnmS rzu/vZvgYwjYwr5EcDp8wxgO3r06JWj+ZTVNAIo73qfofiiXYHZOTXY5J7+A8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758022098; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vH+ZRvnc6oT6+KbCWjjNkYGSRjZaI43M+ag1cSSzwvQ=; b=w1Ay168Dz4/74BNmp0tlQ0sdZsVVZFK0CiV9/S2YiCryY6O2a+h0qMsFHC463CjjBTCUNf 00h/yszbXC/ZdPOwaBqL3OAUBuWhIT5uQziNmMpVD2ms0pCyjyNzEnphOVex4SY7J/ExCe aRzmh2eRgLqaflgOodHgspBYDdlqrZQXuL+MfTm11vR0MNePjMgRUzRV49qxOq6f3sBscj LOcwKtkxs//NBVfX9nFZIRE5Owbm1xvXTdZ15DoQjFbuzbTJ+xtg1Ngj9BV6Ib+uAiaDy2 D4DsWbtTqgJeyiKxLI4zwuI0WXhIB6pCEryB9ri5zl3B8NS1qpQaqoYyZ7m1wg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758022098; a=rsa-sha256; cv=none; b=eO9nlfvB7j2u0dGziCEX1U+0er8PMPJNJQUoVo2dTlUn2rkxcW9EngOSV8VRW99V4R4UWR hxlaGOMhTfQCSPW3hfDkn5ic/mi9BpzxQ85mhsWDzFBhheAjcHuaUkSMyFlNrwjaJsU6Wf GnV9PaciWwDCZqruNAcu08i035chrRMGXfVHb2Uc1vqYt4hXQqEOfF/zPTNgZKFJ1LA/88 xVG2ZdT/b1UaQ6X/4p+NsWFIkEkOizkj6CL1QGUIbBHbu6YcMtHbu0Tk61yTOXlm4h5gsP 6x+lgEhATlH412fbIvLFTzHMOMk17n14R8iAJZN4nfxnbLEIPWoqcODyYdbMVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cR05G203Bzflb; Tue, 16 Sep 2025 11:28:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58GBSIoo081158; Tue, 16 Sep 2025 11:28:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58GBSI3t081155; Tue, 16 Sep 2025 11:28:18 GMT (envelope-from git) Date: Tue, 16 Sep 2025 11:28:18 GMT Message-Id: <202509161128.58GBSI3t081155@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Lorenzo Salvadore Subject: git: 78d3055bdb - main - Status/2025Q3/sockstat.adoc: Add report List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: salvadore X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 78d3055bdb14102a9322a17348f36882052839f1 Auto-Submitted: auto-generated The branch main has been updated by salvadore: URL: https://cgit.FreeBSD.org/doc/commit/?id=78d3055bdb14102a9322a17348f36882052839f1 commit 78d3055bdb14102a9322a17348f36882052839f1 Author: Damin Rido AuthorDate: 2025-08-22 16:24:20 +0000 Commit: Lorenzo Salvadore CommitDate: 2025-09-16 11:27:45 +0000 Status/2025Q3/sockstat.adoc: Add report Co-authored-by: Alan Somers Pull Request: https://github.com/freebsd/freebsd-doc/pull/540 --- .../en/status/report-2025-07-2025-09/sockstat.adoc | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/website/content/en/status/report-2025-07-2025-09/sockstat.adoc b/website/content/en/status/report-2025-07-2025-09/sockstat.adoc new file mode 100644 index 0000000000..88c583e14f --- /dev/null +++ b/website/content/en/status/report-2025-07-2025-09/sockstat.adoc @@ -0,0 +1,35 @@ +=== Sockstat UI Improvements + +Links: + +link:https://wiki.freebsd.org/SummerOfCode2025Projects/SockstatUIImprovements[Sockstat UI Improvements wiki] URL: https://wiki.freebsd.org/SummerOfCode2025Projects/SockstatUIImprovements[] + +link:https://github.com/freebsd/freebsd-src/pull/1720[Automatic column sizing PR] URL: https://github.com/freebsd/freebsd-src/pull/1720[] + +link:https://github.com/freebsd/freebsd-src/pull/1746[Reintroduced -w flag PR] URL: https://github.com/freebsd/freebsd-src/pull/1746[] + +link:https://github.com/freebsd/freebsd-src/pull/1753[Microoptimize cap-getnameinfo PR] URL: https://github.com/freebsd/freebsd-src/pull/1753[] + +link:https://github.com/freebsd/freebsd-src/pull/1770[Libxo support PR] URL: https://github.com/freebsd/freebsd-src/pull/1770[] + +link:https://github.com/freebsd/freebsd-src/pull/1799[Revert incorrect use of path-state for SCTP connections PR] URL: https://github.com/freebsd/freebsd-src/pull/1799[] + +link:https://github.com/freebsd/freebsd-src/pull/1806[Complete libxo integration PR] URL: https://github.com/freebsd/freebsd-src/pull/1806[] + +link:https://github.com/freebsd/freebsd-src/pull/1807[Fix port parsing after libxo integration PR] URL: https://github.com/freebsd/freebsd-src/pull/1807[] + + +Contact: Damin Rido + +Sockstat is a command-line tool in FreeBSD that displays detailed information about open network sockets. +However, its traditional fixed-width formatting made the output hard to read, especially when handling long addresses. +This project improves sockstat by introducing dynamically sized columns and structured output support via libxo. +With these enhancements, users can more easily read output on the terminal or export the data in formats such as JSON, XML, or HTML for scripting and integration with external tools. + +The sockstat utility underwent improvements in two phases. +First, the fixed-width layout was replaced with dynamic column sizing using a two-pass algorithm to ensure proper alignment and readability, including cases with long socket addresses. +The `-w` option was redefined to enable wide, auto-sized output while maintaining compatibility with default terminal displays. +In the second phase, libxo support was integrated by replacing `printf()` calls with `xo_emit()`, applying appropriate field tagging, and validating the output using libxo's tools. +The manual pages were updated to document the libxo integration. +These changes provide machine-readable structured output while preserving traditional human-readable formatting. + +Following the sockstat conversion, the `parse_ports` function was identified as broken. +Due to its complexity, the function warranted the addition of unit tests to ensure correct behavior. +The issue was addressed by fixing the function and introducing a set of unit tests. +The codebase was refactored by renaming `sockstat.c` to `main.c` . + +This project was part of Google Summer of Code 2025. +It has modernized sockstat and made it both more user-friendly and better suited for integration into automated workflows. + +Sponsor: Google Summer of Code 2025 \ No newline at end of file From nobody Tue Sep 16 16:46:37 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cR78Y4LzLz67bZ3 for ; Tue, 16 Sep 2025 16:46: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cR78Y2kXyz45Fl; Tue, 16 Sep 2025 16:46:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758041197; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4mJ352Ff457fcq0suH5FRQj6ss56AIsBKMF4E+Y+eeo=; b=TRv0XoQVnN80uiJY0H8ac6TYRhvbp2KTAoaSUVQOEbRhZKU0Xd/fj8iGNz2gYUhB5LfvEK jh2RFKJcqsS9vqsn00bKkFz/wYcLPDBAiyStR826bPTk0zbDIyCdkDko0VvwRWUc/eVvJv kluFpvCg+sOlm3Cp3RZnnFCa9lVuKfRw02zr9qhp3WFEsIIZRL/W/jNEKcLafcAEyWfDUl D2OpfmISgr0KCwk/z+sQ02NCOelNExN4hpii37Le/gHPzO51C8vBZxNIYpTcwWoOKRDW/0 FpAeXos0/7foJGI43TB6C9mG6mWGy2aOHhfycKb7T8nImYA+a4ApmK55iCLydg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758041197; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4mJ352Ff457fcq0suH5FRQj6ss56AIsBKMF4E+Y+eeo=; b=FQysYiStTfAweeCppfVt+OBEEMc3xkSC+vWYGHel5pg/InpI9RnEodnBcodTGozOTXPy2S EO/TM8dFqiPpADxadPBN3FRSU6S0w8PL6gAtgcBtvnKzJR+DeBoogYmCb8rhm9b6CwmfHl iw7TMSWHdWOCvKRrZMoZ8EIa5q94XvXjRyWaYcEr3px8G/Oh6CMuOEEvPggseFHns14dTF vVymumZPyTFTJs95j99G8+TaS6cgUeK9v64uxO4wwtgixc/jyUO8r8oI/fYTeZSAcVW2fC fv7hkNh7TLa/ZPL9yHwxSTmdeXIkPWzC4zCEAp0mJN+T/2qeE6WffdFtOK9JXg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758041197; a=rsa-sha256; cv=none; b=TOpmeEojhX5GF/o/Wl5ckEAJrfgJf9giniq15pjqECEBPOgcl1H4e3dRMLL+T91aavQ/8E 67hg/lvnHRVXZsqJER2WOfprdTAw+wFjaNVH/QL0ZEQE57OXpx7CXCRvXIw8kZC1/ChGgo n56SK34sqz1yMPcnnd1DiqS8/eZLgQIdrc02Mle5escaDyNcooMXZRRbDVTgmpW8ODBuGU YPhrb8aFS29jsyCv+lRRo3XTCFdMXlGLleq5OlibDSohjNy45bxR5H3kdpBVX2V1yYr+TG IMCsmG6E+Qemn6vGQNOJEEByiThOMJofweyfQqUyHG4Av8dnF00ZWIdwZiXo3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cR78Y21FYzpp3; Tue, 16 Sep 2025 16:46:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58GGkbBh084593; Tue, 16 Sep 2025 16:46:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58GGkbLl084590; Tue, 16 Sep 2025 16:46:37 GMT (envelope-from git) Date: Tue, 16 Sep 2025 16:46:37 GMT Message-Id: <202509161646.58GGkbLl084590@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Gordon Tetlow Subject: git: 4ddb195c6c - main - Add EN-25:15 through EN-25:17. List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gordon X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4ddb195c6cf0ecae254235e9da8e1c6d768888ca Auto-Submitted: auto-generated The branch main has been updated by gordon: URL: https://cgit.FreeBSD.org/doc/commit/?id=4ddb195c6cf0ecae254235e9da8e1c6d768888ca commit 4ddb195c6cf0ecae254235e9da8e1c6d768888ca Author: Gordon Tetlow AuthorDate: 2025-09-16 16:46:18 +0000 Commit: Gordon Tetlow CommitDate: 2025-09-16 16:46:18 +0000 Add EN-25:15 through EN-25:17. Approved by: so --- website/data/security/errata.toml | 12 ++ .../security/advisories/FreeBSD-EN-25:15.arm64.asc | 137 ++++++++++++++++++++ .../security/advisories/FreeBSD-EN-25:16.vfs.asc | 131 +++++++++++++++++++ .../security/advisories/FreeBSD-EN-25:17.bnxt.asc | 140 +++++++++++++++++++++ .../static/security/patches/EN-25:15/arm64.patch | 11 ++ .../security/patches/EN-25:15/arm64.patch.asc | 16 +++ website/static/security/patches/EN-25:16/vfs.patch | 52 ++++++++ .../static/security/patches/EN-25:16/vfs.patch.asc | 16 +++ .../static/security/patches/EN-25:17/bnxt.patch | 44 +++++++ .../security/patches/EN-25:17/bnxt.patch.asc | 16 +++ 10 files changed, 575 insertions(+) diff --git a/website/data/security/errata.toml b/website/data/security/errata.toml index 6f9ce70d62..e66e06f07d 100644 --- a/website/data/security/errata.toml +++ b/website/data/security/errata.toml @@ -1,6 +1,18 @@ # Sort errata notices by year, month and day # $FreeBSD$ +[[notices]] +name = "FreeBSD-EN-25:17.bnxt" +date = "2025-09-16" + +[[notices]] +name = "FreeBSD-EN-25:16.vfs" +date = "2025-09-16" + +[[notices]] +name = "FreeBSD-EN-25:15.arm64" +date = "2025-09-16" + [[notices]] name = "FreeBSD-EN-25:14.route" date = "2025-08-08" diff --git a/website/static/security/advisories/FreeBSD-EN-25:15.arm64.asc b/website/static/security/advisories/FreeBSD-EN-25:15.arm64.asc new file mode 100644 index 0000000000..e2da868709 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:15.arm64.asc @@ -0,0 +1,137 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:15.arm64 Errata Notice + The FreeBSD Project + +Topic: arm64 syscall(2) allows unprivileged user to panic kernel + +Category: core +Module: arm64 +Announced: 2025-09-16 +Credits: Juniper Networks, Inc. +Affects: All supported versions of FreeBSD. +Corrected: 2025-08-25 15:23:01 UTC (stable/14, 14.3-STABLE) + 2025-09-16 16:31:06 UTC (releng/14.3, 14.3-RELEASE-p3) + 2025-09-16 16:31:17 UTC (releng/14.2, 14.2-RELEASE-p6) + 2025-08-25 15:23:22 UTC (stable/13, 13.5-STABLE) + 2025-09-16 16:31:26 UTC (releng/13.5, 13.5-RELEASE-p4) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +. + +I. Background + +The FreeBSD arm64 kernel implements a 32-bit compatibility layer, enabling +execution of unmodified 32-bit arm binaries on a 64-bit system. + +FreeBSD implements a pseudo system call, syscall(2), which lets the caller +invoke a system call selected using the first system call argument. + +II. Problem Description + +The 32-bit compatibility layer implements syscall(2). It performs some +validation of the system call parameters and explicitly calls panic() to +panic the system if an unexpected state is reached. + +It is possible to construct a program which can reach this unexpected state, +resulting in a panic. In particular, no particular privileges are required +to do so. + +III. Impact + +An unprivileged user may be able to trigger a panic. + +IV. Workaround + +No workaround is available. Non-arm64 platforms are unaffected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:15/arm64.patch +# fetch https://security.FreeBSD.org/patches/EN-25:15/arm64.patch.asc +# gpg --verify arm64.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in + and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 17d87881a363 stable/14-n272249 +releng/14.3/ 99012995b4c6 releng/14.3-n271440 +releng/14.2/ 722746b39e6e releng/14.2-n269534 +stable/13/ 98ac13c4baf5 stable/13-n259404 +releng/13.5/ 751971e55454 releng/13.5-n259175 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBEACgkQbljekB8A +Gu+13w//fHfH1hAOg+FGwV3ZoMh2oEVd+VmkLg/CdghL9T+dGwqzIMOliXMKhaZq +Nzk++lmKlzdpuDEqaw1ikj+bJ+knhrZyAziTlxpB2uly6K119hchAU5TQK2M6D4W +8aQWxeJMPxobsfxi9JciVMWcQK9XsurwUzlCDuLvGgUMPPaMVdy89U86NnKo66eE +fjK2l1Mc730wtisTuTLkY1SHPBchvm20ehu8BVpx4eBEHnecqRaUxQHy2yxTi+/0 +IKrwnpvz8S7/QLcED6TSCKsuLDY/uOx8x6N9PlHHvcLay/ImyvhTPavREld/b3nM +YC8fFb7bjguPZCC222nr/J+/YkD+2+EqVHPOAq7HxVT0uqss7BL9qwIywg0CIhvT +G3fw121L7cwXI/f/Hw6coVTFHnNXUB48FyIFkEXPdMxrNBUSE/KejYjkkJ2YaRir +kXZboMMOoxIf0NPNmv78v+PBj3jpbPP2epjhIk0I5D6uNzdjXEqRlRNgBhqc01Qn +veu+1tEox5Y0Zp4Mum0EipuTaZMjeT4hwmt9zwogsYEZFnyIvilzIOc3zEFRB4Y2 +IB1EUkw49V/zzHn5KnVujaUiVOdVUxe6G8txFcPIT66mPdJZmKO1fbD3pR/0NDj6 +Smj07jNL8PskCLuoe0MmMFiNJI3CHTh+6Ly39j5UpnSsPCPRTyM= +=58zg +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:16.vfs.asc b/website/static/security/advisories/FreeBSD-EN-25:16.vfs.asc new file mode 100644 index 0000000000..648944e6a9 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:16.vfs.asc @@ -0,0 +1,131 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:16.vfs Errata Notice + The FreeBSD Project + +Topic: copy_file_range(2) fails to set output parameters + +Category: core +Module: vfs +Announced: 2025-09-16 +Affects: FreeBSD 14.3 +Corrected: 2025-08-23 21:25:20 UTC (stable/14, 14.3-STABLE) + 2025-09-16 16:31:07 UTC (releng/14.3, 14.3-RELEASE-p3) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +. + +I. Background + +copy_file_range(2) is a system call which takes two file descriptors as input +and copies data from one file to the other. + +II. Problem Description + +The copy_file_range(2) system call accepts two optional pointer arguments, +inoffp and outoffp. When non-NULL, the kernel is to use their values to +determine the starting offsets for the input and output files, respectively. +In this case, the seek offset corresponding to the file descriptor is not +used or updated. + +When finishing the copy, the kernel is supposed to write updated offsets to +the pointed-to values. However, it does not do so. + +III. Impact + +Applications which rely on this behaviour may behave incorrectly. No such +applications exist in the base system. + +IV. Workaround + +No workaround is available. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r now + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:16/vfs.patch +# fetch https://security.FreeBSD.org/patches/EN-25:16/vfs.patch.asc +# gpg --verify vfs.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in + and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 2fd0083fcc23 stable/14-n272229 +releng/14.3/ d1e981cbf3bd releng/14.3-n271441 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBMACgkQbljekB8A +Gu8ZLxAAql8vK7+rcHUDI0gKQu9TC2jlNC7EZcDwMupCnbjXFv8mSbC48XWeXUYk +j6DLDK8BWGOs4+1xftFlHCgu4yPLm7YhcgiUIhqlViAhNBfwIH9YDP/3heYEkvBn +Ns6sh/jtRkB3t+j1fbrcMFZZT2G1plCr4GTZS1fEE+YXQ6NNwo90liSi5dDh2m2Y +1OvLjdRwVj/BzVNqygiVJGXkof2SS3KsoVMv8CsoBZnSgvXyIPjgBhqJIjzh6my7 +BqRmylf+8tZXAKCR0Ylp6qFdI1gEcxWNXyadfUuigAoQFiAFSOX/T1NYYtpK7koH +IROnhKxU6TKj1EhvPrV40I+vdwBYczTZlXIFRrQw0CI7sDIus53T94rmUaqwfY+L +0yiW7gnqwujzaFkv6u9biAoVvm0FHuqq+tsOeB5k344nQ5BrbzMKVatPw2J3HG53 +alalSlMQzgKZYfCkQPemzusVJIlkazJ5r2kMeHzKukfMtjCLyOP+K/evo+Y0HCHh +eOwNoRLNdLra92GGlk643bKBx8pbC4J+FYXq7/+/MHQkAFX8GWZ5XoMjqIaq/e1r +poa72xNwSFrPLbbWkBXf/kknifVv98/VPRE4guzgwNjBo5wVUNzRhhVUsSmzEHPe +3ris0e+OD+te5gqfp5+cKaQS7RUXItXtGO/FzJHl+mmkEfrkD9I= +=q5E4 +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:17.bnxt.asc b/website/static/security/advisories/FreeBSD-EN-25:17.bnxt.asc new file mode 100644 index 0000000000..df6b461cfc --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:17.bnxt.asc @@ -0,0 +1,140 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:17.bnxt Errata Notice + The FreeBSD Project + +Topic: bnxt(4) fails to set media type in some cases + +Category: core +Module: bnxt +Announced: 2025-09-16 +Affects: FreeBSD 14.3 +Corrected: 2025-06-22 07:18:55 UTC (stable/14, 14.3-STABLE) + 2025-09-16 16:31:08 UTC (releng/14.3, 14.3-RELEASE-p3) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +. + +I. Background + +The bnxt(4) driver provides support for Broadcom NetXtreme-C/NetXtreme-E Family +of Ethernet controllers. A key function of the driver is to report the various +supported physical media types and operational modes (e.g., 1000base-T, +40GBASE-AOC, full-duplex, autoselect) to the operating system's ifmedia +interface. This allows network administrators to view and configure the +interface link settings. + +II. Problem Description + +A logic error was introduced into the bnxt(4) driver which prevented the proper +population of the supported media list for several physical connection types. +Inside the function responsible for building this list, a switch statement +incorrectly used return statements instead of break statements. This caused +the function to exit prematurely after identifying certain media types, +including common BASE-T (copper), 40G Active Optical Cable (AOC), and 1G-CX +connections, before the corresponding speed and duplex options could be +registered with the network subsystem. + +III. Impact + +For network controllers using the affected media types, the driver fails to +advertise any supported link modes. An administrator running ifconfig(8) on +the interface would see incorrect media (unknown). Because of this, the +network interface may be unable to establish a link, as the operating system +cannot properly configure it or initiate auto-negotiation. The network port +will be unusable. + +IV. Workaround + +No workaround is available. Only systems that uses bnxt(4) device with the +affected media types are affected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r now + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:17/bnxt.patch +# fetch https://security.FreeBSD.org/patches/EN-25:17/bnxt.patch.asc +# gpg --verify bnxt.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in + and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 33f65f12eba1 stable/14-n271757 +releng/14.3/ c07b1838f9c9 releng/14.3-n271442 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat + +Or visit the following URL, replacing NNNNNN with the hash: + + + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + + + +The latest revision of this advisory is available at + +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBUACgkQbljekB8A +Gu//GBAAu3k3rFlqFKbSgq38xldf8fFngj/IuLa4BjB2lcTa7Rpy+6vxlFxXyqVk +9VVXf+tkXNhQ5ngY52SqMDdlG0OQdr+rwPcB8bI2nw+1DW1FRMVvBN7PlJrGgs2N +OtE6I4Wy+IK7vyzEgs8P3Kq3U7oXQVz/jJ3n1DmmjxlKfNqlo3eOGDlNZgTdFF2h +NbZUW4CGZTQxV4Ihq7Zg99bJw38o6WkOjkBkd7/djQfLm9aufVoWPN7SDaVnDun0 +vtWTTXrxsmPfVZB0sxdhYLjKPX+4GdVype0k3A26K50dTNVh5GAhWzH1LqFS6BR4 +DveE4/02bjaTAqK1XW+08JoGqibzmOTt8mUOlKL1aomACgmFc2Lzj33Qd6z1JdJB +6XYTcAoi2Kz94VHBMYjgWOBjiw66YryEyNpHJkFCfWnA3jgZB9TKZn2FZPxGBbvM +6an5ZcjaKHv1X+en2Fh8Ri1Hq4CKN/SmI/Sp0B28hXv8MQCNOnTqxqgdKgg2xQnD +0BasLt7y8y4rAHed+znWW1gRHWLP9q4FLqdvargtdMO81N2n/fm8jKe+SD2YNfTQ +Nvs29hRzs/thxI1gJMhDmmHkprGOyy6fzdZLtUjqhPh2l/YvHq32i/iNKpVfCy5v +hHpd38wxOpTs5nk4qbVZlS2DgRuTSO/VU0IMphaIwBhwHkZaoWY= +=jvzm +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:15/arm64.patch b/website/static/security/patches/EN-25:15/arm64.patch new file mode 100644 index 0000000000..c5c5ea4b31 --- /dev/null +++ b/website/static/security/patches/EN-25:15/arm64.patch @@ -0,0 +1,11 @@ +--- sys/arm64/arm64/elf32_machdep.c.orig ++++ sys/arm64/arm64/elf32_machdep.c +@@ -195,7 +195,7 @@ + register_t *ap; + struct syscall_args *sa; + int error, i, nap, narg; +- unsigned int args[4]; ++ unsigned int args[6]; + + nap = 4; + p = td->td_proc; diff --git a/website/static/security/patches/EN-25:15/arm64.patch.asc b/website/static/security/patches/EN-25:15/arm64.patch.asc new file mode 100644 index 0000000000..5b8cae892e --- /dev/null +++ b/website/static/security/patches/EN-25:15/arm64.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBIACgkQbljekB8A +Gu/RohAA4pWcgChN+oBJGkiwMVH8mj+pdLE0aIbC3EVPEMfcF3twv2ZHrI+L38p6 +sRL1tMohZQFkA1NmTNnxf/qZmwnMei1nqeTTkfCHZPMBUeeoFh7TK9gl+qpGTcJr +WibRnC2breqD63sQXvaSihPo2ayc0AWDrDE8XRLEHgYE4EV940nFyb0elr8cV+4P +EaXOGn3vN9k7xYnPXwlX9Nt8MoYpY0LJFONCcBhpZNyun+VR3GaUBuGe9fyfMZYP +znNBdH4Kx5wwd3rEa2uo/ErLA1HU2E5BXrjE99VGHt+GNn8TgIxC4oS1+jKV56oM +/4VeeBlouIAM266opHtzk6OsQC5H9FyilM6XjSr1G80HfKYz3h1zPwIMRYKuI7sr +lQd7/XotZKkBIGy5bNeouwPhqt5iXerbDBNq+i80AoxQcLup+GEKmNRmkiahyetm +nj6dJRwtn1f8Fy8w3sMeH9UswFBi8j/oUcQ48GQ8s4BxcYKFkm4+aViYYa85AlSp +awFDp2un/oZIR8KNalAQI5cPTSyG6E/G2Ssg08ThhDrXANF9hPuzKodmc69+okVX +5EoC8wAVYG1mdR2V/7nQO478w8yRu+ne9bvQvAup7umdwGR7psNMB+Zua6zl1WsJ +8I2N8jC5w32scN7pzVNfdwYD5S8eLZB8iFQ6WlxKE/LhTJ7lXEw= +=pygX +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:16/vfs.patch b/website/static/security/patches/EN-25:16/vfs.patch new file mode 100644 index 0000000000..226ae9f81a --- /dev/null +++ b/website/static/security/patches/EN-25:16/vfs.patch @@ -0,0 +1,52 @@ +--- sys/kern/vfs_syscalls.c.orig ++++ sys/kern/vfs_syscalls.c +@@ -5050,11 +5050,12 @@ + size_t retlen; + void *rl_rcookie, *rl_wcookie; + off_t inoff, outoff, savinoff, savoutoff; +- bool foffsets_locked; ++ bool foffsets_locked, foffsets_set; + + infp = outfp = NULL; + rl_rcookie = rl_wcookie = NULL; + foffsets_locked = false; ++ foffsets_set = false; + error = 0; + retlen = 0; + +@@ -5122,6 +5123,8 @@ + } + foffset_lock_pair(infp1, &inoff, outfp1, &outoff, 0); + foffsets_locked = true; ++ } else { ++ foffsets_set = true; + } + savinoff = inoff; + savoutoff = outoff; +@@ -5180,11 +5183,12 @@ + vn_rangelock_unlock(invp, rl_rcookie); + if (rl_wcookie != NULL) + vn_rangelock_unlock(outvp, rl_wcookie); ++ if ((foffsets_locked || foffsets_set) && ++ (error == EINTR || error == ERESTART)) { ++ inoff = savinoff; ++ outoff = savoutoff; ++ } + if (foffsets_locked) { +- if (error == EINTR || error == ERESTART) { +- inoff = savinoff; +- outoff = savoutoff; +- } + if (inoffp == NULL) + foffset_unlock(infp, inoff, 0); + else +@@ -5193,6 +5197,9 @@ + foffset_unlock(outfp, outoff, 0); + else + *outoffp = outoff; ++ } else if (foffsets_set) { ++ *inoffp = inoff; ++ *outoffp = outoff; + } + if (outfp != NULL) + fdrop(outfp, td); diff --git a/website/static/security/patches/EN-25:16/vfs.patch.asc b/website/static/security/patches/EN-25:16/vfs.patch.asc new file mode 100644 index 0000000000..5d302e77f4 --- /dev/null +++ b/website/static/security/patches/EN-25:16/vfs.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBQACgkQbljekB8A +Gu9MZBAAghcIHmJAoGyWlG9gEsbEMRWmg9KDcNZuJ6oJM3EzRw/d7nzfvFHQUkk4 +5Seao9EexaN6XO/sq4v+6dVYh3c1lrlBTK7dHA0Mt9XSCip202Fh4rzZA5QhhjhD +8WwaF1J/y1FZv0ag5Z8XJxCIQCz49V/VctObzhq5PpB1XF+Axbddz2H80Jxb27Kh +GEcbKW66+CfVtL3AAhpvCUfgLyEciS1qhfC2tnNrIEl2gSlEqj7AaZ/fx4v/F1QK +ixo0nFQyox13HrlOMWgJBQJM1bCjwueERVmZSnT88SG9cro+LiEdzrbY+ITAMtqT +lA2oQ8AbOYYVPvwc0fnlDlxhwmjFzMSCm+mQQ/haYVrLrIcMeJ8SzV/gxEuamkpi +C0lgf5Y4mzv102CKUygghuOfNnOi0zFjCTqSf5q/7TwaNuelYn/kndMOj9qFFCjn +Wtvvn1BPVnnsLj2xgr1w4V6BnZDjo+xLujLQKOYt5x1RrlPQ/pEt3WNg/ekldLEy +Po4Hzmih/DLfqUo3ttKI4ZXeTisv7KmHE4woy/ok+FZ4U+SxaWKalEoNab7MgTRm +nV7jfMA4AiiK5jkK/3TCPvc82TktgufH19IVuCrMe1RocVxfjIGtXoJ0osLG1YIL +pGlJ5/MXZQLGE4oPi4wb2lErHwpogfS6Jq0prnXE6IbLAi6EHFk= +=Yxtv +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:17/bnxt.patch b/website/static/security/patches/EN-25:17/bnxt.patch new file mode 100644 index 0000000000..796f2332bf --- /dev/null +++ b/website/static/security/patches/EN-25:17/bnxt.patch @@ -0,0 +1,44 @@ +--- sys/dev/bnxt/bnxt_en/if_bnxt.c.orig ++++ sys/dev/bnxt/bnxt_en/if_bnxt.c +@@ -4609,34 +4609,34 @@ + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_40G_ACTIVE_CABLE: + media_type = BNXT_MEDIA_AC; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_1G_BASECX: + media_type = BNXT_MEDIA_BASECX; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_1G_BASET: + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_BASET: + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_BASETE: + media_type = BNXT_MEDIA_BASET; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_BASEKX: + media_type = BNXT_MEDIA_BASEKX; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_SGMIIEXTPHY: + media_type = BNXT_MEDIA_BASESGMII; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_UNKNOWN: + /* Only Autoneg is supported for TYPE_UNKNOWN */ +- return; ++ break; + + default: + /* Only Autoneg is supported for new phy type values */ + device_printf(softc->dev, "phy type %d not supported by driver\n", phy_type); +- return; ++ break; + } + + switch (link_info->sig_mode) { diff --git a/website/static/security/patches/EN-25:17/bnxt.patch.asc b/website/static/security/patches/EN-25:17/bnxt.patch.asc new file mode 100644 index 0000000000..6e25f45b25 --- /dev/null +++ b/website/static/security/patches/EN-25:17/bnxt.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBYACgkQbljekB8A +Gu/wNRAAsT7ZDT8E6cuOTcv2lZMKjYdW4gVdM8FQPbHrWm1GgURK7Gm9X6HPmSEC +kZRO4aYr3CDuPPLkUQk6PvQybIrZWq2/MkNu3OqnN4ByUCb1qzIIBMWAgzwyKZjT +rkh0VXgIHB0AMbecUsvX6y0J99eesxi0FG1zuGu9YrtKPwdM2ZejEaK+Ix5owpbP +czcvxcr6iLU7HJQgl7vWM0lnmKCUzTu/X+UH/UEyX8NRIfBdnsW39QheDR8/2ony +aL3z9V8I0rczQSxsRBFn4cDl4vYQ87zrtu8eai1hj9NQ1yCUuP5tqICBR0Ljwn+Q +oDlkZaVp/KgTVX1b5JxxU2EAHYAdVFBz9c1wJ7hz4ciuC4+luVFSZljz9tnrniuK +GmS/xPt9HirPFqH2GeYrdD8a58eKmr0ew9kL3upf49cITRvfIiwn8KSUzbakNok2 +SmKeAO7ScgCfS2I9xWj/VYiePwKsd2tPQ8/TgZfeHxKrFdwzpm1GZsacqX9kymvX +7r7Kl6VjNhuv2sLeEgd25GtG9i6G0bFXJJhC4ZUCkW5LCULIOywUdGEQ1HAvIvlb +ppHCIXZavoHYyXWRaPTAfxj6v9UdxHFzChK4AG21I4Chh28EutvDTG675HQ7FScd +ICnCu+g4bDgVJcWkwp+Ou5ViYFQM0e7WgJoBQ23krj6VFj0D0T4= +=66Ry +-----END PGP SIGNATURE----- From nobody Tue Sep 16 18:11:07 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cR9240LmQz67lkN for ; Tue, 16 Sep 2025 18:11: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cR9236nP9z3DZx; Tue, 16 Sep 2025 18:11:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758046268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pwuGgrOz86LbhaEXUspAN2ZYitpD2diaBv8VrXR/+C8=; b=yKI8/zH7KR2kc8WtKTSJP6kqblnA3ZGnp7L20E1Yl2IPxWHRZKE4m6RQAfYBlrvH5n/UQZ BHGBFpCxze56RikzZxrx6lT/xVC9130jhbBTpGiYRl0c0cr3SLyVYWpIZqc7HXl8PjjBHd i7qbOHZrW6Bqi9Id++68u/muTDl42geCB0kXb20KSSCDPxIvWmFB8+2EVtJIPAnE+V5NQV JkziQ94CzIp7EmTG72cQmnHKCyWjMJAC3H6a01fQVwAosZMEyx4FOYi1naYsd+L46CIlJS Du2ytN7TPzn5R903k3Hco5YHo6ZwTqIUAWT6wKqNyKdRroeWMca0TNuleKSGwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758046268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pwuGgrOz86LbhaEXUspAN2ZYitpD2diaBv8VrXR/+C8=; b=PojiqMg9y/RSlIVez329jsTvqPTDlYl+yUSILGaeWJGlBzaPWDU953z4vVZWWRDHREpjWv PUrEWwBd6u6FOSMaiHCXLAuvDNh8ls1/Cy4s7zRweGLytu4k5a2aAdULB55gv8p05SiKX+ SSAIzXKTPZMB02QXEYRCeV4P/FP4mf4cPHKRYDd6jWaENvGN66tg14KQuDZh2IAyFYp3vK RvQ4eyKfEytJ62n7p3u1ec3RNFy0H+bWEkpDsqrSLoyDjbzbBOhiduaITbu+U91tGi7trB GSeGEQzXIYlD+n7G8OOJA/IGRRhVRJmNSkqByVsXJeck2qdYpsJB/IwF5poFcQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758046268; a=rsa-sha256; cv=none; b=mWrPsdEvssrH29B9RM+wNPeeJ9oE4klPgNwXN+/IwukXEBR1cEUn18d2GPSgzACXnYY/ET ftTo4zZqeml/JWcJahKFDZPA1OfH5z93rxAoAufO8XxciSBSzwi/EXeH+rfJFafvxVxt7n /3h5aAak6ncWS8smxoitdeN/uR4QHUBQ6Mif0aAUr2spbtvWakFS+jGI89bz1vYfs7QzG9 j4mIm1IaCMKs7CzbLbGdHobqvLVXyMpqXEkqkbs2QgbnljFG8fsMY4hohdcy41hYcu6xih 8nVxqmll3LlGfJpjbETBYG/iAIj45aIRgF9g2MAPhgwARrTIxm650OiBl4d+7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cR9236PFwzrk7; Tue, 16 Sep 2025 18:11:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58GIB75P050818; Tue, 16 Sep 2025 18:11:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58GIB7Bw050815; Tue, 16 Sep 2025 18:11:07 GMT (envelope-from git) Date: Tue, 16 Sep 2025 18:11:07 GMT Message-Id: <202509161811.58GIB7Bw050815@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Wolfram Schneider Subject: git: ae3ba0293b - main - add manual pages for macOS 26.0 List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wosch X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ae3ba0293b01a61cfd6cd79bdd2d2802ce91ceca Auto-Submitted: auto-generated The branch main has been updated by wosch: URL: https://cgit.FreeBSD.org/doc/commit/?id=ae3ba0293b01a61cfd6cd79bdd2d2802ce91ceca commit ae3ba0293b01a61cfd6cd79bdd2d2802ce91ceca Author: Wolfram Schneider AuthorDate: 2025-09-16 18:10:58 +0000 Commit: Wolfram Schneider CommitDate: 2025-09-16 18:10:58 +0000 add manual pages for macOS 26.0 --- website/content/en/cgi/man.cgi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/content/en/cgi/man.cgi b/website/content/en/cgi/man.cgi index 5154aaba6c..8f8b82104b 100755 --- a/website/content/en/cgi/man.cgi +++ b/website/content/en/cgi/man.cgi @@ -999,6 +999,7 @@ $manPathDefault = 'FreeBSD 14.3-RELEASE and Ports'; # alias SunOS 0.4, apparently released in April 1983 based on 4.2BSD beta 'Sun UNIX 0.4', "$manLocalDir/Sun-UNIX-0.4", + 'macOS 26.0', "$manLocalDir/macOS-26.0/man:$manLocalDir/macOS-26.0/developer-man:$manLocalDir/macOS-26.0/developer-platform-sdk-man:$manLocalDir/macOS-26.0/xctoolchain-man", 'macOS 15.6', "$manLocalDir/macOS-15.6/man:$manLocalDir/macOS-15.6/developer-man:$manLocalDir/macOS-15.6/developer-platform-sdk-man:$manLocalDir/macOS-15.6/xctoolchain-man", 'macOS 14.7.7', "$manLocalDir/macOS-14.7.7/man:$manLocalDir/macOS-14.7.7/developer-man:$manLocalDir/macOS-14.7.7/developer-platform-man:$manLocalDir/macOS-14.7.7/developer-platform-sdk-man:$manLocalDir/macOS-14.7.7/xctoolchain-man", 'macOS 13.6.5', "$manLocalDir/macOS-13.6.5/man:$manLocalDir/macOS-13.6.5/developer-man:$manLocalDir/macOS-13.6.5/developer-platform-man:$manLocalDir/macOS-13.6.5/developer-platform-sdk-man:$manLocalDir/macOS-13.6.5/xctoolchain-man", @@ -1246,7 +1247,7 @@ while ( ( $key, $val ) = each %manPath ) { 'sunos5', 'SunOS 5.10', 'sunos4', 'SunOS 4.1.3', 'sunos', 'SunOS 4.1.3', - 'macos', 'macOS 15.6', + 'macos', 'macOS 26.0', 'plan9', 'Plan 9', 'osf1', 'OSF1 V5.1/alpha', 'true64', 'OSF1 V5.1/alpha', From nobody Tue Sep 16 19:32:59 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cRBrW5XZCz67vN5 for ; Tue, 16 Sep 2025 19:32:59 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cRBrW4v3fz3Md0; Tue, 16 Sep 2025 19:32:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758051179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ncqH4W6bTdXk/Qfx2CBiExDK9L23t4oM+52HXLUwr0c=; b=ERzFm5pLes2LRMSHA02Q89NexhjCVVvQzdPK/9w/Fl6dfY5VF7ncnVoSq+gqs79RGyTnqf fBIxmyXjuVI6kcG22t8mfcVKS9HWe/0dpgmrPRbFk5IEKgoDgRSwmSpW03KFBHNJ3I6w6z pthGTikUe99noB9U73FbUKNd/JgS6744Z6c6koV/+TAhmaW9PIyjrWWoTCPhdcyzJP0OPC +zEifK6ebyAlOKifYk15sDQklefAHf437o4ALo2qwWb/zr1IaYsg3dket5YdYM4qXwoMuB 9LhXPCsSmaxU4NhNhKsZfXoLONcfIpSpg31wM3YG3Zj7oL1eULTT6usdrlWlKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758051179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ncqH4W6bTdXk/Qfx2CBiExDK9L23t4oM+52HXLUwr0c=; b=MWIJ258Ev/IIERjmwoxBzbD3yGAhijf51BYqDyNcGpwUV/HViKWgelzHxCetcHDWnnG4SD Ut4gjSmAZp1LvlT/HQsRlYRL980RVBfYxAUQwkm38oi0cErcjDD+EhOLQEv0CysQSRCu2v bShUhBWZaNNuylMpbSveR+QILziuu045c8JvkJBQxmKA08HTIA+Mpz+XpesoEV3ZjSDZcu AFFvD5b/7IDtsdxPrhmaixUl8DXVrpmEJMpr5sT8PGg8DUGEMRCqxzyGK3aMM++iPRM+Co 9odfBBsVNxz97inPGMRzamVk44gxx9li9yFbSwdhO2iV1mVwhOYn5+L5Sb70ew== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758051179; a=rsa-sha256; cv=none; b=s4/RH/jvvXFz0039COtDBw7Nf0iDPw33vm34JlmohaqsY/zVHFhhKn85JWMnMQtSFI253a fmKlT9LN1pZt+OGUytgxuXvfZka/FGDG8v/DnVFKOK/yPcHsxSd3xYK5LdQYXZ3+Vl9bpR 8qXPKWf+kth8ZZ9ItpaHPVa/ST5HDSqxUtWpIibsUiPaPU/66TuAoU4ATJV2Vr5IpNBwLX sDVWs/d4H9kyEczIH/rkutpJOSSZZyGGEV1YTUSkb03nKFudzeM129Ea8+tu5HOTzBIoJe 9pzhMn29KtuYvDTQraV0FPZGjWyTZ/iqcmRtwk1LPK6ESPrSd+vtyZKi/GsITQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cRBrW4L51zv58; Tue, 16 Sep 2025 19:32:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58GJWx0p003986; Tue, 16 Sep 2025 19:32:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58GJWx5b003983; Tue, 16 Sep 2025 19:32:59 GMT (envelope-from git) Date: Tue, 16 Sep 2025 19:32:59 GMT Message-Id: <202509161932.58GJWx5b003983@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Maxim Konovalov Subject: git: 77d37ed572 - internal/admin - re-activate andy@'s FreeBSD doc commit bit List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: maxim X-Git-Repository: doc X-Git-Refname: refs/internal/admin X-Git-Reftype: branch X-Git-Commit: 77d37ed5727e4c5ee7a1dbbd1da06631104a95ee Auto-Submitted: auto-generated The branch internal/admin has been updated by maxim: URL: https://cgit.FreeBSD.org/doc/commit/?id=77d37ed5727e4c5ee7a1dbbd1da06631104a95ee commit 77d37ed5727e4c5ee7a1dbbd1da06631104a95ee Author: Maxim Konovalov AuthorDate: 2025-09-15 22:12:07 +0000 Commit: Maxim Konovalov CommitDate: 2025-09-15 22:12:07 +0000 re-activate andy@'s FreeBSD doc commit bit Andrey Zakhvatov expressed his interest to doc/ru translation project, so let him to work with Vlad on it. carlavilla@ and maxim@ are co-mentors. Approved by: doceng --- access | 1 + mentors | 1 + 2 files changed, 2 insertions(+) diff --git a/access b/access index 16bb582942..b01f9ce21f 100644 --- a/access +++ b/access @@ -18,6 +18,7 @@ # 0mp allanjude +andy bcr bjk blackend diff --git a/mentors b/mentors index e6cc90a8e8..244f12ea14 100644 --- a/mentors +++ b/mentors @@ -8,5 +8,6 @@ # Sort by mentee login name. # Mentee Mentor Optional comment +andy carlavilla, maxim mhorne 0mp vladlen maxim From nobody Tue Sep 16 19:36:35 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cRBwg3lB9z67ts3 for ; Tue, 16 Sep 2025 19:36: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cRBwg2w6Rz3Mgq; Tue, 16 Sep 2025 19:36:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758051395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pXmtUApwxu6PmlsgHICL8GbZnXNodqT0g5j8anyj1iU=; b=XgzD2uJYRaUcT+81oD4oL8mr1mUpVY5nHd0xYI9qdYtO2/Na1bkqdIH7qLSYI0BQMZdhdK mfbXQ8+t92vFsFmUsuONpsR4O9XCHnpWnupeYqn8ZhupVHhkeHkbQoDXgPJ04OmwyVNfvW oTyfOkTq52AJQHFovboKHfn3I7No4YXCzPX2fP8Yfois0C4P2KaqaVN+Yz53BgC2WtfWq6 XPUAvBEl1RZZ4ANIH6NT7IDwzy/rmx60L7YSF7w3NrYZqZcpCQBV1LlPyaKll3IO1vvt6l 3I9qPyyIeiUebDku4+x9PIKUIAkL/79qHKRPDo01V5lp7Dob61/kGfl4LEvfPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758051395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pXmtUApwxu6PmlsgHICL8GbZnXNodqT0g5j8anyj1iU=; b=fWm8jiEW1NWsT7Mh/FkJqJo8Q5EIOuIIZlUHgh6V8NLKTpZi0MvI4luseBo6gGY885llza /NUGwhKBcJlNIDuWg6jIKUIzLn3PgiKm9hSARWw3nIkY1/K+I54PWOTspuaXLeC7XYainO CAE28CISnn8GefPx98xDyA4RcE/I4cZNlQ4qSHGkJeGDk+V3B5Nb04zVzj5DfR40R9HNxi d8/CvZzpEjqOP0wBzPoDbiyaxkosV0cD2VGjqosguCr1UznnTJk7UqU+U0AQxZkqjOGfdN WPrD8f/RAAzhCKLf9MuscPxCviC3g4DrGjU9XT+9W19sxpHni5tM/5UWGvl2vA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758051395; a=rsa-sha256; cv=none; b=nsn7+LymIatJUHsZXBQpKay3TJYz1oRdSsj1a55fpbPHyRX1GP1D1q5zkWDVP7nM+ug+2+ eYiZhnd/v0fzJYfcKfxjKod9814QSbDPkU7NkZYdwF56KHvXc60SY9PiPZ3RmHHGLMMiAW 0D1JpuM5szaDpIqlu6D0NPbJ+LYeAH0CuUvTNymYxNA90ReJf5w2Yb3aKo6BpGBP7qyTDv RPxgyHOSeaWceB/1/iwyd5SN+QvEYJPg0mjiXRsaWk3qcqmlSvsDXEDQdx3szV9e/reWBC oLRee+TXWskvQWFR1q5A5SokMA3T5MOJXWmeXtkxM4GxRGdOTPq74DiWkF1R/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cRBwg2VydzvH0; Tue, 16 Sep 2025 19:36:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58GJaZ0V005176; Tue, 16 Sep 2025 19:36:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58GJaZIH005173; Tue, 16 Sep 2025 19:36:35 GMT (envelope-from git) Date: Tue, 16 Sep 2025 19:36:35 GMT Message-Id: <202509161936.58GJaZIH005173@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Maxim Konovalov Subject: git: d0dfb3ec59 - main - bananapi-r64-drivers.adoc: typo fix List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: maxim X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d0dfb3ec596b7ad5c1029cd573102fc2a8b23b1d Auto-Submitted: auto-generated The branch main has been updated by maxim: URL: https://cgit.FreeBSD.org/doc/commit/?id=d0dfb3ec596b7ad5c1029cd573102fc2a8b23b1d commit d0dfb3ec596b7ad5c1029cd573102fc2a8b23b1d Author: Maxim Konovalov AuthorDate: 2025-09-16 19:36:28 +0000 Commit: Maxim Konovalov CommitDate: 2025-09-16 19:36:28 +0000 bananapi-r64-drivers.adoc: typo fix --- .../content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc b/website/content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc index 6dd3180031..2f1d1fd86c 100644 --- a/website/content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc +++ b/website/content/en/status/report-2025-07-2025-09/bananapi-r64-drivers.adoc @@ -27,4 +27,4 @@ Support for Banana Pi R64 in FreeBSD is in the early stages—UART and clocks dr - GPIO subsystems ==== Conclusion -Support for Banana Pi R64 in FreeBSD is in the early stages—UART and clocks drivers exist but ppl clock is under develoment, gpio is under development—while most critical subsystems remain unimplemented. Publishing working code and artifacts, plus active collaboration with the FreeBSD community, will be essential to bring this board toward usable status under FreeBSD. \ No newline at end of file +Support for Banana Pi R64 in FreeBSD is in the early stages—UART and clocks drivers exist but ppl clock is under development, gpio is under development—while most critical subsystems remain unimplemented. Publishing working code and artifacts, plus active collaboration with the FreeBSD community, will be essential to bring this board toward usable status under FreeBSD. \ No newline at end of file From nobody Wed Sep 17 00:41:24 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cRKhP1ZYyz67tW7 for ; Wed, 17 Sep 2025 00:41: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cRKhN6SDXz46YN; Wed, 17 Sep 2025 00:41:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758069684; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=raa6tQvrRi6N5GUURau4fopiIQ0AGi8VBdt7DkcoE4Y=; b=N2LMqXWt3vJHgYrd22B//i1REpQFI0Q2wT6OVGIw4dQ8NjvxhHowDwbO/0OQicEDaWJ7VT i63HqWbWL7qpG9ldEOwB9fHoinRVxB6dmVZxoGEABM4lg8Bi9c4qQZ5BttHpEwdrv+d6w0 OLRPKmSymH+tlsAnzaOLj1prz0fqaTCw60nypcpIUzVkJzOf9wIIJHpbOvqhIA9syqWOvf D8W0dLX8wIPWYeIKdDi/sRK10KmYwbqbTkAfi5uWBpdxP1JTftlSaJAEYFSrjo5M73iuTB lhKYBspW1qmbxpJ0fiC14eMhsnz/k99JuLapbSPp9rng6KcTFoxpls+2HAGARQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758069684; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=raa6tQvrRi6N5GUURau4fopiIQ0AGi8VBdt7DkcoE4Y=; b=RqtIWns6GHFie5GxuErZkOdipSB2nDu1gb99d4jlPzVh9oeUv3demXMbfQ9PEBxobStc9l zpe9ocs+izbiC+skqhbzUMbx+sgQyOPAKfwyHFlCKzv+lM0dnF0A6Mv9wcEl6Sgz/jsPi9 tekYjHcQNy9+wfv7uSn+HI1UDFCqNDScGeAbWJPLVUzYBzO6e3BAdlLaWOx5gBdt/dgehw JqrR1Pre2C3/UkKRKgIrAwI0qjGu3I6roofwtGSTp26uKA1ETNfwUhA8pO0rUVYskw717u kUkmwp56tKfk5x5KwTAKNzdVUQJQsnPWm2G1yavSKmVULyhbSbY9D/zknT4WMA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758069684; a=rsa-sha256; cv=none; b=Vj8zKLpeSp9fL56Mbvgmcm4tG/zycXgdR1ih7uJtpuIxJLRkeNViLm/8Jy05kZLJLlxdyY oC+5TWoHntHCuFly4bwB2ycqq5HGMKRDoenCgMIXbLBgS7mCzBPsTtgd0OZAQnH33D71W4 gpsj6d0Syu3AacTu8Lboni63uU6GJqL/bn9qEmzXqrdq+07MGchNVT5IoypWYbupNPFZGW SoFct7Yogul/NOdg0jSMxDXfwJqIPuXmKYIuZuACL/FuS7QjYLzCFr8fLkEkU9LniCks4t 1k6XrVInk2FYgsuNUqt4PIVU3SFKqTBu6KlSNHPu3ZPXOUkVabe4TtFn6Qds4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cRKhN63zNz13jS; Wed, 17 Sep 2025 00:41:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58H0fOWr080613; Wed, 17 Sep 2025 00:41:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58H0fO4I080610; Wed, 17 Sep 2025 00:41:24 GMT (envelope-from git) Date: Wed, 17 Sep 2025 00:41:24 GMT Message-Id: <202509170041.58H0fO4I080610@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Philip Paeps Subject: git: 9e7bbd41f6 - main - Add errata affecting 14.3R, 14.2R and 13.5R List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org 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: 9e7bbd41f6ccc6d91639882c1337683ccb9c5dda Auto-Submitted: auto-generated The branch main has been updated by philip: URL: https://cgit.FreeBSD.org/doc/commit/?id=9e7bbd41f6ccc6d91639882c1337683ccb9c5dda commit 9e7bbd41f6ccc6d91639882c1337683ccb9c5dda Author: Philip Paeps AuthorDate: 2025-09-17 00:37:44 +0000 Commit: Philip Paeps CommitDate: 2025-09-17 00:37:44 +0000 Add errata affecting 14.3R, 14.2R and 13.5R FreeBSD-EN-25:15.arm64 affects 14.3R, 14.2R and 13.5R FreeBSD-EN-25:16.vfs affects 14.3R FreeBSD-EN-25:17.bnxt affects 14.3R --- website/content/en/releases/13.5R/errata.adoc | 1 + website/content/en/releases/14.2R/errata.adoc | 1 + website/content/en/releases/14.3R/errata.adoc | 3 +++ 3 files changed, 5 insertions(+) diff --git a/website/content/en/releases/13.5R/errata.adoc b/website/content/en/releases/13.5R/errata.adoc index 402470d682..dfa022d8d1 100644 --- a/website/content/en/releases/13.5R/errata.adoc +++ b/website/content/en/releases/13.5R/errata.adoc @@ -57,6 +57,7 @@ For a list of all FreeBSD CERT security advisories, see https://www.FreeBSD.org/ |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:09.libc.asc[FreeBSD-EN-25:09.libc] |2 July 2025 |Dynamically-loaded C++ libraries crashing at exit |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:10.zfs.asc[FreeBSD-EN-25:10.zfs] |2 July 2025 |Corruption in ZFS replication streams from encrypted datasets |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:11.ena.asc[FreeBSD-EN-25:11.ena] |2 July 2025 |ena resets and kernel panic on Nitro v4 or newer instances +|link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:15.arm64.asc[FreeBSD-EN-25:15.arm64] |16 September 2025 |arm64 syscall(2) allows unprivileged user to panic kernel |=== [[open-issues]] diff --git a/website/content/en/releases/14.2R/errata.adoc b/website/content/en/releases/14.2R/errata.adoc index 3fb71aad06..082db1752a 100644 --- a/website/content/en/releases/14.2R/errata.adoc +++ b/website/content/en/releases/14.2R/errata.adoc @@ -69,6 +69,7 @@ For a list of all FreeBSD CERT security advisories, see https://www.FreeBSD.org/ |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:10.zfs.asc[FreeBSD-EN-25:10.zfs] |2 July 2025 |Corruption in ZFS replication streams from encrypted datasets |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:11.ena.asc[FreeBSD-EN-25:11.ena] |2 July 2025 |ena resets and kernel panic on Nitro v4 or newer instances |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:14.route.asc[FreeBSD-EN-25:14.route] |8 August 2025 |route(8) monitor buffers too much when redirected to a file +|link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:15.arm64.asc[FreeBSD-EN-25:15.arm64] |16 September 2025 |arm64 syscall(2) allows unprivileged user to panic kernel |=== [[open-issues]] diff --git a/website/content/en/releases/14.3R/errata.adoc b/website/content/en/releases/14.3R/errata.adoc index a0fa1a188d..15ee30c3ee 100644 --- a/website/content/en/releases/14.3R/errata.adoc +++ b/website/content/en/releases/14.3R/errata.adoc @@ -57,6 +57,9 @@ For a list of all FreeBSD CERT security advisories, see https://www.FreeBSD.org/ |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:12.efi.asc[FreeBSD-EN-25:12.efi] |8 August 2025 |bsdinstall(8) not copying the correct loader on systems with |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:13.wlan_tkip.asc[FreeBSD-EN-25:13.wlan_tkip] |8 August 2025 |net80211 TKIP crypto support fails for some drivers |link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:14.route.asc[FreeBSD-EN-25:14.route] |8 August 2025 |route(8) monitor buffers too much when redirected to a file +|link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:15.arm64.asc[FreeBSD-EN-25:15.arm64] |16 September 2025 |arm64 syscall(2) allows unprivileged user to panic kernel +|link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:16.vfs.asc[FreeBSD-EN-25:16.vfs] |16 September 2025 |copy_file_range(2) fails to set output parameters +|link:https://www.FreeBSD.org/security/advisories/FreeBSD-EN-25:17.bnxt.asc[FreeBSD-EN-25:17.bnxt] |16 September 2025 |bnxt(4) fails to set media type in some cases |=== [[open-issues]] From nobody Wed Sep 17 18:17:37 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cRn762KHjz67q3b for ; Wed, 17 Sep 2025 18:17:38 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cRn761hR3z3thC; Wed, 17 Sep 2025 18:17:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758133058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QfjYgAvdgNh9B1eHLYljTmzm3U2FtxI0NkTOwfkK6Hc=; b=O81GMgRD9d5LzvFpf4g05wEI8qvLdh8xG9VMQdb9T2FfIi4p7m0BaZIltTC8v/NP1TZm8f 0TNZRY6vHDWm7vLGPur47ekrFvLikpr2fdh85R94zmjvvd0sph4qln3BY/p5jpsMuVUV+l QyZEYV/a9nwNm3HwYwOp6914zX7bNO42X4gvk1YPjD5Rlmpajczii8plUQSnEtm/XSvcbx QFFChyTBQDSpEZSEtnKPEfiGsEShzqyhmQB0mPu8pEsn81PtVozQSrRHSSKSEja2iQJWgg 2NKLiZiBdnoLh3y07qaAsk9/eI9CKWRiWcRATM9gXwSMzM6hKPzH1z3On6uiog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758133058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QfjYgAvdgNh9B1eHLYljTmzm3U2FtxI0NkTOwfkK6Hc=; b=HQv2LIZvjdsGKv+quHGshkgGC4Q6WJu4bY7BCQiJbMzllyX2kafHWwPZWsZlzdPl+5oQgy 8o2iXgCA9huHY4szBEtGL/rAJwcXX5x1eA3hDOrx0DI83pTPUzVcb0UotOSkISpdiStD6K zWldM1p5ePb8gBck2MCV9915J6NFd1befcWW71NoSIyhBQAagvXqJLtdmD7wkb1hLnbdl2 /QLsfqI+bZfiskSU0yRf1bmI/t2LbXk5kaFcxft1+GIY7sIo9uySvkbKV+WHJmuMpIsrX5 Dde8Cut/+Y4acmgQJ+TP5C50RvBbc1+0rx1NyHPrplxqv+Pd/Ws1fLeiqZc+FQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758133058; a=rsa-sha256; cv=none; b=YxJV2v6fjO4yD5cLOzDZ25xM7JFEH2/Z8W//qvAxPKNFBsDmGpg1ClH3DcgpZEHganW9KI VRs4cGuV9Pbd5A58CgHI++3mw+COtG5mSWVA4JYcA4YYE1NauZHB+oNta3qs344xYKfhmf Zj+E/bgUfDZHr7NTE2g7Tn1qHa6I8gaWE8GJlU455gAM58ylK++HoIBQLhKkA9FjnIdsji J354yu0bydvN0nDOX4NKIn5IyKczcVmUNShiKgtfEdvLrmyUbg/dDjGtGWKf/ZGwnfBK5E 40ZBmb3594PVAy2baEmE+/ehKU5iTmHI1bmrS/s35ZXKP1eLeUbm2vXM6rornA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cRn760rnZzdCm; Wed, 17 Sep 2025 18:17:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58HIHbio064749; Wed, 17 Sep 2025 18:17:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58HIHbSK064746; Wed, 17 Sep 2025 18:17:37 GMT (envelope-from git) Date: Wed, 17 Sep 2025 18:17:37 GMT Message-Id: <202509171817.58HIHbSK064746@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Adam Weinberger Subject: git: 49fc73ff61 - main - pgpkeys: Extend my key's expiration dates List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adamw X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 49fc73ff61f905cab9e2c275a5841cb7d6af6479 Auto-Submitted: auto-generated The branch main has been updated by adamw: URL: https://cgit.FreeBSD.org/doc/commit/?id=49fc73ff61f905cab9e2c275a5841cb7d6af6479 commit 49fc73ff61f905cab9e2c275a5841cb7d6af6479 Author: Adam Weinberger AuthorDate: 2025-09-17 18:17:12 +0000 Commit: Adam Weinberger CommitDate: 2025-09-17 18:17:12 +0000 pgpkeys: Extend my key's expiration dates I thought that, for once in my life, I might try doing this BEFORE the old key expires. It's important to try new things sometimes. --- documentation/static/pgpkeys/adamw.key | 87 +++++++++++++++++----------------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/documentation/static/pgpkeys/adamw.key b/documentation/static/pgpkeys/adamw.key index 8d409c2391..c0f4a1846d 100644 --- a/documentation/static/pgpkeys/adamw.key +++ b/documentation/static/pgpkeys/adamw.key @@ -2,11 +2,11 @@ [.literal-block-margin] .... -pub rsa4096/19A77C98A0E497E9 2020-09-25 [SC] [expires: 2025-09-24] +pub rsa4096/19A77C98A0E497E9 2020-09-25 [SC] [expires: 2030-01-01] Key fingerprint = CBEB 2760 3DA3 3D18 52D7 B662 19A7 7C98 A0E4 97E9 uid Adam Weinberger uid Adam Weinberger -sub rsa4096/723BD32C244BC85E 2020-09-25 [E] [expires: 2025-09-24] +sub rsa4096/723BD32C244BC85E 2020-09-25 [E] [expires: 2030-01-01] .... @@ -25,33 +25,33 @@ B6X/TnfzhBxScew2aqlFcW9NDgz9WmdontxHhDm+XgqmloJM6JXen+gUZ20HbilR VALWiEclYY4l2pKTVVcwXxzhlz/6MeXFO2a9tcI6L9MnoEF47nX4dgWIiNrncXlE qobd5elF0D+mTgZKdemY0Gkvv9rG7NXKxZGkLWQwZm8IuEPav4zRVnrg2565RR66 EmjUjTKH4BW9puVCAixkmvyMvLd49eOFbCgfQDYOhk8y7cUG4ogApG+wSQARAQAB -tCFBZGFtIFdlaW5iZXJnZXIgPGFkYW13QGFkYW13Lm9yZz6JAlQEEwEKAD4WIQTL -6ydgPaM9GFLXtmIZp3yYoOSX6QUCX23jCAIbAwUJCWYBgAULCQgHAwUVCgkICwUW -AwIBAAIeAQIXgAAKCRAZp3yYoOSX6RBED/9eKRdHP1XriSE8CX9Z8r22gaZb+BUE -VgV+tYiwS6neGBPizNiWLJgnTfi4dM4JqufITznA7akqTGbirspDoCsVSj+NbJGA -G5jrpe/xLkG10f+TYKb0hXayBJmRxL/o8vBrA9v3SjC9Ysvp5X3vhRcSP4sW1daJ -6DdRkk4hjbcUJ4fRbWRa5vLFLfE17Yab/ltugBAPnFCjiVygP2Y0pDD02pM/xO1M -jKWDHajB6IQA0H7pIyemSq9zArUDJ1G0U1xKq5MYGCRCuiHHqVxMKVl0y0httEdZ -RXDeWOfCo9OUDaBtYDkD+u0AzBDEPJP7x1GMD/13YUwxSqiebxsNZ6se2kVCaYwE -06TktLp/7vAx5ftfVT6DRSIS93uSEV+brPbMT7ixN/rh9L+vHRjFdKMm6fZpceVu -G3/NY/AzqBpwGrxKflddlSijaj+PzeT9izWNLb25RQO3egJUwlI5mi7q+mTUBmNd -64GgmekTOWLr1EOheZEOOYM4pCUnCX9mFOsi5ZLqc7kfqRxpWsNE9KvG56IsADFQ -XPJn4dByBmKJH4L5ybj4DgyfokjhpfEi+/STjNwbdbG+kpGYt2q00l5mvXhTK93q -TTzSWzBF0+NbDicy/o8xqAgWnO/ztS29eWWEMvtip2H+jLHXdJCt2MDpskbVEhlc -qXfYIkU2ahLZ+LQjQWRhbSBXZWluYmVyZ2VyIDxhZGFtd0BGcmVlQlNELm9yZz6J -AlQEEwEKAD4WIQTL6ydgPaM9GFLXtmIZp3yYoOSX6QUCX23jLQIbAwUJCWYBgAUL -CQgHAwUVCgkICwUWAwIBAAIeAQIXgAAKCRAZp3yYoOSX6TRCD/9ZdBCCfc+TIFpt -5MGEkOyU/WtdBGLeANCQXmcQ7spZtBHDajZ5vkEe1ANgJyeVwO7Vj+CC8UWrSAsF -zLZ9Y3Vck3FVp+I70I0oX+d0VOVPNNruyMZ/mRuCQFGOOI6wqVtnBvbgTa/Acjv5 -jtM3LOAGxSoPqrtUeAT2bXFnQT/gEQacfty12GIUu2jxtTcs9LEv/13ivoV4RvNA -RqXSV3Iw/6k1EKoFih9wsN0IiNg8OE/dMOez54yV8Mld7t7R7FuA+8RqR1H3xUV3 -w3iz633FKbbk8OmTqN/k9uKE+gDP/TiA63Uw/NuV8c/5h9aPpXmB4aFxRt6J7oGC -zaOrHiOnpCOVZHhmmx2Rv2wHKugYfnsrErY4JijFZJdC5wqUb5Z4lB+azSILPtz3 -zLbTFf+RMaYP1CqMjlwZDJqMJ1zJ+nUN7x6fXVCeV6H8NhxMoYHqdsEAlFRhc0jI -5kWdfUb6dWJLlqrfbxqA1HV5JOnCYLGPrlbnDxbdE+m60CYi9tx4lVORkeMzw708 -oK5ft6NYzmcsDESMyok34ilnAKzmrv9kpPkJRHNNMBOfpFWJFL4WlNiUXb+CWSM3 -Oae6/T0o2MiAnodRJErHNsSyTnGYRmSdk5yL+iDiJ68N6XNddIZJcQpxyu5qaGac -L71Ll8ipBRxmIN1IAhvVZDjKcyGHF7kCDQRfbeMIARAA+2a3oXz+qU80HBdVCQOY +tCFBZGFtIFdlaW5iZXJnZXIgPGFkYW13QGFkYW13Lm9yZz6JAlQEEwEKAD4CGwMF +CwkIBwMFFQoJCAsFFgMCAQACHgECF4AWIQTL6ydgPaM9GFLXtmIZp3yYoOSX6QUC +aMr3+wUJEW7zcwAKCRAZp3yYoOSX6RBgEACDeiHaV8a9nHfrVOWkdsw57lSTcacc +Uln1a0if0VQpA9HrPibX7BfYYJrajvsAuCyhR5E2dpw18+u1G+IaJkoyv63vmwTO +aAqqXWcuPp1JeD0J7br3krxtt5gbSCwMtrO3R8I3ksHJ4tBAPKzD1IR39Tr3g3TK +VogL8iDHVhEQZIHZADi6d8MS6DmnaygqFn4CPdrTZEgw0R1sN8/Tjl8w9HCXOUTk +CWlcvRssJPAJtj+fyXsEs0P9kzOYTzF30Q4dRZRtW+NX1Ltf8hBcSDa8IgFQKjpx +untC6KOJupiX1YGI1mmak1qHwkGSxkbRwcqb9LyyEevTVwv8pko8uYVWq8B+kBuY +DbsCdvTLARletdbQESjpwgubJVbAIiXpxtoPTbs/CPVqyGnBKYIqC/fCCn82OsH7 +CAPZlpiSl/1iGqzPPVjmsY/41uG6eMgMna7xEvT/SoUPaNT6DMcul+zNhUoNlhMQ +YPa9kIqzGDQr18msmG7f2n1XmdaiLFUrOkg+wV63CjklowWykBC/mpnWJGq4YlYG +WwodFVWdc+rDo2dvHyZwPMZcZtw4mM4wUmgehWsID7tXQleRhlmOYEsex/JKn3PI +2Xh8MnqaRpLSqKrEz9r+vk2oPhYGUOGs1LHuplRiWDlgxuiEzxda+l5C9tm9kH8h +mMgd/McW8wqZSrQjQWRhbSBXZWluYmVyZ2VyIDxhZGFtd0BGcmVlQlNELm9yZz6J +AlQEEwEKAD4CGwMFCwkIBwMFFQoJCAsFFgMCAQACHgECF4AWIQTL6ydgPaM9GFLX +tmIZp3yYoOSX6QUCaMr4AgUJEW7zcwAKCRAZp3yYoOSX6emqD/4+MZPuQOxI5ON6 +odHiga+DQ7vbDq3UPujOOczdrCg8IUIkFwZaGtbZBGw9rX1LMP603KnUu0D4pHbh +eDdTpVov2g7of7xsI5bkYstabrbnkOLolXKXt5vDxFCX+YHjmLUzqdkAPFV5b4Ft +1bZNEaNNEYvjWxAoOnWuy8rG721BdEvHxwH9JXPzOlEcVZwPjlbM8Yb6ii/yfOfM +FgE99mReRp0wmzQAdBqyUUvPnwSqVg9VOqn4Bav+fKYx6AF5kZlUtq2ly7Sh9PoC +HTesJ8rsjHu45fpasXnCUnzr2W0v2odEeTWFIHHx25wAiOXJCpdO+V70hwvg4IDV +g3zfGxVICBJLIzTkknCDrWDp5raxmhODtkLL0oBiWii42084nFoh46EZykXNaDVk +29IoD+fGHnJRjzOHladfA1xMCEna2otB8XgtVLGeJJyNjq52qCwQYSwdxBIBli9I +52H+OGu3loUybs/iUlR7cCXMjtl0WaTpoxFK7TVDpNIZVvMUpYkWx3O2qJ3ZJGOx +UAWFHJFDqRXS6YQHLptStMSBCiQn61qaabF7LxeadsP6+Kx3kPBV64ROGVTsG1Om +/XUoNbOecpQmaNLA58Uk/wV7kZ5DWymdrQzmvsg2IT4PJES/kTOX3UFCEfUdENM8 +DBJTo4MKnaHSruhW9e1qoBmWn7Y3UbkCDQRfbeMIARAA+2a3oXz+qU80HBdVCQOY YJ8/K6Uhc+DPB6G0tIM30eANZ3cnynOtjt91uxmOXOL6fVymfLMsc6bhMLohLxv5 4xgQO9VRHQDBCpokmrXq85y/ShJQAnpc/t/mTRJ5ih39bWOFL/J7Eho0KGRJN8Bx rE4o9jxI1NNTdgA2IQ6/HwT1/Kdvy7GT/eBGPCNn/lUWGvRmx1GkPt7XhsJ0onDn @@ -62,20 +62,19 @@ nwzWqpp15Iy+ZESIW4FGJYRJSDP02ekEOqxcOou9YtItKJSWLC73tZUij9k3cCQg sn/55+r0K141mwGo5EsxuGjl1ZIw/HEr9BEZl64oUIN+5d08wyNIbC1FaJS23cwV GzIDnS3OPBJEpIMwvVcAb2vwoYaSMlwUZGsIXl3gNIRo4Sx7T0YgnnR6nQsGdZiJ /yZ/VLvzJ6mhMOA9Q/nt4NGAqE286nRk3UnTMU+ET8adBORoy4ou2BOZelvU45XN -4ZH4xvRg4S6Z7Ooyf63hmrcAEQEAAYkCPAQYAQoAJhYhBMvrJ2A9oz0YUte2Yhmn -fJig5JfpBQJfbeMIAhsMBQkJZgGAAAoJEBmnfJig5JfpqpMP/0xYDlSObB9UvwJK -Sn4GGriQbov05hw+cJGHXwmv3Xe/VObUxgbzJe92rewU44aV7FrYTzU4gLVDDYEO -O+mE7AtnYfBfMEYqxHVrswCNRH2RNTZmdV3+zFNTo9jw6zMdrzpokaR9M2R9+5E3 -6BdHue+pVK7g2H6nqI4fSrwyUt5bFt0ASSZTy4EZK5KTpULT8BjSsReM1bNjLxlh -FYUSwaCzjQnvNlrf5R3Sjzs1aoLBywNh2VtWOf4LYDQos57bfn5OWntVn4QPRADL -nw+5DwJ3iLHI+//9s7kDx81EZd0JqfwiMlqnBYvjhGYPi6619/hv6sscWPzF0Hsu -EpVbnI2pktWLC6k4mUndRfvQ2+oj6yffXa8x5a60mkQQDkZWsAthwGPtBZ4g4t91 -zbPJIiVHoR4sfQIbumYBjT5xS/rc3B6q9aCVfZ74jTXlpiT1zfey90+pjhvEH9lU -kuC1HkZEA/AGQUu0T3zBfULPZhoRQhaO/c9q2n8L6z9ELn+5/rvMQWi2NpnFq4Pa -jtdP6UU6UIAkWC+jz5dF83CKSJV8C4470bxt5OtgWr698Qr9P6IrSd0UFF7Xr6wa -NZlpo7yP3p9onhpK+Z/pPrGCtGJD/Iy0wAoykoPakO3x0gqa0UIoHu9oxfBFk8fv -ze8y0llEOZyLqSbagQBZwxvWkXI4 -=ANeF +4ZH4xvRg4S6Z7Ooyf63hmrcAEQEAAYkCPAQYAQoAJgIbDBYhBMvrJ2A9oz0YUte2 +YhmnfJig5JfpBQJoyvgQBQkRbvOIAAoJEBmnfJig5Jfp1e8P/RGFGNTEInf3vbRZ +k8UBJplebndi57qKovPNodAr9XbQsXkvKH6BflY/Q2f0Mpy/FslQ+XvXlW51J7xV +q7UiRb1eA5AeqHugn7EsLLx8uMdP6ImjmRARNfvRZNnF2vuW6hZgNskil8JDCIsl +gulIPzSV0UC4psjfgA162jNweYk8GM4M0t21Yj88HQ247mTa2ZHQe/vEHmCTyx94 +H8670HcZHZMJdRBaL8Ca8yItVJGTkvU4N44626sTxwoeRNAB0hC+/ilDmd3EXqEJ +QqVz3vkeZYlTrnIJkSN6lb1E9AhxsP6BQIEKzCj78Ywbacrz6OsqDg+/gze3c3LK +e1bpNFvpt4Kolueof5kyKf1DxQzt3nBzA8NgzxwPshIxTv+qWwbuUpDgCom1uCbl +wL48DLZyldGF5uDwp8zOVGAk2Hcbo3C2SfHCAn0v9w+6Fp/pjNw4oxrZD/pA303F +cb0X0DQ3szJ8V+Rcml3RaSVUu7SLK2oh9iKCHIrHLavQzOadzPZ2f7Cov0Mo5V43 +34RYjzOGXMVEqK8hkrDYykEg9FJlUz46LV02awF+J+XyV0wGJaxuaIwtRR16Oj77 +701uf9sbgVL+XbCT31+KbWYfiA/QMS5VznJ1M7CsqxoRE/7uz5Gd+qXxzvUiPD19 +8c2Up7onBB0VMrwFBULEaTj0Y9mD +=yWw7 -----END PGP PUBLIC KEY BLOCK----- .... - From nobody Wed Sep 17 19:44:25 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cRq3F4Qlkz67xLt for ; Wed, 17 Sep 2025 19:44: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cRq3F3gJgz4KN0; Wed, 17 Sep 2025 19:44:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758138265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ozTDSVjsIgbBPDSX1BKEG71oKSgvbk0LNbnnOsHCWD8=; b=R4go9yxf2SzGKDBmylk8lGUnknPZvqRbZOiVwwl2kNaaXjzabX4puDk+M5YliNPW/J028A p/f0LX+0b+TjVx2mCoiL8wJYIcl+vdQEwsRjShqrIThyzEx5DjupKJZuoIrw+lDR8iDVK2 VDB1idGbp/RGqAXuwLvgP0p6NiQReCkON0cKMtuhEEUT2XVJ4p5FH0qcs+RFhkJctTbCy6 qLdSEfnDorlqwtsGLnFK3r7RB9oIG6L3ln1vWipHeEgO6cq7uj57VkAMIPAmwysi9n6QRV ZjvrTYxGNPgiK59VEweGWgiuGfK7h6KUgE6gl4hgfDkJQIFxX7LPcbRv2HoXsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758138265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ozTDSVjsIgbBPDSX1BKEG71oKSgvbk0LNbnnOsHCWD8=; b=DLArHc2ge+QHtOxj3NX00JyybQsR2xmIDXFZHWDMePQO2r0+QHL2Zb/9DxwTBZdtvWCGVy zsc45Cp3RLC46gPMIJMFpp90SKzpA0LayQD9VmgOUmg1dFSRknBgrlUI2lXMYKqtqm2rjO bqJdikXBu2DlOTCxK8y7XZNTw0C9AM/I0cf5CdqtRwxDAm1GASVZK5LgERAAlfiVHPitNk cTT2MD6IQ8yLLAgOi2Wmz3P05hVHUPZwhYv8cQ4HG5un+UGKpjY+eHboyzBdpumywxeigN MHiRyp7VfdeBm4SrrkQQJp82SLtV3O7RARXZuBv/Hm4fvrsiHppgKf2x2MY5/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758138265; a=rsa-sha256; cv=none; b=f83Jk9jrzNV5XoNjqtkjv4CUk21W+QNNbPhGpM7cC2PEf1q9sSZkTmJl4rJ+wdU51G9/Mx H+bZW4ExjLnJB+ouwT1NTgKaAUQSGUZl5BtN+gJuiHMWRN5SB0OE+TBRhYy/Bb8TInkD60 +5FhRwOluBT58YkUNU/jn2uFkI2WC5QdzNCRK8tb+IL7vDHFUj9EWuKrJG6RsOxmL/VQ0Z 7MpY7a900eq4MUt/H9AkJiqNrRS+yzEW5csW27ps9unShQafHwSiqv2Rvdohb9x9fkRjpf +TGm06jwE0/uP4kVD4HmvLsWEN78/gp0k5DYw7NLRu13yFfh7dCGRBkL0KNXkA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cRq3F2qn3zg93; Wed, 17 Sep 2025 19:44:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58HJiPCf034284; Wed, 17 Sep 2025 19:44:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58HJiPYv034281; Wed, 17 Sep 2025 19:44:25 GMT (envelope-from git) Date: Wed, 17 Sep 2025 19:44:25 GMT Message-Id: <202509171944.58HJiPYv034281@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: a17e057ab3 - main - new committer (doc/ru): Vladlen Popolitov (vladlen) List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a17e057ab32822109f9de7f23c7765f8e8036974 Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=a17e057ab32822109f9de7f23c7765f8e8036974 commit a17e057ab32822109f9de7f23c7765f8e8036974 Author: Vladlen Popolitov AuthorDate: 2025-09-16 21:44:08 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-17 19:43:20 +0000 new committer (doc/ru): Vladlen Popolitov (vladlen) Summary: Complete steps for new committers from the committer's guide: 1. Add myself to shared/authors.adoc. 2. Add myself to shared/contrib-committers.adoc. 3. Add a news entry. 4. Add my PGP key. Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D52556 --- .../content/en/articles/pgpkeys/_index.adoc | 3 ++ documentation/static/pgpkeys/vladlen.key | 62 ++++++++++++++++++++++ shared/authors.adoc | 4 ++ shared/contrib-committers.adoc | 1 + website/data/en/news/news.toml | 4 ++ 5 files changed, 74 insertions(+) diff --git a/documentation/content/en/articles/pgpkeys/_index.adoc b/documentation/content/en/articles/pgpkeys/_index.adoc index c082f7feba..51469defd9 100644 --- a/documentation/content/en/articles/pgpkeys/_index.adoc +++ b/documentation/content/en/articles/pgpkeys/_index.adoc @@ -1080,6 +1080,9 @@ include::{include-path}jdp.key[] === `{krion}` include::{include-path}krion.key[] +=== `{vladlen}` +include::{include-path}vladlen.key[] + === `{sepotvin}` include::{include-path}sepotvin.key[] diff --git a/documentation/static/pgpkeys/vladlen.key b/documentation/static/pgpkeys/vladlen.key new file mode 100644 index 0000000000..e9d3c45ebc --- /dev/null +++ b/documentation/static/pgpkeys/vladlen.key @@ -0,0 +1,62 @@ +// sh addkey.sh vladlen B2861E83DA50E1D3 ; + +[.literal-block-margin] +.... +pub rsa3072/B2861E83DA50E1D3 2025-09-11 [SC] [expires: 2028-09-10] + Key fingerprint = 84F0 F7F6 2AC7 F58A 2194 CB89 B286 1E83 DA50 E1D3 +uid Vladlen Popolitov +sub rsa3072/EAF8D71B6A46E6A9 2025-09-11 [E] [expires: 2028-09-10] + +.... + +[.literal-block-margin] +.... +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGNBGjCnWsBDADH8CXs2fV0D8tmwTqKYu1QLrYx/AD4olKEHmMmw1TiLOyhfCJp +9U4sYAQgTOPL2Bcdndye3rG7fAjF1GsNBTlpv5ZnuN0mUFwebTRSd+7wY9n6P2TC +nWkpJuAI1lTYg8PsRcOROZIbjrUJ7At/vQ7kKgn+5uGsvCm0oGzacAPV/mgVYJQg +MIDdw5vUvF9UqYm2kHz5Mgq7tewZqfpExOigzVPx1RmN7p11mtSQC6rF3ofQf+wJ +eSR5251gooQRDw0mQWx9MYF9Y5Kz/nURDdaQF+cAlp2uMb+CvTvjSOJjWirYsctC +KG9WhK7pZXwV9hDE8gfu8omsJqsJLZ0Sc7YH8sBBqOTpsG3JnZn4fP6blTOa95JS +hQYrApZaIt4lZiyYknH5OVitsAaXe5ZegRZQBIEwfFSMSdA9+p6RmnNfJSpm6I8Z +O930hXMHrxcLo6Gq69JGvsBBTE4ymb5ZlBHXSo1Zt7MucH8xgM/+Tc0jXXhUFoDD +k1JQhB/OJIRYyOEAEQEAAbQsVmxhZGxlbiBQb3BvbGl0b3YgPHZsYWRsZW5wb3Bv +bGl0b3ZAbGlzdC5ydT6JAdcEEwEIAEEWIQSE8Pf2Ksf1iiGUy4myhh6D2lDh0wUC +aMKdawIbAwUJBaOagAgLCQ0IDAcLAwUVCgkICwUWAwIBAAIeBQIXgAAKCRCyhh6D +2lDh0+mMC/0Q7MhR68/V/FfoEu+kj2rMGYo5WifRlPVnWYZUnCq7k760HF9t+K/o +SpFz7IoYKIiNVT1KAdYgA2HTMBqE8ObGrmSjZ9DBOcOvxJsdh7FH1hPb/ydGKdY8 +tU02ACbLhxcRVismxNBe038DFIDOA3pv1TLw0A2bgd0/ailtX/1Gr8FEPNmtFHc9 +JUIykFoRVhZGAmfI/NWXSWy0U4TDPtsX77yKC8x7H6MySPdn3/1rFESfHLEmktNw +WgMfakx7W+zkHUQDVAHYub27thciHVWfOu3NeYN3s6m6QTv4V79a8LiCwNMUDcUh +IsUN2T8aw45+Yhk7VUh1F5jeEGZqKFLSDPEsbtBwiWB2FhfON1lbj5O3pslBWaOv +Uf7Rm2aPHN4bvG0TC77cS2w7CzqFLWNb6Ox+5JNvL+Ta6HE4evnxu0UY+K9JMKeB +OSBVcgv9l6ivA+5ZevY92ojO/RxAl4oVjh0LkmJF5HbetaxNRqMU6vNtbk2/jjki +zy/4q+giGUmJATMEEAEKAB0WIQSPisa9yJ21tDv7qUSWUsVzCwrSfwUCaMULIgAK +CRCWUsVzCwrSf4yBB/9o9I4hlzsOtwoNr5dYGHWLZc+eIr34j4bzHcweE5Azqal4 +NbIfYkkx2Lumz7WhbawZg/gaK84j3dJwQg2numko9GnHkSIDAZLXOdDZMkih4teb +Rb6hX3NerxhXGbPGPkBeRQDWVfkp5jLlUW6M1lGf1TQW9hnlU/ZaxApaGuDLG4TF +wAyRuA/xPY+ygkrvvSDimD8X6OyaojZgfC9e80v7vsKIkFtVRIqW5+645IuOSlwE +bvlLEO0od6LxucMduwiT7Zueod9nnO38XhdYqeCGCYjKTmiQ2J9W4IZb+QD6Dwzq +24zOGUzkkJN0/gX0TmqegyQ5hEcBiGLgARADuc12uQGNBGjCnWsBDADd2bXRTaxR +/jw4R8l9CWf0n6YS3+fQrGHKCKRY+W+1101Lh0/1NfWz0ZES2wuiyUhcIXPnNz2i +OeZIXykkM3tgszpsnL0vsmopFbr8+ppjzyz5aT5TOYjqSGmG5YyL7fxkPw5H9jL2 +WdsfWbQsGFZDK/dDuBSRqPqIHuhqJ94P9ldKwrn2vIT5C08AZB+SaYljOWe8OzSM +VijwZpYa2A0cTCEplgeafnb15zaidEHtEyUL8XxbpNFdz0wYVGhsPu6vyZZIHvQY +HIVcz4qx6gtcj8w43kVhVg0nihMQgzv0NTlYlsnufWBHASjwRzT97uxmyDOvuaYh +Os59CAC0sgNN3gwQESHiANG+NagvZ4hQLUC8WUAhmbuts3QAJslrYKdnHOe4j92M +hVFBJlrAzkd2YfSVH0YTLXmuYLtggCG/thbWivZrJXiak/GKjDd6dThjYj90HFpF +ErTPdMJi7FZ1ev48rDjiErSWQZjsSDS3BFWrcScF2B+qDbnsj8K+QeEAEQEAAYkB +vAQYAQgAJhYhBITw9/Yqx/WKIZTLibKGHoPaUOHTBQJowp1rAhsMBQkFo5qAAAoJ +ELKGHoPaUOHTcHwL/1kSHUk6Bo9XUwbw9M4DZfPIWH27M7RLWgeJ2/VnkuDEASvn +n1k2e/J3jVdCo525llRpxN8lgEPKkT++P/6sEenfCMMLng0Jl9u5otEZIg+RFSLe +14hXQypf99RabccWzz8XQM1LbfavQFWqg10yv9qHRupdWD6P2iKR1Mjjk2POOLW8 +fIei+RCxeTCIDcWHOdPNrPvPZ5c5AYZUTw3O+fnV78mhwEA9NbpKTK7eyAxrqLJ9 +87iHohd95Cm1W0Fh0n5G1PIHf7hcEw82L7EjmUOQbrISicDHkEpwM8pP3h5UST0y +zhp9uy/mFm9KiH3zBduPvUFASFe9KmB3HIh+MK/TNAbY0H/TlHo/qdcXYSITt9jJ +JAlv3e4frKCp6u5HQzTw6m5RneWBG3S4H+/gqUAZ4gDTC90lrg7+jeDBlUSzBm0p +h98YPtgq+ZcLzhkYBjJPNwZly7cRKAalqNeRAi5N+WRkHTp9x2DKVHGq6+eyur1n +PZ7HfBWJrSRYw/Wd2w== +=lOos +-----END PGP PUBLIC KEY BLOCK----- +.... diff --git a/shared/authors.adoc b/shared/authors.adoc index dcae3bc9af..4cac248a58 100644 --- a/shared/authors.adoc +++ b/shared/authors.adoc @@ -3571,6 +3571,10 @@ :vkashyap-email: vkashyap@FreeBSD.org :vkashyap: {vkashyap-name} <{vkashyap-email}> +:vladlen-name: Vladlen Popolitov +:vladlen-email: vladlen@FreeBSD.org +:vladlen: {vladlen-name} <{vladlen-email}> + :vmaffione-name: Vincenzo Maffione :vmaffione-email: vmaffione@FreeBSD.org :vmaffione: {vmaffione-name} <{vmaffione-email}> diff --git a/shared/contrib-committers.adoc b/shared/contrib-committers.adoc index b9ab031a7c..2e02584e33 100644 --- a/shared/contrib-committers.adoc +++ b/shared/contrib-committers.adoc @@ -277,6 +277,7 @@ * {0mp} * {pizzamig} * {rpokala} +* {vladlen} * {arrowd} * {khorben} * {kp} diff --git a/website/data/en/news/news.toml b/website/data/en/news/news.toml index c5092a948e..a490642e91 100644 --- a/website/data/en/news/news.toml +++ b/website/data/en/news/news.toml @@ -5,6 +5,10 @@ date = "2025-09-14" title = "FreeBSD 15.0-ALPHA2 Available" description = "The second ALPHA build for the FreeBSD 15.0 release cycle is now available. ISO images for the amd64, armv7, aarch64, and riscv64 architectures are available on most of our FreeBSD mirror sites." +[[news]] +date = "2025-09-09" +description = "New committer: Vladlen Popolitov (doc/ru)" + [[news]] date = "2025-09-07" title = "FreeBSD 15.0-ALPHA1 Available" From nobody Thu Sep 18 13:43:08 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cSGzw5vZ4z68Pvy for ; Thu, 18 Sep 2025 13:43: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cSGzw4Xh8z3jSP; Thu, 18 Sep 2025 13:43:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758202988; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HqhuQzJdeXARQ/1VTaatTTZ9N4MIuj34xZa/vmvHsCI=; b=O9FwkCJalrcU0f3vd6fdt1rRHUS+RPiuK83INOxpHN2yMrX1kx9qgfe302NQRJgp0Vm5mK eJryRMws1y6cFncnB8cRwMNutZ/mkmLoR42OkLitok4G6coLKEtUr1pzPqNqakL06nG1Ko vulxy6tTvBjzKRgS9G+8Em2rEvvq6/v1PJN8SzNK2neaD46dU9X/ULVr6MSk+7kW8CVHqi 7qtdF3ygovj27TVRIK1SyiHrmK6bG8WRZmOjxeaLoBYMz+xO67opGZ7mmGJeNihkPLmd3N hijRFKFB48Awu3JsN9SXINMBm8NbFeTx9KhjS8ziRMiiyPiyVcwlwPKXVparPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758202988; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HqhuQzJdeXARQ/1VTaatTTZ9N4MIuj34xZa/vmvHsCI=; b=bEhDNVmu6iqUFup3IzvAeeWXtNkGWjO5Ff6sjJDe8fvk67SOsziDXD6HvVvfW3+ShmgglY IFh18jy1vJ5KGEO+hgXjPg18zTwIUTtCyPNPqVwsIMSGw0gcfFojG9rOKnCOUvpcYMcT2q +MoVrHIoxf5nxP+9IfTz8FZGCbbV9Oiob4bHwB77b5hfPpyX2rHLAahSr4EwT0f5+IjR7q xE4zf0l1NgY+E4IvUqChy5/X7sF+qj50n/U4RNEGYhLH/SuiM9bOxM3epGhc8t8rbe42UW Wlku3ZsamVb3Op0P2yuI1QOLyaL9WRFjSKvv+Jzx3KpOJAaI02h2cqFnwNubDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758202988; a=rsa-sha256; cv=none; b=ZaY4f4F4OtoS76Ov4m07+dVw6lGPG5XzPoVXuzEALkOMXeaMH3QOvigUHAYRJyHaWx8ZVj KPsBBRkoGMc08gKVenCkbfZEFpoWsISZBfAK6UL22OKxyEXzr9moWbM7cTJ2Rr/ZMIpfWs ISFoYZoYiSYjBIef0ZXNJGSTFMh16aDxKXuxG4f9eIfnljDjNgrmUZIpsCMy6aoD0aMTyJ I4X2967uqoAKe4KgzeVS96kQnLZyqxso4lRR25cZ55HMGhWk55reJIkj9h1SVPgF6v6SxD 23MMx8bbqWtGLOBd25xJI3RyLDLEob4YIry9yiDFWw3j9ugExpPzmCpaqXlo2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cSGzw429Fz1Cdx; Thu, 18 Sep 2025 13:43:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58IDh8M1066439; Thu, 18 Sep 2025 13:43:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58IDh8wW066436; Thu, 18 Sep 2025 13:43:08 GMT (envelope-from git) Date: Thu, 18 Sep 2025 13:43:08 GMT Message-Id: <202509181343.58IDh8wW066436@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Jaeyoon Choi Subject: git: 8a349c977b - main - new committer (src): Jaeyoon Choi (jaeyoon) List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jaeyoon X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8a349c977b40736ab211a4634e746f6d8eed7140 Auto-Submitted: auto-generated The branch main has been updated by jaeyoon: URL: https://cgit.FreeBSD.org/doc/commit/?id=8a349c977b40736ab211a4634e746f6d8eed7140 commit 8a349c977b40736ab211a4634e746f6d8eed7140 Author: Jaeyoon Choi AuthorDate: 2025-09-18 13:32:10 +0000 Commit: Jaeyoon Choi CommitDate: 2025-09-18 13:41:41 +0000 new committer (src): Jaeyoon Choi (jaeyoon) Complete steps 1-4 for new committers from the committer's guide: 1. Add myself to doc/shared/authors.adoc 2. Add myself to doc/shared/contrib-committers.adoc 3. Add a news entry 4. Add my PGP key Reviewed By: imp (mentor) Approved by: imp (mentor) Differential Revision: https://reviews.freebsd.org/D52569 --- documentation/static/pgpkeys/jaeyoon.key | 44 ++++++++++++++++++++++++++++++++ shared/authors.adoc | 4 +++ shared/contrib-committers.adoc | 1 + website/data/en/news/news.toml | 4 +++ 4 files changed, 53 insertions(+) diff --git a/documentation/static/pgpkeys/jaeyoon.key b/documentation/static/pgpkeys/jaeyoon.key new file mode 100644 index 0000000000..12fbb22da2 --- /dev/null +++ b/documentation/static/pgpkeys/jaeyoon.key @@ -0,0 +1,44 @@ +// sh addkey.sh jaeyoon D82DDC7745B0B7DF ; + +[.literal-block-margin] +.... +pub rsa2048/D82DDC7745B0B7DF 2025-09-12 [SC] [expires: 2028-09-11] + Key fingerprint = 8093 4E1C DF25 E200 3474 1F0B D82D DC77 45B0 B7DF +uid Jaeyoon Choi +sub rsa2048/C4A65E2D6E48C385 2025-09-12 [E] [expires: 2028-09-11] + +.... + +[.literal-block-margin] +.... +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBGjEQNMBCAC0BZ7hfzmSa5mbiq4VQDt6TRCfHpI/zivWebzLecNqNFbAzDYA +Q7cg9l951irhFkZ61oEUp13NFhdcbn/AxleNiNiGDcX4sXWoTHblZfDlZJxLMvye +Qf9MOthXDjE4v5lF3kS8hLl/LRQdUzgKZrOB0wbE/nsqLoje8H8cwhAY2BSwAVaP +xDn0NP8DLTEjbBQK+V1tcKAWPyueKodqmudAtQH5giYswRrM2cUd2eqa/PP/Oe1K +8JYx9SGL8xsN0bfJqedWlpqdL5WkgN/NdIjR8HlcFhRwg/QGXU68QmGuj6RJ32LY +QbW2CIXw5scVOPy5I0ya2i9+3B7z2wDAPawpABEBAAG0IkphZXlvb24gQ2hvaSA8 +amFleW9vbkBGcmVlQlNELm9yZz6JAVcEEwEIAEEWIQSAk04c3yXiADR0HwvYLdx3 +RbC33wUCaMRA0wIbAwUJBaOagAgLCQ0IDAcLAwUVCgkICwUWAwIBAAIeBQIXgAAK +CRDYLdx3RbC33xk8CACbhY4M7bogTtmb9cyiyV57/eFMaAP4KJjD3KeCymrfwqgQ +g0NlHnBENFoWSDgbyaFE5lP7NqqTpmiXRn7qcXBuYwkxNwRc68m70FEeObklr1b9 +Iztna0e4Tc/1RXE1RF2sIL0I4KeIhH2wvnzYGBEtNtEXZ5ZZBoVkCXhbscTk8SSN +qvAPtEHMzKEMJK/pNJYVHuXWiGqqw+2Lad2XFJ+Cnzx+/EuBYqOMr8ehMsLz/yz+ +88C0WjD26JnTMyWW+5KrOpLykn9uN1btWXE3E6bsIOBrWtwUxesgbUQaYg/r3P0O +jBrUqI4nCoA9x4ZffbQwaJJmATbL5PVSs9c6DpR2uQENBGjEQNMBCAC9T2l6dqXw +IL48/omMfNoWsEqg8LNiz2M3XhzlQeimsr+nA9mFHJR6QJHQPjaK8i05y/hj8dF2 +f+L7KfCQWGFnQHVEMgscj+QnQu7dBjrJN3A0SRdLbSWjkfntAakFCA75fIdUih+y +XaOdm9M9pNG78fAizr+pKJqmDr/x0pQntLdVstObzhPNLpaZ9yw68TtJRJqU+mfM +hPxwi0mtr53bck+NTeFjvRRU2M87JYbHGk9QJ7LaqjUEXYW9eMXCIf9xLMAfqWvp +Q5a+4WiVCkOMLnImO3rlWcjuaHtTpbYiLu9Em+Lz6iMIiPIW1f3WVtp50g0p1NuC +vSib5x138NmjABEBAAGJATwEGAEIACYWIQSAk04c3yXiADR0HwvYLdx3RbC33wUC +aMRA0wIbDAUJBaOagAAKCRDYLdx3RbC33zlOB/9/wCENZSI6nZOHNtfT/JJbVBrG +5xTr0JJ0E97SUXcxIyxuHKwBQeJqTTmiuGXUFob2cFd5+tq3LRx1Y3OwiL3mkSAG +ScISo1fLQh6PmdyG7mCMhtQXC/Yyp86QDy2S8h42F0I632yHkpAKMsAuGRtqLScc +lyFohw+M5AX2EHY/CxODjTAKv8dK36wOfZjBSI/l6ZiPvoHmNzj2X4efsuBkUc9y +8z2cm5+YoD9dDsL3yvGEHR0I9mnXSUJg5A/B9bLfin7TwWEs4NjqH4aMwuiy6jQq +xUU3AvsChumW/7Evw2aRm38aHo3GYiwf2g2Euyo9oSCg8ht+4FfNCpVYY//l +=xaq5 +-----END PGP PUBLIC KEY BLOCK----- +.... diff --git a/shared/authors.adoc b/shared/authors.adoc index 4cac248a58..9132c04b72 100644 --- a/shared/authors.adoc +++ b/shared/authors.adoc @@ -1451,6 +1451,10 @@ :jadawin-email: jadawin@FreeBSD.org :jadawin: {jadawin-name} <{jadawin-email}> +:jaeyoon-name: Jaeyoon Choi +:jaeyoon-email: jaeyoon@FreeBSD.org +:jaeyoon: {jaeyoon-name} <{jaeyoon-email}> + :jah-name: Jason A. Harmening :jah-email: jah@FreeBSD.org :jah: {jah-name} <{jah-email}> diff --git a/shared/contrib-committers.adoc b/shared/contrib-committers.adoc index 2e02584e33..8f6db3ef45 100644 --- a/shared/contrib-committers.adoc +++ b/shared/contrib-committers.adoc @@ -49,6 +49,7 @@ * {loader} * {melifaro} * {theraven} +* {jaeyoon} * {davidcs} * {jrtc27} * {marcus} diff --git a/website/data/en/news/news.toml b/website/data/en/news/news.toml index a490642e91..efba4e343d 100644 --- a/website/data/en/news/news.toml +++ b/website/data/en/news/news.toml @@ -5,6 +5,10 @@ date = "2025-09-14" title = "FreeBSD 15.0-ALPHA2 Available" description = "The second ALPHA build for the FreeBSD 15.0 release cycle is now available. ISO images for the amd64, armv7, aarch64, and riscv64 architectures are available on most of our FreeBSD mirror sites." +[[news]] +date = "2025-09-09" +description = "New committer: Jaeyoon Choi (src)" + [[news]] date = "2025-09-09" description = "New committer: Vladlen Popolitov (doc/ru)" From nobody Thu Sep 18 18:56:05 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cSPx13vNhz67rt1 for ; Thu, 18 Sep 2025 18:56:05 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cSPx12xpSz3DCh; Thu, 18 Sep 2025 18:56:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758221765; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u/lWXspM/AQquA4ExmD0oIm5DQyoUq3kWGua2AK5kKI=; b=bnWxJZI60DzSP/VQkvOMyBXv23niCDCSb87XQHqKqt0BGX/3iEj9rXNy30ISnresQ9cStN Gjj9U1J9u1u8HWbWMrYxrV9MV+ILhSW+eiFTqixmX82BTVyosOkdRKj5fgkXc1kmrmGI/b zd3Iu0ghTzd0m/DIri50HKKXppemvhUO6b0fZnfBLZP801/31tzhtBy4bHZsyW9ho/Fdt0 KhNy9VoeunBOh/tFecmlrau7GguWThBQbgRbWznh9dHEKZIkpNp4cmCsv0Q6tM3vUKBNpH BPAGbDiTymmL0WBmE27b1yOfbInlP9QV8e55LhqxW64EEYFMjZ30py9arpQPEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758221765; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u/lWXspM/AQquA4ExmD0oIm5DQyoUq3kWGua2AK5kKI=; b=OUTBwnvA7nnpnYtpGvN36/FIjw7vyqTs+5+3pvj2v6C60kEOddOONYwZtyG/teadnNE1fe b9iXUkfwCC+8FLZhrI3xj9AJ9JzvNfEfKxF/SnXqp80NOZtQQvqjjBz4YfgStVuTVv6puc 4lvxS4epfgHfiLtUvjpOo2Mgqy5KncN/wXX/OcEDJviLvcrHEnR+YY7gbFA5HrLoonuVgt zS9Kl3XkdW3o1De5+MtdSiuUtVNpMEDQ54o2LvcxGavAIkt2HsNriNghUZs3ceGQWvwqb2 ilwu+k1YNWKyS8XZJSensbwqgrAMVypgATFHRBYzNh/8EGbQ8Sy8fiQi0ncuAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758221765; a=rsa-sha256; cv=none; b=pYWXVd080hA6DqwIpDlLJMkJ6XeJ5oEkll73X99LH+Mr4ZgN00zWQfvqfTT+njJANgexYz zGDKSWXCZ5zMsypkIZxorCfIMilJgbjwIC60/WZ4fbW3reLxmcmazOtLoyeekTYC2TPfCG O85blWkMnFisnz4sjfgVVmfzVSBzKMSXvW8de9sBAeifbgnHWgmVPgyqMitO47ceNzaNMy FPeCf4zOcfaHgWDN99ehnwLIvt5Qy5qzvUNCThaW6s/63uSXN0bu8znldkQY0XAKF9WDCV DzYnzy3N0fRRztboVx7QV+Szo42F93WSVMQagl1VscMtbMoJGsQfvexg9bJRng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cSPx12X8Cz8Bd; Thu, 18 Sep 2025 18:56:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58IIu5Na049662; Thu, 18 Sep 2025 18:56:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58IIu5qj049659; Thu, 18 Sep 2025 18:56:05 GMT (envelope-from git) Date: Thu, 18 Sep 2025 18:56:05 GMT Message-Id: <202509181856.58IIu5qj049659@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: cf5e9c58a9 - main - update translation of articles/committers-guide to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cf5e9c58a92907aa55ec267f19f14bba2215c020 Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=cf5e9c58a92907aa55ec267f19f14bba2215c020 commit cf5e9c58a92907aa55ec267f19f14bba2215c020 Author: Vladlen Popolitov AuthorDate: 2025-09-18 18:52:04 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-18 18:52:53 +0000 update translation of articles/committers-guide to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D52505 --- .../ru/articles/committers-guide/_index.adoc | 3644 ++++-- .../content/ru/articles/committers-guide/_index.po | 12213 +++++++++++++++++++ 2 files changed, 15026 insertions(+), 831 deletions(-) diff --git a/documentation/content/ru/articles/committers-guide/_index.adoc b/documentation/content/ru/articles/committers-guide/_index.adoc index 96448dfda8..fdc0635660 100644 --- a/documentation/content/ru/articles/committers-guide/_index.adoc +++ b/documentation/content/ru/articles/committers-guide/_index.adoc @@ -1,13 +1,16 @@ --- -title: Справочник коммиттера authors: - - author: The FreeBSD Documentation Project - - author: Дмитрий Морозовский -copyright: 1999-2007 The FreeBSD Documentation Project -trademarks: ["freebsd", "cvsup", "ibm", "intel", "sparc", "general"] + - + author: 'The FreeBSD Documentation Project' +copyright: '1999-2022 The FreeBSD Documentation Project' +description: 'Вводная информация для коммиттеров FreeBSD' +tags: "[\"FreeBSD Committer's Guide\", \"Guide\", \"Community\"]" +title: 'Руководство коммиттера' +trademarks: ["freebsd", "coverity", "git", "github", "gitlab", "ibm", "intel", "general"] +weight: 25 --- -= Справочник коммиттера += Руководство коммиттера :doctype: article :toc: macro :toclevels: 1 @@ -41,7 +44,11 @@ endif::[] [.abstract-title] Аннотация -Данный документ содержит информацию для сообщества коммиттеров FreeBSD. Все новые коммиттеры должны изучить его перед началом работы; прочим коммиттерам также рекомендуется время от времени просматривать его. +В этом документе представлена информация для сообщества коммиттеров FreeBSD. Все новые коммиттеры должны прочитать этот документ перед началом работы, а существующим коммиттерам настоятельно рекомендуется периодически его пересматривать. + +Почти все разработчики FreeBSD имеют права на коммит в один или несколько репозиториев. Однако некоторые разработчики не имеют таких прав, и часть информации здесь применима и к ним. (Например, некоторые люди имеют права только для работы с базой данных отчетов о проблемах.) Дополнительную информацию можно найти в crossref:committers-guide[non-committers, Вопросы, специфичные для разработчиков без прав на коммит]. + +Этот документ также может быть интересен участникам сообщества FreeBSD, которые хотят узнать больше о том, как работает проект. ''' @@ -51,1107 +58,3082 @@ toc::[] == Административные детали [.informaltable] -[cols="20%,80%", frame="none"] +[cols="1,1", frame="none"] |=== -|__Хост основного репозитория__ -|`ncvs.FreeBSD.org` +|_Способ логина_ +|man:ssh[1], только протокол версии 2 -|__Способ авторизации__ -|man:ssh[1], только протокол 2 +|_Главный хост для входа в оболочку_ +|`freefall.FreeBSD.org` -|__Основной корень репозитория (CVSROOT)__ -|`ncvs.FreeBSD.org`: [.filename]#/home/ncvs# (см. также <>). +|_Референсные машины_ +|`ref*.FreeBSD.org`, `universe*.freeBSD.org` (см. также ссылку link:https://www.FreeBSD.org/internal/machines/[Хосты проекта FreeBSD]) -|__`{cvsadm}`__ -|`{peter}` и `{markm}`, а также `{joe}` и `{marcus}` для иерархии [.filename]#ports/# +|_Узел SMTP_ +|`smtp.FreeBSD.org:587` (см. также crossref:committers-guide[smtp-setup, Настройка доступа SMTP]). -|__Списки рассылки__ -|{doc-developers-name}, {doc-committers-name}; {ports-developers-name}, {ports-committers-name}; {src-developers-name}, {src-committers-name}. (Каждому репозиторию проекта соответствуют отдельные списки рассылки с суффиксами -developers и -committers. Архивы этих списков хранятся в файлах [.filename]#/home/mail/repository-name-developers-archive# и [.filename]#/home/mail/repository-name-committers-archive# на машинах кластера `FreeBSD.org`). +|`_src/_` Git-репозиторий +|`ssh://git@gitrepo.FreeBSD.org/src.git` -|__Отчеты Правления__ -|[.filename]#/home/core/public/monthly-report# на машинах кластера `FreeBSD.org`. +|`_doc/_` Git-репозиторий +|`ssh://git@gitrepo.FreeBSD.org/doc.git` -|__Наиболее значимые метки CVS__ -|`RELENG_4` (ветвь 4.X-STABLE), `RELENG_5` (ветвь 5.X-STABLE), `RELENG_6` (ветвь 6.X-STABLE), `HEAD` (ветвь -CURRENT) -|=== +|`_ports/_` Git-репозиторий +|`ssh://git@gitrepo.FreeBSD.org/ports.git` -Для авторизации на машины проекта вы должны использовать протоколы man:ssh[1] или man:telnet[1] с включенным Kerberos 5. В случае man:ssh[1], допустим только протокол версии 2. Эти протоколы являются значительно более защищенными по сравнению с man:telnet[1] или man:rlogin[1], поскольку информация об авторизации передается в зашифрованном виде. По умолчанию, протокол man:ssh[1] также шифрует весь трафик. Учитывая наличие таких утилит, как man:ssh-agent[1] и man:scp[1], протокол man:ssh[1] значительно удобнее прочих в использовании. Если вы ничего не знаете об man:ssh[1], загляните в раздел <>. +|_Внутренние списки рассылки_ +|developers (технически называемый all-developers), doc-developers, doc-committers, ports-developers, ports-committers, src-developers, src-committers. (Каждый репозиторий проекта имеет свои собственные списки рассылки -developers и -committers. Архивы этих списков можно найти в файлах [.filename]#/local/mail/repository-name-developers-archive# и [.filename]#/local/mail/repository-name-committers-archive# на `freefall.FreeBSD.org`.) -[[committer.types]] -== Типы коммит битов +|_Ежемесячные отчеты основной команды (Core Team)_ +|[.filename]#/home/core/public/reports# на кластере `FreeBSD.org`. -CVS Репозиторий FreeBSD состоит из нескольких разделов, охватывающих исходные тексты базовой операционной системы, документацию, инфраструктуру построения внешних приложений (портов), а также различные служебные утилиты. Право записи в репозиторий ("коммит бит") подразумевает указание области дерева, в которое оно может быть применено. Как правило, области напрямую связаны с группой, подтвердившей право коммиттера на бит. В дальнейшем, область действия коммит бита может быть расширена; в этом случае, коммиттер должен следовать стандартным пр авилам нового для коммиттера в данной области, в частности, получая подтверждения на каждый коммит и, возможно, в течение какого-то времени работу с ментором. +|_Ежемесячные отчеты команды управления портами_ +|[.filename]#/home/portmgr/public/monthly-reports# в кластере `FreeBSD.org`. -[.informaltable] -[cols="1,1,1", frame="none"] +|_Важные ветки Git в `src/`:_ +|`stable/n` (`n`-STABLE), `main` (-CURRENT) |=== -|__Тип коммит бита__ -|__Ответственные__ -|__Области репозитория__ +Для подключения к хостам проекта требуется man:ssh[1]. Дополнительную информацию +можно найти в crossref:committers-guide[ssh.guide, Руководстве по быстрому началу работы с SSH]. -|src -|core@ -|src/ и соответствующие части doc/ +Полезные ссылки: -|doc -|doceng@ -|doc/, www/, документация дерева src/ +* link:https://www.FreeBSD.org/internal/[Внутренние страницы проекта FreeBSD] +* link:https://www.FreeBSD.org/internal/machines/[Узлы проекта FreeBSD] +* link:https://www.FreeBSD.org/administration/[Административные группы проекта FreeBSD] -|ports -|portmgr@ -|ports/ -|=== +[[pgpkeys]] +== Ключи OpenPGP для FreeBSD + +Криптографические ключи, соответствующие стандарту OpenPGP (__Pretty Good Privacy__), используются проектом FreeBSD для аутентификации коммиттеров. Сообщения, содержащие важную информацию, такие как публичные SSH-ключи, могут быть подписаны с помощью OpenPGP-ключа, чтобы доказать, что они действительно отправлены коммиттером. Дополнительную информацию можно найти в https://nostarch.com/releases/pgp_release.pdf[PGP & GPG: Email for the Practical Paranoid от Michael Lucas] и https://en.wikipedia.org/wiki/Pretty_Good_Privacy[]. -Биты, выделенные до разделения дерева на области могут использоваться во всех частях дерева. Однако, с точки зрения здравого смысла, коммиттер, не имеющий опыта работы в какой-либо части дерева, должен предоставлять предлагаемые изменения для рассмотрения другими коммиттерами, получать подтверждения от ответственных за различные части репозитория, а также, возможно, работать совместно с ментором. Поскольку правила ведения различных областей кода различаются, указанные нормы скорее направлены на благо коммиттера, не имеющего достаточн ого опыта работы в данной области. +[[pgpkeys-creating]] +=== Создание ключа -Вне зависимости от области приложения усилий, запросы коммиттеров на рассмотрение предлагаемых изменений в процессе разработки могут только приветствоваться. +Существующие ключи можно использовать, но сначала их следует проверить с помощью [.filename]#documentation/tools/checkkey.sh#. В этом случае убедитесь, что у ключа есть FreeBSD user ID. -=== Правила для коммиттеров документации ([.filename]#doc/#) при работе с деревом исходных текстов ([.filename]#src/#) +Для тех, у кого ещё нет ключа OpenPGP или требуется новый ключ, соответствующий требованиям безопасности FreeBSD, здесь показано, как его сгенерировать. -* Коммиттеры документации могут самостоятельно изменять документацию к исходным текстам, например, страницы справочника, файлы README, базы данных утилиты fortune, календарей, а также исправлять комментарии в исходных текстах без дополнительного согласования с коммиттерами исходных текстов, при условии сохранения здравого смысла и манеры коммитов. -* Коммиттеры документации могут вносить незначительные изменения и исправления в исходные тексты (такие как исправления к процессу сборки, добавление малых дополнительных возможностей и т.п.) при наличии одобрения от коммиттера исходных текстов. -* Коммиттер документации может расширить область действия своего бита на область исходных текстов (и стать, таким образом, коммиттером исходных текстов), найдя себе ментора, который предложит это расширение Правлению (Core). После одобрения, строка с его именем пользователя вносится в файл 'access', и применяются обычные правила периода работы с ментором, подразумевающие получение одобрения на каждый коммит. -* Одобрение коммита ("Approved by") может производиться только "полновесным" (не работающим с ментором) коммиттером исходных текстов; последние могут рассматривать предлагаемые изменения и указываться в строке "Reviewed by". +[[pgpkeys-create-steps]] +[.procedure] +==== +. Установите [.filename]#security/gnupg#. Добавьте следующие строки в [.filename]#~/.gnupg/gpg.conf#, чтобы задать минимально приемлемые настройки для подписи и предпочтений новых ключей (подробнее см. в link:https://www.gnupg.org/documentation/manuals/gnupg/GPG-Options.html[документации по опциям GnuPG]): ++ +[.programlisting] +.... +# Sorted list of preferred algorithms for signing (strongest to weakest). +personal-digest-preferences SHA512 SHA384 SHA256 SHA224 +# Default preferences for new keys +default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 CAST5 BZIP2 ZLIB ZIP Uncompressed +.... +. Сгенерировать ключ: ++ +[source, shell] +.... +% gpg --full-gen-key +gpg (GnuPG) 2.1.8; Copyright (C) 2015 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Warning: using insecure memory! +Please select what kind of key you want: + (1) RSA and RSA (default) + (2) DSA and Elgamal + (3) DSA (sign only) + (4) RSA (sign only) +Your selection? 1 +RSA keys may be between 1024 and 4096 bits long. +What keysize do you want? (2048) 2048 <.> +Requested keysize is 2048 bits +Please specify how long the key should be valid. + 0 = key does not expire + = key expires in n days + w = key expires in n weeks + m = key expires in n months + y = key expires in n years +Key is valid for? (0) 3y <.> +Key expires at Wed Nov 4 17:20:20 2015 MST +Is this correct? (y/N) y +GnuPG needs to construct a user ID to identify your key. + +Real name: Chucky Daemon <.> +Email address: notreal@example.com +Comment: +You selected this USER-ID: +"Chucky Daemon " + +Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o +You need a Passphrase to protect your secret key. +.... + +<.> 2048-битные ключи с трехлетним сроком действия обеспечивают достаточную защиту на данный момент (2022-10). + +<.> Срок действия ключа в три года достаточно мал, чтобы устаревшие ключи, ослабленные растущей мощностью компьютеров, перестали использоваться, но достаточно велик, чтобы уменьшить проблемы управления ключами. + +<.> Используйте здесь своё настоящее имя, предпочтительно совпадающее с указанным в удостоверении личности, выданном государством, чтобы другим было проще подтвердить вашу личность. Текст, который может помочь другим идентифицировать вас, можно ввести в раздел `Комментарий`. ++ +После ввода адреса электронной почты запрашивается парольная фраза. Методы создания безопасной парольной фразы вызывают споры. Вместо того чтобы предлагать один способ, вот несколько ссылок на сайты, описывающие различные методы: https://world.std.com/~reinhold/diceware.html[], https://www.iusmentis.com/security/passphrasefaq/[], https://xkcd.com/936/[], https://en.wikipedia.org/wiki/Passphrase[]. +==== + +Защитите закрытый ключ и парольную фразу. Если закрытый ключ или парольная фраза могли быть скомпрометированы или раскрыты, немедленно уведомите mailto:accounts@FreeBSD.org[accounts@FreeBSD.org] и отзовите ключ. + +Фиксация нового ключа показана в crossref:committers-guide[commit-steps, Шаги для новых коммиттеров]. + +[[kerberos-ldap]] +== Kerberos и LDAP веб-пароль для кластера FreeBSD -[[cvs.operations]] -== Работа с CVS +Кластер FreeBSD требует пароль Kerberos для доступа к определенным сервисам. Пароль Kerberos также служит веб-паролем LDAP, поскольку LDAP проксирует запросы к Kerberos в кластере. Некоторые из сервисов, требующих его, включают: -Подразумевается, что вы уже имеете опыт базовой работы с CVS. +* https://bugs.freebsd.org/bugzilla[Bugzilla] -`{cvsadm}` являются "владельцами" репозитория CVS и ответственны за все прямые его изменения (в целях чистки или исправления каких-либо вопиющих ошибок коммиттеров при работе с CVS). Если в результате ваших действий с частью репозитория произошел несчастный случай, например, после неверной операции `cvs import` или `cvs tag`, пошлите письмо соответствующей подгруппе `{cvsadm}` (см. следующую таблицу) и сообщите о проблеме. В наиболее серьезных случаях, касающихся не только какой-либо части репозитория, а дерева CVS в целом, вы можете написать `{cvsadm}`. Пожалуйста, _не надо_ писать группе `{cvsadm}` по поводу репозиторного копирования и прочих вопросов, которые может решить соответствующая подгруппа. +Для создания новой учетной записи Kerberos в кластере FreeBSD или сброса пароля Kerberos для существующей учетной записи с использованием генератора случайных паролей: -[[repomeisters]]Напрямую изменять содержимое репозитория может только группа CVS-мастеров; для обеспечения этого, только CVS-мастера имеют учетные записи на машинах, поддерживающих основной репозиторий. +[source, shell] +.... +% ssh kpasswd.freebsd.org +.... [NOTE] ==== -Адреса, на которые следует посылать запросы, зависят от области репозитория, которую требуется поправить: - -* ncvs@ - репозиторий [.filename]#/home/ncvs#, основные исходные тексты -* pcvs@ - репозиторий [.filename]#/home/pcvs#, порты -* dcvs@ - репозиторий [.filename]#/home/dcvs#, документация -* projcvs@ - репозиторий [.filename]#/home/projcvs#, прочие проекты +Это должно быть выполнено с компьютера за пределами кластера FreeBSD.org. ==== -Дерево CVS в настоящее время разделено на четыре независимых репозитория: `doc`, `ports`, `projects` и `src`. Для удобства работы пользователей при распространении через CVSup различные деревья комбинируются в одно, с одним служебным каталогом `CVSROOT`. +Пароль Kerberos также можно установить вручную, войдя в `freefall.FreeBSD.org` и выполнив: + +[source, shell] +.... +% kpasswd +.... [NOTE] ==== -Обратите внимание, что модуль `www`, содержащий исходные тексты http://www.FreeBSD.org[веб-сайта FreeBSD], расположен в репозитории `doc`. +Если ранее не использовались аутентифицированные через Kerberos службы кластера FreeBSD.org, будет отображено сообщение `Client unknown`. Эта ошибка означает, что сначала необходимо использовать метод `ssh kpasswd.freebsd.org`, показанный выше, для инициализации учётной записи Kerberos. ==== -В настоящее время, все репозитории CVS располагаются на одной машине, `ncvs.FreeBSD.org`, однако, для обеспечения возможности в будущем разнести их по физически различным машинам, для каждой поддерживается отдельное имя хоста. Их и следует использовать коммиттерам. Наконец, каждый репозиторий расположен в отдельном каталоге. В итоге, общая картина выглядит так: -[[cvs-repositories-and-hosts]] -.Репозитории CVS FreeBSD, хосты и каталоги -[cols="1,1,1", frame="none", options="header"] -|=== -| Репозиторий -| Хост -| Каталог +[[committer.types]] +== Типы битов коммита (прав на коммит) -|doc -|dcvs.FreeBSD.org -|/home/dcvs +Репозиторий FreeBSD содержит ряд компонентов, которые в совокупности поддерживают исходный код базовой операционной системы, документацию, инфраструктуру портов сторонних приложений и различные поддерживаемые утилиты. При выделении прав на коммит (commit bits) в FreeBSD указываются области дерева, где эти права могут быть использованы. Как правило, области, связанные с правами, отражают, кто авторизовал их выделение. Дополнительные области полномочий могут быть добавлены позже: в этом случае коммиттер должен следовать стандартной процедуре выдел ения прав на коммит для соответствующей области дерева, получив одобрение от соответствующей инстанции и, возможно, наставника для этой области на некоторый период времени. -|ports -|pcvs.FreeBSD.org -|/home/pcvs +[.informaltable] +[cols="1,1,1", frame="none"] +|=== -|projects -|projcvs.FreeBSD.org -|/home/projcvs +|__Тип коммиттера__ +|__Ответственный__ +|__Компоненты дерева исходного кода__ |src -|ncvs.FreeBSD.org -|/home/ncvs +|srcmgr@ +|src/ + +|doc +|doceng@ +|документация doc/, ports/, src/ + +|ports +|portmgr@ +|ports/ |=== -Операции с CVS производятся удаленно, путем установки переменной окружения `CVSROOT` (она должна указывать на соответствующий хост и каталог верхнего уровня, например `ncvs.FreeBSD.org``:`[.filename]#/home/ncvs#) и последующего выполнения команд выгрузки и коммита. Многие коммиттеры определяют команды-синонимы, разворачивающиеся в запуск CVS с правильными параметрами. В частности, пользователи оболочки man:tcsh[1] могут добавить следующие строки в свой скрипт начальной загрузки [.filename]#.cshrc#: +Биты коммитов, выделенные до разработки концепции областей ответственности, могут быть подходящими для использования во многих частях дерева. Однако здравый смысл подсказывает, что коммиттер, ранее не работавший в определённой области дерева, должен перед коммитом получить рецензирование (review), согласование от соответствующего ответственного лица и/или работать с наставником. Поскольку правила поддержки кода различаются в зависимости от области дерева, это важно как для самого коммиттера, работающего в менее знакомой области, так и д я других участников, работающих с деревом. -[.programlisting] -.... -alias dcvs cvs -d user@dcvs.FreeBSD.org:/home/dcvs -alias pcvs cvs -d user@pcvs.FreeBSD.org:/home/pcvs -alias projcvs cvs -d user@projcvs.FreeBSD.org:/home/projcvs -alias scvs cvs -d user@ncvs.FreeBSD.org:/home/ncvs -.... +Коммиттерам рекомендуется запрашивать рецензирование своей работы в рамках обычного процесса разработки, независимо от области дерева, в которой происходит работа. -Теперь все операции с CVS могут выполняться на локальной машине, а для внесения изменений в официальное дерево CVS следует использовать команду `__X__cvs commit`. Если вам нужно добавить в проект что-либо совершенно новое (например, исходные тексты сторонних разработчиков), нужно использовать команду `cvs import`; обратитесь к странице справочника по man:cvs[1] за подробностями. +=== Политика активности коммиттеров в других деревьях -[NOTE] -==== -Пожалуйста, _не используйте_ команды `cvs checkout` или `cvs update` для синхронизации ваших исходных текстов. Протокол CVS не оптимизирован для удаленной работы и требует значительных накладных расходов со стороны сервера. Пожалуйста, используйте метод синхронизации посредством `cvsup`, а основной хост используйте только для собственно коммитов. Наша распределенная сеть серверов cvsup достаточно развита. При необходимости синхронизации с самыми свежими изменениями вы можете пользоваться машиной `cvsup-master`, которая обладает достаточными ресурсами для уд ленной работы с CVS; за нее отвечает `{kuriyama}`. -==== +* Все коммиттеры могут изменять файлы [.filename]#src/share/misc/committers-*.dot#, [.filename]#src/usr.bin/calendar/calendars/calendar.freebsd# и [.filename]#ports/astro/xearth/files#. +* Документационные коммиттеры могут вносить изменения в документацию в файлы [.filename]#src#, такие как руководства, README, базы данных fortune, календарные файлы и исправления комментариев, без одобрения коммиттера src, при условии соблюдения обычных правил и внимания к коммитам. +* Любой коммиттер может вносить изменения в любое другое дерево с пометкой "Approved by" от некурируемого коммиттера с соответствующими правами. Курируемые коммиттеры (имеющие наставника) могут предоставлять пометку "Reviewed by", но не "Approved by". +* Коммиттеры могут получить дополнительный бит по обычному процессу: найти наставника, который предложит их srcmgr, doceng или portmgr, в зависимости от ситуации. После одобрения их добавят в 'access', и начнётся стандартный период наставничества, который будет включать продолжение отметки "Approved by" в течение некоторого времени. -Если вам нужно использовать команды CVS `add` и `delete`, так чтобы в реальности переместить часть исходных текстов подобно действию команды man:mv[1], нужно запросить операцию "репозиторного копирования" (repository copy). При этом кто-либо из <> скопирует необходимые файлы внутри репозитория на нужное место и даст вам знать об этом. Репозиторное копирование производится для сохранения истории (журналов изменения). Возможность отследить историю изменений очень ценна для всего проекта FreeBSD. +[[doc-blanket-approval]] +==== Неявное (по умолчанию) одобрение для документации -Документация по CVS, учебные материалы и FAQ можно найти по адресу: http://www.cvshome.org/docs/[http://www.cvshome.org/docs/]. Очень полезна также книга Карла Фогеля (Karl Fogel) http://cvsbook.red-bean.com/cvsbook.html[Open Source Development with CVS]. Некоторая полезная информация о CVS на русском языке может быть найдена http://alexm.here.ru/cvs-ru/[здесь]. +Некоторые типы исправлений имеют "одобрение по умолчанию" от {doceng}, что позволяет любому коммиттеру исправлять эти категории проблем в любой части дерева документации. Эти исправления не требуют одобрения или проверки от коммиттера документации, если у автора нет прав на коммит в документацию. -`{des}` написал такой "мини-пример" работы с CVS: +Общее одобрение применяется к следующим типам исправлений: -. Извлечение нужного модуля из репозитория: команда `co` или `checkout`. -+ -[source,shell] -.... -% cvs checkout shazam -.... -+ -Эта команда извлечет копию модуля [.filename]#shazam#. Если модуль с таким именем не существует (не описан в файле modules), будет произведена попытка извлечь директорию верхнего уровня [.filename]#shazam#. +* Опечатки +* Тривиальные исправления + -.Полезные опции команды `cvs checkout` -[cols="1,1", frame="none"] -|=== -|`-P` -|Не создавать (точнее, удалить после завершения выполнения) пустые каталоги -|`-l` -|Извлекать один уровень каталогов (без подкаталогов) +Пунктуация, URL-адреса, даты, пути и имена файлов с устаревшей или некорректной информацией, а также другие распространённые ошибки, которые могут ввести читателей в заблуждение. -|`-r__rev__` -|Извлечь ревизию, ветвь или тег _rev_ для указанного модуля +За годы в дереве документации были неявно одобрены некоторые случаи. Этот список показывает наиболее распространённые из них: -|`-D__date__` -|Извлечь состояние модуля в репозитории на момент _date_ -|=== -+ -Примеры в применении к FreeBSD: - -** Извлечь модуль [.filename]#miscfs#, расположенный в каталоге репозитория [.filename]#src/sys/miscfs#: -+ -[source,shell] -.... -% cvs co miscfs -.... -+ -После выполнения вы получите каталог [.filename]#miscfs#, содержащий подкаталоги [.filename]#CVS#, [.filename]#deadfs#, [.filename]#devfs# и т.д. Один из них ([.filename]#linprocfs#) будет пустым. -** Извлечь те же файлы, но с полным путем: -+ -[source,shell] -.... -% cvs co src/sys/miscfs -.... -+ -Теперь у вас есть каталог [.filename]#src#, содержащий подкаталоги [.filename]#CVS# и [.filename]#sys#. Каталог [.filename]#src/sys# содержит подкаталоги [.filename]#CVS# и [.filename]#miscfs# и т.д. -** Извлечь те же файлы, удалив при этом пустые подкаталоги: -+ -[source,shell] -.... -% cvs co -P miscfs -.... -+ -Вы получите каталог [.filename]#miscfs# с подкаталогами [.filename]#CVS#, [.filename]#deadfs#, [.filename]#devfs#... однако без подкаталога [.filename]#linprocfs#, поскольку он не содержит файлов. -** Извлечь каталог [.filename]#miscfs# без подкаталогов: -+ -[source,shell] -.... -% cvs co -l miscfs -.... -+ -Теперь в каталоге [.filename]#miscfs# будет только один подкаталог [.filename]#CVS#. -** Извлечь модуль [.filename]#miscfs# из ветви 6.X: -+ -[source,shell] -.... -% cvs co -rRELENG_6 miscfs -.... -+ -Теперь вы можете изменить исходные тексты и произвести коммит в эту ветвь. -** Извлечь модуль [.filename]#miscfs# по состоянию на момент выхода 6.0-RELEASE: +* Изменения в [.filename]#documentation/content/ru/books/porters-handbook/versions/_index.adoc# + -[source,shell] -.... -% cvs co -rRELENG_6_0_0_RELEASE miscfs -.... -+ -В этом случае вы не сможете внести изменения в репозиторий, поскольку `RELENG_6_0_0_RELEASE` описывает момент времени, а не ветвь разработки. -** Извлечь модуль [.filename]#miscfs# по состоянию на 15 января 2000 г: +extref:{porters-handbook}versions[Значения __FreeBSD_version (Руководство по созданию портов)], в основном используется коммиттерами src. +* Изменения в [.filename]#doc/shared/contrib-additional.adoc# + -[source,shell] -.... -% cvs co -D'01/15/2000' miscfs -.... -+ -Как и в предыдущем случае, изменения не могут быть записаны. -** Извлечь модуль [.filename]#miscfs#, каким он был неделю назад: +Сопровождение раздела extref:{contributors}[Дополнительные участники FreeBSD, contrib-additional]. +* Все link:#commit-steps[Шаги для новых коммиттеров], связанные с документацией +* Рекомендации по безопасности; Уведомления об ошибках; Релизы; + -[source,shell] -.... -% cvs co -D'last week' miscfs -.... -+ -И вновь, изменения не могут быть записаны. -+ -Обратите внимание, что мета-данные хранятся в подкаталогах [.filename]#CVS#. -+ -Аргументы опций `-D` and `-r` сохраняются (являются "клейкими", sticky), например, при последующем использовании команды `cvs update`. -. Проверка состояния извлеченных файлов: команда `status`. +{security-officer} и {re} используют эти разделы. +* Изменения в [.filename]#website/content/ru/donations/donors.adoc# + -[source,shell] -.... -% cvs status shazam -.... +{donations} использует этот документ. -+ -Эта команда покажет статус файла [.filename]#shazam# или каждого файла в директории [.filename]#shazam#. Для каждого из файлов статус может быть одним из: -+ -[.informaltable] -[cols="1,1", frame="none"] -|=== -|Up-to-date -|Файл соответствует репозиторию и не модифицировался +Перед любым коммитом необходимо выполнить тестовую сборку; подробности см. в разделах «Обзор» и «Процесс сборки документации FreeBSD» extref:{fdp-primer}[Руководства для новых участников проекта документации FreeBSD]. -|Needs Patch -|Файл не изменялся, но репозиторий содержит обновленную версию +[[git-primer]] +== Руководство по Git -|Locally Modified -|Файл соответствует репозиторию, но был изменен локально +[[git-basics]] +=== Основы Git -|Needs Merge -|Файл изменен локально; вместе с тем, файл изменен и в репозитории +При поиске по ключевым словам "Git Primer" можно найти множество хороших материалов. Страницы Дэниела Милера link:https://danielmiessler.com/study/git/[Введение в Git] и Вилли Виллуса link:https://gist.github.com/williewillus/068e9a8543de3a7ef80adb2938657b6b[Git - Краткое введение] являются хорошими обзорами. Книга по Git также полная, но гораздо длиннее: https://git-scm.com/book/en/v2. Также обратите внимание на сайт https://dangitgit.com/, посвящённый распространённым ловушкам и подводным камням Git, на случай, если вам нужно исправить ошибки. Наконец, введение, link:https://eagain.net/articles/git-for-computer-scientists/[ориентированное на компьютерны учёных], оказалось полезным для некоторых в объяснении мировоззрения Git. -|File had conflicts on merge -|После последнего обновления возникли конфликты, и они все еще не устранены -|=== -+ -Кроме того, будут показаны локальная версия и дата модификации, версия и дата последней из доступных (если вы применяли "клейкие" дату, тег или ветвь, последняя доступная версия может отличаться от вашей), а также клейкие теги, временные метки и опции. -. Обновление извлеченного модуля: команда `update`. -+ -[source,shell] -.... -% cvs update shazam -.... +Этот документ предполагает, что вы уже читали про это, и постарается не повторять основы (хотя кратко их рассмотрит). -+ -Эта команда обновит состояние файла [.filename]#shazam# или файлов в каталоге [.filename]#shazam# до наиболее свежих версий выбранной вами при извлечении ветви. Если выбирался "момент времени", не произойдет ничего, если только за истекшее время в репозитории не был перемещен тег или не произошло чего-нибудь еще непредвиденного. -+ -Полезные опции в дополнение к уже описанным для команды `checkout`: -+ -[.informaltable] -[cols="1,1", frame="none"] -|=== -|`-D` -|Извлечь вновь появившиеся или пропущенные ранее подкаталоги +[[git-mini-primer]] +=== Мини-руководство по Git -|`-a` -|Обновиться до текущего состояния головной ветви +Это руководство имеет менее амбициозные цели, чем старое руководство по Subversion, но должно охватить основы. -|`-j__rev__` -|магическая опция (см. ниже) -|=== -+ -Если вы извлекали модуль с опциями `-r` или `-D`, выполнение команды `cvs update` с другими параметрами `-r` или `-D` или с опцией `-a` приведет к выбору новой ветви, ревизии или даты. Использование опции `-a` удаляет использованные ранее клейкие свойства; опции `-r` и `-D`, наоборот, фиксируют их. -+ -Теоретически использование `HEAD` в качестве аргумента опции `-r` должно дать тот же результат, что и указание опции `-a`, однако это верно лишь в теории. -+ -Опция `-D` полезна, если: +==== Область применения -** после извлечения вами модуля кем-либо еще в него были добавлены дополнительные каталоги; -** вы извлекали верхний уровень модуля при помощи опции `-l`, а в дальнейшем решили извлечь и подкаталоги; -** вы удалили какие-либо подкаталоги и теперь хотите вновь извлечь их. +Если вы хотите загрузить FreeBSD, собрать его из исходных кодов и в целом поддерживать актуальность таким способом, это руководство для вас. Оно охватывает получение исходных кодов, их обновление, бинарный поиск (bisect) и кратко затрагивает способы работы с локальными изменениями. В нём изложены основы, а также даны полезные ссылки на более глубокие материалы для случаев, когда читателю будет недостаточно базовой информации. Другие разделы этого руководства посвящены более сложным темам, связанным с участием в проекте. -+ -__Обращайте внимание на вывод команды `cvs update`.__ Действие, произведенное с файлом, обозначается буквой перед его именем: -+ -[.informaltable] -[cols="1,1", frame="none"] -|=== -|`U` -|Файл был успешно обновлен. +Цель этого раздела — выделить те аспекты Git, которые необходимы для отслеживания исходных кодов. Предполагается базовое понимание Git. В интернете есть множество вводных руководств по Git, но https://git-scm.com/book/en/v2[Книга по Git] предлагает одно из лучших изложений. -|`P` -|Файл был успешно обновлен (произведен успешный патч из удаленного репозитория). +[[git-mini-primer-getting-started]] +==== Начало работы для разработчиков -|`M` -|Файл был изменен, и при этом обновлен успешно. +Этот раздел описывает доступ на чтение и запись для коммиттеров, чтобы отправлять коммиты от разработчиков или контрибьюторов. -|`C` -|Файл был изменен, и при объединении изменений возникли конфликты. -|=== -+ -Объединение (merging) производится, если вы выгрузили рабочую копию какого-то модуля, изменили его, затем кто-либо еще произвел коммит собственных изменений, и, наконец, вы выполняете команду `cvs update`. CVS знает, что производились локальные изменения, и пытается объединить ваши изменения с теми, что произошли в репозитории (от состоянии версии, которую вы выгружали, до версии, до которой вы пытаетесь обновиться). Если изменения происходили с различными частями файла, объединение почти всегда произойдет успешно (хотя результат при этом может не быт ь синтаксически или семантически корректным). -+ -CVS выводит букву `M` перед именем всех локально измененных файлов, даже если у них нет новых версий в репозитории, так что команда `cvs update` удобна для быстрого получения списка файлов, которые вы изменяли. -+ -Если в результате вы видите букву `C`, ваши изменения конфликтуют с изменениями, внесенными в репозиторий (изменения были в одних и тех же или рядом расположенных строках, либо вы изменили файл настолько, что при сравнении `cvs` не смогла удержать контекст и приложить изменения из репозитория). Вам необходимо устранить конфликты, вручную редактируя файл. Конфликтующие фрагменты помечаются строками из знаков `<`, `=` и `>`. В начале каждого из конфликтов присутствует строка из семи знаков `<` и имени файла, затем идет фрагмент, содержащий внесенные в ами изменения, разделитель из семи знаков `=`, соответствующий фрагмент из версии файла, содержащейся в репозитории, и, наконец, строка из семи знаков `>` совместно с номером версии, до которой вы обновляли файл. -+ -Опция `-J` содержит некоторое количество черной магии. При ее наличии локальный файл обновляется до указанной версии так же, как и при использовании опции `-r`, но отслеживаемые номер версии или ветвь не изменяются. Эта опция умеет смысл лишь при парном использовании: при этом делается попытка применить изменения между двумя указанными версиями к локальной копии файла. -+ -К примеру, вы внесли изменения и произвели коммит в файл [.filename]#shazam/shazam.c# в FreeBSD-CURRENT, а позднее хотите перенести обновления в FreeBSD-STABLE (Merge-From-Current, MFC). Версия, которая требует переноса - 1.15: - -** Извлеките текущую версию модуля [.filename]#shazam# для ветви FreeBSD-STABLE: -+ -[source,shell] -.... -% cvs co -rRELENG_6 shazam -.... +[[git-mini-daily-use]] +===== Повседневное использование -** Приложите изменения между версиями 1.14 и 1.15: -+ -[source,shell] -.... -% cvs update -j1.14 -j1.15 shazam/shazam.c -.... -+ -Почти наверняка вы получите конфликт в строках, содержащих идентификатор файла (`$Id: article.xml,v 1.19 2007-05-09 06:08:50 bvs Exp $` или, в случае FreeBSD, `$FreeBSD: head/ru_RU.KOI8-R/articles/committers-guide/article.xml 45050 2014-06-13 14:53:24Z taras $`). Вам потребуется отредактировать файл для устранения конфликта (в данном случае достаточно убрать строки-разделители и вторую строку `$Id: article.xml,v 1.19 2007-05-09 06:08:50 bvs Exp $`, оставив лишь строку с `$Id: article.xml,v 1.19 2007-05-09 06:08:50 bvs Exp $` для FreeBSD-STABLE). -. Просмотр изменение между локальной версией и версией из репозитория: команда `diff`. -+ -[source,shell] -.... -% cvs diff shazam -.... -+ -Эта команда покажет все отличия локального состояния файла (или файлов модуля) [.filename]#shazam# от состояния, сохраненного в репозитории. -+ -.Полезные опции команды `cvs diff` -[cols="1,1", frame="none"] -|=== -|`-u` -|Использовать унифицированный (unified) формат. -|`-c` -|Использовать контекстный (context) формат. +[NOTE] +==== +В приведенных ниже примерах замените `${repo}` на имя нужного репозитория FreeBSD: `doc`, `ports` или `src`. +==== -|`-N` -|Показывать отсутствующие или созданные файлы. -|=== -+ -Всегда имеет смысл пользоваться опцией `-u`, поскольку унифицированный формат гораздо удобнее и лучше читаем, чем почти все другие (в некоторых случаях контекстный формат, генерируемый опцией `-c` может быть несколько лучше, но он гораздо более громоздок). Унифицированный формат различий состоит из серии фрагментов, каждый из которых начинается со строки, состоящей из двух символов `@` и номеров строк, описывающих положение изменившегося участка. Затем следует группа строк: те, что начинаются с пробела, описывают контекст, начинающиеся с симв ола `-` определяют удаленные строки, наконец, начинающиеся с символа `+` - добавленные. -+ -Вы можете сравнивать текущее состояние с версией, отличающейся от той, с которой вы извлекали файл, указав опцию `-r` или `-D` подобно командам `checkout` и `update`, или даже получить список изменений между любыми двумя версиями (вне зависимости от того, что лежит в вашей локальной копии), указав _две_ версии при помощи опций `-r` или `-D`. -. Просмотр журнала изменений: команда `log`. +* Клонировать репозиторий: + -[source,shell] +[source, shell] .... -% cvs log shazam +% git clone -o freebsd --config remote.freebsd.fetch='+refs/notes/*:refs/notes/*' https://git.freebsd.org/${repo}.git .... -+ -Если [.filename]#shazam# является обычным файлом, эта команда выдаст на экран _заголовок_ с информацией о файле, в частности, его местоположении в репозитории, какая версия соответствует текущему состоянию (`HEAD`), в каких ветвях разработки файл присутствует, а также перечислит теги, которыми он помечен. Затем, для каждой версии файла выводится соответствующее ей журнальное сообщение, включающее дату, время и автора коммита, количество добавленных и удаленных строк и собственно журнального сообщения, написанного коммиттером. -+ -Если [.filename]#shazam# является каталогом, вышеописанная процедура выполняется для каждого файла в каталоге. Если при этом команде `log` не был указан флаг `-l`, процедура рекурсивно повторяется для всех подкаталогов. -+ -Команда `log` используется для просмотра истории одного или нескольких файлов в том виде, как она сохранена в репозитории CVS. Используя опцию `-r__rev__`, вы можете посмотреть журнальное сообщение к одной определенной версии: + -[source,shell] -.... -% cvs log -r1.2 shazam -.... -+ -Эта команда покажет журнальное сообщение для версии `1.2` файла [.filename]#shazam# (или для версий `1.2` каждого из файлов в каталоге [.filename]#shazam#). -. Кто что делал: команда `annotate`. Эта команда показывает перед каждой строкой указанного файла (файлов) имя пользователя, вносившего последние изменения в эту строку. +В результате у вас в качестве удалённых (remote) должны быть официальные зеркала: + -[source,shell] +[source, shell] .... -% cvs annotate shazam +% git remote -v +freebsd https://git.freebsd.org/${repo}.git (fetch) +freebsd https://git.freebsd.org/${repo}.git (push) .... -. Добавление новых файлов: команда `add`. -+ -Создайте файл, выполните для него команду `cvs add`, затем произведите запись в репозиторий (коммит): `cvs commit`. -+ -Точно так же, новые каталоги добавляются в репозиторий путем создания и последующего выполнения команды `cvs add`. Заметьте, что выполнять коммит после добавления каталога не надо. -. Удаление устаревших файлов: команда `remove`. -+ -Удалите файл, затем выполните команду `cvs rm` с его именем в качестве параметра, наконец, выполните для него `cvs commit`. -. Внесение изменений в репозиторий: команда `commit` или `checkin`. +* Настройка данных коммиттера FreeBSD: + -.Useful `cvs commit` options -[cols="1,1", frame="none"] -|=== -|`-F` -|Форсировать внесение изменений для не модифицированного файла. -|`-m__msg__` -|Указать сообщение для журнала в командной строке (не запускать текстовый редактор). -|=== -+ -Опцию `-F` следует использовать, если вы поняли, что забыли указать какую-либо важную информацию в журнале изменений. -+ -Хорошие журнальные сообщения очень важны. Они дают возможность другим узнать, зачем вы производили изменения, причем не только в момент их произведения, но и месяцы или годы спустя, когда кто-либо заинтересуется, почему выглядящий нелогично или неэффективно фрагмент кода попал в каши исходные тексты. Кроме того, это очень помогает в оценке того, нужно ли переносить соответствующий код в FreeBSD-STABLE (MFC). -+ -Сообщения должны быть ясными, краткими, четкими, и представлять из себя разумную аннотацию, какие изменения были произведены и почему. -+ -Сообщения должны достаточно ясно показывать сторонним разработчикам, насколько их касаются изменения и нужно ли им исследовать изменения подробно. -+ -Избегайте внесения нескольких не связанных друг с другом изменений за один раз. Это затрудняет объединение изменений, а также, при обнаружении ошибок, усложняет поиск ответственного за ошибки участка. -+ -Избегайте смешивания в одном коммите изменений функциональности со стилистическими правками или исправлениями в пробелах. Это усложняет объединение, и, кроме того, затрудняет понимание того, какие именно функциональные изменения были внесены. В случае коммита в файлы документации, это затруднит работу групп поддержки перевода, поскольку становится сложнее отделить изменения, требующие перевода. -+ -Избегайте коммита большой группы файлов за один раз с одним общим и невнятным сообщением. Напротив, вносите изменения в отдельные файлы (или небольшие группы связанных файлов) с адекватными сообщениями для журналирования. -+ -Перед коммитом, __обязательно__: - -** проверьте, что вы будете выполнять коммит в правильную ветвь, посредством команды `cvs status`. -** проверьте ваши изменения при помощи команды `cvs diff` - -+ -Кроме того, ВСЕГДА указывайте, в какие именно файлы вы вносите изменения, так чтобы не включить в этот список лишних файлов. Команда `cvs commit` без аргументов включит все измененные файлы в текущем каталоге и всех подкаталогах. - -Еще несколько полезных советов: - -. Часто используемые опции можно занести в файл [.filename]#~/.cvsrc#, например: +Хук для коммита в repo.freebsd.org проверяет, что поле "Commit" соответствует информации о коммиттере в FreeBSD.org. Самый простой способ получить предлагаемую конфигурацию — выполнить скрипт `/usr/local/bin/gen-gitconfig.sh` на freefall: + -[.programlisting] +[source, shell] .... -cvs -z3 -diff -Nu -update -Pd -checkout -P +% gen-gitconfig.sh +[...] +% git config user.name (your name in gecos) +% git config user.email (your login)@FreeBSD.org .... -+ -Для данного случая: - -** всегда использовать компрессию уровня 3 для связи с удаленным сервером CVS. В случае медленного соединения это избавит вас от лишней головной боли. -** всегда использовать опции `-N` (показывать добавленные или удаленные файлы) и `-u` (унифицированный формат) для man:diff[1]. -** всегда использовать опции `-P` (удалять пустые каталоги) и `-D` (добавлять новые каталоги) при обновлении. -** всегда использовать опцию `-P` (удалять пустые каталоги) при извлечении файлов и модулей. -. Пользуйтесь скриптом Эйвинда Эклунда (Eivind Eklund) `cdiff` для просмотра изменению унифицированного формата. Он является оберткой для man:less[1], добавляющей цветовые коды ANSI для выделения заголовком, добавленных и удаленных строк; прочие строки не модифицируются. Помимо этого, скрипт корректно разворачивает табуляции (которые часто выглядят неправильно в изменениях из-за дополнительного символа в начале строки). -+ -package:textproc/cdiff[] -+ -Просто используйте его вместо man:more[1] или man:less[1]: +* Установите URL для отправки (push URL): + -[source,shell] +[source, shell] .... -% cvs diff -Nu shazam | cdiff +% git remote set-url --push freebsd git@gitrepo.freebsd.org:${repo}.git .... -+ -Помимо этого, некоторые текстовые редакторы, такие как man:vim[1] (package:editors/vim[]) поддерживают цветовую синтаксическую разметку многих типов файлов, в том числе файлов изменений и журналов CVS/RCS. + -[source,shell] +В таком случае у вас должны быть раздельные URL для извлечения (fetch) и отправки (push) как наиболее эффективная настройка: ++ +[source, shell] .... -% echo "syn on" >> ~/.vimrc -% cvs diff -Nu shazam | vim - -% cvs log shazam | vim - +% git remote -v +freebsd https://git.freebsd.org/${repo}.git (fetch) +freebsd git@gitrepo.freebsd.org:${repo}.git (push) .... ++ +Еще раз обратите внимание, что `gitrepo.freebsd.org` является псевдонимом для `repo.freebsd.org`. -. CVS - старая, загадочная и порой слабо предсказуемая в своем поведении программа. Ни один человек не способен удержать в голове все тонкости ее работы, так что не бойтесь спрашивать совета у Искусственного Интеллекта (а именно `{cvsadm}`). -. Не оставляйте компьютер в процессе работы команды `cvs commit` (в редакторе при написании журнального сообщения) слишком надолго (более чем на 2-3 минуты). Эта команда блокирует каталог репозитория, в котором она запущена, и не позволяет другим разработчикам изменять его содержимое. Если вам нужно написать длинное журнальное сообщение, подготовьте его заранее и вставьте в редакторе во время выполнения команды `cvs commit`, либо запишите его в файл и используйте опцию CVS `-F`: +* Установка хука для шаблона сообщения коммита: + -[source,shell] +Для репозитория документации: ++ +[source, shell] .... -% vi logmsg -% cvs ci -F logmsg shazam +% cd .git/hooks +% ln -s ../../.hooks/prepare-commit-msg .... -+ -Это самый быстрый способ передать журнальное сообщение CVS; однако, вы должны быть внимательны при редактировании файла [.filename]#logmsg#, поскольку при выполнении коммита у вас не будет шансов его поправить. -. Вы можете существенно ускорить скорость работы CVS с центральным репозиторием, используя постоянное соединение с репозиторием. Для этого добавьте в файл [.filename]#~/.ssh/config# строки + -[.programlisting] +Для репозитория портов: ++ +[source, shell] .... -Host ncvs.FreeBSD.org - ControlPath /home/user/.ssh/cvs.cpath -Host dcvs.FreeBSD.org - ControlPath /home/user/.ssh/cvs.cpath -Host projcvs.FreeBSD.org - ControlPath /home/user/.ssh/cvs.cpath -Host pcvs.FreeBSD.org - ControlPath /home/user/.ssh/cvs.cpath +% git config --add core.hooksPath .hooks .... -+ -Затем откройте постоянное соединение с машиной repoman: + -[source,shell] +Для репозитория src: ++ +[source, shell] .... -% ssh -fNM ncvs.FreeBSD.org +% cd .git/hooks +% ln -s ../../tools/tools/git/hooks/prepare-commit-msg .... -+ -Теперь команды CVS должны выполняться быстрее, поскольку используют существующее соединение с репозиторием. Учтите, что регистр в именах хостов имеет значение. -[[conventions]] -== Соглашения и традиции +[[admin-branch]] +===== Ветка "admin" -Став коммиттером, вы должны прежде всего произвести некоторые стандартные действия. +Файлы `access` и `mentors` хранятся в отдельной (orphan) ветке `internal/admin` в каждом репозитории. -* Добавьте себя в список "SGML сущностей" авторов в файл [.filename]#doc/en_US.ISO8859-1/shared/xml/authors.ent#; это изменение должно быть сделано прежде прочих, поскольку в противном случае следующий ваш коммит неизбежно разрушит процесс построения дерева doc/. -+ -Это довольно простая задача, но при этом она является неплохим первым тестом ваших навыков работы с CVS. -* Также добавьте свою "SGML сущность" в [.filename]#www/en/developers.xml#. -* Добавьте себя в раздел "Разработчики" статьи extref:{contributors}[Участники проекта FreeBSD] ([.filename]#doc/en_US.ISO8859-1/articles/contributors/contrib.committers.xml#) и удалите свою запись из раздела "Прочие участники" ([.filename]#doc/en_US.ISO8859-1/articles/contributors/contrib.additional.xml#). -* Добавьте новость о новом коммиттере в файл [.filename]#www/shared/xml/news.xml#. Используйте существующие записи вида "Новый коммиттер" как шаблон. -* Вам нужно добавить ваш PGP или GnuPG ключ в каталог [.filename]#doc/shared/pgpkeys# (а если у вас нет ключа, вам нужно его создать). Не забудьте изменить и произвести коммит в файл [.filename]#doc/shared/pgpkeys/pgpkeys.ent#. -+ -`{des}` написал скрипт для упрощения этого процесса. Дополнительную информацию можно прочесть в файле http://cvsweb.FreeBSD.org/doc/shared/pgpkeys/README[README]. -+ -[NOTE] -==== -Очень важно, чтобы в Руководстве пользователя был записан актуальный PGP/GnuPG ключ, поскольку он может потребоваться для идентификации коммиттера (например, его будет проверять группа `{admins}` для аварийного восстановления учетной записи). Полный набор актуальных ключей пользователей домена `FreeBSD.org` можно найти по адресу link:https://www.FreeBSD.org/doc/pgpkeyring.txt[http://www.FreeBSD.org/doc/pgpkeyring.txt]. -==== -* Добавьте себя в файл [.filename]#src/shared/misc/committers-репозиторий.dot#, где репозиторием будет являться либо doc, либо ports, либо src в зависимости от полученных вами коммиттерских привилегий. -* Некоторые коммиттеры добавляют информацию о своем местоположении в файл [.filename]#ports/astro/xearth/files/freebsd.committers.markers#. -* Некоторые добавляют данные о дне своего рождения в файл [.filename]#src/usr.bin/calendar/calendars/calendar.freebsd#. -* Представьтесь другим коммиттерам, иначе никто не будет знать, кто вы и чем занимаетесь. От вас не требуется писать подробное резюме или биографию: будут достаточны один-два абзаца о себе и областях FreeBSD, в которых вы планируете работать. Пошлите это письмо в {src-developers-name} - и все! -* Зайдите на машину `hub.FreeBSD.org` и создайте файл [.filename]#/var/forward/user# (замените _user_ на ваше имя пользователя). Этот файл должен содержать адрес электронной почты, на который будет переправляться вся почта на адрес _yourusername_@FreeBSD.org, в том числе сообщения о коммитах и другая почта на адреса {committers-name} и {src-developers-name}. Слишком большие почтовые ящики на машине `hub` могут быть "нечаянно" удалены или обрезаны без предупреждения, так что, чтобы не потерять почту, регулярно читайте ее либо перенаправьте куда-нибудь еще. -+ -Из-за ощутимой загрузки, возникающей на серверах, обрабатывающих списки рассылки, из-за большого количества незапрошенной почты (спама), сервер, принимающий почту для домена FreeBSD.org, производит некоторые основные проверки и на основании их отвергает некоторые письма. На настоящий момент единственным проверяемым параметром является корректность информации DNS для хоста, доставляющего почту, но в будущем список может вырасти. Эти проверки временами обвиняют в том, что они отвергают правильную почту. Если вы хотите отключить проверки для сво его адреса, создайте файл [.filename]#~/.spam_lover# в своей домашней директории на машине `freefall.FreeBSD.org`. -* Если вы были подписаны на {cvs-all}, вам, скорее всего, следует отписаться от него, чтобы не получать дубликатов каждого сообщения о коммитах. +Следующий пример показывает, как переключиться (check out) на ветку `internal/admin` в локальной ветке с именем `admin`: -Все новые коммиттеры первоначально работают под руководством ментора. Ваш ментор отвечает за обучение вас правилам и соглашениям, принятым в проекте, и помогает вам сделать первые шаги в среде коммиттеров. Он(а) также персонально отвечает за ваши действия в этот начальный период. До тех пор, пока ваш ментор не решит (и не анонсирует это посредством форсированного коммита файла [.filename]#access#), что вы достаточно освоились и готовы работать самостоятельно, перед любым коммитом вы должны получить одобрение (approval) ментора и указать это в журнально м сообщении коммита строкой `Approved by:`. +[source, shell] +.... +% git config --add remote.freebsd.fetch '+refs/internal/*:refs/internal/*' +% git fetch +% git checkout -b admin internal/admin +.... +В качестве альтернативы вы можете добавить рабочее дерево для ветки `admin`: -Все коммиты в дерево [.filename]#src# сначала должны производиться в ветвь FreeBSD-CURRENT и лишь затем интегрироваться в FreeBSD-STABLE. Никакие серьезные изменения, новые возможности или рискованные модификации не должны производиться напрямую в ветви FreeBSD-STABLE. +[source, shell] +.... +git worktree add -b admin ../${repo}-admin internal/admin +.... -[[pref-license]] -== Предпочтительная лицензия для новых файлов +Для просмотра ветки `internal/admin` в веб-интерфейсе: `https://cgit.freebsd.org/${repo}/log/?h=internal/admin` -В настоящее время Проект FreeBSD считает предпочтительной формой лицензии на исходные тексты следующий текст: +Для отправки (push) укажите полную спецификацию ссылки: -[.programlisting] +[source, shell] +.... +git push freebsd HEAD:refs/internal/admin .... -/*- -* Copyright (c) [year] [your name] -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -* -* [id for your version control system, if any] -*/ -.... - -Проект FreeBSD крайне не рекомендует так называемый "третий пункт", или "пункт о рекламе" в лицензии на новый исходный код. В связи с большим количеством участников проекта FreeBSD, выполнение этого пункта большинством коммерческих производителей все более затруднительно. Если ваш код в дереве исходников содержит "пункт о рекламе", рассмотрите возможность его удаления. На самом деле, рассмотрите возможность перехода на приведенную лицензию. - -Проект FreeBSD не рекомендует использование полностью новых лицензий или вариаций стандартных лицензий. Новые лицензии перед использованием в репозитории проекта требуют утверждения группой mailto:core@FreeBSD.org[core@FreeBSD.org]. Большое число различных лицензий затрудняет использование кода, в основном из-за ненамеренных неверных выводов из плохо сформулированных формулировок лицензии. - -Политика проекта требует, чтобы код под НЕ-BSD лицензиями располaгался только в определённых местах репозитория, а в некоторых случаях компиляция должна быть условной по умолчанию или вообще отключена. К примеру, ядро GENERIC должно состоять только из лицензий идентичных или в значительной степени схожих с BSD лицензией. Программное обеспечение под лицензиями GPL, APSL, CDDL и др. не должно включаться в состав GENERIC. - -Разработчикам напоминается, что в open source правильное понимание "open" также важно, как правильное понимание "source", ибо некорректное использование интеллектуальной собственности имеет серьезные последствия. Какие-либо вопросы или беспокойства на этот счёт должны быть немедленно вынесены на обсуждение главной команде разработчиков (core team). - -[[developer.relations]] -== Взаимодействие между разработчиками -Если вы работаете над собственным исходным кодом, либо в области, в которой вы уже определены как ответственная персона, вам, скорее всего, не потребуется согласовывать коммит с кем-либо еще из разработчиков. Те же правила действуют, если вы нашли ошибку в той части системы, которой явно давно никто не занимается (к нашему стыду, существует несколько таких областей). Если же вы собираетесь модифицировать что-либо активно поддерживаемое (по-хорошему, узнать это можно только исследуя архивы списка рассылки `cvs-committers`), стоит послать предполага мый патч ответственному за этот участок кода, как вы бы поступали, пока не были коммиттером. В случае портов нужно обращаться по адресу, указанному в строке `MAINTAINER` в файле [.filename]#Makefile#. Для других частей репозитория, в случае если вам не очевидно, кто ведет данный участок кода, может помочь исследование вывода команды `cvs log`. `{fenner}` написал отличный скрипт для определения разработчиков, наиболее активно производивших коммиты, выводящий для каждого из указанных файлов имя пользователя вместе с количеством произведенных им коммитов в данный ф айл. Скрипт можно найти ! а машине `freefall` в файле [.filename]#~fenner/bin/whodid#. Если найденная вами персона не отвечает на ваши вопросы или иным образом демонстрирует отсутствие интереса к проблеме, смело производите коммит самостоятельно. +==== Как поддерживать актуальную копию дерева исходных кодов FreeBSD src +[[keeping_current]] +Первый шаг: клонирование дерева. Это загружает всё дерево целиком. Существует два способа загрузки. Большинству пользователей потребуется глубокое клонирование репозитория. Однако бывают случаи, когда может потребоваться поверхностное клонирование. -Если вы по каким-либо причинам не уверены в своих изменениях, предложите их для оценки в списке рассылки `-hackers` перед коммитом. Будет лучше, если вас обругают там и тогда, чем когда предлагаемое изменение уже будет частью репозитория. Если случилось так, что ваш коммит встретил сопротивление, возможно, стоит его откатить (back out) до тех пор, пока не будет достигнут консенсус. Помните - с помощью CVS всегда можно вернуться к предыдущему состоянию. +===== Названия веток +FreeBSD-CURRENT использует ветку `main`. -Не принимайте в штыки мнения других разработчиков, с которыми вы не согласны. Если они предлагают иное решение проблемы чем вы, или даже иначе воспринимают проблему, это не значит, что они глупы, имеют сомнительное происхождение, хотят разрушить вашу работу, очернить ваше доброе имя, или развалить проект FreeBSD. Просто они смотрят на мир под иным углом. Различные взгляды - благо. +`main` — это ветка по умолчанию. -Будьте честны в спорах. Оценивайте свою позицию по заслугам, честно относитесь к ее слабым сторонам и будьте готовы принять другие точки зрения и пути решения. Будьте открыты. +Для FreeBSD-STABLE названия веток включают `stable/12` и `stable/13`. -Будьте терпимы, если вас поправляют. Все мы совершаем ошибки. Если вы ошиблись, извинитесь. Не обвиняйте ни себя, ни, тем более, других в ошибке. Не теряйте времени на смущение или упреки, просто исправьте ошибку и двигайтесь дальше. +Для FreeBSD-RELEASE, названия веток разработки выпусков включают `releng/12.4` и `releng/13.2`. -Спрашивайте и просите о помощи. Предлагайте ваши изменения для рассмотрения коллегам и рассматривайте их изменения. Одним из преимуществ программного обеспечения с открытыми исходными текстами является открытость разработки. Если никто не будет исследовать чужой код, это преимущество исчезнет. +https://www.freebsd.org/releng/[] отображает: -[[gnats]] -== GNATS +* ветки `main` и `stable/⋯` открыты +* ветки `releng/⋯`, каждая из которых замораживается при создании тега релиза. -Для отслеживания ошибок и запросов на изменения проект FreeBSD использует GNATS. Если вы исправили ошибку или внесли изменения, описанные в одном из сообщений об ошибках (PR), не забудьте закрыть это сообщение, используя команду `edit-pr _pr-number_` на машине `freefall`. Хорошо будет, если вы потратите немного времени на поиск и закрытие других PR по этой теме. Вы и сами можете пользоваться man:send-pr[1] для предложения изменений, которые, по вашему мнению, могут потребовать более подробного обсуждения с коллегами. +Примеры: -Более подробно о GNATS можно прочитать по адресам: +* тег https://cgit.freebsd.org/src/tag/?h=release/13.1.0[release/13.1.0] на ветке https://cgit.freebsd.org/src/log/?h=releng/13.1[releng/13.1] +* тег https://cgit.freebsd.org/src/tag/?h=release/13.2.0[release/13.2.0] на ветке https://cgit.freebsd.org/src/log/?h=releng/13.2[releng/13.2]. -* http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html[http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html] -* link:https://www.FreeBSD.org/support/[http://www.FreeBSD.org/support/] -* man:send-pr[1] +===== Репозитории +Пожалуйста, обратитесь к разделу crossref:committers-guide[admin,Административные детали] для получения актуальной информации о том, где взять исходные коды FreeBSD. Значение $URL ниже можно получить с этой страницы. -Вы можете пользоваться локальной копией GNATS, поддерживая ее синхронность при помощи CVSup. При этом вы можете использовать команды GNATS локально, а также пользоваться другими интерфейсами, такими как `tkgnats`, что позволит вам работать с базой сообщений об ошибках без соединения с Интернет. +Примечание: Проект не использует подмодули, так как они плохо подходят для наших рабочих процессов и модели разработки. То, как мы отслеживаем изменения в сторонних приложениях, обсуждается в другом месте и, как правило, мало интересует обычного пользователя. -[.procedure] -.Procedure: Использование локальной копии GNATS -. Если вы еще не поддерживаете зеркало дерева GNATS, добавьте в ваш [.filename]#supfile# строку -+ -[.programlisting] -.... -gnats release=current prefix=/usr -.... -+ -Учтите, что эта строка должна предшествовать любым строкам, содержащим параметр "tag=", поскольку дерево GNATS не находится под управлением CVS и не имеет символьных меток. -+ -После запуска cvsup в каталоге [.filename]#/usr/gnats# будет создана копия дерева GNATS FreeBSD. Вы можете использовать файл _refuse_ для копирования отдельных категорий. Например, если вас интересуют только сообщения категории `docs`, добавьте в файл [.filename]#/usr/local/etc/cvsup/sup/refuse# footnote:[Точный путь к файлу зависит от установок *default base в вашем файле supfile.] строку -+ -[.programlisting] -.... -gnats/[a-ce-z]* -.... -+ -Прочие примеры в этом разделе подразумевают, что вы синхронизируете только категорию `docs`. -. Установите порт GNATS из [.filename]#ports/databases/gnats#. После установки вы обнаружите различные служебные каталоги в дереве [.filename]#$PREFIX/shared/gnats#. -. Создайте символьные ссылки на синхронизированные каталоги GNATS в служебный каталог GNATS: -+ -[source,shell] +===== Полный клон +Полный клон загружает всё дерево целиком, включая всю историю и ветки. Это самый простой способ. Он также позволяет использовать функцию Git `worktree`, чтобы все активные ветки были извлечены в отдельные каталоги, но с единственной копией репозитория. +[source, shell] .... -# cd /usr/local/shared/gnats/gnats-db -# ln -s /usr/gnats/docs +% git clone -o freebsd $URL -b branch [] .... +-- создаст полную копию. `branch` должна быть одной из веток, перечисленных в предыдущем разделе. Если параметр `branch` не указан: будет использоваться ветка по умолчанию (`main`). Если параметр `` не указан: имя нового каталога будет соответствовать имени репозитория ([.filename]#doc#, [.filename]#ports# или [.filename]#src#). -+ -Проделайте эту операцию для всех синхронизируемых категорий. -. Обновите служебный файл GNATS [.filename]#categories#, расположенный в каталоге [.filename]#$PREFIX/shared/gnats/gnats-db/gnats-adm#: -+ -[.programlisting] -.... -# This category is mandatory -pending:Category for faulty PRs:gnats-admin: -# -# FreeBSD categories -# -docs:Documentation Bug:freebsd-doc: -.... -. Запустите [.filename]#$PREFIX/libexec/gnats/gen-index# для создания индекса. Вывод этой команды должен быть перенаправлен в файл [.filename]#$PREFIX/shared/gnats/gnats-db/gnats-adm/index#. Эту операцию можно выполнять периодически при помощи man:cron[8] или запускать man:cvsup[1] из скрипта, который затем сгенерирует новый индекс: -+ -[source,shell] -.... -# /usr/local/libexec/gnats/gen-index \ *** 15200 LINES SKIPPED *** From nobody Thu Sep 18 19:22:36 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cSQWf3bNGz67tS7 for ; Thu, 18 Sep 2025 19:22:38 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cSQWf2ZCLz3Gbv; Thu, 18 Sep 2025 19:22:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758223358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nx59a44lFGgQZJMXyiKu5oJIGA6IWlcRa7a6SPc4Z1I=; b=Ci0m+q+ayPMxVADVWoGZKsSYYCB+rUe+TBjGFxr3sdZglhrSOjPWnC//lDci7P1PHCLVEA NSG5mDpcQ2vle+XzSls+zH4Z+7TxtlmW3k86EFHC/JJ9Q5ZXjw5DIWgUbolWFo4M9DgLfz DeezAFlOYpnC2wbHvQGkaG7AC8DoV7i9Cif9WlS2/VNpSd9mVS4wr4EGg+2g4M9hCyKzqi tj+unpiVf3tvHdOFHvljadyz58Fl6tzL0KH9KJ+uQQBkwmH1r9d2zGRqJkw5XAxuIgXa8C 1255XtbKu8rSjoP8meNu6NsN7dGeeEixsCVF7rMZfJwoa3gS2DgNgJIFWEciOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758223358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nx59a44lFGgQZJMXyiKu5oJIGA6IWlcRa7a6SPc4Z1I=; b=rKqdUOvGFsqV6lmhiyQ1Vsa71H6KjTJjJ/V/+Q89eshfZeF78T1ZdlVf62VrEz74Syl6+b O48cngOdZEUTQOA0mBillqCbcqCnSbVkhFcp5cezxLwNr1TZM/y8zG0QmkBrEoIsxNeYtO I5I5KgKGqMU8eV5QRsufz3S3QJgd0Tti2AaNz2K2VAUmE137oA1XPX2WqIoeuiltLClZPb IgPg2aP8U3YfVmOumbZpvDlp+5+M75Ryz7BZDHQ3j8agEOn6i3LC6wp7n2wxLSi2G3EchQ Mu3cNqDtbEAUYDMlkUQRwQbVqxJsqKiFgPgw3/xfNUR2SUyK1WoZf9QqPCXR7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758223358; a=rsa-sha256; cv=none; b=I1uZnzGAsVIHatBRyNfryr5gfCKmnYqIEAB9K7/7+yAZUtcShtymxrPTB3rsNjlKEDMiJz dnqtB8TS9wZ6bYPeXOsLUxabsWERpgHxiBiQ+r8JgDEH6q8cUktTGAXb07jgUkaS6wkSKn utY55GvHZS62pfqEddHm3cKNt6M/I6h6PguN+AN9UPi9ijHyAXVF8I4MJtWen9P8cDOQsw 8Xbw8qtCaOCg3+75n/iu/V6qD/q8uXuJfBmNF2bhXwyQZjYQnZSt+YON0fN7OEmjxgfXga 1aVbRAggbjp09zhqK7bGRLxvuHRSTSGPwkqcPENK59Gt5hUZvtIaJHB6exUBEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cSQWf1sGgz8fb; Thu, 18 Sep 2025 19:22:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58IJMcH0006046; Thu, 18 Sep 2025 19:22:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58IJMafl006039; Thu, 18 Sep 2025 19:22:36 GMT (envelope-from git) Date: Thu, 18 Sep 2025 19:22:36 GMT Message-Id: <202509181922.58IJMafl006039@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: f12ee9e99a - main - update translation of books/porters-handbook to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f12ee9e99a2c070bcf4965efe40975cb0f47c6ca Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=f12ee9e99a2c070bcf4965efe40975cb0f47c6ca commit f12ee9e99a2c070bcf4965efe40975cb0f47c6ca Author: Vladlen Popolitov AuthorDate: 2025-09-18 19:21:21 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-18 19:21:34 +0000 update translation of books/porters-handbook to Russian Reviewed by: maxim (mentor) and arrowd Approved by: maxim (mentor) and carlavilla Differential Revision: https://reviews.freebsd.org/D52053 --- .../content/ru/books/porters-handbook/_index.adoc | 20 +- .../content/ru/books/porters-handbook/_index.po | 37 + .../content/ru/books/porters-handbook/book.adoc | 17 +- .../content/ru/books/porters-handbook/book.po | 37 + .../ru/books/porters-handbook/flavors/_index.adoc | 359 + .../ru/books/porters-handbook/flavors/_index.po | 801 + .../books/porters-handbook/keeping-up/_index.adoc | 39 +- .../ru/books/porters-handbook/keeping-up/_index.po | 270 + .../books/porters-handbook/makefiles/_index.adoc | 4540 ++- .../ru/books/porters-handbook/makefiles/_index.po | 14066 ++++++++ .../ru/books/porters-handbook/new-port/_index.adoc | 14 +- .../ru/books/porters-handbook/new-port/_index.po | 101 + .../ru/books/porters-handbook/order/_index.adoc | 260 + .../ru/books/porters-handbook/order/_index.po | 780 + .../books/porters-handbook/pkg-files/_index.adoc | 228 +- .../ru/books/porters-handbook/pkg-files/_index.po | 873 + .../ru/books/porters-handbook/plist/_index.adoc | 548 +- .../ru/books/porters-handbook/plist/_index.po | 1731 + .../porters-handbook/porting-dads/_index.adoc | 214 +- .../books/porters-handbook/porting-dads/_index.po | 1473 + .../porters-handbook/porting-samplem/_index.adoc | 138 +- .../porters-handbook/porting-samplem/_index.po | 412 + .../books/porters-handbook/porting-why/_index.adoc | 10 +- .../books/porters-handbook/porting-why/_index.po | 61 + .../porters-handbook/quick-porting/_index.adoc | 166 +- .../books/porters-handbook/quick-porting/_index.po | 767 + .../ru/books/porters-handbook/security/_index.adoc | 158 +- .../ru/books/porters-handbook/security/_index.po | 858 + .../porters-handbook/slow-porting/_index.adoc | 173 +- .../books/porters-handbook/slow-porting/_index.po | 1017 + .../ru/books/porters-handbook/special/_index.adoc | 4512 ++- .../ru/books/porters-handbook/special/_index.po | 14978 ++++++++ .../ru/books/porters-handbook/testing/_index.adoc | 460 +- .../ru/books/porters-handbook/testing/_index.po | 1685 + .../books/porters-handbook/upgrading/_index.adoc | 181 +- .../ru/books/porters-handbook/upgrading/_index.po | 688 + .../ru/books/porters-handbook/uses/_index.adoc | 2185 +- .../ru/books/porters-handbook/uses/_index.po | 9971 ++++++ .../ru/books/porters-handbook/versions/_index.adoc | 6184 ++-- .../ru/books/porters-handbook/versions/_index.po | 33861 +++++++++++++++++++ 40 files changed, 99021 insertions(+), 5852 deletions(-) diff --git a/documentation/content/ru/books/porters-handbook/_index.adoc b/documentation/content/ru/books/porters-handbook/_index.adoc index 5b066cb5b0..0446d79b28 100644 --- a/documentation/content/ru/books/porters-handbook/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/_index.adoc @@ -1,15 +1,19 @@ --- -title: Руководство FreeBSD по созданию портов -authors: - - author: The FreeBSD Documentation Project -copyright: 2000-2020 The FreeBSD Documentation Project -trademarks: ["freebsd", "sun", "unix", "general"] -next: books/porters-handbook/porting-why add_single_page_link: true +authors: + - + author: 'The FreeBSD Documentation Project' +bookOrder: 15 +copyright: '2000-2023 The FreeBSD Documentation Project' +description: 'Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение' +next: books/porters-handbook/porting-why +params: + path: /books/porters-handbook/ showBookMenu: true +tags: "[\"FreeBSD Porter's Handbook\", \"Porting\", \"FreeBSD Ports Collection\"]" +title: 'Руководство FreeBSD по созданию портов' +trademarks: ["freebsd", "sun", "unix", "general"] weight: 0 -params: - path: "/books/porters-handbook/" --- = Руководство FreeBSD по созданию портов diff --git a/documentation/content/ru/books/porters-handbook/_index.po b/documentation/content/ru/books/porters-handbook/_index.po new file mode 100644 index 0000000000..1aa07698c1 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/_index.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-18 22:05+0300\n" +"PO-Revision-Date: 2025-07-12 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/_index.adoc:1 +#, no-wrap +msgid "Essential reading if you plan on providing a port of a third party piece of software" +msgstr "Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/_index.adoc:1 +#: documentation/content/en/books/porters-handbook/_index.adoc:18 +#, no-wrap +msgid "FreeBSD Porter's Handbook" +msgstr "Руководство FreeBSD по созданию портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/_index.adoc:49 +msgid "'''" +msgstr "'''" diff --git a/documentation/content/ru/books/porters-handbook/book.adoc b/documentation/content/ru/books/porters-handbook/book.adoc index 73c6b67672..84bedca43a 100644 --- a/documentation/content/ru/books/porters-handbook/book.adoc +++ b/documentation/content/ru/books/porters-handbook/book.adoc @@ -1,13 +1,16 @@ --- -title: Руководство FreeBSD по созданию портов -authors: - - author: The FreeBSD Documentation Project -copyright: 2000-2020 The FreeBSD Documentation Project -trademarks: ["freebsd", "sun", "unix", "general"] add_split_page_link: true +authors: + - + author: 'The FreeBSD Documentation Project' +copyright: '2000-2023 The FreeBSD Documentation Project' +description: 'Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение' +tags: "[\"FreeBSD Porter's Handbook\", \"Porting\", \"FreeBSD Ports Collection\"]" +title: 'Руководство FreeBSD по созданию портов' +trademarks: ["freebsd", "sun", "unix", "general"] --- -= FreeBSD Porter's Handbook += Руководство FreeBSD по созданию портов :doctype: book :toc: macro :toclevels: 2 @@ -52,6 +55,7 @@ include::{chapters-path}quick-porting/_index.adoc[leveloffset=+1] include::{chapters-path}slow-porting/_index.adoc[leveloffset=+1] include::{chapters-path}makefiles/_index.adoc[leveloffset=+1] include::{chapters-path}special/_index.adoc[leveloffset=+1] +include::{chapters-path}flavors/_index.adoc[leveloffset=+1] include::{chapters-path}plist/_index.adoc[leveloffset=+1] include::{chapters-path}pkg-files/_index.adoc[leveloffset=+1] include::{chapters-path}testing/_index.adoc[leveloffset=+1] @@ -59,6 +63,7 @@ include::{chapters-path}upgrading/_index.adoc[leveloffset=+1] include::{chapters-path}security/_index.adoc[leveloffset=+1] include::{chapters-path}porting-dads/_index.adoc[leveloffset=+1] include::{chapters-path}porting-samplem/_index.adoc[leveloffset=+1] +include::{chapters-path}order/_index.adoc[leveloffset=+1] include::{chapters-path}keeping-up/_index.adoc[leveloffset=+1] include::{chapters-path}uses/_index.adoc[leveloffset=+1] include::{chapters-path}versions/_index.adoc[leveloffset=+1] diff --git a/documentation/content/ru/books/porters-handbook/book.po b/documentation/content/ru/books/porters-handbook/book.po new file mode 100644 index 0000000000..2994c7daaa --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/book.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-18 22:05+0300\n" +"PO-Revision-Date: 2025-07-12 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/book.adoc:1 +#, no-wrap +msgid "Essential reading if you plan on providing a port of a third party piece of software" +msgstr "Обязательно к прочтению, если вы планируете портировать стороннее программное обеспечение" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/book.adoc:1 +#: documentation/content/en/books/porters-handbook/book.adoc:12 +#, no-wrap +msgid "FreeBSD Porter's Handbook" +msgstr "Руководство FreeBSD по созданию портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/book.adoc:48 +msgid "'''" +msgstr "'''" diff --git a/documentation/content/ru/books/porters-handbook/flavors/_index.adoc b/documentation/content/ru/books/porters-handbook/flavors/_index.adoc new file mode 100644 index 0000000000..f69bf3938d --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/flavors/_index.adoc @@ -0,0 +1,359 @@ +--- +description: 'Флейворы — это способ создания нескольких вариаций порта' +next: books/porters-handbook/plist +params: + path: /books/porters-handbook/flavors/ +prev: books/porters-handbook/special +showBookMenu: true +tags: ["Ports", "Flavors", "introduction", "how-to", "guide"] +title: 'Глава 7. Флейворы' +weight: 7 +--- + +[[flavors]] += Флейворы +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 7 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/porters-handbook/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../../images/{images-path} +endif::[] +ifndef::book[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +toc::[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +toc::[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[[flavors-intro]] +== Введение в флейворы (Flavors) + +Флейворы (Flavors) — это способ создания нескольких вариаций порта. Порт собирается несколько раз с различными вариациями. + +Например, порт может иметь обычную версию с множеством функций и значительным количеством зависимостей, а также облегчённую "lite"-версию только с базовыми функциями и минимальными зависимостями. + +Еще одним примером может быть порт с вариантом GTK и вариантом QT, в зависимости от используемого набора инструментов. + +[[flavors-using]] +== Использование FLAVORS + +Чтобы объявить порт с несколькими флейворами, добавьте `FLAVORS` в его [.filename]#Makefile#. Первый вариант в `FLAVORS` является вариантом по умолчанию. + +[TIP] +==== +Это может помочь упростить логику [.filename]#Makefile#, также определив `FLAVOR` как: + +[.programlisting] +.... +FLAVOR?= ${FLAVORS:[1]} +.... +==== + +[IMPORTANT] +==== +Чтобы отличать флейворы от опций, которые всегда обозначаются заглавными буквами, названия флейворов могут содержать _только_ строчные буквы, цифры и символ подчёркивания `_`. +==== + +[[flavors-using-ex1]] +.Основы использования флейворов +[example] +==== +Если порт имеет "облегченный" подчиненный порт (lite slave port), подчиненный порт можно удалить, а порт преобразовать во флейворы с помощью: + +[.programlisting] +.... +FLAVORS= default lite +lite_PKGNAMESUFFIX= -lite +[...] +.if ${FLAVOR:U} != lite +[enable non lite features] +.endif +.... + +==== + +[[flavors-using-ex2]] +.Еще один пример базового использования флейворов +[example] +==== +Если порт имеет подчиненный порт `-nox11`, подчиненный порт можно удалить, а порт преобразовать в флейворы с помощью: + +[.programlisting] +.... +FLAVORS= x11 nox11 +FLAVOR?= ${FLAVORS:[1]} +nox11_PKGNAMESUFFIX= -nox11 +[...] +.if ${FLAVOR} == x11 +[enable x11 features] +.endif +.... + +==== + +[[flavors-using-ex3]] +.Использование флейворов в более сложных примерах +[example] +==== +Вот слегка отредактированный отрывок из того, что присутствует в пакете package:devel/libpeas[], порте, который использует crossref:flavors[flavors-auto-python,флейворы Python]. При стандартных версиях Python 2 и 3, а именно 2.7 и 3.6, он автоматически получит `FLAVORS=py27 py36` + +[.programlisting] +.... +USES= gnome python +USE_PYTHON= flavors + +.if ${FLAVOR:Upy27:Mpy2*} +USE_GNOME= pygobject3 + +CONFIGURE_ARGS+= --enable-python2 --disable-python3 + +BUILD_WRKSRC= ${WRKSRC}/loaders/python +INSTALL_WRKSRC= ${WRKSRC}/loaders/python +.else # py3* +USE_GNOME+= py3gobject3 + +CONFIGURE_ARGS+= --disable-python2 --enable-python3 \ + ac_cv_path_PYTHON3_CONFIG=${LOCALBASE}/bin/python${PYTHON_VER}-config + +BUILD_WRKSRC= ${WRKSRC}/loaders/python3 +INSTALL_WRKSRC= ${WRKSRC}/loaders/python3 +.endif + +py34_PLIST= ${.CURDIR}/pkg-plist-py3 +py35_PLIST= ${.CURDIR}/pkg-plist-py3 +py36_PLIST= ${.CURDIR}/pkg-plist-py3 +.... + +Этот порт не использует `USE_PYTHON=distutils`, но всё равно требует флейворы Python. Чтобы избежать ошибки в man:make[1] из-за пустого значения `FLAVOR`, используйте `${FLAVOR:U}` в сравнениях строк вместо `${FLAVOR}`. Привязки Gnome Python gobject3 имеют два разных названия: pygobject3 для Python 2 и py3gobject3 для Python 3. Скрипт `configure` должен выполняться в [.filename]#${WRKSRC}#, но нас интересует только сборка и установка частей программного обеспечения для Python 2 или Python 3, поэтому установите базовые каталоги сборки и установки соответствующим образом. Подсказка о правильном пути к конфигурационному скрип ту Python 3. Список упаковки отличается при сборке с Python 3. Поскольку есть три возможные версии Python 3, установите `PLIST` для всех трёх с помощью crossref:flavors[flavors-using-helpers, вспомогательные инструменты флейворов]. +==== + +[[flavors-using-helpers]] +=== Вспомогательные инструменты для флейворов (Flavors Helpers) + +Чтобы упростить написание [.filename]#Makefile#, существуют несколько вспомогательных инструментов (помощников) флейворов. + +Этот список помощников установит их переменную: + +* `__flavor___PKGNAMEPREFIX` +* `__flavor___PKGNAMESUFFIX` +* `__flavor___PLIST` +* `__flavor___DESCR` + +Этот список помощников будет добавлен к их переменной: + +* `__flavor___CONFLICTS` +* `__flavor___CONFLICTS_BUILD` +* `__flavor___CONFLICTS_INSTALL` +* `__flavor___PKG_DEPENDS` +* `__flavor___EXTRACT_DEPENDS` +* `__flavor___PATCH_DEPENDS` +* `__flavor___FETCH_DEPENDS` +* `__flavor___BUILD_DEPENDS` +* `__flavor___LIB_DEPENDS` +* `__flavor___RUN_DEPENDS` +* `__flavor___TEST_DEPENDS` + +[[flavors-helpers-ex1]] +.Специфичный для флейвора `PKGNAME` +[example] +==== +Поскольку все пакеты должны иметь уникальные имена, флейворы должны изменять их, используя `__flavor___PKGNAMEPREFIX` и `__flavor___PKGNAMESUFFIX`, что упрощает задачу: + +[.programlisting] +.... +FLAVORS= normal lite +lite_PKGNAMESUFFIX= -lite +.... + +==== + +[[flavors-auto-php]] +== `USES=php` и флейворы + +При использовании crossref:uses[uses-php,`php`] с одним из этих аргументов: `phpize`, `ext`, `zend` или `pecl`, порт автоматически получит заполненный параметр `FLAVORS` с версиями PHP, которые он поддерживает. + +[[flavors-auto-php-ex1]] +.Простое расширение `USES=php` +[example] +==== +Это создаст пакет для всех поддерживаемых версий: + +[.programlisting] +.... +PORTNAME= some-ext +PORTVERSION= 0.0.1 +PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX} + +USES= php:ext +.... + +Это создаст пакет для всех поддерживаемых версий, кроме 7.2: + +[.programlisting] +.... +PORTNAME= some-ext +PORTVERSION= 0.0.1 +PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX} + +USES= php:ext +IGNORE_WITH_PHP= 72 +.... + +==== + +[[flavors-auto-php-app]] +=== Версии PHP с приложениями PHP + +Приложения PHP также могут быть созданы с использованием флейворов. + +Это позволяет создавать пакеты для всех версий PHP, чтобы пользователи могли использовать их с любой необходимой версией на своих серверах. + +[IMPORTANT] +==== +Приложения PHP, которые используют флейворы, _обязаны_ добавлять `PHP_PKGNAMESUFFIX` к именам своих пакетов. +==== + +[[flavors-auto-php-app-ex1]] +.Добавление флейворов в PHP-приложения +[example] +==== +Добавление поддержки флейворов в PHP-приложение просто: + +[.programlisting] +.... +PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX} + +USES= php:flavors +.... + +==== + +[TIP] +==== +При добавлении зависимости к порту с вариантом PHP используйте `@${PHP_FLAVOR}`. _Никогда_ не используйте `FLAVOR` напрямую. +==== + +[[flavors-auto-python]] +== `USES=python` и флейворы + +При использовании crossref:uses[uses-python,`python`] и `USE_PYTHON=distutils` порт автоматически получит заполненные `FLAVORS` с версиями Python, которые он поддерживает. + +[[flavors-auto-python-ex1]] +.Простой `USES=python` +[example] +==== +Предполагая, что поддерживаемые версии Python — 2.7, 3.4, 3.5 и 3.6, а версии Python 2 и 3 по умолчанию — 2.7 и 3.6, порт с параметрами: + +[.programlisting] +.... +USES= python +USE_PYTHON= distutils +.... + +получит следующие флейворы: `py27` и `py36`. + +[.programlisting] +.... +USES= python +USE_PYTHON= distutils allflavors +.... + +получит следующие флейворы: `py27`, `py34`, `py35` и `py36`. +==== + +[[flavors-auto-python-ex2]] +.`USES=python` с требованиями к версии +[example] +==== +Предполагая, что поддерживаемые версии Python — 2.7, 3.4, 3.5 и 3.6, а версии Python 2 и 3 по умолчанию — 2.7 и 3.6, порт с параметрами: + +[.programlisting] +.... +USES= python:-3.5 +USE_PYTHON= distutils +.... + +получит следующие флейвор: `py27`. + +[.programlisting] +.... +USES= python:-3.5 +USE_PYTHON= distutils allflavors +.... + +получит следующие флейворы: `py27`, `py34` и `py35`. + +[.programlisting] +.... +USES= python:3.4+ +USE_PYTHON= distutils +.... + +получит следующий флейвор: `py36`. + +[.programlisting] +.... +USES= python:3.4+ +USE_PYTHON= distutils allflavors +.... + +получит следующие флейворы: `py34`, `py35` и `py36`. +==== + +`PY_FLAVOR` доступен для указания правильной версии модулей Python. Все зависимости от вариантов портов Python должны использовать `PY_FLAVOR`, а не `FLAVOR` напрямую. + +[[flavors-auto-python-ex3]] +.Для порта, не использующего `distutils` +[example] +==== +Если версия Python 3 по умолчанию — 3.6, следующая команда установит `PY_FLAVOR` в значение `py36`: + +[.programlisting] +.... +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mutagen>0:audio/py-mutagen@${PY_FLAVOR} + +USES= python:3.5+ +.... + +==== + +[[flavors-auto-lua]] +== `USES=lua` и флейворы + +При использовании crossref:uses[uses-lua,`lua:module`] или crossref:uses[uses-lua,`lua:flavors`] порт автоматически получит заполненный параметр `FLAVORS` с версиями Lua, которые он поддерживает. Однако предполагается, что обычные приложения (а не модули Lua) не должны использовать эту возможность; большинству приложений, которые встраивают или иным образом используют Lua, следует просто указывать `USES=lua`. + +`LUA_FLAVOR` доступен (и должен использоваться) для зависимости от правильной версии зависимостей, независимо от того, использовал ли порт параметры `flavors` или `module`. + +См. crossref:special[using-lua,Использование Lua] для получения дополнительной информации. + +[[flavors-auto-guile]] +== `USES=guile` и флейворы + +При использовании crossref:uses[uses-guile,`guile:flavors`] порт автоматически получит заполненное поле `FLAVORS` с версиями Guile, которые он поддерживает. Однако не предполагается, что обычные приложения должны использовать эту возможность; она в первую очередь предназначена для библиотек и расширений, таких как `guile-lib` или `guile-cairo`. + +`GUILE_FLAVOR` доступен (и должен использоваться) для зависимости от правильной версии зависимостей с флейворами, независимо от того, использовал ли порт параметр `flavors` или нет. + +См. crossref:special[using-guile,Использование Guile] для получения дополнительной информации. diff --git a/documentation/content/ru/books/porters-handbook/flavors/_index.po b/documentation/content/ru/books/porters-handbook/flavors/_index.po new file mode 100644 index 0000000000..9e9ed2fcb6 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/flavors/_index.po @@ -0,0 +1,801 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-18 22:05+0300\n" +"PO-Revision-Date: 2025-07-13 19:10+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:1 +#, no-wrap +msgid "Flavors are a way to have multiple variations of a port" +msgstr "Флейворы — это способ создания нескольких вариаций порта" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:1 +#, no-wrap +msgid "Chapter 7. Flavors" +msgstr "Глава 7. Флейворы" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:14 +#, no-wrap +msgid "Flavors" +msgstr "Флейворы" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:52 +#, no-wrap +msgid "An Introduction to Flavors" +msgstr "Введение в флейворы (Flavors)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:56 +msgid "" +"Flavors are a way to have multiple variations of a port. The port is built " +"multiple times, with variations." +msgstr "" +"Флейворы (Flavors) — это способ создания нескольких вариаций порта. Порт " +"собирается несколько раз с различными вариациями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:58 +msgid "" +"For example, a port can have a normal version with many features and quite a " +"few dependencies, and a light \"lite\" version with only basic features and " +"minimal dependencies." +msgstr "" +"Например, порт может иметь обычную версию с множеством функций и " +"значительным количеством зависимостей, а также облегчённую \"lite\"-версию " +"только с базовыми функциями и минимальными зависимостями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:60 +msgid "" +"Another example could be, a port can have a GTK flavor and a QT flavor, " +"depending on which toolkit it uses." +msgstr "" +"Еще одним примером может быть порт с вариантом GTK и вариантом QT, в " +"зависимости от используемого набора инструментов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:62 +#, no-wrap +msgid "Using FLAVORS" +msgstr "Использование FLAVORS" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:66 +msgid "" +"To declare a port having multiple flavors, add `FLAVORS` to its " +"[.filename]#Makefile#. The first flavor in `FLAVORS` is the default flavor." +msgstr "" +"Чтобы объявить порт с несколькими флейворами, добавьте `FLAVORS` в его " +"[.filename]#Makefile#. Первый вариант в `FLAVORS` является вариантом по " +"умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:70 +msgid "" +"It can help simplify the logic of the [.filename]#Makefile# to also define " +"`FLAVOR` as:" +msgstr "" +"Это может помочь упростить логику [.filename]#Makefile#, также определив " +"`FLAVOR` как:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:74 +#, no-wrap +msgid "FLAVOR?=\t${FLAVORS:[1]}\n" +msgstr "FLAVOR?=\t${FLAVORS:[1]}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:80 +msgid "" +"To distinguish flavors from options, which are always uppercase letters, " +"flavor names can _only_ contain lowercase letters, numbers, and the " +"underscore `_`." +msgstr "" +"Чтобы отличать флейворы от опций, которые всегда обозначаются заглавными " +"буквами, названия флейворов могут содержать _только_ строчные буквы, цифры и " +"символ подчёркивания `_`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:83 +#, no-wrap +msgid "Basic Flavors Usage" +msgstr "Основы использования флейворов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:87 +msgid "" +"If a port has a \"lite\" slave port, the slave port can be removed, and the " +"port can be converted to flavors with:" +msgstr "" +"Если порт имеет \"облегченный\" подчиненный порт (lite slave port), " +"подчиненный порт можно удалить, а порт преобразовать во флейворы с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:96 +#, no-wrap +msgid "" +"FLAVORS=\tdefault lite\n" +"lite_PKGNAMESUFFIX=\t-lite\n" +"[...]\n" +".if ${FLAVOR:U} != lite\n" +"[enable non lite features]\n" +".endif\n" +msgstr "" +"FLAVORS=\tdefault lite\n" +"lite_PKGNAMESUFFIX=\t-lite\n" +"[...]\n" +".if ${FLAVOR:U} != lite\n" +"[enable non lite features]\n" +".endif\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:101 +#, no-wrap +msgid "Another Basic Flavors Usage" +msgstr "Еще один пример базового использования флейворов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:105 +msgid "" +"If a port has a `-nox11` slave port, the slave port can be removed, and the " +"port can be converted to flavors with:" +msgstr "" +"Если порт имеет подчиненный порт `-nox11`, подчиненный порт можно удалить, а " +"порт преобразовать в флейворы с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:115 +#, no-wrap +msgid "" +"FLAVORS=\tx11 nox11\n" +"FLAVOR?=\t${FLAVORS:[1]}\n" +"nox11_PKGNAMESUFFIX=\t-nox11\n" +"[...]\n" +".if ${FLAVOR} == x11\n" +"[enable x11 features]\n" +".endif\n" +msgstr "" +"FLAVORS=\tx11 nox11\n" +"FLAVOR?=\t${FLAVORS:[1]}\n" +"nox11_PKGNAMESUFFIX=\t-nox11\n" +"[...]\n" +".if ${FLAVOR} == x11\n" +"[enable x11 features]\n" +".endif\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:120 +#, no-wrap +msgid "More Complex Flavors Usage" +msgstr "Использование флейворов в более сложных примерах" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:126 +msgid "" +"Here is a slightly edited excerpt of what is present in package:devel/" +"libpeas[], a port that uses the crossref:flavors[flavors-auto-python,Python " +"flavors]. With the default Python 2 and 3 versions being 2.7 and 3.6, it " +"will automatically get `FLAVORS=py27 py36`" +msgstr "" +"Вот слегка отредактированный отрывок из того, что присутствует в пакете " +"package:devel/libpeas[], порте, который использует crossref:flavors[flavors-" +"auto-python,флейворы Python]. При стандартных версиях Python 2 и 3, а именно " +"2.7 и 3.6, он автоматически получит `FLAVORS=py27 py36`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:131 +#, no-wrap +msgid "" +"USES=\t\tgnome python\n" +"USE_PYTHON=\tflavors \n" +msgstr "" +"USES=\t\tgnome python\n" +"USE_PYTHON=\tflavors \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:134 +#, no-wrap +msgid "" +".if ${FLAVOR:Upy27:Mpy2*} \n" +"USE_GNOME=\tpygobject3 \n" +msgstr "" +".if ${FLAVOR:Upy27:Mpy2*} \n" +"USE_GNOME=\tpygobject3 \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:136 +#, no-wrap +msgid "CONFIGURE_ARGS+=\t--enable-python2 --disable-python3\n" +msgstr "CONFIGURE_ARGS+=\t--enable-python2 --disable-python3\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:141 +#, no-wrap +msgid "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python \n" +".else # py3*\n" +"USE_GNOME+=\tpy3gobject3 \n" +msgstr "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python \n" +".else # py3*\n" +"USE_GNOME+=\tpy3gobject3 \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:144 +#, no-wrap +msgid "" +"CONFIGURE_ARGS+=\t--disable-python2 --enable-python3 \\\n" +"\t\t\tac_cv_path_PYTHON3_CONFIG=${LOCALBASE}/bin/python${PYTHON_VER}-config \n" +msgstr "" +"CONFIGURE_ARGS+=\t--disable-python2 --enable-python3 \\\n" +"\t\t\tac_cv_path_PYTHON3_CONFIG=${LOCALBASE}/bin/python${PYTHON_VER}-config \n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:148 +#, no-wrap +msgid "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +".endif\n" +msgstr "" +"BUILD_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +"INSTALL_WRKSRC=\t${WRKSRC}/loaders/python3 \n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:152 +#, no-wrap +msgid "" +"py34_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py35_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py36_PLIST=\t${.CURDIR}/pkg-plist-py3\n" +msgstr "" +"py34_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py35_PLIST=\t${.CURDIR}/pkg-plist-py3 \n" +"py36_PLIST=\t${.CURDIR}/pkg-plist-py3\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:162 +msgid "" +"This port does not use `USE_PYTHON=distutils` but needs Python flavors " +"anyway. To guard against `FLAVOR` being empty, which would cause a " +"man:make[1] error, use `${FLAVOR:U}` in string comparisons instead of `$" +"{FLAVOR}`. The Gnome Python gobject3 bindings have two different names, one " +"for Python 2, pygobject3 and one for Python 3, py3gobject3. The `configure` " +"script has to run in [.filename]#${WRKSRC}#, but we are only interested in " +"building and installing the Python 2 or Python 3 parts of the software, so " +"set the build and install base directories appropriately. Hint about the " +"correct Python 3 config script path name. The packing list is different " +"when the built with Python 3. As there are three possible Python 3 versions, " +"set `PLIST` for all three using the crossref:flavors[flavors-using-" +"helpers,helper]." +msgstr "" +"Этот порт не использует `USE_PYTHON=distutils`, но всё равно требует " +"флейворы Python. Чтобы избежать ошибки в man:make[1] из-за пустого значения " +"`FLAVOR`, используйте `${FLAVOR:U}` в сравнениях строк вместо `${FLAVOR}`. " +"Привязки Gnome Python gobject3 имеют два разных названия: pygobject3 для " +"Python 2 и py3gobject3 для Python 3. Скрипт `configure` должен выполняться в " +"[.filename]#${WRKSRC}#, но нас интересует только сборка и установка частей " +"программного обеспечения для Python 2 или Python 3, поэтому установите " +"базовые каталоги сборки и установки соответствующим образом. Подсказка о " +"правильном пути к конфигурационному скрипту Python 3. Список упаковки " +"отличается при сборке с Python 3. Поскольку есть три возможные версии Python " +"3, установите `PLIST` для всех трёх с помощью crossref:flavors[flavors-using-" +"helpers, вспомогательные инструменты флейворов]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:165 +#, no-wrap +msgid "Flavors Helpers" +msgstr "Вспомогательные инструменты для флейворов (Flavors Helpers)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:168 +msgid "" +"To make the [.filename]#Makefile# easier to write, a few flavors helpers " +"exist." +msgstr "" +"Чтобы упростить написание [.filename]#Makefile#, существуют несколько " +"вспомогательных инструментов (помощников) флейворов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:170 +msgid "This list of helpers will set their variable:" +msgstr "Этот список помощников установит их переменную:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:172 +msgid "`__flavor___PKGNAMEPREFIX`" +msgstr "`__flavor___PKGNAMEPREFIX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:173 +msgid "`__flavor___PKGNAMESUFFIX`" +msgstr "`__flavor___PKGNAMESUFFIX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:174 +msgid "`__flavor___PLIST`" +msgstr "`__flavor___PLIST`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:175 +msgid "`__flavor___DESCR`" +msgstr "`__flavor___DESCR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:177 +msgid "This list of helpers will append to their variable:" +msgstr "Этот список помощников будет добавлен к их переменной:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:179 +msgid "`__flavor___CONFLICTS`" +msgstr "`__flavor___CONFLICTS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:180 +msgid "`__flavor___CONFLICTS_BUILD`" +msgstr "`__flavor___CONFLICTS_BUILD`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:181 +msgid "`__flavor___CONFLICTS_INSTALL`" +msgstr "`__flavor___CONFLICTS_INSTALL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:182 +msgid "`__flavor___PKG_DEPENDS`" +msgstr "`__flavor___PKG_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:183 +msgid "`__flavor___EXTRACT_DEPENDS`" +msgstr "`__flavor___EXTRACT_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:184 +msgid "`__flavor___PATCH_DEPENDS`" +msgstr "`__flavor___PATCH_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:185 +msgid "`__flavor___FETCH_DEPENDS`" +msgstr "`__flavor___FETCH_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:186 +msgid "`__flavor___BUILD_DEPENDS`" +msgstr "`__flavor___BUILD_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/flavors/_index.adoc:187 +msgid "`__flavor___LIB_DEPENDS`" +msgstr "`__flavor___LIB_DEPENDS`" + +#. type: delimited block = 4 *** 112500 LINES SKIPPED *** From nobody Fri Sep 19 18:43:35 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cT1c80K7rz68Pvt for ; Fri, 19 Sep 2025 18:43:36 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cT1c76ZwBz3Dy3; Fri, 19 Sep 2025 18:43:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758307415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b870/yfslCwmvunNeLdD/yB6mECRPRUWzZSe28i4B4U=; b=yUlQtHCsxqlFacVmJUTYNzM5AR1I/T4T56Xe+pgGcyV459ZerTORBcoI+ENA1we+6cQ/QC ZbmZOeErTw1Cs9XwrPs8OflwHy5LT/N4vpkKVGt0iuhA1s62MzNCYEemayDOPL4s0rC+zq koH8dY7XFG/yxRe2tIMOCkEdWlpv3EUko6m6XTYS06QUC1HLo2vXcGFCVTh1VLT03yd4kb aPs9wdxVgDwlMAdk7r5NMQE2FEnjGMgO8GSD0OXopZiBIPYEJkx3bNvPQR/8uga16MaaAP VBxbCuDMZ0euMbKvCaEfadZnULvWUxknCjBnJBHbDRpveVmDV/wiObS5RjpxSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758307415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b870/yfslCwmvunNeLdD/yB6mECRPRUWzZSe28i4B4U=; b=vkAPkt3Tz4ZMJvxwsdw+zyxjFe4tqZvY1sdj2sZ4Dgoj0BoeEor/W5t9PDHg8YlhxXownY 3HnKb7ly9QYXNyNC/Hp+0w+DTyvhZupJjQ4Eo6WEYGp47rZ8Xse7d3+4FEOIpS9q/dt2Cz 7vfop8vgABm+carkPzVA/gakSNpqG6dxHGyzb5aR52M19bSwNM87DXObEoxpFto1P+kmrh aFN3a9glxy4HE+vlDZABSWCHqqXXmv1TOxvt3izAFlrGjvjktvTctqT7zLdJJ93BjeEezu /kddu2uPgdL8xG1J882xoeCy8+bufll2T2yyLUS6pG1LkpD/2rWCL84za6kKYQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758307415; a=rsa-sha256; cv=none; b=BUqlKXVqB2q/wfSPQ8MW8XaO/H++irAgL2VNaqspLwJQO56qzHIL4kHbzCdEQPg/stubdG aO/wE4Zv6yU9qUGrzWK9kYISocnpGtgAVbrUGGJzKGQEZ/sD8sPz6QVKzZ2305El+Eh6ZM EfflCMZxDGA3nv+dn5SVu2kAMRGo9c4MMjP43HsgGjKV05xY3HIYUT8Yv0FlqAQEXQKdIa iXbey4UQcaR6+j1G/t+ddTG2hcUxLO5mXLg8mPhjNLZ73jVc/vOekqCG8pL2uWT7PPfPD5 JRrKaH04ya7EX/1xatMzy/GiHSUa+0Enr2zgRG6f4eGib0MBwe309BoNJB8m0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cT1c75tPQz181s; Fri, 19 Sep 2025 18:43:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58JIhZga038586; Fri, 19 Sep 2025 18:43:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58JIhZYi038583; Fri, 19 Sep 2025 18:43:35 GMT (envelope-from git) Date: Fri, 19 Sep 2025 18:43:35 GMT Message-Id: <202509191843.58JIhZYi038583@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Alexander Ziaee Subject: git: f46b7dafc6 - main - where: Bump 15.0-CURRENT to ALPHA List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f46b7dafc658eb53a16e3aa45f5e9c932e139a41 Auto-Submitted: auto-generated The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/doc/commit/?id=f46b7dafc658eb53a16e3aa45f5e9c932e139a41 commit f46b7dafc658eb53a16e3aa45f5e9c932e139a41 Author: Alexander Ziaee AuthorDate: 2025-09-19 18:38:09 +0000 Commit: Alexander Ziaee CommitDate: 2025-09-19 18:38:25 +0000 where: Bump 15.0-CURRENT to ALPHA --- website/content/en/where.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/en/where.adoc b/website/content/en/where.adoc index dc4dac809e..9c4f91f387 100644 --- a/website/content/en/where.adoc +++ b/website/content/en/where.adoc @@ -228,7 +228,7 @@ The word `CURRENT` is sometimes a source of confusion: See link:../snapshots/[FreeBSD Snapshot Releases]. -=== FreeBSD {rel-head}-CURRENT +=== FreeBSD {rel-head}-ALPHA Installer and SD card images are available for link:{url-snapshot}/amd64/amd64/ISO-IMAGES/{rel-head}/[amd64], link:{url-snapshot}/i386/i386/ISO-IMAGES/{rel-head}/[i386], link:{url-snapshot}/powerpc/powerpc/ISO-IMAGES/{rel-head}/[powerpc], link:{url-snapshot}/powerpc/powerpc64/ISO-IMAGES/{rel-head}/[powerpc64], link:{url-snapshot}/powerpc/powerpc64le/ISO-IMAGES/{rel-head}/[powerpc64le], link:{url-snapshot}/powerpc/powerpcspe/ISO-IMAGES/{rel-head}/[powerpcspe], link:{url-snapshot}/arm/armv7/ISO-IMAGES/{rel-head}/[armv7], link:{url-snapshot}/arm64/aarch64/ISO-IMAGES/{rel-head}/[aarch64], and link:{url-snapshot}/riscv/riscv64/ISO-IMAGES/{rel-head}/[riscv64]. From nobody Fri Sep 19 19:52:25 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cT37Y6v4tz67Vlb for ; Fri, 19 Sep 2025 19:52: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cT37Y29yLz3QZk; Fri, 19 Sep 2025 19:52:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758311545; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R/xC7FAsJzjRJxpkYsj55JLbcc37jejLL7o+5h5LaYE=; b=sohOEa7cDeYEiFylTQEkpVdJPTAE6ycvFQEhkvfdrAmNmqFtKrSI+1UK6rDcsQoaxOKsc0 yy+8xw+kuaBpKoXoNhMbpwlg9FcDrq6qnW/rp6fGjEmVu1t54DRQFhphwTA863rQ7u78+F r8WDk4n3PV4ArP2PbDKwc304EVADGoz3K/p7wTvL6vd+ly3QwV8NgrNTrqeKG8h2ICd/zv gjX5tcWibcIhP2G733PqcLJudPwMuyleWu9OFzQN/WGZxOLRG2JjVaJrYkAQaXWGxVTeYK B1QI1DEYxzyzaY7Dl84mrYytjHaYem07ZlQLGdlGy4o3jKk0PtEY55hO9/mGiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758311545; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R/xC7FAsJzjRJxpkYsj55JLbcc37jejLL7o+5h5LaYE=; b=ygxg0tqwn9DtdieKy4hXaXAl8TgGiuSn3qcJnUlwN1LXKiFU60Ui2A6Z2K0yhsYZn4KP9Q onbKdjG31/B+Hut+2ZlyG99b3z9GwUk2jqZXsbtzguPEC/KrTo+Xdqv6KGHKxDSqPlJSjn Q4Ixn+bxB6W2D1WMuQdLdRdERN3hf4u1IkW3gNcZvLDnEV7FE9Cxky9UZb9RKe18luRPUB OOX9fCRawtadotaQONFXcxZitulTOhPm8nGiyvKfjauXpKv0AIF0A8snPoF5yqyfVlI/jV 4FAJZoxRMRpVR+Ny46op4Ce5ppJ+cunFnkQQX9SceLj5BcHTrUhD6mj/utskqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758311545; a=rsa-sha256; cv=none; b=MQsMs9rJxEqYdvuUvY1LGgCEKrhVGt7qLe3Xe2JsNQI4SW5yxCA1c784tAqJdzUq93d1G8 AvROLVgl9xZK+GIwyZN/yzl2bitKsF3jzR+VZ8XSugyNpvNnF6VvBslRFyjEaiB3q9++tH 9RGO3XJeJzgrf9x5j4eGe2fp8/YrcU7kXzCTD76u3S9K8kv49B9Hr2//uCRukUDFWk+ZgG pmwaPfb4aYdNbjINQQ7IGENPoe16ApsWsIK3rmL61mlkLy6Bf5ZVUvGRX9elwfJBP3BIlO QJCKlcPL0KxKUEsE7EEVGW4a/vStZNym652JmKMTUcoF7KOwl6ArA+m+V8CbDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cT37Y1lqkz19nb; Fri, 19 Sep 2025 19:52:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58JJqPJo069907; Fri, 19 Sep 2025 19:52:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58JJqPKj069904; Fri, 19 Sep 2025 19:52:25 GMT (envelope-from git) Date: Fri, 19 Sep 2025 19:52:25 GMT Message-Id: <202509191952.58JJqPKj069904@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Joseph Mingrone Subject: git: 7bb88d39ed - main - press: Add recent Foundation articles List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrm X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7bb88d39ed27f48981e35721c103da8b1c6bbf3c Auto-Submitted: auto-generated The branch main has been updated by jrm: URL: https://cgit.FreeBSD.org/doc/commit/?id=7bb88d39ed27f48981e35721c103da8b1c6bbf3c commit 7bb88d39ed27f48981e35721c103da8b1c6bbf3c Author: Mark Phillips AuthorDate: 2025-09-19 19:44:00 +0000 Commit: Joseph Mingrone CommitDate: 2025-09-19 19:51:10 +0000 press: Add recent Foundation articles Reviewed by: bcr, jrm Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D52603 --- website/data/en/press/press.toml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/website/data/en/press/press.toml b/website/data/en/press/press.toml index 36a892a306..08313f1482 100644 --- a/website/data/en/press/press.toml +++ b/website/data/en/press/press.toml @@ -1,4 +1,40 @@ # Sort the entries by date +[[press]] +name = "FreeBSD Jails are Simple and Easy" +url = "https://freebsdfoundation.org/blog/freebsd-jails-are-simple-and-easy/" +siteName = "FreeBSD Foundation Blog" +siteUrl = "https://freebsdfoundation.org/blog/" +date = "2025-08-25" +author = "FreeBSD Foundation" +description = "Jails. The lightweight answer to containerisation" + +[[press]] +name = "From Minecraft to Markets: Java Hiding in Plain Sight" +url = "https://freebsdfoundation.org/blog/from-minecraft-to-markets-java-hiding-in-plain-sight/" +siteName = "FreeBSD Foundation Blog" +siteUrl = "https://freebsdfoundation.org/blog/" +date = "2025-07-22" +author = "FreeBSD Foundation" +description = "Did you know Java was used here and here?" + +[[press]] +name = "An Introduction to FreeBSD’s Periodic System" +url = "https://freebsdfoundation.org/blog/an-introduction-to-freebsds-periodic-system/" +siteName = "FreeBSD Foundation Blog" +siteUrl = "https://freebsdfoundation.org/blog/" +date = "2025-07-08" +author = "FreeBSD Foundation" +description = "The FreeBSD periodic utility is a built-in system to schedule and run regular maintenance jobs in the form of shell scripts" + +[[press]] +name = "How To Install and Configure Galene Video Meeting Server" +url = "https://freebsdfoundation.org/blog/how-to-install-and-configure-the-galene-video-meeting-server-on-freebsd/" +siteName = "FreeBSD Foundation Blog" +siteUrl = "https://freebsdfoundation.org/blog/" +date = "2025-07-07" +author = "FreeBSD Foundation" +description = "https://freebsdfoundation.org/blog/how-to-install-and-configure-the-galene-video-meeting-server-on-freebsd/" + [[press]] name = "FreeBSD Foundation Welcomes New Board Member: John Baldwin" url = "https://freebsdfoundation.org/blog/freebsd-foundation-welcomes-new-board-member-john-baldwin/" From nobody Fri Sep 19 22:25:50 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cT6XZ6Xlnz67jfd for ; Fri, 19 Sep 2025 22:25:50 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cT6XZ5ww0z3hM6; Fri, 19 Sep 2025 22:25:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758320750; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UrX7TFkCz1YdZ10NszKSIApZXB/a7Ln38rfRmP4yQmo=; b=gK9iPUR91W8gGKuDm5eCRoAIfEjG6PhF5VNOfDMCKXBLZXIhhOithSx/FeF0EEs8+UonuL X9499QLX/tRFfTNpw7UMViXM97o6oJG/KrEjZOeDpuxxW22+mVR5nAgfSLtcsgz0t17Lc+ NCzU4n9rTLirgWDYdrZJPQI7T0ucSRggxI0N46EKr39L5OxMExfmNwBvM0V/m+pnCHsYQC 7H8THCUERVYRuEIaejSsvk/pL9zOhiDc38aZN1uvoxVFwu4AaW5voYzxtT6lHzCDwDNnVm 2X0mMgMSMxEDTHeycKPJWYCMapm2ZGT4D3XnpIo6dZ1weGIyUA2iFL2/zgFMAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758320750; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UrX7TFkCz1YdZ10NszKSIApZXB/a7Ln38rfRmP4yQmo=; b=LDIUzaI1hYXhzQDgQMqisMUiWmVAy1ovWED7CjJh6EApkL+y1Klabr/OJUlSYIggwnGvNU msV2y3viWS0yv7D4glLi18ola3wYUu+o75eWhkz2P1iEyTb2ee1CWJZ5qx3sRBKq9dIgGL G6D+YDEE/wjcynv58Efvyuu21OJgPjSJlGZ4p0pCArTIPx/zoG6ur8vMK+vPvwc+qJQz3R 4HzXImIINJUE1GueJVdvEX/fGqT5qrMfHWxA3+9sYCM+Nz6x3OIv6/POKHZEwT4pU6aD29 L0rsAbPRl87DkXoRx0ZTMqm3aIsfHBovZIuTj3zVHaTt1hVhOrnJ2AuPvWfxQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758320750; a=rsa-sha256; cv=none; b=TW4bpUlw5u1YhBRYhcvO6LZcFHcghLjgWB5TLTdXBXMdXjGbOrzfRPT0Oe4Cmk89E0h0SZ S8h/3yLg1wdM9QPoWb78iKuTFwYEpea9oaKwfMCY900IuAoLr+KU4p3OlbS+b7W2pftyGp 2SyV56KwbcCO4ssVGM8UBkbVgMYKVOzmtXG3Yz7+PxWBIYCyv8RKew94ki4BDvF9Umqmtq eIic+hfUfT8Zq6hzNk7o9GdVQ9Me6GbefrtJyhneT0yKyv+var+5R9/8Q1b2cAHvcMCStD YYwMDVTYNZi4d5l5jTSVFcS7ZnWrHlyHoOTHltCMxCy91kAVsSVMHiQ97pIDyQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cT6XZ5Tsmz1G3s; Fri, 19 Sep 2025 22:25:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58JMPoUM053267; Fri, 19 Sep 2025 22:25:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58JMPoPo053264; Fri, 19 Sep 2025 22:25:50 GMT (envelope-from git) Date: Fri, 19 Sep 2025 22:25:50 GMT Message-Id: <202509192225.58JMPoPo053264@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: "Danilo G. Baio" Subject: git: e5e303758d - main - internal/machines: Add 16-X machines List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org 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: e5e303758d5279e69d72b82b8fcfb98613524cd7 Auto-Submitted: auto-generated The branch main has been updated by dbaio: URL: https://cgit.FreeBSD.org/doc/commit/?id=e5e303758d5279e69d72b82b8fcfb98613524cd7 commit e5e303758d5279e69d72b82b8fcfb98613524cd7 Author: Danilo G. Baio AuthorDate: 2025-09-19 22:18:22 +0000 Commit: Danilo G. Baio CommitDate: 2025-09-19 22:18:22 +0000 internal/machines: Add 16-X machines --- website/content/en/internal/machines.adoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/website/content/en/internal/machines.adoc b/website/content/en/internal/machines.adoc index 6827e5e568..19e7b64637 100644 --- a/website/content/en/internal/machines.adoc +++ b/website/content/en/internal/machines.adoc @@ -17,11 +17,11 @@ These systems are available for FreeBSD developer / committer use. Reference sys [cols=",,,",options="header",] |=== |Host |OS |Type |Purpose -|freefall |15-CURRENT |amd64 |Shell Logins. -|ref[15\|14\|13]-amd64 |X-STABLE |amd64 |Reference machine for general testing and Ports building. -|ref[15\|14\|13]-i386 |X-STABLE |i386 |Reference machine for general testing and Ports building. -|ref[15\|14\|13]-aarch64 |X-STABLE |arm64\|aarch64 |Reference machine for general testing and Ports building. -|universe[15\|14\|13][a\|b] |X-STABLE |amd64 |Universe build machine for fast, large scale compiling. +|freefall |16-CURRENT |amd64 |Shell Logins. +|ref[16\|15\|14\|13]-amd64 |X-STABLE |amd64 |Reference machine for general testing and Ports building. +|ref[14\|13]-i386 |X-STABLE |i386 |Reference machine for general testing and Ports building. +|ref[16\|15\|14\|13]-aarch64 |X-STABLE |arm64\|aarch64 |Reference machine for general testing and Ports building. +|universe[16\|15\|14\|13][a\|b] |X-STABLE |amd64 |Universe build machine for fast, large scale compiling. |=== Machines are generally connected at 1Gbit/sec full-duplex to a dedicated switch with redundant gigabit uplinks. All systems have logged serial consoles and remote power management. From nobody Sat Sep 20 09:00:27 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cTNcq4Cnlz68WTw for ; Sat, 20 Sep 2025 09:00: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cTNcq3mzZz3xcC; Sat, 20 Sep 2025 09:00:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758358827; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gA8+3heDS23TUuqvN0iuBmGtojin32xx6F5GDnfKF5s=; b=nX+7a8u1dwEbxc5XhYJH63i5WHfoIFkzEUZbJdzorp1ewTac8pIf5kyOlqx99VjL3/8J/y ZcndQEIu1dUftahPCQYeqFXb5TIrQKp6XqcyKIutXSPqBcLgD1MQYAyz89llWvCs/XNdjK Kce6TbQ7tua/+oWmMUU46bD3ywZIUovgvOONFmIIhvb4UPhIZEFxdojN9tfgcxAIkdKPb6 tEN8FOeVZ0acamo7nbtAeCktEG1bVvGwrr1Rjzmz26ZgscjF48kYpEdV1DJ2Rvkn4rTRq8 tg7zE5Glejkfia85IIF2oDBFsfkCWx4Efm9it6JU7+DUQoRdESQCFa9AqSkEwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758358827; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gA8+3heDS23TUuqvN0iuBmGtojin32xx6F5GDnfKF5s=; b=Pm5OneVg4SbC0iIQbfYaQRQHZxtY1R5sAkZjZPQk1lidHRk0FvSlF2J4ULwZSJqqvJhE5u l+nMsif7+xuD+Is4Y/B9cBl8Yvh1XLj8hM7dj/lijvne/LC8T115y97TTXI4qDb7z+6YjL V2qNdeYEhOzFYoClGtVuRo0xmD5CRIEUHgRH0x3/nAx2DszWbjcLk5DxEWOLj9spyTnvM5 dIRB6D8+TojXzsos3rqfwtghIgSbNiknWJoo5VRb4+8n0j6uq9YbXEI/9fZbMnodVIj/DK HI5hRhVauYeSHHBZh0g39xDjbGB6bFgMAS73vHxAzxVsar31lKcE67CdyVXeLw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758358827; a=rsa-sha256; cv=none; b=Py/3ckNog3nuniOilY0Tz4Jq4QTYlVjckD2cnUo1cC9UPwWHhiwbTlHA4S60llEjN8K9No wDoCXvY+txtfPMuplTPnZwLvHbzF8kADjER+suRbdJ7Mdk48uEt4a7qSRcWBSBdck/wDxo ErFwQmDOu3LULjNyfMaACuBS5lVE24v0K1jVOQV/xFUbMMdGLohzBp7TOwSD2aT9IydTL6 4Tw4slDDiLsFOFQWTnyaUkPYfAM2PFt2gnGLe8BSpDcHAWJLCsdIZQ6QedzYAsX3fORycY ga2W+Cs6bQTdaFTTpAw3KPpkzgkSlk1+/BdbEtQXzFtv0aAcdA21k+fNdiijlg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cTNcq3Dpmz60M; Sat, 20 Sep 2025 09:00:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58K90RMt048265; Sat, 20 Sep 2025 09:00:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58K90Rtq048262; Sat, 20 Sep 2025 09:00:27 GMT (envelope-from git) Date: Sat, 20 Sep 2025 09:00:27 GMT Message-Id: <202509200900.58K90Rtq048262@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Wolfram Schneider Subject: git: e9cf12b5f3 - main - minor macOS manpage updates List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wosch X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e9cf12b5f39adddc55cef0203c5c47ddcdeba7fd Auto-Submitted: auto-generated The branch main has been updated by wosch: URL: https://cgit.FreeBSD.org/doc/commit/?id=e9cf12b5f39adddc55cef0203c5c47ddcdeba7fd commit e9cf12b5f39adddc55cef0203c5c47ddcdeba7fd Author: Wolfram Schneider AuthorDate: 2025-09-20 08:38:40 +0000 Commit: Wolfram Schneider CommitDate: 2025-09-20 08:38:40 +0000 minor macOS manpage updates --- website/content/en/cgi/man.cgi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/content/en/cgi/man.cgi b/website/content/en/cgi/man.cgi index 8f8b82104b..e7b891c473 100755 --- a/website/content/en/cgi/man.cgi +++ b/website/content/en/cgi/man.cgi @@ -1000,8 +1000,8 @@ $manPathDefault = 'FreeBSD 14.3-RELEASE and Ports'; 'Sun UNIX 0.4', "$manLocalDir/Sun-UNIX-0.4", 'macOS 26.0', "$manLocalDir/macOS-26.0/man:$manLocalDir/macOS-26.0/developer-man:$manLocalDir/macOS-26.0/developer-platform-sdk-man:$manLocalDir/macOS-26.0/xctoolchain-man", - 'macOS 15.6', "$manLocalDir/macOS-15.6/man:$manLocalDir/macOS-15.6/developer-man:$manLocalDir/macOS-15.6/developer-platform-sdk-man:$manLocalDir/macOS-15.6/xctoolchain-man", - 'macOS 14.7.7', "$manLocalDir/macOS-14.7.7/man:$manLocalDir/macOS-14.7.7/developer-man:$manLocalDir/macOS-14.7.7/developer-platform-man:$manLocalDir/macOS-14.7.7/developer-platform-sdk-man:$manLocalDir/macOS-14.7.7/xctoolchain-man", + 'macOS 15.7', "$manLocalDir/macOS-15.7/man:$manLocalDir/macOS-15.7/developer-man:$manLocalDir/macOS-15.7/developer-platform-sdk-man:$manLocalDir/macOS-15.7/xctoolchain-man", + 'macOS 14.8', "$manLocalDir/macOS-14.8/man:$manLocalDir/macOS-14.8/developer-man:$manLocalDir/macOS-14.8/developer-platform-man:$manLocalDir/macOS-14.8/developer-platform-sdk-man:$manLocalDir/macOS-14.8/xctoolchain-man", 'macOS 13.6.5', "$manLocalDir/macOS-13.6.5/man:$manLocalDir/macOS-13.6.5/developer-man:$manLocalDir/macOS-13.6.5/developer-platform-man:$manLocalDir/macOS-13.6.5/developer-platform-sdk-man:$manLocalDir/macOS-13.6.5/xctoolchain-man", 'macOS 12.7.3', "$manLocalDir/macOS-12.7.3/man:$manLocalDir/macOS-12.7.3/developer-man:$manLocalDir/macOS-12.7.3/developer-platform-man:$manLocalDir/macOS-12.7.3/developer-platform-sdk-man:$manLocalDir/macOS-12.7.3/xctoolchain-man", 'macOS 11.1', "$manLocalDir/macOS-11.1", From nobody Sat Sep 20 09:44:38 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cTPbq1ZLjz68Z2T for ; Sat, 20 Sep 2025 09:44: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cTPbq19Dqz42lL; Sat, 20 Sep 2025 09:44:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758361479; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tcwvspz3lpkWlyNubnzaOjVdOBxwsFdeGDVwJb4aXwo=; b=W/M31oXJzAJ1Qa8XZtuxPvy2cHxqtAM4cbK5AU3FPbRsoyyz+EdVPM7B7sAGcAjVTTj36D 3ohPathHgoWRM/I1zCVQmMQxCyM2M9nh4LiU1hRtfr/xxZia/iRSIbhUWpme+v646RDE5y MK8Js2WGGj+Ir29xR02KpK+JzUAVADmNhLZcVs9Tgj7Y5mZ1fGV06TWa1o+jD+qh5LQhWA aZ+mHHSNkDOQgkutSOgMbKCNjQMfLL/iRC3h9bUzVp3nbCHXrG5LfM7bs2EXs47MfO2j7R sf8pl+oIBGXP6lYojr1H4u+eSj0tsVN7vrESPMoOUQaTS7xfE4eCtGlpAh19bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758361479; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tcwvspz3lpkWlyNubnzaOjVdOBxwsFdeGDVwJb4aXwo=; b=fYgWIsjrh7HcVh6mNmWnOX1hQX39/GmUJKTlX3URxjKUV7aw09aZDtwKX+ifPjsDg5EQY3 WRUZ+lKnRRk942bH2j5U+/qj0dMr8VNLRKrwISZAtOtJMfC+nY1sx5fCbdg78uOYMwa7zb HJAsZlaP6eiRRkMxajnMBUjmWmgwGZfYmbNwKUnbtYsievyJCXpva+MZUw6mveXZm9P69t wO5UoM3J5hbf/30RW27YyCEQi4BTD65w6cByzfrKWiXwxCYBcQM3hrRSsrXMWiW2+DsJIj m9HCFt/accAsGFwM5wpm1JGyPhCLoE/SFJOjw2ePk70UBZNuab/LkNyXKJkODg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758361479; a=rsa-sha256; cv=none; b=Xcd9cxs/TuSdOiVAdvPeoYMRrnBHrpK1x4m5rlyzY1LZD7zwU5zLhW5M47+NeIWhrRdoB3 yR4ciNGMBpsRmP9a7GG4CI7CVT5wEIpQLRJSY42SSAK9qr+CcxdQYuP7U0CSGMj5Qv4/Mw rfzjPmwMpy2ATGl/jHhDdVPo1LyFXIdec1hnH+jdsUePYPrfSYCvhuffkLtB3JgmUTjGTT pxkJ7+YCuc3RCEC8HVFN4mnFUi27jYW/oSvWdZgJjrVTY45ycGBneeFVMUJRSLRFis5G5u YM70ekm8XZwqooXvDoVBcZQmnH0OStTlxBTtukz+tXO171ZVYjHpkOuSsi/O0A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cTPbq0cHCz78S; Sat, 20 Sep 2025 09:44:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58K9idM9032176; Sat, 20 Sep 2025 09:44:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58K9icwO032173; Sat, 20 Sep 2025 09:44:38 GMT (envelope-from git) Date: Sat, 20 Sep 2025 09:44:38 GMT Message-Id: <202509200944.58K9icwO032173@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: ad29f334a4 - main - update translation of books/faq to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ad29f334a4ceafbbff44d8e673067ffa000237a6 Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=ad29f334a4ceafbbff44d8e673067ffa000237a6 commit ad29f334a4ceafbbff44d8e673067ffa000237a6 Author: Vladlen Popolitov AuthorDate: 2025-09-20 09:44:23 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-20 09:44:23 +0000 update translation of books/faq to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D51984 --- documentation/content/ru/books/faq/_index.adoc | 3013 ++---------------------- documentation/content/ru/books/faq/_index.po | 1811 ++++++++++++++ 2 files changed, 2039 insertions(+), 2785 deletions(-) diff --git a/documentation/content/ru/books/faq/_index.adoc b/documentation/content/ru/books/faq/_index.adoc index 4c7f78082d..d197618947 100644 --- a/documentation/content/ru/books/faq/_index.adoc +++ b/documentation/content/ru/books/faq/_index.adoc @@ -1,18 +1,17 @@ --- -title: Часто задаваемые вопросы по FreeBSD 12.X и 13.X -authors: - - author: Проект документирования FreeBSD -copyright: 1995-2023 The FreeBSD Russian Documentation Project -description: Часто задаваемые вопросы и ответы по FreeBSD 11.X, 12.X и 13.X, касающиеся всех аспектов FreeBSD -trademarks: ["freebsd", "ibm", "ieee", "adobe", "intel", "linux", "microsoft", "opengroup", "sun", "netbsd", "general"] +authors: + - + author: 'The FreeBSD Documentation Project' bookOrder: 5 -tags: ["FAQ", "FreeBSD FAQ"] +copyright: '1995-2023 The FreeBSD Documentation Project' +description: 'Часто задаваемые вопросы по FreeBSD' layout: single +tags: ["FAQ", "FreeBSD FAQ"] +title: 'Часто задаваемые вопросы по FreeBSD' +trademarks: ["freebsd", "ieee", "linux", "microsoft", "openbsd", "netbsd", "general"] --- -// Original EN revision (28.08.2023): 7d1e32e5138658ffb86ea5e0fb14e4740830582c - -= Часто задаваемые вопросы по FreeBSD {rel2-relx} и {rel-relx} += Часто задаваемые вопросы по FreeBSD :doctype: book :toc: macro :toclevels: 1 @@ -23,18 +22,6 @@ layout: single :source-highlighter: rouge :experimental: :images-path: books/faq/ -:rel-numbranch: 3 -:rel-head: 14-CURRENT -:rel-head-relx: 14.X -:rel-head-releng: main -:rel-relx: 13.X -:rel-stable: 13-STABLE -:rel-releng: stable/13 -:rel-relengdate: January 2021 -:rel2-relx: 12.X -:rel2-stable: 12-STABLE -:rel2-releng: stable/12 -:rel2-relengdate: December 2018 ifdef::env-beastie[] ifdef::backend-html5[] @@ -58,2947 +45,403 @@ endif::[] [.abstract-title] Аннотация -Этот документ является так называемым FAQ (Frequently Asked Questions), то есть списком Часто Задаваемых Вопросов по FreeBSD версий {rel-relx} и {rel2-relx}. -Мы прилагаем все усилия, чтобы сделать этот FAQ максимально информативным; если у вас есть идеи по его усовершенствованию, присылайте их на адрес {freebsd-doc}. - -Самая последняя редакция этого документа всегда доступна на extref:{faq}[Web-сайте FreeBSD]. -Его также можно сгрузить в виде одного -большого файла в формате link:.[HTML] по HTTP или в различных других форматах с -https://download.freebsd.org/doc/[FTP-сервера FreeBSD]. +Это Часто Задаваемые Вопросы (FAQ) по FreeBSD. Были приложены все усилия, чтобы сделать это руководство максимально информативным. ''' toc::[] -== Вступление - -=== FreeBSD - что это такое? - -FreeBSD - это современная операционная система для настольных компьютеров, ноутбуков, серверов и встраиваемых систем с поддержкой большого количества https://www.FreeBSD.org/ru/platforms/[платформ]. - -В основе FreeBSD лежит операционная система "4.4BSD-Lite" Калифорнийского Университета (Беркли) с некоторыми усовершенствованиями из "4.4BSD-Lite2". -Также она косвенно базируется на 386BSD (BSD Net/2, перенесённой на платформу i386(TM) Уильямом Джолитцем (William Jolitz)), хотя от того первоначального кода осталось очень мало. - -FreeBSD используется компаниями, Интернет-провайдерами, научными работниками, профессионалами в вычислительной технике, студентами и рядовыми пользователями по всему миру для работы, образования и отдыха. - -Для более детального знакомства с FreeBSD обратитесь к extref:{handbook}/[Руководству по FreeBSD]. - -[[FreeBSD-goals]] -=== Какова цель FreeBSD? - -Цель проекта FreeBSD - предоставить быструю и стабильную операционную систему общего назначения, которую можно использовать в любых целях без каких-либо ограничений. - -[[bsd-license-restrictions]] -=== Есть ли в лицензии FreeBSD какие-то ограничения? - -Да. -Эти ограничения не касаются аспектов использования кода, но главным образом описывают отношение к этому коду со стороны Проекта FreeBSD. Текст лицензионного соглашения доступен https://www.FreeBSD.org/ru/copyright/freebsd-license/[здесь], и вкратце он может быть изложен следующим образом: - -* Не говорите, что это написано вами. -* Не судитесь с нами, если что-то не работает. -* Не удаляйте и не изменяйте лицензию. - -Многие из нас вкладывают в проект значительные усилия и определённо были бы не против получения небольшой финансовой поддержки сейчас и в будущем, но мы на этом не настаиваем. -Мы надеемся, что наша основная и самая значительная "миссия" - предоставить код всем желающим, для любых целей, так чтобы он нашел самое широкое применение и принёс наибольшую пользу. Это, на наш взгляд, одна из самых фундаментальных целей Free Software, которую мы с энтузиазмом поддерживаем. +[[introduction]] +== Введение -Часть исходного кода нашей системы, подпадающая под действие -https://www.FreeBSD.org/copyright/COPYING[GNU General Public License (GPL)] или -https://www.FreeBSD.org/copyright/COPYING.LIB[GNU Library General Public -License (LGPL)], имеет несколько больше ограничений, хотя и представляет собой -навязывание доступа к исходным текстам, а не наоборот, как обычно. Из-за -дополнительных сложностей, которые могут возникнуть в случае коммерческого -использования программного обеспечения GPL, мы стараемся, где только это -возможно, заменить подобное программное обеспечение аналогичным, но подпадающим -под менее строгую https://www.FreeBSD.org/copyright/freebsd-license/[лицензию -FreeBSD]. - -[[replace-current-OS]] -=== Может ли FreeBSD заменить операционную систему, используемую мною сейчас? +Добро пожаловать в мир FreeBSD! В этом разделе представлен обзор системы FreeBSD: что это такое, её происхождение, цели, варианты использования и сообщество, стоящее за ней. -Для большинства людей это возможно. -Но этот вопрос не так уж и однозначен. +Узнайте причины выбора этого названия, научитесь участвовать в разработке проекта и изучите богатую экосистему FreeBSD в контексте открытых операционных систем. -Большинство пользователей на самом деле не используют операционную систему. Они работают с приложениями. Именно прикладные программы и используют операционную систему. FreeBSD разработана для того, чтобы дать надежное и полнофункциональное окружение для приложений. Она поддерживает широкий спектр Web-браузеров, офисных пакетов, программ для работы с электронной почтой, графических пакетов, программных сред, сетевых серверов и многое другое. Большинство этих приложений могут -быть получено из https://www.FreeBSD.org/ports/[Коллекции Портов]. +[[what-is-FreeBSD]] +=== Что такое FreeBSD? -Если приложение доступно только для одной операционной системы, то нельзя всего лишь заменить эту операционную систему. Однако есть вероятность, что похожая программа существует для FreeBSD. В качестве сервера для офиса, или сервера Интернет, или надежной рабочей станции FreeBSD практически всегда справится со всем, что вам нужно. Многие пользователи по всему миру, включая как новичков, так и опытных администраторов UNIX(R), используют FreeBSD в качестве своей единственной настольной операционной системы. +FreeBSD — это универсальная и открытая операционная система, подобная UNIX(R), известная своей исключительной стабильностью, безопасностью и производительностью. Разрабатываемая преданным сообществом добровольцев, она основана на операционной системе Berkeley Software Distribution (BSD) UNIX. -Пользователям, переходящим на FreeBSD с другого варианта UNIX(R)-подобной -системы, FreeBSD покажется очень знакомой. Пользователей Windows(R) и Mac -OS(R), напротив, может привлечь использование одного из трёх дистрибутивов -https://www.ghostbsd.org/[GhostBSD], https://www.midnightbsd.org/[MidnightBSD] -или https://www.nomadbsd.org/[NomadBSD], предназначенных для настольных систем -и построенных на базе FreeBSD. Пользователям, которые не использовали до этого -UNIX(R), нужно понимать, что понадобится потратить дополнительное время на -изучение подхода UNIX(R) к организации работы. Этот FAQ и -extref:{handbook}[Руководство по FreeBSD] являются прекрасными отправными -точками. +FreeBSD предоставляет мощную и настраиваемую среду, подходящую для широкого спектра применений — от серверов и встраиваемых систем до настольных компьютеров и сетевого оборудования. Приверженность принципам открытого исходного кода обеспечивает прозрачный и совместный процесс разработки, что делает FreeBSD надежным выбором для тех, кто ищет стабильную и высокоадаптируемую операционную систему. [[why-called-FreeBSD]] -=== Почему система называется именно FreeBSD? - -* Она может использоваться безо всяческих выплат, даже для извлечения выгоды. -* Все исходные тексты операционной системы свободно доступны, на её использование в других разработках (как коммерческих, так и некоммерческих) и дальнейшее распространение наложены минимальные ограничения. -* Любой, у кого есть усовершенствования или исправления, может предоставить свой код и он будет (правда, с парой оговорок) добавлен в исходные тексты системы. - -Следует отметить, что слово "free" используется здесь в двух смыслах: один означает "бесплатно", а другой "делать всё, что хотите". За исключением пары вещей, которые вы _не можете_ делать с FreeBSD, например, претендовать на то, что являетесь её разработчиком, на самом деле можно делать с ней всё, что вам заблагорассудится. - -[[differences-to-other-bsds]] -=== В чём заключается разница между FreeBSD и NetBSD, OpenBSD и другими операционными системами с открытым кодом семейства BSD? - -Джеймс Ховард (James Howard) создал хорошее описание истории и отличий между разными проектами под названием https://jameshoward.us/archive/bsd-family-tree/[Семейное древо BSD], в котором даётся подробный ответ на этот вопрос. -Часть информации там устарела, однако историческая часть остаётся точной. - -Многие из проектов семейства BSD обмениваются изменениями и готовым кодом даже -сегодня. Все они происходят от общего предка. - -Цели проекта FreeBSD описаны выше в <>. Цели других наиболее -известных проектов семейства BSD можно кратко описать так: - -* OpenBSD ориентируется на то, что превыше всего является безопасность -операционной системы. -Команда OpenBSD написала man:ssh[1] и man:pf[4], которые были перенесены во -FreeBSD. -* NetBSD ориентируется на простое портирование на другие аппаратные платформы. -* DragonFly BSD отделилась от FreeBSD 4.8, и с тех пор в ней были разработаны многие интересные собственные функциональные возможности, включая файловую систему HAMMER и поддержку "vkernels" - запуска ядра в пользовательском режиме. - -[[latest-version]] -=== Какова последняя версия FreeBSD? - -На любом этапе разработки FreeBSD может существовать несколько параллельных веток. Релизы {rel-relx} выполняются из ветки {rel-stable}, а релизы {rel2-relx} выполняются из {rel2-stable}. - -Вплоть до версии 12.0 ветка {rel2-relx} была известна как _-STABLE_. -Однако к моменту выхода {rel-head-relx} ветка {rel2-relx} получит статус -"extended support" (расширенная поддержка), и исправления будут вноситься -только для серьёзных проблем, к примеру, связанных с безопасностью. - -Релизы делаются <>. Хотя многие стараются отслеживать актуальное состояние исходных текстов FreeBSD (обратите внимание на вопросы о <> и <>), делать это не обязательно, так как исходные тексты постоянно меняются. +=== Почему система называется FreeBSD? -Более полную информацию о релизах FreeBSD можно получить на странице -https://www.FreeBSD.org/releng/#release-build[Информации о подготовке релизов] -и на странице Справочника man:release[7]. +Название "FreeBSD" происходит от его корней в операционной системе UNIX Berkeley Software Distribution (BSD), известной своим вкладом в мир открытого программного обеспечения. Слово "Free" в FreeBSD подчеркивает приверженность принципам свободного и открытого программного обеспечения, которые предоставляют пользователям свободу изучать, изменять и распространять исходный код. -[[current]] -=== Что такое FreeBSD-CURRENT? - -extref:{handbook}cutting-edge/[FreeBSD-CURRENT, current] - это версия -операционной системы, находящаяся в стадии разработки, которая должна потом -стать новой веткой FreeBSD-STABLE. Таким образом, она представляет реальный -интерес только для разработчиков системы и её фанатов. Обратитесь к -extref:{handbook}cutting-edge/[соответствующему разделу, current] -extref:{handbook}[Руководства] для прояснения деталей работы с _-CURRENT_. +Стоит отметить, что слово «free» здесь используется в двух значениях: одно означает «бесплатно», а другое — «делай что хочешь». -Пользователям, не знакомым с FreeBSD, не следует использовать FreeBSD-CURRENT. -Эта ветка зачастую меняется очень быстро и иногда из-за ошибок может быть неработоспособной. -Подразумевается, что те, кто используют FreeBSD-CURRENT, должны быть в состоянии изучить проблему, найти причину и сообщить о этом. - -[[stable]] -=== В чём смысл FreeBSD-STABLE? - -_FreeBSD-STABLE_ является веткой разработки, из которой выполняются основные релизы. -В эту ветку изменения вносятся медленнее, и при этом предполагается, что до этого они были протестированы во FreeBSD-CURRENT. -Несмотря на это, исходный код FreeBSD-STABLE в любой момент времени может быть пригоден, а может быть и непригоден к широкому использованию, так как может содержать скрытые ошибки и вырожденные случаи, которые ещё не были выявлены во FreeBSD-CURRENT. -Пользователям, не имеющим возможностей для тестирования, следует работать с самым свежим релизом FreeBSD. -С другой стороны, _FreeBSD-CURRENT_ продолжает являться единой веткой, не разрываемой с момента выхода версии 2.0. - -Для получения более подробной информации о ветках обратитесь к разделу статьи "extref:{releng}[Подготовка релизов FreeBSD: Создание ветки релиза, rel-branch]", а состояние веток и расписание предстоящих релизов можно получить на странице https://www.FreeBSD.org/releng[Информация о подготовке релизов]. -Версия {u-rel123-announce}[{rel123-current}] является самым последним релизом в -ветке {rel2-stable}; она была выпущена {rel123-current-date}). Версия -{u-rel131-announce}[{rel131-current}] является самым последним релизом в -ветке {rel-stable}; она была выпущена {rel131-current-date}). - -[[release-freq]] -=== В какой момент выпускаются новые версии FreeBSD? +[[FreeBSD-goals]] +=== Какова цель проекта FreeBSD? -{re} выпускает новую старшую версию FreeBSD в среднем каждые 18 месяцев и младшие версии каждые 8 месяцев. Даты релизов обычно объявляются заранее, так что те, кто работает над системой, знают, когда их проекты должны быть закончены и протестированы. Период тестирования предшествует выходу каждого релиза, для того, чтобы удостовериться в том, что добавление новых возможностей не повлияло на стабильность работы релиза. Многие пользователи расценивают такую осторожность как одну из приятнейших черт FreeBSD, хотя необходимость дожидаться _-STABLE_ для по лучения всех этих новых возможностей может несколько разочаровывать. +Проект FreeBSD преследует ясную и непоколебимую цель: предоставить высококачественную UNIX-подобную операционную систему с открытым исходным кодом, которая отличается высокой производительностью, безопасностью и стабильностью. -Дополнительная информация о процессе подготовки релиза (в том числе планы выпуска последующих релизов) может быть найдена на страницах Web-сайта FreeBSD, посвящённых https://www.FreeBSD.org/releng/[выпуску релизов]. +Он стремится предоставить универсальную платформу, подходящую для широкого спектра вычислительных задач — от серверов и рабочих станций до встраиваемых систем и не только. FreeBSD разрабатывается с твердой приверженностью принципам открытого исходного кода, создавая среду для сотрудничества, в которой вклад глобального сообщества разработчиков помогает формировать и совершенствовать операционную систему. Эта приверженность качеству, свободе и надежности отличает FreeBSD и способствует её постоянному успеху как проекта с открытым исход ым кодом. -Для тех, кому нужно или хочется, еженедельно выпускаются бинарные снапшоты, как описано выше. +[[FreeBSD-usecases]] +=== Для каких задач подходит FreeBSD? -[[snapshot-freq]] -=== Когда выпускаются снэпшоты FreeBSD? - -link:https://www.FreeBSD.org/snapshots/[Снэпшот]-релизы FreeBSD -выпускаются исходя из актуального состояния веток _-CURRENT_ и _-STABLE_. -Цели выпуска каждого такого снэпшот-релиза таковы: - -* Протестировать самую последнюю версию программы установки системы. -* Дать людям, которые хотят работать с ветками _-CURRENT_ или _-STABLE_, -но не имеют достаточно времени или пропускной способности сети -для отслеживания ежедневных изменений, простой способ их -начальной установки. -* Зафиксировать состояние определённого кода на какой-то -момент времени на случай, если позже мы что-нибудь очень сильно -сломаем. -(Хотя Git, как правило, не позволяет случиться ничему такому ужасному). -* Обеспечить все новые функции и исправления, которым -требуется тестирование, как можно большим количеством -потенциальных тестировщиков. - -Не утверждается, что всякий снэпшот _-CURRENT_ с любой точки зрения имеет -качество "готового продукта". Если нужна стабильно -работающая и полностью протестированная система, то -придерживайтесь политики использования полноценных релизов. - -Снэпшот-релизы доступны непосредственно -link:https://www.FreeBSD.org/snapshots/[отсюда]. - -Официальные снэпшоты регулярно выпускаются для всех активно разрабатываемых -веток. +FreeBSD — это универсальная операционная система, которая превосходно подходит для различных сценариев использования. Она особенно хорошо зарекомендовала себя в серверных средах, где её стабильность и производительность делают её популярным выбором для веб-хостинга, баз данных и сетевых приложений. Надёжные механизмы безопасности FreeBSD также делают её отличным вариантом для развёртывания межсетевых экранов и защищённых устройств. Помимо серверов, FreeBSD может быть адаптирована для работы в специализированных средах, включая встраиваемые системы и игровые консоли. Её гибкость, надёжность и открытый исходный код делают FreeBSD привлекательным выбором для широкого спектра вычислительных задач. [[responsible]] -=== Кто отвечает за разработку FreeBSD? - -Ключевые решения, касающиеся проекта FreeBSD, такие, как общее направление развития проекта или кто может добавлять код к дереву исходных текстов, принимаются link:https://www.FreeBSD.org/administration/#t-core[управляющей командой] разработчиков (Core Team), состоящей из 9 человек. -Также существует многочисленная группа, состоящая из более чем 350 так называемых extref:{contributors}[коммиттеров, staff-committers] (committers), которые могут вносить изменения прямо в дерево исходных текстов FreeBSD. - -Однако большинство нетривиальных изменений широко обсуждается в <>, и не существует никаких ограничений на участие в подобных дискуссиях. - -[[where-get]] -=== Где можно найти FreeBSD? - -Все поддерживаемые релизы FreeBSD доступны на странице -https://www.freebsd.org/where/[поиска релизов FreeBSD]: - -* Для получения самого последнего релиза {rel-stable}, {rel132-current}-RELEASE, перейдите по ссылке для выбора link:https://www.freebsd.org/where/#download-rel132[соответствующей архитектуры и режима установки для {rel132-current}-RELEASE]. -* Для получения самого последнего релиза {rel2-stable}, {rel124-current}-RELEASE, перейдите по ссылке для выбора link:https://www.freebsd.org/where/#download-rel124[соответствующей архитектуры и режима установки для {rel124-current}-RELEASE]. -* link:https://www.FreeBSD.org/snapshots/[Снэпшот-релизы] для веток <> и <> выпускаются ежемесячно, но они нужны исключительно для разработчиков и тех, кто тестирует самые последние нововведения. - -Информация о возможностях получения FreeBSD на CD, DVD и других носителях -доступна в extref:{handbook}mirrors/[Руководстве, mirrors]. - -=== Как можно получить доступ к базе сообщений о проблемах (Problem Report)? - -База данных всех сообщений пользователей о проблемах может быть запрошена с помощью нашего https://bugs.FreeBSD.org/search/[Web-интерфейса]. - -Можно использовать link:https://www.FreeBSD.org/support/bugreports/[Web-интерфейс] для отсылки сообщений об ошибках через браузер. - -Перед тем, как посылать сообщение об ошибке, прочтите статью extref:{problem-reports}[Составление сообщений о проблеме во FreeBSD] о том, как писать хорошие сообщения об ошибках. - -== Документация и поддержка - -[[books]] -=== Есть ли хорошие книги по FreeBSD? - -В рамках проекта создаётся обширная документация, которая доступна в онлайне по -следующей ссылке: https://www.FreeBSD.org/docs/[https://www.FreeBSD.org/docs/]. - -[[doc-formats]] -=== Можно ли получить документацию в другом формате, например, в виде PDF? - -Да. -link:https://download.freebsd.org/doc/[Документация доступна к сгрузке также и -в других форматах] на сайте FreeBSD. - -Каталоги с документацией подразделяется на категории в зависимости от: - -* Имени документа, например, `faq` или `handbook`. -* Языка документа на базе наименования региональных настроек, размещаемых в -каталоге [.filename]#/usr/share/locale# системы FreeBSD, без учёта кодировки, -так как во всей документации сейчас используется UTF-8. -На данный момент доступны следующие языки: - -+ -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Кодировка -| Язык - -|`en` -|Английский - -|`bn-bd` -|Бенгальский или Бангла (Бангладеш) - -|`da` -|Датский - -|`de` -|Немецкий - -|`el` -|Греческий +=== Кто отвечает за FreeBSD? -|`es` -|Испанский +FreeBSD - это проект с открытым исходным кодом, развиваемый сообществом и имеющий децентрализованную структуру. Его разработка и поддержка осуществляются глобальным сообществом преданных добровольцев, разработчиков и организаций, которые совместно работают над улучшением и расширением возможностей операционной системы. -|`fr` -|Французский +Ключевые решения, касающиеся проекта FreeBSD, такие как общее направление развития проекта или право на добавление кода в дерево исходных текстов, принимаются избираемой командой разработчиков (Core Team) из девяти человек. -|`hu` -|Венгерский +Этот совместный и ориентированный на сообщество подход был основополагающим для успеха и долголетия FreeBSD в качестве надежной и устойчивой UNIX-подобной операционной системы. -|`it` -|Итальянский - -|`ja` -|Японский - -|`ko` -|Корейский - -|`mn` -|Монгольский - -|`nl` -|Голландский - -|`pl` -|Польский +[[how-to-contribute]] +=== Как я могу внести свой вклад в FreeBSD? Чем я могу помочь? -|`pt-br` -|Португальский (Бразилия) +Мы принимаем все виды вкладов: документацию, код и даже произведения искусства. Конкретные рекомендации о том, как это сделать, смотрите в статье extref:{contributing}[Участие в разработке FreeBSD]. -|`ru` -|Русский +И спасибо за идеи! -|`tr` -|Турецкий +[[bsd-license-restrictions]] +=== Есть ли ограничения в лицензии FreeBSD? -|`zh-cn` -|Упрощённый китайский (Китай) +FreeBSD распространяется под лицензией https://www.FreeBSD.org/copyright/freebsd-license/[BSD License], известной своим разрешительным характером. -|`zh-tw` -|Традиционный китайский (Тайвань) -|=== -+ -[NOTE] -==== -Некоторые документы могут иметься не на всех языках. -==== +Данная лицензия накладывает очень мало ограничений на использование FreeBSD: -* Формат документа. -Мы распространяем документацию в нескольких различных форматах. -У каждого из форматов имеются свои плюсы и свои минусы. -Некоторые форматы лучше подходят для чтения в on-line, тогда как другие предназначены для получения эстетично выглядящей бумажной копии. -Наличие документации во всех этих форматах обеспечивает возможность прочтения нашими пользователями любой её части как с экрана монитора, так и на бумаге после вывода на печать. -На данный момент доступны следующие форматы; -+ -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Формат -| Значение - -|`html` -|В зависимости от документа: Один большой HTML-файл, содержащий документ полностью, или набор небольших связанных HTML-файлов, в обоих случаях содержащих изображения, таблицы стилей и код JavaScript - -|`pdf` -|Adobe's Portable Document Format -|=== -* Способ сжатия и создания архива. -.. В случае формата `html`, файлы пакетируются с помощью man:tar[1]. -Получающийся файл [.filename]#.tar# затем сжимается утилитой man:gzip[1]. -.. При использовании формата PDF создаётся один файл. К примеру, -[.filename]#explaining-bsd_en.pdf#, [.filename]#faq_en.pdf# и так далее. - -Выбрав формат, сгрузите файлы, распакуйте их при необходимости, а затем -скопируйте документацию в соответствующие места. - -Например, HTML-версию FAQ можно найти в -[.filename]#doc/en/books/faq/faq_en.tar.gz#. Для сгрузки и распаковки этого -файла выполните: - -[source,shell] -.... -% fetch https://download.freebsd.org/doc/en/books/faq/faq_en.tar.gz -% tar xvf faq_en.tar.gz -.... +* Не утверждайте, что это написали вы. +* Не подавайте на нас в суд, если что-то сломается. +* Не удаляйте и не изменяйте лицензию. -Если файл сжат, tar автоматически определит подходящий формат и корректно его распакует, в результате чего появится набор файлов. -Главным является [.filename]#index.html#, и в нём находится всё содержимое документа, начиная с оглавления, ссылающегося на остальные части документа. +Лицензия означает, что вы можете свободно изменять, распространять и даже продавать FreeBSD, *не будучи обязанным публиковать свои изменения как открытый исходный код*. Однако есть несколько минимальных условий, таких как сохранение оригинального уведомления об авторских правах и отказ от гарантий при распространении FreeBSD. В целом, лицензия BSD предоставляет высокую степень свободы и гибкости, что делает FreeBSD привлекательным выбором для широкого спектра приложений и проектов. -[[mailing]] -=== Где найти информацию по спискам рассылки FreeBSD? Какие существуют телеконференции по FreeBSD? +Код в нашем дереве исходников, подпадающий под действие https://www.FreeBSD.org/copyright/COPYING[GNU General Public License (GPL)] или https://www.FreeBSD.org/copyright/COPYING.LIB[GNU Library General Public License (LGPL)], сопровождается несколько большими ограничениями, по крайней мере, в части обеспечения доступа, в отличие от обычной противоположной ситуации. -Исчерпывающая информация содержится в extref:{handbook}eresources/[разделе -Руководства, eresources-mail], который посвящён спискам рассылки, и в -extref:{handbook}eresources/[разделе Руководства, eresources-news], касающемся -новостных конференций. +[[replace-current-OS]] +=== Может ли FreeBSD заменить мою текущую операционную систему? -[[irc]] -=== Существуют ли каналы IRC (Internet Relay Chat) по FreeBSD? +Для многих пользователей и администраторов — да. Но этот вопрос не настолько однозначен. -Да, в большинстве крупнейших сетей IRC имеется канал для обсуждения FreeBSD, а -на wiki-странице FreeBSD размещён актуальный -https://wiki.freebsd.org/IRC/Channels[список IRC-каналов]. +FreeBSD — это мощная и универсальная операционная система, которая может заменить или сосуществовать с множеством других операционных систем в зависимости от конкретных потребностей пользователей и администраторов. Однако возможность замены вашей текущей операционной системы на FreeBSD зависит от таких факторов, как ваше оборудование, требования к программному обеспечению и уровень знакомства с FreeBSD. -Все эти каналы разные и не связаны друг к другом. Поскольку их манеры общения -отличаются, попробуйте каждый, пока не найдёте соответствующий вашему стилю. +Хотя она предлагает надежную и многофункциональную альтернативу, важно оценить ваши конкретные задачи и требования к совместимости перед переходом. -[[forums]] -=== Есть ли какие-нибудь web-форумы для обсуждения FreeBSD? +Если приложение доступно только в одной операционной системе, эту операционную систему нельзя просто заменить. -Официальные форумы FreeBSD расположены по адресу https://forums.FreeBSD.org/[https://forums.FreeBSD.org/]. +Пользователи, переходящие на FreeBSD из другой UNIX-подобной среды, найдут FreeBSD похожей. Пользователи, не знакомые с UNIX, например пользователи Windows(R), должны быть готовы потратить дополнительное время на изучение принципов работы UNIX. -[[training]] -=== Где можно пройти платные курсы по FreeBSD и получить поддержку? +[[run-popular-software]] +=== Может ли FreeBSD запускать популярное открытое программное обеспечение? -http://www.ixsystems.com[iXsystems, Inc.], дочерней компанией которой является http://www.freebsdmall.com/[FreeBSD Mall], оказывает http://www.ixsystems.com/support[услуги поддержки] программного обеспечения FreeBSD на коммерческой основе, в дополнение к разработкам на платформе FreeBSD и решениям, требующим тонкой настройки. +Да, FreeBSD хорошо подходит для запуска популярного открытого программного обеспечения. Его совместимость с широким спектром приложений и библиотек делает его предпочтительным выбором для тех, кто хочет развертывать и использовать пакеты открытого ПО. FreeBSD предоставляет надежную и стабильную среду, поддерживающую различные языки программирования, базы данных, веб-серверы и другое ПО, часто используемое в сообществе открытого исходного кода. Система портов и пакетов FreeBSD упрощает установку и управление таким ПО, гарантируя, что пользовате ли могут легко получить доступ и запускать свои любимые открытые инструменты и приложения на FreeBSD с минимальными трудностями. -BSD Certification Group, Inc. предоставляет сертификацию системного администрирования DragonFly BSD, FreeBSD, NetBSD и OpenBSD. Для получения дополнительной информации посетите http://www.BSDCertification.org[их сайт]. +[[install-software]] +=== Как установить программное обеспечение в FreeBSD? -Чтобы попасть в этот список, другие организации, осуществляющие обучение и поддержку, должны обратиться к нам в Проект. +FreeBSD предоставляет несколько методов установки программного обеспечения. Один из наиболее распространённых методов — использование встроенного менеджера пакетов man:pkg[8], который упрощает процесс, загружая и устанавливая предварительно собранные бинарные пакеты. Другой подход — компиляция и установка программ из исходного кода с использованием коллекции man:ports[7], что обеспечивает гибкий и настраиваемый способ установки программного обеспечения. -== Установка +Документация FreeBSD предоставляет подробные руководства по обоим методам, гарантируя, что пользователи смогут легко расширить возможности своей системы с помощью необходимого программного обеспечения. -[[which-architecture]] -=== Какую архитектуру нужно загрузить? У меня есть 64-разрядный процессор Intel(R), но я вижу только amd64. +[[differences-to-other-bsds]] +=== Каковы различия между FreeBSD, NetBSD, OpenBSD и другими открытыми BSD-операционными системами? -amd64 - это термин, применяемый во FreeBSD для обозначения 64-разрядной архитектуры x86 (также известна как "x86-64" или "x64"). На большинстве современных компьютеров следует использовать amd64. Для более старых подойдёт i386. При установке системы на отличную от x86 архитектуру, выберите платформу, наиболее подходящую для оборудования. +FreeBSD, NetBSD, OpenBSD и DragonFly BSD - все они являются частью семейства BSD с открытым исходным кодом, разделяя общие UNIX-подобные основы, но каждый имеет свою собственную направленность и приоритеты. Эти различия отражают уникальные цели каждого проекта, и хотя они имеют сходства, их конкретные сильные стороны и акценты ориентированы на различные сценарии использования и предпочтения в экосистеме BSD. -[[floppy-download]] -=== Какой файл нужно скачать для установки FreeBSD? +[[freebsd-linux-distribution]] +=== Является ли FreeBSD дистрибутивом Linux(R)? -На странице https://www.freebsd.org/ru/where/[Получение FreeBSD] выберите -`[iso]` с соответствующей оборудованию архитектурой. +Нет, FreeBSD *не* является дистрибутивом Linux. -Можно использовать любой из: +Хотя FreeBSD и Linux являются UNIX-подобными операционными системами и имеют много общего, у них разные ядра. Linux использует ядро Linux, тогда как FreeBSD использует ядро FreeBSD, основанное на операционной системе Berkeley Software Distribution (BSD) UNIX. -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| файл -| описание +FreeBSD и Linux имеют свои уникальные сообщества разработчиков, циклы выпуска версий и архитектуры систем, что делает их отдельными и независимыми операционными системами. -|[.filename]#disc1.iso# -|Содержит достаточно для установки FreeBSD и минимальный набор пакетов. +FreeBSD предоставляет свои собственные преимущества, включая отличную модель лицензирования, дизайн системы и пользовательские утилиты по сравнению с дистрибутивами Linux. -|[.filename]#dvd1.iso# -|Наподобие [.filename]#disc1.iso#, но с дополнительными пакетами. +[[run-linux-programs-freebsd]] +=== Возможно ли запускать Linux-программы в FreeBSD? -|[.filename]#memstick.img# -|Образ с автозагрузкой для записи на USB флешку. +Да, FreeBSD предоставляет слой совместимости, известный как _linuxulator_ (man:linux[4]), который позволяет многим Linux-программам работать в FreeBSD. Эта функция обеспечивает выполнение широкого спектра Linux-бинарников без необходимости в отдельной Linux-среде. -|[.filename]#bootonly.iso# -|Минимальный образ, требующий сетевое подключение для завершения установки FreeBSD. -|=== +Тем не менее, важно отметить, что множество широко используемых программ с открытым исходным кодом *имеют собственные версии для FreeBSD*, доступные через систему портов и пакетов. -Полные инструкции по этой процедуре, а также более подробную информацию по -общим вопросам, возникающим при установке, можно найти в -extref:{handbook}bsdinstall[разделе Руководства об установке FreeBSD]. +[[installing-freebsd]] +== Установка FreeBSD -=== Что нужно делать, если установочный образ не запускается? +Процесс установки FreeBSD — это первый шаг к использованию возможностей этой мощной операционной системы с открытым исходным кодом. В этом разделе представлена важная информация о том, где получить FreeBSD, подробные инструкции по установке, а также объяснение таких концепций, как FreeBSD-CURRENT и FreeBSD-STABLE. Также рассматриваются график выпуска релизов и снимков (snapshots), инструменты настройки после установки, методы поиска пакетов и ответы на часто задаваемые вопросы об обновлении пакетов. -Это может быть вызвано тем, что образ был загружен по FTP не в режиме _binary_. +[[where-get]] +=== Где взять FreeBSD? -В некоторых клиентских программах FTP по умолчанию используется текстовый (_ascii_) режим передачи, в котором любые последовательности символов "конец строки" заменяются на используемые в системе клиента. В таком случае образ загрузочного диска будет неизбежно испорчен. Проверьте контрольную сумму SHA-256 полученного файла: если он не _точно_ такой же как на FTP-сервере, то ошибка произошла, скорее всего, в процессе передачи. +FreeBSD доступна для бесплатной загрузки по ссылке: link:https://www.FreeBSD.org/where/[официальный сайт FreeBSD]. -В случае использования командной строки FTP-клиента введите команду _binary_ в командной строке FTP после подключения к серверу, но перед началом передачи файла. +Кроме того, FreeBSD также может быть доступен через различные зеркальные сайты, что обеспечивает доступность для пользователей по всему миру. Основным и наиболее надежным источником для получения последних выпусков и обновлений FreeBSD является link:https://www.FreeBSD.org/where/[официальный сайт], что делает его идеальной отправной точкой для начала работы с FreeBSD. [[install-instructions-location]] === Где находятся инструкции по установке FreeBSD? -Инструкции по установке можно найти в extref:{handbook}bsdinstall/[главе -Руководства], посвящённой установке FreeBSD. - -[[custom-boot-floppy]] -=== Как сделать собственный установочный диск? - -Индивидуальный установочный носитель FreeBSD можно создать, запустив процедуру построения индивидуального релиза. Следуйте инструкциям в статье о extref:{releng}[подготовке релизов FreeBSD]. - -[[windows-coexist]] -=== Может ли Windows(R) сосуществовать с FreeBSD? (специфично для x86) - -Да, если Windows(R) установлена первой. Загрузчик FreeBSD будет управлять процессом выбора загрузки Windows(R) или FreeBSD. Если Windows(R) устанавливается следом, то это приведёт к перезаписи загрузчика. Если такое случится, обратитесь к следующему разделу. - -[[bootmanager-restore]] -=== Другая операционная система уничтожила мой загрузчик операционной системы! Как мне его вернуть? (специфично для x86) - -Способ восстановления зависит от используемого загрузчика. Меню выбора загрузки, используемое во FreeBSD, можно переустановить с помощью man:boot0cfg[8]. Пример для восстановления меню загрузки на диске _ada0_: - -[source,shell] -.... -# boot0cfg -B ada0 -.... - -Неинтерактивный загрузчик MBR можно установить с помощью man:gpart[8]: - -[source,shell] -.... -# gpart bootcode -b /boot/mbr ada0 -.... - -Более сложные ситуации, включая использование дисков GPT, рассматриваются в man:gpart[8]. - -[[need-complete-sources]] -=== Нужно ли устанавливать исходные тексты системы? - -В общем случае, нет. Для работы основной системы присутствие исходных текстов не требуется. Некоторые порты наподобие [.filename]#sysutils/lsof# не будут собираться без установленных исходных текстов системы. В частности, если порт собирает модуль ядра или напрямую обращается к структурам ядра, в этом случае исходные тексты должны быть установлены. - -[[need-kernel]] -=== Нужно ли перекомпилировать ядро? +Инструкции по установке можно найти в главе extref:{handbook}bsdinstall/[Установка FreeBSD Руководства]. -Обычно нет. -Поставляемое ядро `GENERIC` содержит драйвера, необходимые для типового компьютера. -Инструмент man:freebsd-update[8] не может использоваться для обновления FreeBSD с собственным ядром, и это является ещё одной причиной для того, чтобы по возможности придерживаться использования ядра `GENERIC`. -Для компьютеров с очень небольшим объёмом ОЗУ, таких как встраиваемые системы, может потребоваться собственное небольшое ядро, содержащее только необходимые драйверы. +[[current]] +=== Что такое концепция FreeBSD-CURRENT? -[[password-encryption]] -=== Какой из методов шифрования паролей (DES, Blowfish или MD5) я должен использовать, и как указать, шифрование какого типа применяется пользователями? +FreeBSD-CURRENT представляет собой ветку разработки операционной системы FreeBSD. Это самая передовая версия FreeBSD, в которой ведётся активная разработка. -Во FreeBSD по умолчанию используется метод шифрования _SHA512_. -Пароли, зашифрованные методом DES, остаются доступными для обратной совместимости с операционными системами, в которых всё ещё используется менее защищённый метод шифрования паролей. -FreeBSD также поддерживает пароли в форматах Blowfish и MD5. -Управление выбором используемого метода для новых паролей осуществляется через параметр входа `passwd_format` в файле [.filename]#/etc/login.conf#, принимающий значения `des`, `blf` (если они доступны) или `md5`. -Подробная информация о параметрах входа находится на странице Справочника man:login.conf[5]. +Хотя он включает последние функции, улучшения и экспериментальные изменения, он не всегда может быть таким стабильным, как FreeBSD-STABLE или релизные версии. -[[ffs-limits]] -=== Какие существуют ограничения для файловой системы FFS? +FreeBSD-CURRENT — это платформа для разработчиков и энтузиастов, которые хотят внести свой вклад в будущее FreeBSD и оставаться на переднем крае её разработки, даже несмотря на то, что в ней могут иногда происходить значительные изменения и *она не рекомендуется для производственных систем*. -Наибольший размер файловой системы FFS ограничен практически количеством памяти, которая требуется для работы man:fsck[8]. man:fsck[8] использует 1 бит на фрагмент, и для стандартного размера фрагмента 4 Кбайт это эквивалентно использованию 32 Мбайт памяти на терабайт дискового пространства. Это означает, что на архитектурах с ограничением размера пользовательского процесса в 2 Гбайт (например, i386(TM)) максимальный размер файловой системы, доступный для man:fsck[8], составляет ~60 Тбайт. +[[stable]] +=== Что такое концепция FreeBSD-STABLE? -Без ограничения на память для man:fsck[8] максимальный размер файловой системы составляет 2 ^ 64 (блоков) * 32 Кбайт => 16 экса * 32 Кбайт => 512 зеттабайт. +Ветка FreeBSD-STABLE — это более стабильная ветка разработки по сравнению с CURRENT. Она содержит код, который проходит дополнительные тестирование и доработку перед слиянием в ветку RELEASE. STABLE — хороший выбор для тех, кто хочет следить за разработкой FreeBSD, но предпочитает более стабильную среду, чем CURRENT. -Максимальный размер файла на FFS приблизительно равен 2 петабайт со стандартным размером блока 32 Кбайт. Каждый 32 Кбайтный блок может адресовать до 4096 блоков. С использованием тройной косвенной адресации это составляет 32 Кбайт * 12 + 32 Кбайт * 4096 + 32 Кбайт * 4096^2 + 32 Кбайт * 4096^3. Увеличение размера блока до 64 Кбайт увеличит максимальный размер файла в 16 раз. +[[release-freq]] +=== Когда выходят выпуски FreeBSD? -[[archsw-readin-failed-error]] -=== Я скомпилировал новое ядро и при загрузке получил сообщение об ошибке readin failed. +Версия {re} выпускает новую основную версию FreeBSD примерно каждые 18 месяцев и новую промежуточную версию — в среднем каждые 8 месяцев. Даты выпуска объявляются заранее, чтобы разработчики знали, когда их проекты должны быть завершены и протестированы. Перед каждым выпуском проводится период тестирования, чтобы убедиться, что добавление новых функций не нарушает стабильность релиза. -Ядро и компоненты системы не синхронизированы. Такая конфигурация не поддерживается. Обязательно используйте команды `make buildworld` и `make buildkernel` для обновления ядра. +[[snapshot-freq]] +=== Когда создаются снимки состояния FreeBSD? -Загрузите систему, непосредственно указав ядро на втором этапе загрузки, нажав любую клавишу до запуска загрузчика при появлении символов `|`. +Снимки FreeBSD обычно создаются с регулярными интервалами для всех активно разрабатываемых веток. Эти снимки фиксируют состояние исходного кода FreeBSD и связанных с ним бинарных пакетов на определённый момент времени. Частота создания снимков может варьироваться, но обычно они делаются еженедельно или раз в две недели. Эти снимки предоставляют пользователям возможность получить доступ к последним изменениям и разработкам в FreeBSD, помогая им оставаться в курсе прогресса проекта. [[general-configuration-tool]] -=== Существует ли инструмент для настройки системы после её установки? - -Да, bsdconfig предоставляет замечательный интерфейс для пост-установочной настройки FreeBSD. - -[[hardware]] -== Аппаратная совместимость - -[[compatibility-general]] -=== Вопросы общего характера - -[[which-hardware-to-get]] -==== Я хочу приобрести некое оборудование для моей системы FreeBSD. Какая модель/производитель/тип лучше всего? - -Это постоянно обсуждается в списках рассылки FreeBSD и является ожидаемым вопросом, так как аппаратура меняется очень быстро. Обратитесь к Hardware Notes для -FreeBSD link:{u-rel123-hardware}[{rel123-current}] или -link:{u-rel131-hardware}[{rel131-current}], а также поищите в -https://www.FreeBSD.org/search/#mailinglists[архивах списков рассылки] перед -тем, как задавать вопросы о самом последнем и лучшем оборудовании. Весьма -вероятно, что обсуждение касаемо этого типа оборудования велось как раз на прошлой неделе. - -Перед приобретением лэптопа посмотрите архивы {freebsd-questions} или, возможно, более специфичные списки рассылки по данному типу оборудования. - -[[memory-upper-limitation]] -==== Каковы ограничения на оперативную память? - -FreeBSD как операционная система в целом поддерживает столько же физической памяти (ОЗУ), сколько аппаратная платформа, на которой она работает. -Имейте в виду, что различные платформы имеют различные ограничения на память; например, i386(TM) без PAE поддерживает максимум 4 Гбайт памяти (и обычно ещё меньше из-за адресного пространства PCI), а i386(TM) с PAE поддерживает максимум 64 Гбайт. -Во FreeBSD 10 для платформы AMD64 поддерживается до 4 Тбайт физической памяти. - -[[memory-i386-over-4gb]] -==== Почему FreeBSD видит меньше 4 Гбайт памяти, когда система установлена на машину i386(TM)? - -Общее адресное пространство для машин i386(TM) является 32-разрядным; это означает, что адресоваться (т.е. быть получено) может не более 4 Гбайт памяти. -Более того, некоторые адреса в этом диапазоне зарезервированы для различных целей аппаратным обеспечением, например, для использования и управления устройствами PCI, для доступа к видеопамяти, и так далее. -Таким образом, общий объем памяти, используемой операционной системой для ядра и приложений, ограничен размером, значительно меньшим, чем 4 Гбайт. -В такой конфигурации максимально доступная физическая память составляет от 3.2 Гбайт до 3.7 Гбайт. - -Для преодоления ограничения в 3.2 Гбайт-3.7 Гбайт установленной памяти (т.е. для получения 4 Гбайт, но также более 4 Гбайт) должен использоваться специальный механизм, именуемый PAE. -Сокращение PAE означает Physical Address Extension (расширение физического адреса) и предоставляет для 32-разрядных x86 процессоров способ адресовать более 4 Гбайт памяти. -PAE переназначает память, которая иначе была бы перекрыта адресными резервациями для аппаратных устройств выше диапазона 4 Гбайт, и использует её как дополнительную физическую память (смотрите man:pae[4]). -Использование PAE имеет свои недостатки; такая модель доступа к памяти является чуть более медленной по сравнению с обычным режимом (без PAE), и также не работают динамически загружаемые модули (смотрите man:kld[4]). -Это означает, что все драйверы должны присутствовать статически в самом ядре. - -Самый распространённым способом включения PAE является сборка нового ядра со специальным уже подготовленным файлом конфигурации ядра, именуемым [.filename]#PAE#, который уже сконфигурирован для сборки безопасного ядра. -Имейте в виду, что некоторые строки в этом файле конфигурации ядра являются слишком консервативными, и некоторые драйверы, помеченные как неготовые для использования с PAE, на самом деле являются годными. -На практике, если драйвер работает на 64-разрядной архитектуре (такой как AMD64), он также работает с PAE. -При создании своего собственного файла конфигурации ядра можно включить PAE, добавив следующую строку: - -[.programlisting] -.... -options PAE -.... - -PAE не является широко используемым в настоящее время, поскольку большинство нового x86 аппаратного обеспечения также поддерживает работу в 64-разрядном режиме, также известном как AMD64 или Intel(R) 64. Этот режим имеет большее адресное пространство и не нуждается в таких трюках. FreeBSD поддерживает AMD64, и рекомендуется использование этой версии FreeBSD вместо версии i386(TM), если требуется больше 4 Гбайт памяти. - -[[compatibility-processors]] -=== Аппаратные платформы и процессоры - -[[architectures]] -==== Поддерживает ли FreeBSD аппаратные платформы, отличные от x86? - -Полноценно поддерживаются архитектуры первого класса, такие, как -i386 или amd64. Архитектуры 2 и 3 класса поддерживаются, исходя -из принципа наибольшего внимания при имеющихся возможностях. -Полное описание классов доступно в extref:{committers-guide}[Руководстве -коммиттера, archs]. - -Полный список поддерживаемых архитектур находится на https://www.FreeBSD.org/ru/platforms/[странице], посвящённой платформам. - -[[smp-support]] -==== Поддерживает ли FreeBSD многопроцессорные системы (SMP)? - -FreeBSD поддерживает симметричное мультипроцессирование (SMP) на всех невстраиваемых платформах (например, i386, amd64 и так далее). SMP также поддерживается для arm и MIPS, хотя некоторые процессоры могут это не поддерживать. В реализации SMP во FreeBSD используется мелкодисперсная синхронизация, и производительность масштабируется почти линейно с ростом количества процессоров. +=== Есть ли инструмент для выполнения задач пост-установочной конфигурации? -За подробной информацией обращайтесь к странице Справочника man:smp[4]. +Да. man:bsdconfig[8] предоставляет удобный интерфейс для настройки FreeBSD после установки. -[[microcode]] -==== Что такое микрокод? Как установить обновление микрокода для процессоров AMD или Intel? +[[search-software-freebsd]] +=== Как найти программное обеспечение для установки в FreeBSD? -Микрокод является программным средством реализации аппаратных инструкций процессора. -Его использование позволяет исправлять ошибки процессора без замены микросхемы. +Поиск программного обеспечения для установки в FreeBSD упрощается благодаря менеджеру пакетов man:pkg[8] и команде `pkg search`. -Установите package:sysutils/cpu-microcode[], а затем добавьте: +Пользователи могут использовать эту команду для поиска доступных пакетов по ключевым словам, названиям пакетов или описаниям. Эта функция помогает быстро найти нужное программное обеспечение в обширной коллекции портов и пакетов FreeBSD, упрощая процесс добавления новых приложений и инструментов в систему FreeBSD. -[.programlisting] -.... -microcode_update_enable="YES" -.... - -в [.filename]#/etc/rc.conf# - -[[compatibility-peripherals]] -=== Периферийные устройства - -[[supported-peripherals]] -==== Какого рода периферийные устройства поддерживает FreeBSD? - -За информацией о списке оборудования, о котором известно, что оно -работоспособно, а также данными о каких бы то ни было ограничечниях, обратитесь -к Hardware Notes для FreeBSD link:{u-rel123-hardware} -[{rel123-current}] или link:{u-rel131-hardware}[{rel131-current}]. - -[[compatibility-kbd-mice]] -=== Клавиатуры и мыши - -[[moused]] -==== Можно ли использовать мышь вне X Window? - -Используемый по умолчанию драйвер консоли man:syscons[4] предоставляет возможность использования указателя мыши в текстовых консолях для выделения и переноса текста. Запустите демон мыши man:moused[8] и включите отображение указателя мыши в виртуальной консоли: - -[source,shell] -.... -# moused -p /dev/xxxx -t yyyy -# vidcontrol -m on -.... - -Здесь _xxxx_ - это имя устройства мыши, а _yyyy_ - тип протокола, используемого мышью. Даемон мыши может автоматически определять тип протокола большинства мышей, за исключением старых, работающих по последовательному интерфейсу. Для выполнения автоматического определения в качестве протокола укажите `auto`. Если автоматическое определение не работает, то обратитесь к справочным страницам по man:moused[8] для получения списка поддерживаемых типов протоколов. - -Для мыши типа PS/2 добавьте строчку `moused_enable="YES"` в файл [.filename]#/etc/rc.conf# для запуска даемона мыши во время загрузки системы. Кроме того, для использования даемона мыши во всех виртуальных терминалах, а не только на консоли, добавьте `allscreens_flags="-m on"` в файле [.filename]#/etc/rc.conf#. - -После запуска даемона мыши, доступ к мыши должен согласовываться между даемоном мыши и другими программами типа X Window. Обратитесь к вопросу из FAQ<> для получения более полной информации по этому вопросу. +[[latest-packages-freebsd]] +=== Почему я не получаю последние пакеты в моей системе FreeBSD? -[[text-mode-cut-paste]] -==== Как можно вырезать и копировать текст с помощью мыши в текстовой консоли? +Доступность последних пакетов в FreeBSD может зависеть от различных факторов, включая частоту обновлений репозитория пакетов и используемую версию FreeBSD. -Удалить данные с помощью мыши нельзя. -Однако их можно скопировать и вставить. -После запуска даемона мыши, как описано в ответе на <>, нажмите кнопку 1 (левую) и двигайте мышь для выделения текста. -Затем нажмите кнопку 2 (среднюю) для его вставки с позиции текстового курсора. -Нажатие кнопки 3 (правой) "расширит" выбранную текстовую область. +Также следует отметить, что для портов FreeBSD существуют две ветки. Наиболее обновляемая называется `latest`, а наиболее стабильная — `quarterly`. Для использования самых свежих пакетов необходимо настроить ветку `latest`. Информацию о настройке веток можно найти в link:{handbook}ports/[главе о портах в Руководстве]. -Если у вашей мыши отсутствует средняя кнопка, её можно сэмулировать либо переназначить кнопки опциями даемона мыши. Обратитесь к справочным страницам по man:moused[8] для получения полной информации. - -[[mouse-wheel-buttons]] -==== У моей мыши есть дополнительные колёсико и кнопочки. Можно ли их использовать во FreeBSD? - -Ответ, к сожалению, "в зависимости от обстоятельств". Эти мышки с дополнительными возможностями, как правило, требуют наличия специальных драйверов. До тех пор, пока драйвер мыши или прикладная программа не будут иметь отдельную поддержку такой мыши, она будет работать как стандартная двух- или трёхкнопочная мышь. - -Возможные способы использования колёсиков мыши при работе в X Window описаны в <>. - -[[keyboard-delete-key]] -==== Как использовать клавишу delete в sh и csh? - -Для Bourne Shell добавьте следующие строки в [.filename]#~/.shrc#. Смотрите man:sh[1] и man:editrc[5]. - -[.programlisting] -.... -bind ^[[3~ ed-delete-next-char # for xterm -.... - -Для C Shell добавьте следующие строки в [.filename]#~/.cshrc#. Смотрите man:csh[1]. - -[.programlisting] -.... -bindkey ^[[3~ delete-char # for xterm -.... +[[hardware]] +== Оборудование -[[compatibility-other]] -=== Другое оборудование +В разделе «Оборудование» рассматривается совместимость FreeBSD с различными аппаратными конфигурациями. Он охватывает широкий круг тем, включая поддерживаемые архитектуры, максимальный объем оперативной памяти, масштабируемость процессоров, совместимость с видеокартами, поддержку Wi-Fi-адаптеров, а также работу с сетевыми картами 10 Gigabit Ethernet. Независимо от того, планируется ли развертывание FreeBSD на серверах, рабочих станциях или специализированном оборудовании, этот раздел дает представление о возможностях и ограничениях FreeBSD, предоставл яя информацию о выборе и настройке оборудования. -[[es1370-silent-pcm]] -==== Есть ли решение проблемы отсутствия звука при использовании звуковых адаптеров man:pcm[4]? +[[architectures-support]] +=== Какие архитектуры поддерживает FreeBSD? -Некоторые звуковые адаптеры при каждой загрузке устанавливают нулевой уровень -громкости выводимого звука. При работе с FreeBSD 13 и более ранними версиями -при каждой загрузке машины выполняйте следующую команду: +FreeBSD поддерживает широкий спектр архитектур, что делает его гибким выбором для различных аппаратных сред. Совместимость распространяется на такие архитектуры, как `amd64`, `arm64`, `riscv` и другие. -[source,shell] -.... -# mixer pcm 100 vol 100 cd 100 -.... +Полный список поддерживаемых архитектур можно найти на странице link:https://www.FreeBSD.org/platforms/[платформ]. -Используйте следующую команду при работе с FreeBSD 14 и более поздними -версиями: +[[ram-support]] +=== Сколько оперативной памяти поддерживает FreeBSD? -[source,shell] -.... -# mixer pcm.volume=100 vol.volume=100 cd.volume=100 -.... +FreeBSD как операционная система обычно поддерживает столько же физической памяти (RAM), сколько и платформа, на которой она работает. Следует учитывать, что разные платформы имеют разные ограничения по памяти. -[[power-management-support]] -==== Поддерживает ли FreeBSD управление энергосбережением на лэптопах? +Например, платформы `amd64` поддерживают до 4 ТБ физической памяти. -FreeBSD поддерживает функции ACPI, реализованные в современном оборудовании. Дополнительная информация находится на странице Справочника man:acpi[4]. +[[cpu-support]] +=== Сколько процессоров поддерживает FreeBSD? -[[troubleshoot]] -== Устранение некоторых проблем +Поддержка процессоров в FreeBSD варьируется в зависимости от архитектуры. На системах amd64 и arm64 FreeBSD может эффективно использовать до 1024 процессоров. На системах с архитектурой powerpc FreeBSD поддерживает до 256 процессоров, а на системах risc-v — до 16 процессоров. -=== Почему FreeBSD определяет неправильное количество памяти на аппаратуре i386(TM)? +[[graphics-cards-support]] +=== Какие графические карты поддерживает FreeBSD? -Наиболее вероятная причина заключается в различии между адресами физической и виртуальной памяти. +Известные производители графических устройств, такие как Intel(R), AMD(R) или NVIDIA(R), хорошо поддерживаются. -Существующее соглашение для большинства оборудования ПК заключается в использовании пространства памяти, лежащей в диапазоне между 3.5 ГБ и 4 ГБ для специальных нужд (обычно для нужд PCI). Это пространство адресов используется для доступа к PCI оборудованию. Как результат, реальная физическая память не может быть получена в данном адресном пространстве. +Список поддерживаемых видеокарт от link:https://wiki.freebsd.org/Graphics/Intel-GPU-Matrix[Intel] и link:https://wiki.freebsd.org/Graphics/AMD-GPU-Matrix[AMD] можно найти в FreeBSD Wiki. -Какие действия выполняются с памятью в данном регионе, зависит от оборудования. К сожалению, некоторое оборудование ничего не выполняет и возможность использовать эти 500 МБ ОЗУ полностью потеряна. +[[wifi-support]] +=== Какие Wi-Fi карты поддерживает FreeBSD? -К счастью, большинство оборудования перераспределяет память к более верхней позиции, так что она всё ещё может использоваться. Тем не менее, это может вызвать некоторое замешательство при просмотре сообщений, выдаваемых при загрузке. +Это область, которая быстро меняется по состоянию на 2025 год, поэтому рекомендуется проверить Список совместимого оборудования для выбранного link:https://www.freebsd.org/releases/[релиза]. -На 32-битной версии FreeBSD кажется, что эта память потерялась, поскольку она переназначится в диапазон выше 4 ГБ, который не доступен для 32 битного ядра. В данном случае, решение заключается в сборке ядра с PAE. За дополнительной информацией обращайтесь к статье об ограничениях памяти. +Список устройств PCIe Wi-Fi, которые хорошо работают в FreeBSD: -На 64nbsp;битной версии FreeBSD или в случае использования ядра с включённым PAE FreeBSD корректно определит и перераспределит память, так, что она станет годной к использованию. Тем не менее, во время загрузки может показаться, что FreeBSD определяет больше памяти, чем реально имеется в системе из-за описанного перераспределения. Это нормально, и информация о доступной памяти будет скорректирована по окончанию процесса загрузки. +* Устройства на чипсетах Intel, поддерживаемые man:iwlwifi[4] (высокоскоростные — начиная с FreeBSD 14.3) +* Realtek RTL8188CE Mini PCIe -[[signal11]] -=== Программы аварийно завершают работу с ошибкой Signal 11. +Список USB Wi-Fi устройств, которые хорошо работают в FreeBSD: -Ошибки выполнения, связанные с сигналом 11, происходят, когда процесс пытается обратиться к области памяти, доступ к которой ему не был дан операционной системой. Если что-то подобное происходит в случайные, казалось бы, промежутки времени, следует начать поиск причины. +* USB-адаптеры RT5370 (поддерживают режим hostap) +* TP-Link TL-WDN3200 (RT5592, man:if_run[4]) +* TP-Link TL-WN725N v2 (RTL8188EU, man:rtwn[4]) +* TP-Link Archer T4U (RTL8812AU, man:rtwn[4]) +* D-Link DWA-131 (RTL8192CU, man:rtwn[4]) +* D-Link DWA-171 rev A1 (RTL8821AU, man:rtwn[4]) +* ASUS USB-N10 NANO (RTL8188CUS, man:rtwn[4]) -Эти проблемы могут быть классифицированы следующим образом: -. Если проблема возникает только в определённом самостоятельно разработанном приложении, то скорее всего это ошибка в коде. -. Если это проблема в части базового комплекта системы FreeBSD, то это тоже может быть ошибка в программном коде, хотя в большинстве случаев такие проблемы обнаруживаются и ошибки исправляются задолго до того, как обычным читателям FAQ доводится использовать этот код (именно для этого предназначена версия -CURRENT). +[[gigabit-ethernet-network-support]] +=== Поддерживает ли FreeBSD сетевые карты 10 Gigabit Ethernet? -Вероятно, это не связано с ошибкой во FreeBSD, если проблема проявляется при компиляции программы, и при этом ошибка компилятора каждый раз разная. +FreeBSD обеспечивает надежную поддержку сетевых карт 10 Gigabit Ethernet, что делает его подходящим выбором для высокоскоростных сетевых сред. Ядро FreeBSD включает драйверы для широкого спектра адаптеров 10 Gigabit Ethernet от различных производителей, гарантируя беспрерывную интеграцию и оптимальную производительность сети. -Например, если запуск `make buildworld` завершился неудачей при попытке компиляции [.filename]#ls.c# в [.filename]#ls.o# и при повторном запуске компиляция снова прервалась на том же месте, то это ошибка процесса построения. Обновите исходные тексты и попробуйте снова. Если же компиляция прерывается в каком-то другом месте, то причина наиболее вероятно кроется в оборудовании. +Дополнительную информацию можно получить по ссылке: link:https://wiki.freebsd.org/Networking/10GbE[FreeBSD Wiki]. -В первом случае воспользуйтесь отладчиком, к примеру, man:gdb[1], для нахождения точки программы, в которой делается попытка доступа к неверному адресу, и исправьте эту ошибку. +[[documentation-support]] +== Документация и Поддержка -Во втором случае проверьте, какой компонент вашего оборудования неисправен. +В этом разделе представлены полезные ресурсы для тех, кто хочет углубить свои знания о FreeBSD. Здесь рассматриваются различные темы, включая рекомендуемые книги для изучения FreeBSD, варианты коммерческого обучения и поддержки, информацию о понимании внутреннего устройства FreeBSD, а также о том, где можно получить помощь в сообществе FreeBSD. -Среди часто приводящих к этому причин: +[[books]] +=== Какие есть хорошие книги о FreeBSD? -. Жёсткие диски могут перегреваться. Проверьте работоспособность вентиляторов, так как жёсткие диски и другое оборудование могут перегреваться. -. Процессор перегревается. Это может произойти при разгоне процессора или при поломке процессорного вентилятора. -В любом случае убедитесь, что ваше оборудование работает в нормальном режиме, -как ему и положено, по крайней мере, на момент поиска причин неисправности. -В противном случае сбросьте частоту на настройки по умолчанию.) -+ -Что касается разгона, то медленная система обходится дешевле, чем сгоревшая система, требующая замены! -К тому же проблемы на таких системах не находят понимания общественности. -. Проблемная память. Если установлены различные микросхемы SIMM/DIMM, вытащите их все и попробуйте по одной до локализации проблемы в проблематичной микросхеме DIMM/SIMM, либо их комбинации. -. Чересчур оптимистичные настройки материнской платы. Настройки BIOS и перемычки на материнской плате предоставляют возможность задавать различные частоты и задержки. -Часто бывает достаточно настроек по умолчанию, но иногда установка слишком малых периодов ожидания для ОЗУ или установка параметра "RAM Speed: Turbo" вызывает странное поведение. -Возможным решением может стать установка параметров BIOS по умолчанию с предварительной записью текущих значений. -. Неустойчивое или недостаточное электропитание материнской платы. -Уберите неиспользуемые адаптеры ввода/вывода, жёсткие диски и приводы компакт-дисков или отключите их от кабеля электропитания для проверки, что блок питания может работать с меньшей нагрузкой. -Или попробуйте воспользоваться другим блоком питания, желательно большей мощности. -Например, если имеющийся блок питания рассчитан на 250 Ватт, попробуйте другой мощностью 300 Ватт. +Энтузиасты и изучающие FreeBSD могут ознакомиться с разнообразными информативными книгами, посвящёнными этой операционной системе. Эти книги охватывают темы от основ FreeBSD до продвинутого системного администрирования и разработки. -Прочитайте раздел про <> для дальнейшего объяснения и обсуждения, как аппаратура или программное обеспечение для тестирования памяти могут пропускать сбойную память. Подробная информация по этому вопросу содержится в http://www.bitwizard.nl/sig11/[FAQ по проблеме SIG11]. +Некоторые примечательные книги включают *"FreeBSD: Подробное руководство" ("Absolute FreeBSD: The Complete Guide To FreeBSD")* Майкла В. Лукаса и серию *"FreeBSD Mastery"* того же автора, среди прочих. Эти ресурсы предоставляют ценные знания и помогают пользователям любого уровня освоить FreeBSD и раскрыть её потенциал. -Наконец, если ничего не помогает, то, возможно, это из-за ошибки во FreeBSD. Следуйте <> для отправки сообщения о проблеме. +Помимо книг, проект FreeBSD создает обширную документацию, доступную онлайн на портале link:https://docs.FreeBSD.org/[Документация]. -[[trap-12-panic]] -=== Моя система аварийно завершает работу с сообщениями Fatal trap 12: page fault in kernel mode либо panic:, и выдаёт много дополнительной информации. Что мне делать? +[[training]] +=== Где можно получить коммерческое обучение и поддержку FreeBSD? -Разработчики FreeBSD интересуются такими ошибками, но им нужно больше информации, чем просто текст ошибки. Скопируйте весь текст сообщения. Затем обратитесь к разделу FAQ об <>, постройте отладочное ядро и получите трассу вызовов. Это может звучать трудной задачей, зато не требует навыков программирования. Просто следуйте указаниям. +Для тех, кто ищет профессиональное обучение и поддержку по FreeBSD, несколько коммерческих поставщиков предлагают индивидуальные услуги. Проект FreeBSD ведет link:https://www.freebsd.org/commercial/[список компаний], у которых можно запросить поддержку. -[[proc-table-full]] -=== Что означает сообщение об ошибке maxproc limit exceeded by uid %i, please see tuning(7) and login.conf(5)? +[[learn-advanced]] +=== Как можно узнать больше о внутреннем устройстве FreeBSD? -Ядро FreeBSD позволяет одновременно существовать ограниченному числу процессов. Это зависит от значения переменной man:sysctl[8] `kern.maxusers`. `kern.maxusers` также влияет на другие ограничения ядра, такие как буферы работы с сетью. Если система сильно загружена, поднимите `kern.maxusers`. Кроме максимального числа процессов это также увеличит значения других параметров, ограничивающих систему. +Для более глубокого изучения внутреннего устройства FreeBSD заинтересованные лица могут обратиться к таким ресурсам, как "FreeBSD: Дизайн и архитектура (The Design And Implementation Of The FreeBSD Operating System)". Ещё одним ценным источником информации является extref:{arch-handbook}[Руководство по архитектуре FreeBSD], который предоставляет подробные сведения об архитектуре FreeBSD, организации системы и принципах проектирования -Для корректировки значения `kern.maxusers` обратитесь к разделу -extref:{handbook}config/[Ограничения файлов/процессов, kern-maxfiles] -Руководства. В нём говорится об открытых файлах, но те же ограничения касаются -и процессов. +Кроме того, изучение исходного кода FreeBSD, доступного в репозитории исходных текстов FreeBSD, дает ценное представление об основных компонентах операционной системы. -Если система загружена слабо, но в ней запущено слишком много процессов, поправьте параметр `kern.maxproc`, определив его значение в [.filename]#/boot/loader.conf#. Изменение не вступит в силу до перезагрузки системы. За дополнительной информацией, касающейся настройки параметров, обращайтесь к странице Справочника man:loader.conf[5]. Если эти процессы запущены одним и тем же пользователем, поправьте значение `kern.maxprocperuid`, чтобы оно было на единицу меньше, чем новое значение `kern.maxproc`. Оно должно быть меньше по крайней мере на единицу, потому что системная программа man:ini t[8] должна работать всегда. +[[help-freebsd-system]] +=== Как получить помощь в системе FreeBSD? *** 4069 LINES SKIPPED *** From nobody Sat Sep 20 10:09:18 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cTQ8H1cF5z68bTH for ; Sat, 20 Sep 2025 10:09:19 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cTQ8H0yfPz45F0; Sat, 20 Sep 2025 10:09:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758362959; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9uvKstcYc0buChfNkEA1TH/gqcVJZxknOPKgNJCj55k=; b=XkUhF8YHaA9p6Qn2LShUp0Tp8nS+hiP1FtoSSHfr5CkPhXoEfT8piHRcJlpR6IuuJ9fxSQ ABX/Ino37qld7+YSku5qYcfJA/vbxOGgB+7ukadpvFHBQiMddU2JHQXQBHKSzHp/TlhD2/ Fz3c4FEaZ5AzQpBy8Zrhd7g/Jz0nA8wacPpRILrWdocKkijIg7FelfZKJoKeavDDzpQvu1 sq0h+piniyutsLReJg9KuOvUJYEL0AkESedx0MLT4zMNj/A/eSSyX9Abx/6d/7AlWBexVH MdqBrOLtgPmjTF2N0xk8++PqQ4DiyYBxVyMqFizT5BHsMGhJ87XgQobHFSwm3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758362959; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9uvKstcYc0buChfNkEA1TH/gqcVJZxknOPKgNJCj55k=; b=QgEoADpUQ2mr/ltxm0LKTOITYjnvJVFBIwi6r8ANX1Db764TmPPKVcVIZZrLAaU+Ap/KPl EuwR19pxlbt4WsGGClrk7lTq3suxZ44QNhyUYPZ3mthKLS4BBS674pddpcbPogGZEs8sS4 r9p8CRPFS8ISjQ7CNfN7dHTFlYXiFZpQqpy8F+0Tb1HQh7nOdPfUiWrm+A1EflmoOSIi1C 3SjYR8tjz1vFstj/woBq7QybR/ctN1UiRDVELOpNBWO++rO/yhKgf4oOLMOFXGZIrLhMXI 5SRJTtoQk9Ud8ulL+uEJGoPps2SoZzEJ0A0380PZ6asqQeyCR8VZa6JTIRfdqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758362959; a=rsa-sha256; cv=none; b=uQw18MfSXdKd/+Uq0lKczudg5Op3fl20mQF/6OlxJYBniK0n8nlAobLrghjeltfFqQFobf DRQPLVoBcocP9oT8i5CYfREApA40VsKvOIrN9nvCAE+kNch1Lr3SZKx5dA7RKNi0QSX+f7 UWPhoDf5e2i/ox3Ebw2FcbERFay9qQh+sRIm5qwFx72T9qVQa6qCrWeuRcBfQ8eduKYQNi /4srtUX/Tw9HrcBZ3qsprKtzYT8LSIy24Bef4YxYHr7N1fXQLe4yhAda0GbHGgVR0xSdcD e98DOfLT09n/XgwpDwsxecdaGVHIcuGolA+P4umdvss0ahbTdp6iZEJktEGukA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cTQ8H0Dt5z762; Sat, 20 Sep 2025 10:09:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58KA9I7e071639; Sat, 20 Sep 2025 10:09:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58KA9Iit071636; Sat, 20 Sep 2025 10:09:18 GMT (envelope-from git) Date: Sat, 20 Sep 2025 10:09:18 GMT Message-Id: <202509201009.58KA9Iit071636@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: 0529d2fd98 - main - update translation of articles/problem-reports to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0529d2fd9833e09cb7dffe79966b545e360946e7 Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=0529d2fd9833e09cb7dffe79966b545e360946e7 commit 0529d2fd9833e09cb7dffe79966b545e360946e7 Author: Vladlen Popolitov AuthorDate: 2025-09-20 10:08:39 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-20 10:08:39 +0000 update translation of articles/problem-reports to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D52023 --- .../ru/articles/problem-reports/_index.adoc | 248 +--- .../content/ru/articles/problem-reports/_index.po | 1433 ++++++++++++++++++++ 2 files changed, 1495 insertions(+), 186 deletions(-) diff --git a/documentation/content/ru/articles/problem-reports/_index.adoc b/documentation/content/ru/articles/problem-reports/_index.adoc index 307dc95049..47827186a6 100644 --- a/documentation/content/ru/articles/problem-reports/_index.adoc +++ b/documentation/content/ru/articles/problem-reports/_index.adoc @@ -1,9 +1,13 @@ --- -title: Составление сообщений о проблеме во FreeBSD authors: - - author: Dag-Erling Smørgrav - - author: Mark Linimon -trademarks: ["freebsd", "ibm", "intel", "sparc", "sun", "general"] + - + author: 'Dag-Erling Smørgrav' + - + author: 'Mark Linimon' +description: 'Как лучше сформулировать и отправить отчет о проблеме в проект FreeBSD' +tags: ["formulate", "submit", "FreeBSD", "PR"] +title: 'Составление сообщений о проблеме во FreeBSD' +trademarks: ["freebsd", "ibm", "intel", "sun", "general"] --- = Составление сообщений о проблеме во FreeBSD @@ -67,12 +71,8 @@ toc::[] Вот некоторые случаи, в которых может оказаться полезным отправить сообщение о чем-то, что не является ошибкой: * Уведомление об обновлении программного обеспечения, которое поддерживается сторонними разработчиками (в основном порты, но также и компоненты базовой системы, разрабатываемые сторонними организациями, такие, как BIND или различные утилиты GNU). -+ -Для не поддерживаемых никем портов (переменная `MAINTAINER` содержит `ports@FreeBSD.org`), такие уведомления о обновлении будут замечены заинтересовавшимся коммиттером и вас могут попросить предоставить патч для обновления порта; предоставление патча до того, как вас попросят об этом сильно увеличит шансы того, что порт будет обновлён вовремя. -+ -Если порт поддерживается, PR-ы, указывающие о появлении новых улучшенных (upstream) релизов обычно не очень полезны, так как они прибавляют много вспомогательной работы для коммиттеров, а мэйнтейнер наверняка уже знает о новой версии. Они уже наверняка работали с разработчиками над ней или они возможно тестируют её, чтобы убедиться в отсутствии регрессии и т.п. -+ -В любом случае, следование процессу, описанному в extref:{porters-handbook}[Руководстве по созданию портов, port-upgrading] даст наилучшие результаты. (Также можно ознакомиться с статьей link:{contributing-ports}[Контрибуция в коллекцию портов FreeBSD].) +* Для не поддерживаемых никем портов (переменная `MAINTAINER` содержит `ports@FreeBSD.org`), такие уведомления о обновлении будут замечены заинтересовавшимся коммиттером и вас могут попросить предоставить патч для обновления порта; предоставление патча до того, как вас попросят об этом сильно увеличит шансы того, что порт будет обновлён вовремя. +* В любом случае, следование процессу, описанному в extref:{porters-handbook}upgrading[Руководстве по созданию портов] даст наилучшие результаты. (Также можно ознакомиться с статьей extref:{contributing}[Вклад в коллекцию портов FreeBSD, ports-contributing].) Ошибка, которую нельзя воспроизвести, вряд ли будет исправлена. Если ошибка возникла только единожды, и вы не можете ее воспроизвести, к тому же никто с ней больше не сталкивался, нет никаких шансов, что разработчики смогут ее воспроизвести или понять, что делается неправильно. Это не значит, что такого не случается, но это значит, что шансов у вашего сообщения дойти когда-либо до стадии исправления ошибки очень малы. Часто эти виды ошибок возникают из-за неудовлетворительной работы жёстких дисков, перегревшихся процессоров. Всегда, когда э о возможно вы должны отслеживать такие случаи перед посылкой сообщения об ошибке. @@ -84,40 +84,41 @@ toc::[] Затем вы должны убедиться, действительно ли проблема существует. Существует всего несколько вещей, которые раздражают разработчика больше, чем получение сообщения об ошибке, которую он уже исправил. -Если проблема в базовой системе, то вам нужно сначала прочесть раздел extref:{faq}[версии FreeBSD, LATEST-VERSION] из FAQ, если вы ещё не знакомы с данной темой. Для FreeBSD возможно исправлять проблемы только для некоторых недавних веток базовой системы, поэтому отправка сообщения об ошибке для более старой версии приведёт к тому, что разработчик посоветует вам обновиться до поддерживаемой версии, чтобы посмотреть присутствует ли в ней проблема. Команда офицеров безопасности поддерживает link:https://www.FreeBSD.org/security/[список поддерживаемых версий.]. +Если проблема в базовой системе, то вам нужно сначала прочесть раздел extref:{faq}[версии FreeBSD, latest-version] из FAQ, если вы ещё не знакомы с данной темой. Для FreeBSD возможно исправлять проблемы только для некоторых недавних веток базовой системы, поэтому отправка сообщения об ошибке для более старой версии приведёт к тому, что разработчик посоветует вам обновиться до поддерживаемой версии, чтобы посмотреть присутствует ли в ней проблема. Команда офицеров безопасности поддерживает link:https://www.FreeBSD.org/security/[список поддерживаемых версий.]. -Если проблема связана с портами, помните, что вы сначала должны обновиться до самой последней версии Коллекции Портов и проверить, существует ли в ней проблема. Из-за быстрых внесений изменений в эти приложения, неосуществимым для FreeBSD является поддержка чего-либо, кроме самых последних версий, и проблемы со устаревшими версиями приложений просто не могут быть исправлены. +Если проблема в порте, рассмотрите возможность сообщить об ошибке разработчикам исходного проекта. Проект FreeBSD не может исправлять все ошибки во всём программном обеспечении. [[pr-prep]] == Подготовка Нужно следовать хорошему правилу всегда сначала выполнять дополнительные исследования перед тем, как послать сообщение о проблеме. Может быть, о вашей проблеме уже сообщено; может быть, она недавно обсуждалась или обсуждается в списках рассылки; она может быть уже исправлена в более новой версии, чем та, что вы используете. Поэтому вы должны проверить все обычные места до того, как послать ваше сообщение о проблеме. Для FreeBSD это значит: -* FreeBSD extref:{faq}[FAQ] (Ответы на часто задаваемые вопросы). FAQ содержит ответы на вопросы из самых разных категорий, в частности, extref:{faq}[аппаратной совместимости, hardware], extref:{faq}[пользовательских программ, applications] и extref:{faq}[конфигурации ядра, kernelconfig]. -* extref:{handbook}[Списки рассылки]-если Вы не подписаны на них, воспользуйтесь http://www.FreeBSD.org/search/#mailinglists[поиском в архивах] на сайте FreeBSD. Если ваша проблема не обсуждалась в списках рассылки, вы можете попытаться опубликовать сообщение о ней и подождать несколько дней, пока кто-нибудь не сможет увидеть то, что вы не заметили. +* Список extref:{faq}[Часто задаваемых вопросов] (FAQ) по FreeBSD. FAQ содержит ответы на широкий круг вопросов, таких как вопросы, касающиеся extref:{faq}[совместимости оборудования, hardware], extref:{faq}[пользовательских приложений, applications] и extref:{faq}[конфигурации ядра, kernelconfig]. +* extref:{handbook}eresources/[Списки рассылки, eresources-mail] — если Вы не подписаны на них, воспользуйтесь https://www.FreeBSD.org/search/#mailinglists[поиском в архивах] на сайте FreeBSD. Если ваша проблема не обсуждалась в списках рассылки, вы можете попытаться опубликовать сообщение о ней и подождать несколько дней, пока кто-нибудь не сможет увидеть то, что вы не заметили. * Как вариант, весь веб-используйте вашу любимую поисковую систему для поиска каких-либо ссылок по вашей проблеме. Вы можете даже увидеть ссылки на архивы списков рассылки или телеконференций, о которых вы не знали или не думали там искать. -* Следующим пунктом должна быть http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[ база данных PR FreeBSD] (GNATS). Если только ваша проблема не нова или редка, есть некоторый шанс, что о ней уже сообщено. +* Следующим пунктом должна быть https://bugs.freebsd.org/bugzilla/query.cgi[ база данных PR FreeBSD] (Bugzilla). Если только ваша проблема не нова или редка, есть некоторый шанс, что о ней уже сообщено. * И самое важное, вы должны посмотреть не затрагивает ли документация в базовой системе вашу проблему. -+ -Для основного кода FreeBSD вы должны тщательно изучить содержимое файла [.filename]#/usr/src/UPDATING# или его текущую версию по адресу http://svnweb.freebsd.org/base/head/UPDATING?view=log[http://svnweb.freebsd.org/base/head/UPDATING?view=log]. (Если вы переходите с одной версии на другую, особенно если вы обновляетесь до FreeBSD-CURRENT, то в этом файле вы можете найти много важной информации). -+ -Если же ваша проблема связана с коллекцией портов FreeBSD, вы должны обратиться к файлу [.filename]#/usr/ports/UPDATING# (изменения, касающиеся индивидуальных портов) или к [.filename]#/usr/ports/CHANGES# (изменения, касающиеся всей коллекции портов). Они также доступны через интерфейс svnweb: http://svnweb.freebsd.org/ports/head/UPDATING?view=log[http://svnweb.freebsd.org/ports/head/UPDATING?view=log] и http://svnweb.freebsd.org/ports/head/CHANGES?view=log[http://svnweb.freebsd.org/ports/head/CHANGES?view=log]. ++ +Для основного кода FreeBSD вы должны тщательно изучить содержимое файла [.filename]#/usr/src/UPDATING# или его текущую версию по адресу https://cgit.freebsd.org/src/tree/UPDATING[https://cgit.freebsd.org/src/tree/UPDATING]. (Если вы переходите с одной версии на другую, особенно если вы обновляетесь до FreeBSD-CURRENT, то в этом файле вы можете найти много важной информации). ++ +Если же ваша проблема связана с коллекцией портов FreeBSD, вы должны обратиться к файлу [.filename]#/usr/ports/UPDATING# (изменения, касающиеся индивидуальных портов) или к [.filename]#/usr/ports/CHANGES# (изменения, касающиеся всей коллекции портов). Они также доступны через интерфейс cgit: https://cgit.freebsd.org/ports/tree/UPDATING[https://cgit.freebsd.org/ports/tree/UPDATING] и https://cgit.freebsd.org/ports/tree/CHANGES[https://cgit.freebsd.org/ports/tree/CHANGES] . [[pr-writing]] == Написание сообщения о проблеме Теперь, после того, как вы решили, что ваш вопрос подпадает под категорию сообщения о проблеме, и это проблема FreeBSD, самое время написать собственно сообщение о проблеме (PR). Прежде чем мы углубимся в частности использования программы для создания и отправки PR, вот несколько советов, которые помогут вам сделать PR более эффективным. +[[pr-writing-tips]] == Как писать хорошие сообщения о проблемах -* Основным языком общения разработчиков FreeBSD является английский. База данных по проблемам также ведется на английском. Если вы испытываете проблемы с формулировкой описания проблемы по-английски, свяжитесь со своими соотечественниками, которые помогут вам составить PR. -+ -* _Не оставляйте поле "Synopsis" (краткое описание) пустым._ Сообщения о проблемах попадают как в списки рассылки, которые затем расходятся по всему миру (в них поле "Synopsis" определяет тему письма), так и в базу данных. Просматривающий эту базу, как правило, пройдет мимо PR с пустым кратким описанием. Не забудьте, что PR остается в базе до тех пор, пока кто-либо не закроет его; сообщение-аноним, скорее всего, просто потеряется на общем фоне. -* __Избегайте туманных описаний в поле "Synopsis"__. Не стоит предполагать, что читающий ваше сообщение владеет контекстом; поэтому, чем подробнее вы опишете ситуацию, тем лучше. В частности, к какой части системы относится ваша проблема? Проявляется ли она на этапе установки или во время нормальной работы? Например, вместо строки `Synopsis: portupgrade is broken` следовало бы написать что-то вроде `Synopsis: port ports-mgmt/portupgrade coredumps on -current`. В случае портированных приложений в поле "Synopsis" полезно указывать не только имя порта, но и категорию. -* _Если у вас есть готовый патч, скажите об этом._ PR, содержащий патч, имеет куда больше шансов быть рассмотренным. В этом случае добавьте строку `[patch]` (включая квадратные скобки) в начало поля "Synopsis" (хотя использование именно этой формы необязательно, она является стандартом де-факто). -* _Если вы отвечаете за исходные тексты, сообщите об этом._ Если вы отвечаете за часть исходных текстов (например, порт), вы можете добавить в начало поля "Synopsis" строку `[maintainer update]` (включая квадратные скобки), а также установить класс вашего PR (поле "Class") в `maintainer-update`. В этом случае коммиттеру, обрабатывающему ваш PR, не придётся лишний раз проверять. +* _Не оставляйте поле "Summary" (краткое описание) пустым._ Сообщения о проблемах попадают как в списки рассылки, которые затем расходятся по всему миру (в них поле "Summary" определяет тему письма), так и в базу данных. Просматривающий эту базу, как правило, пройдет мимо PR с пустым кратким описанием. Не забудьте, что PR остается в базе до тех пор, пока кто-либо не закроет его; сообщение-аноним, скорее всего, просто потеряется на общем фоне. +* __Избегайте туманных описаний в поле "Summary"__. Не стоит предполагать, что читающий ваше сообщение владеет контекстом; поэтому, чем подробнее вы опишете ситуацию, тем лучше. В частности, к какой части системы относится ваша проблема? Проявляется ли она на этапе установки или во время нормальной работы? Например, вместо строки `Summary: portupgrade is broken` следовало бы написать что-то вроде `Summary: port ports-mgmt/portupgrade coredumps on -current`. В случае портированных приложений в поле "Summary" полезно указывать не только имя порта, но и категорию. +* _Если у вас есть патч, сообщите об этом._ Наличие патча значительно упрощает обработку отчёта. +** Не используйте ключевые слова `patch` или `patch-ready` — они устарели. +* _Если вы сопровождаете код, укажите это._ Если вы сопровождаете часть исходного кода (например, существующий порт), обязательно установите «Class» вашего PR в значение `maintainer-update`. Таким образом, любой коммиттер, обрабатывающий ваш PR, не будет вынужден проверять это. * _Будьте точны в формулировках._ Чем больше информации вы можете предоставить о проблеме, тем больше у вас шансов получить ответ. -** Включите информацию о версии FreeBSD, которую вы используйте (существует специальное поле для его включения, смотрите ниже) и на какой архитектуре. Сообщите, используете ли вы release версию (установили с компакт-диска либо загрузили) или скачали её с помощью Subversion (и если так, то сообщите номер ревизии). Если вы используете FreeBSD-CURRENT, то первый вопрос, который вам могут задать, будет про номер ревизии, так как исправления для этой ветки (особенно в случае серьёзных проблем) имеют тенденцию появляться слишком быстро. + +** Включите версию FreeBSD, которую вы используете (для этого есть специальное поле, см. ниже), и архитектуру. Укажите, используете ли вы релиз (например, с CD-ROM или загруженный) или систему, поддерживаемую через Git (и, если да, укажите хэш и ветку). Если вы используете ветку FreeBSD-CURRENT, укажите это в первую очередь, так как исправления (особенно для известных проблем) часто добавляются очень быстро, и пользователи FreeBSD-CURRENT должны следить за обновлениями. ** Включите информацию о том, какие глобальные опции вы указали в [.filename]#make.conf#. На заметку: Объявление опций наподобие `-02` и других, описанных в man:gcc[1] во многих случаях может быть причиной ошибок. Хотя и разработчики FreeBSD будут принимать патчи, у них не будет желания исследовать такие случаи из-за отсутствия времени и добровольцев, и вместо этого они могут ответить, что это не поддерживается. ** Если проблему можно легко повторить, включите необходимую информацию, чтобы разработчик смог воспроизвести ее самостоятельно. Если проблема проявляется при некоторых вводимых данных, то, по возможности, приведите их вместе с получаемым и ожидаемым выводом. Если же вводимых данных много или же их нельзя разглашать, то попробуйте выделить из них лишь небольшой фрагмент, приводящий к возникновению проблемы, и включите его в PR. ** Если ваша проблема связана с ядром, будьте готовы предоставить следующую информацию (вам не обязательно включать её всю, она пойдёт лишь на заполнение базы данных, но вы должны включить информацию, которая по вашему мнению актуальна): @@ -136,37 +137,24 @@ toc::[] *** Прочли ли вы [.filename]#ports/UPDATING#, и описана ли там ваша проблема (кто-нибудь спросит обязательно) * _Избегайте нечетких запросов о новых возможностях._ Сообщение типа "кто-то обязательно должен сделать так, чтобы такая-то утилита вела себя так-то" имеет куда меньше шансов встретить позитивный отклик, чем более четко сформулированный запрос. Помните, что исходные тексты доступны всем, так что если вам нужна реализация какого-то нового свойства, лучший способ- взяться за работу самому! Не забудьте также, что такие моменты лучше обсуждать в списках рассылки, таких как `freebsd-questions`, чем делать это посредством базы данных PR. -* _Убедитесь, что ваша проблема еще никем не описана._ Мы уже говорили об этом, но стоит повториться. Потратьте пару минут на составление запросов к базе PR: http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query]. (Несмотря на повторы, об этом постоянно забывают) +* _Убедитесь, что ваша проблема еще никем не описана._ Мы уже говорили об этом, но стоит повториться. Потратьте пару минут на составление запросов к базе PR: https://bugs.freebsd.org/bugzilla/query.cgi[https://bugs.freebsd.org/bugzilla/query.cgi]. (Несмотря на повторы, об этом постоянно забывают) * _Сообщайте об одной проблеме в одном PR._ Избегайте описания двух и более проблем в одном сообщении (исключением являются взаимосвязанные проблемы). Оформляя патчи, не пытайтесь в них добавлять множество функциональных возможностей или исправлять ими несколько ошибок в одном и том же сообщении о проблеме (опять же, за исключением взаимосвязанных проблем) - для таких PR-ов потребуется значительно больше времени на обработку. -* _Избегайте полемики._ Если ваше сообщение касается области или способов реализации, которые ранее вызвали разногласия, вам стоит быть готовым предоставить не только патчи, но и внятные аргументы, почему следует поступать именно так (то есть, это "Правильный Путь"). Как отмечалось выше, аккуратный поиск по архиву списков рассылки http://www.FreeBSD.org/search/#mailinglists[http://www.FreeBSD.org/search#mailinglists] никогда не помешает. +* _Избегайте полемики._ Если ваше сообщение касается области или способов реализации, которые ранее вызвали разногласия, вам стоит быть готовым предоставить не только патчи, но и внятные аргументы, почему следует поступать именно так (то есть, это "Правильный Путь"). Как отмечалось выше, аккуратный поиск по архиву списков рассылки https://www.FreeBSD.org/search/#mailinglists[https://www.FreeBSD.org/search/#mailinglists] никогда не помешает. * _Будьте вежливы._ Почти каждый из тех, кто может заниматься вашим сообщением, является добровольцем. Никому не понравятся указания, как и что делать, когда он и так занимается этим, да еще и по каким-либо причинам, отличным от финансовых. Вообще говоря, этого подхода следует придерживаться, имея дело с любым проектом с Открытыми Исходными текстами (Open Source). +[[pr-writing-before-beginning]] == Прежде всего -Если вы используйте утилиту man:send-pr[1] проверьте, что переменная вашего окружения `VISUAL` (или `EDITOR`, если `VISUAL` не задана) задана подходящим образом. - -Следует также проверить работоспособность системы электронной почты. Утилита man:send-pr[1] использует почтовую систему для отправки и отслеживания сообщения о проблеме. Если с машины, на которой вы запускаете man:send-pr[1], нельзя отправить почту, сообщение не попадёт в базу данных GNATS. О настройке электронной почты во FreeBSD можно прочитать в главе "Электронная почта" Руководства по FreeBSD по адресу extref:{handbook}mail[Electronic Mail, mail]. - -Убедитесь, что ваш почтовый клиент не исказит сообщение по пути в GNATS. В частности, если ваш почтовый клиент автоматически переносит строки, изменяет символы табуляции на пробелы или предотвращает интерпретацию символов новой строки, любой патч, который вы пришлёте окажется непригодным. Для текста мы хотели бы, чтобы вы делали строчки размером примерно в 70 символов для читабельности PR на веб странице. - -Примерные соображения должны учитываться при отправке сообщения об ошибке через link:https://www.FreeBSD.org/send-pr/[веб-форму] вместо man:send-pr[1]. Помните, что операции копирования-вставки могут иметь сторонние эффекты в форматировании текста. В определённых случаях может быть необходимо использовать man:uuencode[1] для гарантии того, что патчи придут не изменёнными. +Аналогичные соображения применимы к использованию https://bugs.freebsd.org/bugzilla/enter_bug.cgi[веб-формы для отправки PR]. Будьте осторожны с операциями копирования и вставки, которые могут изменить пробелы или другое форматирование текста. -И наконец, если ваше сообщение будет объёмным, вы должны приготовить его в offline, чтобы ничего не потерялось в случае, если будет проблема при его отправке. Это особенно касается link:https://www.FreeBSD.org/send-pr/[веб-формы]. +И наконец, если ваше сообщение будет объёмным, вы должны приготовить его в offline, чтобы ничего не потерялось в случае, если будет проблема при его отправке. +[[pr-writing-attaching-patches]] == Вложение патчей или файлов -Нижеследующее применимо к передаче сообщения о проблеме посредством электронной почты: +В общем, мы рекомендуем использовать `git format-patch` для создания одного или серии унифицированных diff-файлов относительно базовой ветки (например, `origin/main`). Патчи, созданные таким образом, будут содержать хеши Git, а также ваше имя и адрес электронной почты, что упростит применение вашего патча коммиттерами и правильное указание вас как автора (с помощью `git am`). Для небольших изменений, где вы предпочитаете не использовать git, убедитесь, что используете man:diff[1] с опцией `-u` для создания унифицированного diff-файла, так как это даст разработчикам больше контекста и сделает его более читаемым по сравнению с другими форматами diff. -Программа man:send-pr[1] предусматривает присоединение файлов к сообщению о проблеме. Вы можете вложить сколько угодно файлов, но каждый с уникальным именем (имеется в виду имя файла без маршрута). Просто используйте параметр командной строки `-a` для задания имен файлов, которые вы хотите присоединить: - -[source,shell] -.... -% send-pr -a /var/run/dmesg -a /tmp/errors -.... - -Не беспокойтесь о бинарных файлах, они будут автоматически перекодированы для того, чтобы не повредить работе вашей почтовой программы. - -Если вы вкладываете патч, обязательно используйте параметр `-c` или `-u` вместе с командой man:diff[1] для создания контекстного или унифицированного diff-файла (унифицированный формат предпочтителен), и обязательно укажите точные номера SVN ревизий файлов, которые вы изменяли, чтобы разработчики, которые будут читать ваше сообщение, смогли легко его применить. Для проблем, связанных с ядром или с базовыми утилитами, предпочтительнее будет патч относительно ветки FreeBSD-CURRENT (или Subversion-ветки HEAD), так как весь новый код должен быть сначала протестирован в ней. После завершения тестирования код будет интегрирован в ветвь FreeBSD-STABLE. +Для проблем с ядром или базовыми утилитами предпочтителен патч для FreeBSD-CURRENT (основной ветки Git), поскольку весь новый код должен сначала применяться и тестироваться там. После проведения соответствующих или достаточных тестов код будет объединён/перенесён в ветку FreeBSD-STABLE. Если вы вставляете патч в тело сообщения, учтите, что некоторые почтовые программы имеют тенденцию заменять табуляции серией пробелов, что полностью разрушит, например, часть файла сборки (Makefile). @@ -176,201 +164,89 @@ toc::[] Вы должны также помнить, что пока вы явно не укажете обратного в вашем сообщении о проблеме или в самих патчах, будет предполагаться, что они подпадают под те же условия лицензирования, что и оригинальный файл, измененный вами. +[[pr-writing-filling-template]] == Заполнение шаблона -Следующие несколько абзацев применимы только к способу подачи PR через электронную почту: - -После запуска утилиты man:send-pr[1] вам будет представлен шаблон сообщения о проблеме. Шаблон состоит из списка полей, некоторые из которых уже заполнены, а некоторые содержат комментарии, объясняющие назначение поля или перечисляющие подходящие значения. Не беспокойтесь о комментариях; они будут автоматически удалены, если вы их не изменяли (или удалите их сами). - -Вверху шаблона, ниже строк `SEND-PR:` находятся заголовки почтового сообщения. Вам обычно не нужно их изменять, если только вы не посылаете сообщение о проблеме с машины или от учетной записи, которая может посылать, но не может получать электронную почту, в случае чего вы можете задать в полях `From:` и `Reply-To:` ваши реальные адреса электронной почты. Вы можете также послать самому себе (или кому-то еще) копию сообщения о проблеме, добавив один или большее количество адресов к заголовку `Cc:`. - -В шаблоне вы найдете два однострочных поля: - -* _Submitter-Id:_ Не меняйте его. Значение по умолчанию `current-users` правильно, даже если вы используете FreeBSD-STABLE. -* _Confidential:_ Предварительно заполнено как `no`, его изменение не имеет значения, так как нет такого понятия, как конфиденциальное сообщение о проблеме - база данных PR распространяется по всему миру. - -Далее описаны общие поля для почтового и link:https://www.FreeBSD.org/send-pr/[веб интерфейса]: - -* _Originator:_ Пожалуйста, укажите ваше реальное имя, за которым опционально следует адрес вашей электронной почты в угловых скобках. Обычно, man:send-pr[1] заполняет поле Originator содержимым поля `gecos` из учетной записи текущего пользователя. -+ [NOTE] ==== -Предоставленный вами адрес электронной почты станет публичной информацией и может стать доступным спамерам. Поэтому совсем не лишними будут меры по борьбе со спамом на вашей стороне, или же можно воспользоваться временным адресом электронной почты. Однако, если вы укажете несуществующий почтовый адрес, то у нас не будет возможности уточнять детали по вашему PR. +Используемый вами адрес электронной почты станет общедоступной информацией и может попасть к спамерам. У вас должны быть процедуры обработки спама или следует использовать временный почтовый аккаунт. Однако учтите, что если вы вообще не используете действительный почтовый аккаунт, мы не сможем задать вам вопросы о вашем PR. ==== -* _Organization:_ Все, что вы захотите здесь указать. Это поле не содержит значительной информации. -* _Synopsis:_ Заполняется кратким и точным описанием проблемы. Краткое описание используется в качестве темы сообщения электронной почты о проблеме, и используется при выдаче списков и выборках сообщений о проблемах; сообщения о проблемах с непонятными краткими описаниями чаще всего игнорируются. -+ -Повторим: если к вашему сообщению о проблеме приложен патч, то, пожалуйста, начните краткое описание с `[patch]` (включая квадратные скобки); если PR принадлежит к категории ports и вы являетесь его мейнтейнером, то начните описание с `[maintainer update]` (включая квадратные скобки) и установите класс проблемы (поле "Class") в `maintainer-update`. -* _Severity:_ Одно из `non-critical`, `serious` или `critical`. Не переусердствуйте; избегайте пометки вашей проблемы как `critical`, если только это не действительно критичная проблема (повреждение данных, существенная потеря функциональности в -CURRENT), или `serious`, если только это не касается многих пользователей (паники ядра, блокировки (freezes), проблемы с конкретными драйверами устройств или с системными утилитами). Разработчики FreeBSD не обязательно будут работать над вашей проблемой быстрее, если вы установите слишком высокий уровень важности, т.к. существует много др гих людей, которые сделали тоже самое - некоторые разработчики всё же уделят этому полю немного внимания и перейдут к следующему сообщению именно из-за этого поля. + +При подаче сообщения об ошибке вы увидите следующие поля: + +* _Краткое описание:_ Заполните это кратким и точным описанием проблемы. Краткое описание используется как тема письма с отчётом о проблеме, а также в списках и сводках отчётов; отчёты с неясными описаниями часто остаются без внимания. +* _Серьезность:_ Одно из значений: `Затрагивает только меня (Affects only me)`, `Затрагивает некоторых людей (Affects some people)` или `Затрагивает многих людей (Affects many people)`. Не переоценивайте проблему; избегайте отмечать её как `Затрагивает многих людей`, если это не так. Разработчики FreeBSD не обязательно будут работать над вашей проблемой быстрее, если вы преувеличите её важность, поскольку многие другие уже поступали точно так же. +* _Категория:_ Выберите подходящую категорию. + -[NOTE] -==== -Большинство проблем с безопасностью _не_ следует отправлять в GNATS, потому что вся эта информация становится публичной. Пожалуйста, направляйте подобные отчеты на электронный адрес `{security-officer}`. -==== -* _Priority:_ Одно из `low`, `medium` или `high`. `high` должен использоваться для проблем, которые затронут конкретно каждого пользователя FreeBSD, а `medium` для чего-то, что затронет многих пользователей. +Первое, что вам нужно сделать, — это определить, в какой части системы находится ваша проблема. Помните, что FreeBSD — это полноценная операционная система, которая включает в себя ядро, стандартные библиотеки, множество драйверов периферийных устройств и большое количество утилит («базовая система»). Однако в Коллекции портов доступны тысячи дополнительных приложений. Сначала вам нужно выяснить, связана ли проблема с базовой системой или с чем-то, установленным через Коллекцию портов. + -[NOTE] -==== -Ввиду массовых злоупотреблений это поле потеряло свое значение. -==== -* _Category:_ Выберите соответствующую категорию. -+ -Первым делом необходимо решить, к какой части системы относится ваша проблема. Помните: FreeBSD - завершенная операционная система, которая устанавливает ядро, стандартные библиотеки, множество драйверов периферийного оборудования, а также - большой набор системных утилит ("базовая система"). В дополнение к этому, в коллекции портов имеются тысячи приложений. Следовательно, определитесь: обнаруженная вами проблема находится в базовой системе или в чем-то, установленным через коллекцию портов. -+ Вот описание основных категорий: ** Если проблема в ядре, в библиотеках (таких как стандартная библиотека С `libc`) или в драйвере из базовой системы, то используйте категорию `kern`. (Есть несколько исключений, описанных ниже). В общем, это всё, что описано в разделах 2, 3 или 4 справочника. ** Если проблема с бинарной программой, например с man:sh[1] или man:mount[8], то вам прежде всего необходимо определить принадлежность программы к базовой системе или к установке из коллекции портов. Если вы не уверены, выполните команду `whereis _имя программы_`. В FreeBSD для коллекции портов существует договоренность: установка ведется в [.filename]#/usr/local#, однако это может быть переопределено системным администратором. Для таких программ следует использовать категорию `ports` (даже если категория порта `www`; см. ниже). Если программа располагается в [.filename]#/bin#, [.file name]#/usr/bin#, [.filename]#/sbin# или в [.filename]#/usr/sbin#, то это часть базовой системы, и вам следует использовать категорию `bin`. (Несколько программ, например man:gcc[1], на самом деле используют категорию `gnu`, но не беспокойтесь об этом сейчас.) Программы этой категории описаны в разделах 1 и 8 справочной системы. ** Если вы уверены, что в стартовых скриптах `(rc)` или в каком-то ином неисполняемом конфигурационном файле присутствует ошибка, тогда верной категорией будет `conf` (configuration). Эти сущности описываются в разделе 5 справочной системы. ** Если вы нашли проблему в наборе документации (статьи, книги, страницы справочной системы), правильным выбором будет `docs`. -** Если вы наблюдаете проблему на страницах http://www.FreeBSD.org[сайта FreeBSD], то правильным выбором будет `www`. + [NOTE] ==== -Если проблема с чем-то из порта, называемого `www/_someportname_`, то она все же принадлежит к категории `ports`. +Если проблема с чем-то из порта, называемого `www/_имяпорта_`, то она все же принадлежит к категории `ports`. ==== -+ ++ Далее представлены более специализированные категории. ** Если проблема принадлежит к `kern`, но в то же время имеет дело с подсистемой USB, то правильным выбором будет `usb`. ** Если проблема принадлежит к `kern` и найдена в потоковых библиотеках, правильным выбором будет `threads`. ** Если проблема принадлежит к базовой системе и касается соблюдения стандартов, таких как POSIX(R), правильным выбором будет `standards`. -** Если проблема связана с ошибками внутри Java Virtual Machine(TM) (JVM(TM)), даже если Java(TM) была установлена из коллекции портов, вам следует выбрать категорию `java`. Более общие проблемы с портами Java(TM) попадают под категорию `ports`. -+ -Далее перечислены остальные категории. - -** Если вы уверены, что проблема проявляется только на используемой вами процессорной архитектуре, выберите одну из архитектурно-специфичных категорий: это `i386` для Intel-совместимых машин в 32-битном режиме; `amd64` для AMD машин в 64-битном режиме (сюда также входят Intel-совместимые машины работающие в режиме EMT64); и менее распространенные `arm`, `ia64`, `powerpc` и `sparc64`. +** Если вы уверены, что проблема возникнет только на используемой вами архитектуре процессора, выберите одну из архитектурно-зависимых категорий: обычно `i386` для Intel-совместимых машин в 32-битном режиме; `amd64` для машин AMD, работающих в 64-битном режиме (это также включает Intel-совместимые машины, работающие в режиме EMT64); и реже `arm` или `powerpc`. + [NOTE] ==== Люди часто ошибаются в выборе категории. Если вы не уверены в правильности выбора, то лучше не гадать, а выбрать `misc`. ==== + -.Правильное использование категории +.Правильное использование архитектурно-зависимых категорий [example] ==== - У вас простой ПК, и вы подозреваете, что столкнулись с проблемой, специфичной для конкретного чипсета или материнской платы: верная категория - `i386`. ==== + -.Неправильное использование категории +.Некорректное использование категории, зависящей от архитектуры [example] ==== - Если вы наблюдаете проблему с периферийной картой расширения на распространенной шине или неполадки с конкретного типа жестким диском: в этом случае возможно, что неисправность наблюдается на более чем одной архитектуре, и верным выбором будет `kern`. ==== ** Если вы не знаете в чем проблема (или вам кажется, что описание не попадает ни под какую из вышеобозначенных), используйте категорию `misc`. Перед тем, как написать PR, можно для начала спросить помощи в {freebsd-questions}. Возможно, там вам подскажут, какую из существующих категорий следует выбрать. -+ -Вот текущий перечень категорий (взят из http://svnweb.freebsd.org/base/head/gnu/usr.bin/send-pr/categories[http://svnweb.freebsd.org/base/head/gnu/usr.bin/send-pr/categories]): - -** `advocacy:` проблемы, связанные с общественным мнением о FreeBSD. Вышло из употребления. -** `amd64:` проблемы, специфичные для платформы AMD64. -** `arm:` проблемы, специфичные для платформы ARM. -** `bin:` проблемы с пользовательскими программами из базовой системы. -** `conf:` проблемы с файлами настройки, используемыми по умолчанию значениями и прочее. -** `docs:` проблемы со страницами справочной системы или онлайновой документацией. -** `gnu:` проблемы с портированным программным обеспечением GNU, таким как man:gcc[1] или man:grep[1]. -** `i386:` проблемы, специфичные для платформы i386(TM). -** `ia64:` проблемы, специфичные для платформы ia64. -** `java:` проблемы, связанные с виртуальной машиной Java(TM). -** `kern:` проблемы с ядром или с библиотеками в базовой системе, или с драйверами устройств, не связанными с какой-либо конкретной платформой. -** `misc:` все, что не подпадает ни под какую другую категорию. (Надо отметить, что нет почти ничего, чтобы действительно соответствовало этой категории, за исключением проблем с релизами и с инфраструктурой сборки. Временные отказы при построении ветки `HEAD` не принадлежат к данной категории. Также надо отметить, что проблемы этой категории имеют тенденцию теряться легче всего). -** `ports:` проблемы, связанные с коллекцией портов. -** `powerpc:` проблемы, специфичные для платформы PowerPC(R). -** `sparc64:` проблемы, специфичные для платформы Sparc64(R). -** `standards:` проблемы, связанные с соответствием стандартам. -** `threads:` проблемы, касающиеся реализации тредов во FreeBSD (особенно во FreeBSD-CURRENT). -** `usb:` проблемы, относящиеся к реализации USB во FreeBSD. -** `www:` изменения или улучшения сайта FreeBSD - -* _Class:_ Выберите одно из следующего: - -** `sw-bug:` ошибки в программном обеспечении. -** `doc-bug:` ошибки в документации. -** `change-request:` запросы на расширение функций или изменение в существующих. -** `update:` обновления портов или другого программного обеспечения сторонних разработчиков. -** `maintainer-update:` обновления в портах, для которых вы являетесь ответственной персоной. - -* _Release:_ Используемая вами версия FreeBSD. Оно заполняется автоматически программой man:send-pr[1] и требует изменения, если только вы отсылаете сообщение о проблеме с системы, отличающейся от той, где вы столкнулись с проблемой. - -И наконец, последовательность многострочных полей: - * _Environment:_ Оно должно максимально точно описывать окружение, в котором встречается проблема. Сюда включается версия операционной системы, версия конкретной программы или файла, содержащего проблему, и любая другая информация, такая, как конфигурация системы, другое программное обеспечение, которое влияет на проблему, и так далее-просто все, что разработчик должен знать для создания условий появления проблемы. -* _Description:_ Полное и точное описание проблемы, с которой вы столкнулись. Попытайтесь избежать своих предположений о причинах проблемы, если только вы не уверены, что правы, так как вы можете привести разработчика к неправильным предположениям о проблеме. -* _How-To-Repeat:_ Последовательность действий, которые должны быть выполнены для повторения проблемы. -* _Fix:_ Предпочтителен патч, или по крайней мере обходной путь (который не только поможет другим людям обойти ту же самую проблему, но также поможет разработчику понять ее причины), однако если у вас нет никаких здравых идей, то лучше оставить это поле пустым, чем строит догадки. - -== Отправка сообщения о проблеме - -Если вы используете man:send-pr[1]: - -Как только вы заполните шаблон, сохраните его и выйдете из редактора, man:send-pr[1] запросит вас `s)end, e)dit or a)bort?`. Вы можете нажать `s` для продолжения и отправки сообщения о проблеме, `e` для повторного запуска редактора и выполнения дальнейших изменений, или `a` для отказа от вашего сообщения. Если вы выберете последнее, то ваше сообщение о проблеме останется на диске (man:send-pr[1] укажет вам имя файла перед завершением работы), так что вы сможете отредактировать его на свой вкус или передать в систему с лучшим подключением к сети, перед тем, как послать ег при помощи параметра `-F` программы man:send-pr[1]: - -[source,shell] -.... -% send-pr -f ~/my-problem-report -.... - -При этом будет прочитан указанный файл, будет проверено содержимое, убраны комментарии и сообщение будет отослано. - -Если вы используете link:https://www.FreeBSD.org/send-pr/[веб форму]: - -Перед нажатием `submit` вам потребуется заполнить проверочное поле текстом, представленным на картинке рядом. Эта непопулярная мера была принята в связи со злоупотреблениями со стороны роботов и некоторых неверно сориентированных индивидуумов. Это необходимая мера, которая никому не нравится, и, пожалуйста, не просите нас убрать её. - -Отметим, что вам `настоятельно рекомендуется` сохранить вашу работу (PR) куда-нибудь перед нажатием кнопки `submit`. Распространенная пользовательская ошибка: отображение браузером устаревшей проверочной картинки из его кэша. Если это произойдет в вашем случае, ваше сообщение будет отвергнуто и ваши труды пропадут. - -Если по какой-либо причине вы не имеете возможности видеть проверочную картинку, а также не можете воспользоваться man:send-pr[1], пожалуйста примите наши извинения за неудобства и пришлите ваш PR электронной почтой команде mailto:freebsd-bugbusters@FreeBSD.org[freebsd-bugbusters@FreeBSD.org]. +* _Описание:_ Полное и точное описание проблемы, с которой вы столкнулись. Старайтесь избегать предположений о причинах проблемы, если не уверены в своей правоте, так как это может ввести разработчика в заблуждение и привести к неверным выводам. В описании должны быть указаны действия, необходимые для воспроизведения проблемы. Если вам известен обходной путь, укажите его. Это не только поможет другим людям с той же проблемой временно её решить, но и может помочь разработчику понять причину возникновения проблемы. [[pr-followup]] == Отслеживание После того, как ваше сообщение будет принято, вы получите по электронной почте уведомление, в котором будет указан номер для отслеживания, который был назначен вашему сообщению о проблеме и URL, который вы можете использовать для проверки его состояния. В случае удачи кто-нибудь проявит интерес к вашей проблеме и попытается ее решить, или, как это бывает, описать, почему это не является проблемой. Вы будете автоматически оповещаться о любом изменении состояния и получать копии всех комментариев или патчей, которые будут присоединяться в про цессе отработки вашего сообщения о проблеме. -Если кто-то запросит дополнительную информацию от вас, или вы вспомните или обнаружите нечто, что не указали в начальном сообщении, пожалуйста пошлите ваше дополнение (отклик) с помощью одного из этих способов: +Если кто-то запросит у вас дополнительную информацию, или вы вспомните или обнаружите что-то, что не упомянули в первоначальном отчёте, пожалуйста, отправьте уточнение. Основная причина, по которой ошибка не исправляется, — это отсутствие связи с автором отчёта. Проще всего воспользоваться опцией комментария на веб-странице конкретного PR, которую можно открыть с https://bugs.freebsd.org/bugzilla/query.cgi[страницы поиска PR]. -* Самый простой путь это использовать соответствующую ссылку (followup) на индивидуальной веб страничке сообщения об ошибки, к которой можно перейти, используя http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[страничку поиска PR]. Кликнув на этой ссылке откроется окно для отправки email с уже корректно заполненными полями To: и Subject: (если ваш браузер сконфигурирован для этого). -* Или просто пошлите письмо на адрес {bugfollowup}, включив отслеживаемый номер в теме письма, чтобы система отслеживания сообщений могла знать, к какому сообщению о проблеме его присоединить. -+ -[NOTE] -==== -Если вы _не_ включите отслеживаемый номер, GNATS растеряется и создаст совершенно новое PR, которое будет закреплено за администратором GNATS. В результате ваш отклик затеряется до тех пор пока кто-нибудь не начнёт разгребать скопившийся мусор, что может произойти спустя дни или даже недели. +Если проблема исчезла, но отчёт о ней остаётся открытым, просто добавьте комментарий с указанием, что отчёт можно закрыть, и, по возможности, объясните, как или когда проблема была устранена. -Неправильно: +Иногда возникает задержка в одну-две недели, когда отчёт о проблеме остаётся без внимания — никто не назначается на него и не оставляет комментариев. Такое может произойти при увеличении очереди отчётов о проблемах или во время праздничного сезона. Если отчёт о проблеме не получил внимания в течение нескольких недель, стоит найти коммиттера, особенно заинтересованного в работе над ним. -[.programlisting] -.... -Subject: that PR I sent -.... +Существует несколько способов сделать это, желательно в следующем порядке, с перерывом в несколько дней между попытками использования каждого канала связи: -Правильно: - -[.programlisting] -.... -Subject: Re: ports/12345: compilation problem with foo/bar -.... - -==== +* Отправить письмо по электронной почте в extref:{handbook}eresources/[соответствующий список, eresources-summary] для получения комментариев к отчету. +* Присоединитесь к соответствующим IRC-каналам. Частичный список доступен здесь: https://wiki.freebsd.org/IRC/Channels[]. Сообщите участникам канала о проблеме и запросите помощь. Будьте терпеливы и оставайтесь в канале после отправки сообщения, чтобы у людей из разных часовых поясов была возможность отреагировать. +* Найдите коммиттеров, заинтересованных в сообщенной проблеме. Если проблема касается конкретного инструмента, бинарного файла, порта, документа или исходного файла, проверьте https://cgit.FreeBSD.org[Git Repository]. Определите последних коммиттеров, внесших существенные изменения в файл, и попытайтесь связаться с ними через IRC или электронную почту. Список коммиттеров и их адреса электронной почты можно найти в статье extref:{contributors}[Участники проекта FreeBSD]. -Если сообщение о проблеме остается открытым после того, как проблема была решена, просто отправьте сообщение (так, как это описано выше), с указанием, что сообщение о проблеме может быть закрыто, и если это возможно, объясните, как и когда проблема была устранена. +Помните, что эти люди — добровольцы, как и сопровождающие и пользователи, поэтому они могут быть не сразу доступны для помощи с отчётом о проблеме. Терпение и последовательность в дальнейших действиях крайне рекомендуются и ценятся. При достаточном внимании и усилиях, посвящённых этому процессу, найти коммиттера, который займётся отчётом о проблеме — лишь вопрос времени. [[pr-problems]] -== Проблемы взаимодействия с GNATS - -Большинство PR проходят сквозь систему и принимаются быстро; однако, во время загруженности GNATS, подтверждение на ваше сообщение о проблеме может задержаться на 10 и более минут. Пожалуйста, сохраняйте спокойствие. - -Помимо всего прочего, так как GNATS получает все данные через электронную почту, становится понятным, почему FreeBSD пропускает все сообщения через спамфильтры. Если подтверждение не приходит на протяжении часа-двух, то, возможно, что ваше сообщение попало под них; если так, то, пожалуйста, свяжитесь с администраторами GNATS по адресу mailto:bugmeister@FreeBSD.org[bugmeister@FreeBSD.org] и попросите помощи. - -[NOTE] -==== -Среди антиспам мер есть одна, которая сопоставляет сообщения с множеством злоупотреблений, наблюдаемых в электронной почте с HTML-форматированием текста (однако, сюда не относится простое включение HTML в PR). Мы настоятельно рекомендуем не использовать HTML-форматированный текст при посылке PR: не только из-за вероятности попадания в спамфильтры, но и из-за загромождения базы данных. Отдайте предпочтение простому старому текстовому формату. -==== +== Если возникли проблемы -В редких случаях вы можете столкнуться с ошибкой GNATS, когда PR принят и ему присвоен номер, но он не отображается в списках PR ни на одной из страниц веб поиска PR. Вероятно, что рассинхронизировался индекс базы с самой базой. Этот случай можно проверить, обратившись к страничке http://www.FreeBSD.org/cgi/query-pr.cgi[Query PR Database] и проконтролировав наличие вашего PR. Если он есть, пожалуйста, известите администраторов GNATS (mailto:bugmeister@FreeBSD.org[bugmeister@FreeBSD.org]). Следует отметить, что перестройка базы выполняется периодически по `cron`, и если вам не к спеху, то не предпринимайте никаких шагов. +Если вы обнаружили проблему в системе отслеживания ошибок, сообщите об ошибке! Для этого существует специальная категория. Если у вас не получается это сделать, свяжитесь с ответственными за обработку ошибок по адресу mailto:bugmeister@FreeBSD.org[bugmeister@FreeBSD.org]. [[pr-further]] -== Дополнительная литература +== Для дальнейшего ознакомления Это список информационных ресурсов, относящихся к правильному написанию и обработке сообщений о проблемах. Он, без сомнения, не полон. -* http://www.chiark.greenend.org.uk/~sgtatham/bugs.html[How to Report Bugs Effectively]-прекрасное эссе, которое написал Simon G. Tatham о составлении полезных (не специфичных для FreeBSD) сообщений о проблемах. +* https://github.com/smileytechguy/reporting-bugs-effectively/blob/master/ENGLISH.md[How to Report Bugs Effectively]-прекрасное эссе, которое написал Simon G. Tatham о составлении полезных (не специфичных для FreeBSD) сообщений о проблемах. * extref:{pr-guidelines}[Problem Report Handling Guidelines]-интересный взгляд на обработку сообщений о проблемах самими разработчиками FreeBSD. diff --git a/documentation/content/ru/articles/problem-reports/_index.po b/documentation/content/ru/articles/problem-reports/_index.po new file mode 100644 index 0000000000..4b7ed7aceb --- /dev/null +++ b/documentation/content/ru/articles/problem-reports/_index.po @@ -0,0 +1,1433 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-20 12:50+0300\n" +"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/articles/problem-reports/_index.adoc:1 +#, no-wrap +msgid "How to best formulate and submit a problem report to the FreeBSD Project" +msgstr "Как лучше сформулировать и отправить отчет о проблеме в проект FreeBSD" + +#. type: Title = +#: documentation/content/en/articles/problem-reports/_index.adoc:1 +#: documentation/content/en/articles/problem-reports/_index.adoc:11 +#, no-wrap +msgid "Writing FreeBSD Problem Reports" +msgstr "Составление сообщений о проблеме во FreeBSD" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:44 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:46 +msgid "" +"This article describes how to best formulate and submit a problem report to " +"the FreeBSD Project." +msgstr "" +"Эта статья описывает, как наилучшим образом сформулировать и отправить " +"сообщение о проблеме в Проект FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:48 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/problem-reports/_index.adoc:52 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:56 +msgid "" +"One of the most frustrating experiences one can have as a software user is " +"to submit a problem report only to have it summarily closed with a terse and " +"unhelpful explanation like \"not a bug\" or \"bogus PR\". Similarly, one of " +"the most frustrating experiences as a software developer is to be flooded " +"with problem reports that are not really problem reports but requests for " +"support, or that contain little or no information about what the problem is " +"and how to reproduce it." +msgstr "" +"Одной из самых разочаровывающих практик, которую можно получить в качестве " +"пользователя программного обеспечения, является отправка сообщения о " +"проблеме, которое вскоре закрывается с кратким и ничему не помогающим " +"объяснением типа \"это не проблема\" или \"неправильное PR\". Подобным же " +"образом одной из самых разочаровывающих практик, которую можно получить в " +"качестве разработчика программного обеспечения, является получение массы " +"сообщений о проблемах, которые на самом деле не являются сообщениями о " +"проблемах, а запросами на получение поддержки, или которые содержат мало или " +"вообще не содержат никакой информации о сути проблемы или способе ее " +"воспроизведения." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:59 +msgid "" +"This document attempts to describe how to write good problem reports. What, " +"one asks, is a good problem report? Well, to go straight to the bottom line, " +"a good problem report is one that can be analyzed and dealt with swiftly, to " +"the mutual satisfaction of both user and developer." +msgstr "" +"В этом документе делается попытка описать то, как составлять хорошие " +"сообщения о проблемах. Что же, спросите вы, является хорошим сообщением о " +"проблеме? Ну, если перейти прямо к сути, то хорошим сообщением об проблеме " +"является то, которое может быть быстро проанализировано и отработано, к " +"обоюдному удовлетворению как пользователя, так и разработчика." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:61 +msgid "" +"Although the primary focus of this article is on FreeBSD problem reports, " +"most of it should apply quite well to other software projects." +msgstr "" +"Хотя в основном статья фокусируется на сообщениях о проблемах во FreeBSD, " +"большей частью она должна хорошо подходить и другим программным проектам." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:64 +msgid "" +"Note that this article is organized thematically, not chronologically. Read " +"the entire document before submitting a problem report, rather than treating " +"it as a step-by-step tutorial." +msgstr "" +"Заметьте, что эта статья организована по тематическому принципу, а не " +"хронологически, так что вы должны прочесть документ целиком прежде, чем " +"посылать сообщение о проблеме, и не воспринимать статью как пошаговое " +"руководство." + +#. type: Title == +#: documentation/content/en/articles/problem-reports/_index.adoc:66 +#, no-wrap +msgid "When to Submit a Problem Report" +msgstr "Когда нужно отправлять сообщение о проблеме" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:72 +msgid "" +"There are many types of problems, and not all of them should engender a " +"problem report. Of course, nobody is perfect, and there will be times when " +"what seems to be a bug in a program is, in fact, a misunderstanding of the " +"syntax for a command or a typographical error in a configuration file " +"(though that in itself may sometimes be indicative of poor documentation or " +"poor error handling in the application). There are still many cases where " +"submitting a problem report is clearly _not_ the right course of action, and " +"will only serve to frustrate both the submitter and the developers. " +"Conversely, there are cases where it might be appropriate to submit a " +"problem report about something else than a bug—an enhancement or a new " +"feature, for instance." +msgstr "" +"Имеется много классов ошибок, и не все они должны приводить к появлению " +"сообщения о проблеме. Конечно же, нет идеальных людей, и будут моменты, " +"когда вы решите, что нашли ошибку в программе, а на самом деле вы " +"неправильно поняли синтаксис команды или сделали опечатку в конфигурационном " +"файле (хотя само по себе это иногда говорит о плохой документации или " +"неправильной обработке ошибок в прикладной программе). Есть еще много " +"случаев, когда посылка сообщения о проблеме явно _не_ является правильным " +"действием, а только приводит к разочарованию вас и разработчиков. И " +"наоборот, есть случаи, когда может быть нужно послать сообщение о чем-то, не " +"являющемся ошибкой - к примеру, запрос на доработку или расширение " +"функциональности." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:76 +msgid "" +"So how does one determine what is a bug and what is not? As a simple rule of " +"thumb, the problem is _not_ a bug if it can be expressed as a question " +"(usually of the form \"How do I do X?\" or \"Where can I find Y?\"). It is " +"not always quite so black and white, but the question rule covers a large " +"majority of cases. When looking for an answer, consider posing the question " +"to the {freebsd-questions}." +msgstr "" +"Но как же определить, что является ошибкой, а что нет? Простым правилом, " +"которому нужно следовать, является следующее - ваша проблема _не_ является " +"ошибкой, если она формулируется как вопрос (обычно в форме \"Как сделать X?" +"\" или \"Где можно найти Y?\"). Не всегда это так однозначно, но правило " +"вопроса покрывает большинство случаев. Если Вам нужен ответ, лучше всего " +"задать свой вопрос в {freebsd-questions}." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:78 +msgid "" +"Consider these factors when submitting PRs about ports or other software " +"that is not part of FreeBSD itself:" +msgstr "" +"Вот некоторые случаи, в которых может оказаться полезным отправить сообщение " +"о чем-то, что не является ошибкой:" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:80 +msgid "" +"Please do not submit problem reports that simply state that a newer version " +"of an application is available. Ports maintainers are automatically notified " +"by portscout when a new version of an application becomes available. Actual " +"patches to update a port to the latest version are welcome." +msgstr "" +"Уведомление об обновлении программного обеспечения, которое поддерживается " +"сторонними разработчиками (в основном порты, но также и компоненты базовой " +"системы, разрабатываемые сторонними организациями, такие, как BIND или " +"различные утилиты GNU)." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:81 +msgid "" +"For unmaintained ports (`MAINTAINER` is `ports@FreeBSD.org`), a PR without " +"an included patch is unlikely to get picked up by a committer. To become the " +"maintainer of an unmaintained port, submit a PR with the request (patch " +"preferred but not required)." +msgstr "" +"Для не поддерживаемых никем портов (переменная `MAINTAINER` содержит " +"`ports@FreeBSD.org`), такие уведомления о обновлении будут замечены " +"заинтересовавшимся коммиттером и вас могут попросить предоставить патч для " +"обновления порта; предоставление патча до того, как вас попросят об этом " +"сильно увеличит шансы того, что порт будет обновлён вовремя." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:82 +msgid "" +"In either case, following the process described in extref:{porters-handbook}" +"upgrading/[Porter's Handbook] will yield the best results. (You might also " +"wish to read extref:{contributing}[Contributing to the FreeBSD Ports " +"Collection, ports-contributing].)" +msgstr "" +"В любом случае, следование процессу, описанному в extref:{porters-handbook}" +"upgrading[Руководстве по созданию портов] даст наилучшие результаты. " +"(Также можно ознакомиться с статьей extref:{contributing}[Вклад в " +"коллекцию портов FreeBSD, ports-contributing].)" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:87 +msgid "" +"A bug that cannot be reproduced can rarely be fixed. If the bug only " +"occurred once and you cannot reproduce it, and it does not seem to happen to " +"anybody else, chances are none of the developers will be able to reproduce " +"it or figure out what is wrong. That does not mean it did not happen, but " +"it does mean that the chances of your problem report ever leading to a bug " +"fix are very slim. To make matters worse, often these kinds of bugs are " +"actually caused by failing hard drives or overheating processors—you should " +"always try to rule out these causes, whenever possible, before submitting a " +"PR." +msgstr "" +"Ошибка, которую нельзя воспроизвести, вряд ли будет исправлена. Если ошибка " +"возникла только единожды, и вы не можете ее воспроизвести, к тому же никто с " +"ней больше не сталкивался, нет никаких шансов, что разработчики смогут ее " +"воспроизвести или понять, что делается неправильно. Это не значит, что " +"такого не случается, но это значит, что шансов у вашего сообщения дойти " +"когда-либо до стадии исправления ошибки очень малы. Часто эти виды ошибок " +"возникают из-за неудовлетворительной работы жёстких дисков, перегревшихся " +"процессоров. Всегда, когда это возможно вы должны отслеживать такие случаи " +"перед посылкой сообщения об ошибке." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:89 +msgid "" +"Next, to decide to whom you should file your problem report, you need to " +"understand that the software that makes up FreeBSD is composed of several " +"different elements:" +msgstr "" +"Теперь, чтобы определить кому вы должны отправить ваше сообщение об ошибке, " +"вы должны понимать, что программное обеспечение, которое входит во FreeBSD, " +"составляется из нескольких различных частей:" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:91 +msgid "" +"Code in the base system that is written and maintained by FreeBSD " +"contributors, such as the kernel, the C library, and the device drivers " +"(categorized as `kern`); the binary utilities (`bin`); the manual pages and " +"documentation (`docs`); and the web pages (`www`). All bugs in these areas " +"should be reported to the FreeBSD developers." +msgstr "" +"Код в базовой системе, который пишется и поддерживается контрибьюторами " +"FreeBSD. Такой, как ядро, библиотека C, драйвера устройств (входят в " +"категорию `kern`); утилиты (`bin`); страницы справочника и документация " +"(`docs`); веб-страницы (`www`). Все ошибки в этих областях должны быть " +"сообщены разработчикам FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:92 +msgid "" +"Code in the base system that is written and maintained by others, and " +"imported into FreeBSD and adapted. Examples include man:clang[1], and " +"man:sendmail[8]. Most bugs in these areas should be reported to the FreeBSD " +"developers; but in some cases they may need to be reported to the original " +"authors instead if the problems are not FreeBSD-specific." +msgstr "" +"Код в базовой системе, который пишется и поддерживается другим, " +"импортируется во FreeBSD и адаптируется. Примеры включают в себя: bind, " +"man:gcc[1] и man:sendmail[8]. Большинство ошибок, попадающие в данные " +"области должны быть сообщены разработчикам FreeBSD, но в некоторых случаях " +"они должны быть отправлены изначальным разработчикам, если проблемы не " +"являются специфичными для FreeBSD. Обычно ошибки такого рода попадают под " +"категории `bin` или `gnu`." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:93 +msgid "" +"Individual applications that are not in the base system but are instead part " +"of the FreeBSD Ports Collection (category `ports`). Most of these " +"applications are not written by FreeBSD developers; what FreeBSD provides is " +"merely a framework for installing the application. Therefore, only report a " +"problem to the FreeBSD developers when the problem is believed to be FreeBSD-" +"specific; otherwise, report it to the authors of the software." +msgstr "" +"Отдельные приложения, не входящие в базовую систему, но являющиеся частью " +"Коллекции Портов FreeBSD (категория `ports`). Большинство этих приложений не " +"пишется разработчиками FreeBSD; что предоставляет FreeBSD, так это только " +"лишь инфраструктуру для установки приложения. Следовательно, вы должны " +"отправлять сообщение об ошибке разработчикам FreeBSD только тогда, когда вы " +"уверены в том, что проблема специфична для FreeBSD - иначе отправляйте её " +"авторам программного обеспечения." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:96 +msgid "" +"Then, ascertain whether the problem is timely. There are few things that " +"will annoy a developer more than receiving a problem report about a bug she " +"has already fixed." +msgstr "" +"Затем вы должны убедиться, действительно ли проблема существует. Существует " +"всего несколько вещей, которые раздражают разработчика больше, чем получение " +"сообщения об ошибке, которую он уже исправил." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:100 +msgid "" +"If the problem is in the base system, first read the FAQ section on extref:" +"{faq}[FreeBSD versions, latest-version], if you are not already familiar " +"with the topic. It is not possible for FreeBSD to fix problems in anything " +"other than certain recent branches of the base system, so filing a bug " +"report about an older version will probably only result in a developer " +"advising you to upgrade to a supported version to see if the problem still " +"recurs. The Security Officer team maintains the link:https://" +"www.FreeBSD.org/security/[list of supported versions]." +msgstr "" +"Если проблема в базовой системе, то вам нужно сначала прочесть раздел extref:" +"{faq}[версии FreeBSD, latest-version] из FAQ, если вы ещё не знакомы с " +"данной темой. Для FreeBSD возможно исправлять проблемы только для некоторых " +"недавних веток базовой системы, поэтому отправка сообщения об ошибке для " +"более старой версии приведёт к тому, что разработчик посоветует вам " +"обновиться до поддерживаемой версии, чтобы посмотреть присутствует ли в ней " +"проблема. Команда офицеров безопасности поддерживает link:https://" +"www.FreeBSD.org/security/[список поддерживаемых версий.]." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:103 +msgid "" +"If the problem is in a port, consider filing a bug with the upstream. The " +"FreeBSD Project can not fix all bugs in all software." +msgstr "" +"Если проблема в порте, рассмотрите возможность сообщить об ошибке " +"разработчикам исходного проекта. Проект FreeBSD не может исправлять все " +"ошибки во всём программном обеспечении." + +#. type: Title == +#: documentation/content/en/articles/problem-reports/_index.adoc:105 +#, no-wrap +msgid "Preparations" +msgstr "Подготовка" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:111 +msgid "" +"A good rule to follow is to always do a background search before submitting " +"a problem report. Maybe the problem has already been reported; maybe it is " +"being discussed on the mailing lists, or recently was; it may even already " +"be fixed in a newer version than what you are running. You should therefore " +"check all the obvious places before submitting your problem report. For " +"FreeBSD, this means:" +msgstr "" +"Нужно следовать хорошему правилу всегда сначала выполнять дополнительные " +"исследования перед тем, как послать сообщение о проблеме. Может быть, о " +"вашей проблеме уже сообщено; может быть, она недавно обсуждалась или " +"обсуждается в списках рассылки; она может быть уже исправлена в более новой " +"версии, чем та, что вы используете. Поэтому вы должны проверить все обычные " +"места до того, как послать ваше сообщение о проблеме. Для FreeBSD это значит:" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:113 +msgid "" +"The FreeBSD extref:{faq}[Frequently Asked Questions] (FAQ) list. The FAQ " +"attempts to provide answers for a wide range of questions, such as those " +"concerning extref:{faq}[hardware compatibility, hardware], extref:{faq}[user " +"applications, applications], and extref:{faq}[kernel configuration, " +"kernelconfig]." +msgstr "" +"Список extref:{faq}[Часто задаваемых вопросов] (FAQ) по FreeBSD. FAQ " +"содержит ответы на широкий круг вопросов, таких как вопросы, касающиеся " +"extref:{faq}[совместимости оборудования, hardware], extref:{faq}" +"[пользовательских приложений, applications] и extref:{faq}[конфигурации " +"ядра, kernelconfig]." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:114 +msgid "" +"The extref:{handbook}eresources/[mailing lists, eresources-mail]. If you are " +"not subscribed, use https://www.FreeBSD.org/search/#mailinglists[the " +"searchable archives] on the FreeBSD web site. If the problem has not been " +"discussed on the lists, you might try posting a message about it and waiting " +"a few days to see if someone can spot something that has been overlooked." +msgstr "" +"extref:{handbook}eresources/[Списки рассылки, eresources-mail] — если Вы не " +"подписаны на них, воспользуйтесь https://www.FreeBSD.org/search/" +"#mailinglists[поиском в архивах] на сайте FreeBSD. Если ваша проблема не " +"обсуждалась в списках рассылки, вы можете попытаться опубликовать сообщение " +"о ней и подождать несколько дней, пока кто-нибудь не сможет увидеть то, что " +"вы не заметили." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:115 +msgid "" +"Optionally, the entire web-use your favorite search engine to locate any " +"references to the problem. You may even get hits from archived mailing lists " +"or newsgroups you did not know of or had not thought to search through." +msgstr "" +"Как вариант, весь веб-используйте вашу любимую поисковую систему для поиска " +"каких-либо ссылок по вашей проблеме. Вы можете даже увидеть ссылки на архивы " +"списков рассылки или телеконференций, о которых вы не знали или не думали " +"там искать." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:116 +msgid "" +"Next, the searchable https://bugs.freebsd.org/bugzilla/query.cgi[FreeBSD PR " +"database] (Bugzilla). Unless the problem is recent or obscure, there is a " +"fair chance it has already been reported." +msgstr "" +"Следующим пунктом должна быть https://bugs.freebsd.org/bugzilla/" +"query.cgi[ база данных PR FreeBSD] (Bugzilla). Если только ваша проблема не " +"нова или редка, есть некоторый шанс, что о ней уже сообщено." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:117 +msgid "" +"Most importantly, attempt to see if existing documentation in the source " +"base addresses your problem." +msgstr "" +"И самое важное, вы должны посмотреть не затрагивает ли документация в " +"базовой системе вашу проблему." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:120 +msgid "" +"For the base FreeBSD code, you should carefully study the contents of " +"[.filename]#/usr/src/UPDATING# on your system or the latest version at " +"https://cgit.freebsd.org/src/tree/UPDATING[https://cgit.freebsd.org/src/tree/" +"UPDATING]. (This is vital information if you are upgrading from one version " +"to another, especially if you are upgrading to the FreeBSD-CURRENT branch)." +msgstr "" +"Для основного кода FreeBSD вы должны тщательно изучить содержимое файла " +"[.filename]#/usr/src/UPDATING# или его текущую версию по адресу https://" +"cgit.freebsd.org/src/tree/UPDATING[https://cgit.freebsd.org/src/tree/" +"UPDATING]. (Если вы переходите с одной версии на другую, особенно если вы " +"обновляетесь до FreeBSD-CURRENT, то в этом файле вы можете найти много " +"важной информации)." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:123 +msgid "" +"However, if the problem is in something that was installed as a part of the " +"FreeBSD Ports Collection, you should refer to [.filename]#/usr/ports/" +"UPDATING# (for individual ports) or [.filename]#/usr/ports/CHANGES# (for " +"changes that affect the entire Ports Collection). https://cgit.freebsd.org/" +"ports/tree/UPDATING[https://cgit.freebsd.org/ports/tree/UPDATING] and " +"https://cgit.freebsd.org/ports/tree/CHANGES[https://cgit.freebsd.org/ports/" +"tree/CHANGES] are also available via cgit." +msgstr "" +"Если же ваша проблема связана с коллекцией портов FreeBSD, вы должны " +"обратиться к файлу [.filename]#/usr/ports/UPDATING# (изменения, касающиеся " +"индивидуальных портов) или к [.filename]#/usr/ports/CHANGES# (изменения, " +"касающиеся всей коллекции портов). Они также доступны через интерфейс cgit: " +"https://cgit.freebsd.org/ports/tree/UPDATING[https://cgit.freebsd.org/ports/" +"tree/UPDATING] и https://cgit.freebsd.org/ports/tree/CHANGES[https://" +"cgit.freebsd.org/ports/tree/CHANGES] ." + +#. type: Title == +#: documentation/content/en/articles/problem-reports/_index.adoc:125 +#, no-wrap +msgid "Writing the Problem Report" +msgstr "Написание сообщения о проблеме" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:129 +msgid "" +"Now that you have decided that your issue merits a problem report, and that " +"it is a FreeBSD problem, it is time to write the actual problem report. " +"Before we get into the mechanics of the program used to generate and submit " +"PRs, here are some tips and tricks to help make sure that your PR will be " +"most effective." +msgstr "" +"Теперь, после того, как вы решили, что ваш вопрос подпадает под категорию " +"сообщения о проблеме, и это проблема FreeBSD, самое время написать " +"собственно сообщение о проблеме (PR). Прежде чем мы углубимся в частности " +"использования программы для создания и отправки PR, вот несколько советов, " +"которые помогут вам сделать PR более эффективным." + +#. type: Title == +#: documentation/content/en/articles/problem-reports/_index.adoc:131 +#, no-wrap +msgid "Tips and Tricks for Writing a Good Problem Report" +msgstr "Как писать хорошие сообщения о проблемах" + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:134 +msgid "" +"_Do not leave the \"Summary\" line empty._ The PRs go both onto a mailing " +"list that goes all over the world (where the \"Summary\" is used for the " +"`Subject:` line), but also into a database. Anyone who comes along later and " +"browses the database by synopsis, and finds a PR with a blank subject line, " +"tends just to skip over it. Remember that PRs stay in this database until " +"they are closed by someone; an anonymous one will usually just disappear in " +"the noise." +msgstr "" +"_Не оставляйте поле \"Summary\" (краткое описание) пустым._ Сообщения о " +"проблемах попадают как в списки рассылки, которые затем расходятся по всему " +"миру (в них поле \"Summary\" определяет тему письма), так и в базу данных. " +"Просматривающий эту базу, как правило, пройдет мимо PR с пустым кратким " +"описанием. Не забудьте, что PR остается в базе до тех пор, пока кто-либо не " +"закроет его; сообщение-аноним, скорее всего, просто потеряется на общем фоне." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:135 +msgid "" +"_Avoid using a weak \"Summary\" line._ You should not assume that anyone " +"reading your PR has any context for your submission, so the more you " +"provide, the better. For instance, what part of the system does the problem " +"apply to? Do you only see the problem while installing, or while running? To " +"illustrate, instead of `Summary: portupgrade is broken`, see how much more " +"informative this seems: `Summary: port ports-mgmt/portupgrade coredumps on " +"-current`. (In the case of ports, it is especially helpful to have both the " +"category and portname in the \"Summary\" line.)" +msgstr "" +"__Избегайте туманных описаний в поле \"Summary\"__. Не стоит предполагать, " +"что читающий ваше сообщение владеет контекстом; поэтому, чем подробнее вы " +"опишете ситуацию, тем лучше. В частности, к какой части системы относится " +"ваша проблема? Проявляется ли она на этапе установки или во время нормальной " +"работы? Например, вместо строки `Summary: portupgrade is broken` следовало " +"бы написать что-то вроде `Summary: port ports-mgmt/portupgrade coredumps on " +"-current`. В случае портированных приложений в поле \"Summary\" полезно " +"указывать не только имя порта, но и категорию." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:137 +msgid "" +"_If you have a patch, say so._ The presence of a patch makes it much easier " +"to progress a report." +msgstr "" +"_Если у вас есть патч, сообщите об этом._ Наличие патча значительно упрощает " +"обработку отчёта." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:138 +msgid "Do not use the `patch` or `patch-ready` keywords – they are deprecated." +msgstr "" +"Не используйте ключевые слова `patch` или `patch-ready` — они устарели." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:139 +msgid "" +"_If you are a maintainer, say so._ If you are maintaining a part of the " +"source code (for instance, an existing port), you definitely should set the " +"\"Class\" of your PR to `maintainer-update`. This way any committer that " +"handles your PR will not have to check." +msgstr "" +"_Если вы сопровождаете код, укажите это._ Если вы сопровождаете часть " +"исходного кода (например, существующий порт), обязательно установите «Class» " +"вашего PR в значение `maintainer-update`. Таким образом, любой коммиттер, " +"обрабатывающий ваш PR, не будет вынужден проверять это." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:140 +msgid "" +"_Be specific._ The more information you supply about what problem you are " +"having, the better your chance of getting a response." +msgstr "" +"_Будьте точны в формулировках._ Чем больше информации вы можете предоставить " +"о проблеме, тем больше у вас шансов получить ответ." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:142 +msgid "" +"Include the version of FreeBSD you are running (there is a place to put " +"that, see below) and on which architecture. You should include whether you " +"are running from a release (e.g., from a CD-ROM or download), or from a " +"system maintained by Git (and, if so, what hash and branch you are at). If " +"you are tracking the FreeBSD-CURRENT branch, that is the very first thing " +"someone will ask, because fixes (especially for high-profile problems) tend " +"to get committed very quickly, and FreeBSD-CURRENT users are expected to " +"keep up." +msgstr "" +"Включите версию FreeBSD, которую вы используете (для этого есть специальное " +"поле, см. ниже), и архитектуру. Укажите, используете ли вы релиз (например, " +"с CD-ROM или загруженный) или систему, поддерживаемую через Git (и, если да, " +"укажите хэш и ветку). Если вы используете ветку FreeBSD-CURRENT, укажите это " +"в первую очередь, так как исправления (особенно для известных проблем) часто " +"добавляются очень быстро, и пользователи FreeBSD-CURRENT должны следить за " +"обновлениями." + +#. type: Plain text +#: documentation/content/en/articles/problem-reports/_index.adoc:143 +msgid "" +"Include which global options you have specified in your " +"[.filename]#make.conf#, [.filename]#src.conf#, and [.filename]#src-" +"env.conf#. Given the infinite number of options, not every combination may " *** 843 LINES SKIPPED *** From nobody Sat Sep 20 10:24:42 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cTQV26S6Sz68c4p for ; Sat, 20 Sep 2025 10:24:42 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cTQV2691Sz462f; Sat, 20 Sep 2025 10:24:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758363882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d4/uGP+U6vUIixQG/a963koJbj58Fkn12zXEZfETNIA=; b=GE1a8pkj2XNl0/4OhannxfYyA9JOlI1UjiGijwqozxCKSh9jOlxenW0DA1zt6bnKfH46V+ LJCVeQQyKJv4WQpYFcqfeKiSkPUUpTVzQQ8QqDnx2rmo1OFlkj/h8qhbckUDSR3lvTsg8n 3kKsKxAkaPcsAlaMbMORX4hKPAJJsVRHkh4VFSvPdJItNYyHPT3ij4ywNxjq8FkErPD0CR r3xrzgApMKUdKRu7XPPRW+47N8+aVHLyMCK1x41RzpFENcGwT2FAvuh602Y9sOEu/KiRqD c1eCV7gjc8qXge8IgAZdD26kpV9ioTZBmSnscd3NkGA58//JcNUCT4xVxTJHJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758363882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d4/uGP+U6vUIixQG/a963koJbj58Fkn12zXEZfETNIA=; b=vsjMdQ+oJZmb6r87cNJ4G8dyp/uSuNzCT/tg/UPhuf0OuQvFXTNuImnKQ8U87gow3MOUFr 5HVA8ljhNROyzZEgA+tlkb69BNY9kMoSSqMkG55nPKzK5jj4MzpW4dTl8EERl4Ep2h1Yzg 5GzL/VWfbZl94JPz2TmUJ/7YTiFLs5PThUpQCRKvQp+q52BT0uRlxx7L0ZxPCwT9BLn/qb DXG7IpmOhUfSfP2+6r74cpGym3EAJDFImRcLie5IdGMwV/084fkSbTh7tgqnoKqBLa8AFU L5vLyCZYmKTzli6H09sFZVe6YbQ3D5mRXUltsNjxEgjsuUEGdXDDllvDETf0Eg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758363882; a=rsa-sha256; cv=none; b=Q2uNtFRxPGDP9wzZMMCSdjH+7ZkZsdodVdMUnWoIOXFnhiwHDtH8fpxlP+FmHFnfTeMJ5O 21N0PMeoOoNopVwz1RKyp/5kZDJunoAtBT4BSnDDSICKqWyEmG89YTPofjDKx9o8x+ZgR0 rhxNvwx8+X8ZmrF9WpbTYAWLcQOPodNa/LS+49zGdbChEw3Swkf9nIGel822PoXfwHU1gJ I8A0ciXpzAEDOGBV7zGEoTd/uu6ntefHVEJMV3E6NzpErZzbLRuh5x33I1VCCWv0BT8i19 A1hPuaXVvKXXiLqMUPmn8l2b+/jrX6g8m0X6iXLYArM0TJRrpGUypeNbjCbqnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cTQV25LhQz8Pb; Sat, 20 Sep 2025 10:24:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58KAOgRL007961; Sat, 20 Sep 2025 10:24:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58KAOgj5007958; Sat, 20 Sep 2025 10:24:42 GMT (envelope-from git) Date: Sat, 20 Sep 2025 10:24:42 GMT Message-Id: <202509201024.58KAOgj5007958@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: 4cc9e96df2 - main - update translation of articles/geom-class to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4cc9e96df25aac9a360c3a6ffb4b998df4f5f75b Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=4cc9e96df25aac9a360c3a6ffb4b998df4f5f75b commit 4cc9e96df25aac9a360c3a6ffb4b998df4f5f75b Author: Vladlen Popolitov AuthorDate: 2025-09-20 10:24:30 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-20 10:24:30 +0000 update translation of articles/geom-class to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D52022 --- .../content/ru/articles/geom-class/_index.adoc | 43 +- .../content/ru/articles/geom-class/_index.po | 1388 ++++++++++++++++++++ 2 files changed, 1411 insertions(+), 20 deletions(-) diff --git a/documentation/content/ru/articles/geom-class/_index.adoc b/documentation/content/ru/articles/geom-class/_index.adoc index 9ec0e0c6e2..a7940ade06 100644 --- a/documentation/content/ru/articles/geom-class/_index.adoc +++ b/documentation/content/ru/articles/geom-class/_index.adoc @@ -1,8 +1,11 @@ --- -title: Создание класса GEOM authors: - - author: Ivan Voras + - + author: 'Ivan Voras' email: ivoras@FreeBSD.org +description: 'Руководство по внутреннему устройству GEOM и созданию собственного класса GEOM' +tags: ["GEOM", "kernel", "modules", "FreeBSD"] +title: 'Создание класса GEOM' trademarks: ["freebsd", "intel", "general"] --- @@ -47,10 +50,10 @@ endif::[] toc::[] [[intro]] -== Вступление +== Введение [[intro-docs]] -=== Документация +=== Documentation Документация по программированию для ядра скудная, это одна из немногих областей программирования, где почти нет хороших учебных пособий, и совет "читай исходники!" - сохраняет свою справедливость. Однако, существует несколько статей и книг разной актуальности, которые рекомендуются к изучению перед тем, как начать программировать: @@ -88,7 +91,7 @@ options WITNESS_SUPPORT options WITNESS .... -Также включите отладочные символы, если планируете выполнять отладку по дампам аварийных отказов +Также включите отладочные символы, если планируете выполнять отладку по дампам аварийных отказов: [.programlisting] .... @@ -129,7 +132,7 @@ kern.metadelay=3 [.programlisting] .... dumpdev="/dev/ad0s4b" -dumpdir="/usr/core" +dumpdir="/usr/core .... Переменная `dumpdev` указывает на раздел подкачки, а `dumpdir` сообщает системе куда перемещать дамп ядра при следующей загрузке. @@ -170,7 +173,7 @@ KMOD=geom_journal .include .... -Этот [.filename]#Makefile# (с измененными именами файлов) подойдет к любому модулю ядра. Класс GEOM может размещаться в одном единственном модуле ядра. Если для сборки вашего модуля требуется больше, чем один файл, то перечислите их имена, разделенные пробельными символами, в переменной `SRCS`. +Этот [.filename]#Makefile# (с измененными именами файлов) подойдет к любому модулю ядра. Класс GEOM может размещаться в одном единственном модуле ядра. Если для сборки вашего модуля требуется больше, чем один файл, то перечислите их имена, разделенные пробельными символами, в переменной `SRCS`. [[kernelprog]] == Программирование в ядре FreeBSD @@ -187,7 +190,7 @@ KMOD=geom_journal static MALLOC_DEFINE(M_GJOURNAL, "gjournal data", "GEOM_JOURNAL Data"); .... -Для того, чтобы можно было использовать этот макрос, необходимо включить следующие заголовочные файлы: [.filename]#sys/param.h#, [.filename]#sys/kernel.h# и [.filename]#sys/malloc.h# +Для того, чтобы можно было использовать этот макрос, необходимо включить следующие заголовочные файлы: [.filename]#sys/param.h#, [.filename]#sys/kernel.h# и [.filename]#sys/malloc.h#. Существует еще один механизм выделения памяти - UMA (Universal Memory Allocator), описанный в man:uma[9]. Это специфический метод, преимущественно предназначенный для быстрого выделения памяти под списки, состоящие из элементов одинакового размера (например, динамические массивы структур). @@ -201,7 +204,7 @@ KMOD=geom_journal [[kernelprog-bios]] === BIOs -Структура `bio` используется для всех операций ввода/вывода, касающихся GEOM. Она содержит информацию о том, какое устройство ('поставщик geom') должно ответить на запрос, тип запроса, смещение, длину и указатель на буфер, а также набор "определенных пользователем" флагов и полей . +Структура `bio` используется для всех операций ввода/вывода, касающихся GEOM. Она содержит информацию о том, какое устройство ('поставщик geom') должно ответить на запрос, тип запроса, смещение, длину и указатель на буфер, а также набор "определенных пользователем" флагов и полей . Важным моментом является то, что `bio` обрабатываются асинхронно. Это значит, что во многих частях кода нет аналога к man:read[2] и man:write[2] функциям из пространства пользовательских процессов, которые не возвращают управление пока не выполнится системный вызов. Скорее, по завершении обработки запроса (или в случае ошибки при обработке) как извещение вызывается определенная пользователем функция. @@ -220,12 +223,12 @@ KMOD=geom_journal Класс GEOM выполняет преобразования данных. Эти преобразования могут быть скомпонованы друг с другом в виде дерева. Экземпляр класса GEOM называют __geom__. -В каждом классе GEOM есть несколько "методов класса", которые вызываются когда экземпляра класса нет в наличии (или же они не привязаны к конкретному экземпляру класса). +В каждом классе GEOM есть несколько "методов класса", которые вызываются когда экземпляра класса нет в наличии (или же они не привязаны к конкретному экземпляру класса): * `.init` вызывается тогда, когда системе GEOM становится известно о классе GEOM (например, когда загружается модуль ядра). -* `.fini` будет вызван в случае отказа GEOM системы от класса (например, при выгрузке модуля). +* `.fini` будет вызван в случае отказа GEOM системы от класса (например, при выгрузке модуля) * `.taste` вызывается, когда в системе появляется новый класс или поставщик geom ("provider"). Если соответствие найдено, то эта функция обычно создает и запускает экземпляр geom. -* `.destroy_geom` вызывается при необходимости разрушить экземпляр geom. +* `.destroy_geom` вызывается при необходимости разрушить экземпляр geom * `.ctlconf` будет вызван, когда пользователь запросит изменение конфигурации существующего экземпляра geom Также определены функции событий GEOM, которые копируются в экземпляр geom. @@ -241,7 +244,7 @@ KMOD=geom_journal * `struct g_provider *provider` : "поставщик geom" предоставляемый данным экземпляром geom * `uint16_t n_disks` : Количество потребителей geom ("consumer"), обслуживаемых данным экземпляром geom -* `struct g_consumer \**disks` : Массив `struct g_consumer*`. (Невозможно обойтись одинарным указателем, потому что система GEOM создает для нас структуры struct g_consumer) +* `struct g_consumer \**disks` : Массив `struct g_consumer*`. (Невозможно обойтись одинарным указателем, потому что система GEOM создает для нас структуры struct g_consumer). Структура `softc` содержит состояние экземпляра geom. У каждого экземпляра есть свой softc. @@ -283,7 +286,7 @@ KMOD=geom_journal [.programlisting] .... - команда [-опции] имя_geom [другие] + verb [-options] geomname [other] .... Общими командами являются: @@ -329,18 +332,18 @@ KMOD=geom_journal * Файловая система преобразует запрос в экземпляр структуры bio и передает его системе GEOM. Файловая система "знает", что экземпляр geom должен обработать запрос, так как файловые системы размещаются непосредственно над экземпляром geom. * Запрос завершается вызовом функции `.start`() в потоке g_down и достигает верхнего экземпляра geom. * Верхний экземпляр geom (например, это секционировщик разделов (partition slicer)) определяет, что запрос должен быть переадресован нижестоящему экземпляру geom (к примеру, драйверу диска). Вышестоящий экземпляр geom создает копию запроса bio (запросы bio _ВСЕГДА_ копируются при передаче между экземплярами geom при помощи `g_clone_bio`()!), изменяет поля смещения и целевого поставщика geom и запускает на обработку копию при помощи функции `g_io_request`() -* Драйвер диска также получает запрос bio, как вызов функции `.start`() в потоке `g_down`. Драйвер обращается к контроллеру диска, получает блок данных и вызывает функцию `g_io_deliver`() используя копию запроса bio -* Теперь, извещение о завершении bio "всплывает" в потоке `g_up`. Сначала в потоке `g_up` вызывается функция `.done`() секционировщика разделов, последний использует полученную информацию, разрушает клонированный экземпляр структуры bio посредством `g_destroy_bio`() и вызывает `g_io_deliver`() используя первоначальный запрос -* Файловая система получает данные и передает их пользовательскому процессу +* Драйвер диска также получает запрос bio, как вызов функции `.start`() в потоке `g_down`. Драйвер обращается к контроллеру диска, получает блок данных и вызывает функцию `g_io_deliver`() используя копию запроса bio. +* Теперь, извещение о завершении bio "всплывает" в потоке `g_up`. Сначала в потоке `g_up` вызывается функция `.done`() секционировщика разделов, последний использует полученную информацию, разрушает клонированный экземпляр структуры bio посредством `g_destroy_bio`() и вызывает `g_io_deliver`() используя первоначальный запрос. +* Файловая система получает данные и передает их пользовательскому процессу. -За информацией о том, как данные передаются в структуре `bio` между экземплярами geom, смотрите man:g_bio[9] (обратите внимание на использование полей `bio_parent` и `bio_children`). +За информацией о том, как данные передаются в структуре `bio` между экземплярами geom, смотрите man:g_bio[9] (обратите внимание на использование полей `bio_parent` и `bio_children`). Важный момент в том, что __НЕЛЬЗЯ ДОПУСКАТЬ БЛОКИРОВОК В ПОТОКАХ G_UP И G_DOWN__. Вот неполный перечень того, что нельзя делать в этих потоках: * Вызывать функции `msleep`() или `tsleep`(). * Использовать функции `g_write_data`() и `g_read_data`(), так как они блокируются в момент обмена данными с потребителями geom. * Ожидать ввод/вывод. -* Вызывать man:malloc[9] и `uma_zalloc`() с установленным флагом `M_WAITOK`. +* Вызывать man:malloc[9] и `uma_zalloc`() с установленным флагом `M_WAITOK` * Использовать man:sx[9] Это ограничение на код GEOM призвано избежать от "засорения" пути запроса ввода/вывода, так как блокировки обычно не имеют четких временных границ, и нет гарантий на занимаемое время (также на то есть и другие технические причины). Это также значит, что в вышеупомянутых потоках сколь-нибудь сложные операции выполнить нельзя, например: любое сложное преобразование требует выделения памяти. К счастью решение есть: создание дополнительных ядерных потоков. @@ -348,7 +351,7 @@ KMOD=geom_journal [[geom-kernelthreads]] === Ядерные потоки выполнения, предназначенные для использования в коде geom -Ядерные потоки выполнения создаются функцией man:kthread_create[9], в своем поведении они схожи с потоками, созданными в пространстве пользовательских процессов, но есть одно отличие: они не могут известить вызвавший их поток о своем завершении; по завершению - необходимо вызывать man:kthread_exit[9] +Ядерные потоки выполнения создаются функцией man:kthread_create[9], в своем поведении они схожи с потоками, созданными в пространстве пользовательских процессов, но есть одно отличие: они не могут известить вызвавший их поток о своем завершении; по завершению - необходимо вызывать man:kthread_exit[9]. В коде GEOM обычное назначение этих потоков - разгрузить поток `g_down` (функцию `.start`() ) от обработки запросов. Эти потоки подобны "обработчикам событий" ("event handlers"): у них есть очередь событий (которая наполняется событиями от разных функций из разных потоков; очередь необходимо защищать мьютексом), события из очереди выбираются одно за другим и обрабатываются в большом блоке `switch`(). diff --git a/documentation/content/ru/articles/geom-class/_index.po b/documentation/content/ru/articles/geom-class/_index.po new file mode 100644 index 0000000000..0fd7cf563b --- /dev/null +++ b/documentation/content/ru/articles/geom-class/_index.po @@ -0,0 +1,1388 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-20 13:16+0300\n" +"PO-Revision-Date: 2025-07-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/articles/geom-class/_index.adoc:1 +#, no-wrap +msgid "A guide to GEOM internals, and writing your own GEOM class" +msgstr "Руководство по внутреннему устройству GEOM и созданию собственного класса GEOM" + +#. type: Title = +#: documentation/content/en/articles/geom-class/_index.adoc:1 +#: documentation/content/en/articles/geom-class/_index.adoc:11 +#, no-wrap +msgid "Writing a GEOM Class" +msgstr "Создание класса GEOM" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:44 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:47 +msgid "" +"This text documents some starting points in developing GEOM classes, and " +"kernel modules in general. It is assumed that the reader is familiar with C " +"userland programming." +msgstr "" +"Эта статья документирует некоторые начальные выкладки в разработке GEOM-" +"классов, а также модулей ядра в общем. Предполагается, что читатель близко " +"знаком с программированием на Си в контексте пространства пользовательских " +"процессов (userland)." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:49 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/geom-class/_index.adoc:53 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:56 +#, no-wrap +msgid "Documentation" +msgstr "Documentation" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:60 +msgid "" +"Documentation on kernel programming is scarce - it is one of few areas where " +"there is nearly nothing in the way of friendly tutorials, and the phrase " +"\"use the source!\" really holds true. However, there are some bits and " +"pieces (some of them seriously outdated) floating around that should be " +"studied before beginning to code:" +msgstr "" +"Документация по программированию для ядра скудная, это одна из немногих " +"областей программирования, где почти нет хороших учебных пособий, и совет " +"\"читай исходники!\" - сохраняет свою справедливость. Однако, существует " +"несколько статей и книг разной актуальности, которые рекомендуются к " +"изучению перед тем, как начать программировать:" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:62 +msgid "" +"The extref:{developers-handbook}[FreeBSD Developer's Handbook] - part of the " +"documentation project, it does not contain anything specific to kernel " +"programming, but rather some general useful information." +msgstr "" +"extref:{developers-handbook}[Руководство FreeBSD для разработчиков] - часть " +"Проекта Документации FreeBSD, ничего специфичного о программировании ядра в " +"нем нет, зато есть немного общей полезной информации." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:63 +msgid "" +"The extref:{arch-handbook}[FreeBSD Architecture Handbook] - also from the " +"documentation project, contains descriptions of several low-level facilities " +"and procedures. The most important chapter is 13, extref:{arch-handbook}" +"[Writing FreeBSD device drivers, driverbasics]." +msgstr "" +"extref:{arch-handbook}[Руководство по Архитектуре FreeBSD] - также является " +"частью Проекта Документации FreeBSD, содержит описания некоторых " +"низкоуровневых средств и процедур. Уделите внимание разделу номер 13 - " +"extref:{arch-handbook}[Написание драйверов устройств для FreeBSD, " +"driverbasics]." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:64 +msgid "" +"The Blueprints section of http://www.freebsddiary.org[FreeBSD Diary] web " +"site - contains several interesting articles on kernel facilities." +msgstr "" +"Несколько интересных статей об устройстве ядра можно найти на сайте http://" +"www.freebsddiary.com[FreeBSD Diary]." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:65 +msgid "" +"The man pages in section 9 - for important documentation on kernel functions." +msgstr "" +"Страницы из раздела номер 9 системного справочника, содержат важную " +"документацию по функциям ядра." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:66 +msgid "" +"The man:geom[4] man page and http://phk.freebsd.dk/pubs/[PHK's GEOM slides] " +"- for general introduction of the GEOM subsystem." +msgstr "" +"Страница справочника man:geom[4], а также http://phk.freebsd.dk/pubs/[слайды " +"Пола-Хеннинга Кампа ] - общее представление о подсистеме GEOM." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:67 +msgid "" +"Man pages man:g_bio[9], man:g_event[9], man:g_data[9], man:g_geom[9], " +"man:g_provider[9], man:g_consumer[9], man:g_access[9] & others linked from " +"those, for documentation on specific functionalities." +msgstr "" +"Страницы справочника man:g_bio[9], man:g_event[9], man:g_data[9], " +"man:g_geom[9], man:g_provider[9], man:g_consumer[9], man:g_access[9], а " +"также другие, связанные с вышеупомянутыми и раскрывающие специфический " +"функционал подсистемы GEOM." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:68 +msgid "" +"The man:style[9] man page - for documentation on the coding-style " +"conventions which must be followed for any code which is to be committed to " +"the FreeBSD tree." +msgstr "" +"Страница справочника man:style[9] - документирует соглашения о стиле " +"оформления кода, которые обязаны быть соблюдены если вы планируете передать " +"ваш код в Subversion репозиторий FreeBSD." + +#. type: Title == +#: documentation/content/en/articles/geom-class/_index.adoc:70 +#, no-wrap +msgid "Preliminaries" +msgstr "Подготовка" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:77 +msgid "" +"The best way to do kernel development is to have (at least) two separate " +"computers. One of these would contain the development environment and " +"sources, and the other would be used to test the newly written code by " +"network-booting and network-mounting filesystems from the first one. This " +"way if the new code contains bugs and crashes the machine, it will not mess " +"up the sources (and other \"live\" data). The second system does not even " +"require a proper display. Instead, it could be connected with a serial " +"cable or KVM to the first one." +msgstr "" +"Для того, чтоб заниматься разработками для ядра, желательно иметь два " +"отдельных компьютера. Один из них предназначен для среды разработки и " +"исходных кодов, а второй - для запуска тестов отлаживаемого кода. Второму " +"компьютеру для работы достаточно иметь возможность выполнять начальную " +"загрузку по сети и монтирование файловых систем по сети. В этой ситуации, " +"если отлаживаемый код содержит ошибки и вызовет аварийную остановку системы, " +"то это не повлечет порчу или утерю исходного кода . Второму компьютеру даже " +"не потребуется иметь свой монитор, достаточно будет соединения асинхронных " +"портов кабелем RS-232 или соединения при помощи KVM-устройства." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:80 +msgid "" +"But, since not everybody has two or more computers handy, there are a few " +"things that can be done to prepare an otherwise \"live\" system for " +"developing kernel code. This setup is also applicable for developing in a " +"http://www.vmware.com/[VMWare] or http://www.qemu.org/[QEmu] virtual machine " +"(the next best thing after a dedicated development machine)." +msgstr "" +"Но так как далеко не у каждого есть два или более компьютеров под рукой, " +"есть пара способов подготовить иную \"живую\" систему для разработки кода " +"для ядра. Один из них - это разработка в http://www.vmware.com/[VMWare] или " +"http://www.qemu.org/[QEmu] виртуальной машине (это лучшее из доступного, " +"после, конечно-же, выделенного для тестов компьютера)." + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:82 +#, no-wrap +msgid "Modifying a System for Development" +msgstr "Настройка системы для разработки" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:85 +msgid "" +"For any kernel programming a kernel with `INVARIANTS` enabled is a must-" +"have. So enter these in your kernel configuration file:" +msgstr "" +"Прежде всего необходимо иметь в ядре поддержку `INVARIANTS`. Добавьте " +"следующие строки в файл конфигурации ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:90 +#, no-wrap +msgid "" +"options INVARIANT_SUPPORT\n" +"options INVARIANTS\n" +msgstr "" +"options INVARIANT_SUPPORT\n" +"options INVARIANTS\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:93 +msgid "" +"For more debugging you should also include WITNESS support, which will alert " +"you of mistakes in locking:" +msgstr "" +"Для большей информативности при отладке включите поддержку WITNESS, которая " +"будет предупреждать вас в случае возникновения взаимоблокировок:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:98 +#, no-wrap +msgid "" +"options WITNESS_SUPPORT\n" +"options WITNESS\n" +msgstr "" +"options WITNESS_SUPPORT\n" +"options WITNESS\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:101 +msgid "For debugging crash dumps, a kernel with debug symbols is needed:" +msgstr "" +"Также включите отладочные символы, если планируете выполнять отладку по " +"дампам аварийных отказов:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:105 +#, no-wrap +msgid " makeoptions DEBUG=-g\n" +msgstr " makeoptions DEBUG=-g\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:110 +msgid "" +"With the usual way of installing the kernel (`make installkernel`) the debug " +"kernel will not be automatically installed. It is called " +"[.filename]#kernel.debug# and located in [.filename]#/usr/obj/usr/src/sys/" +"KERNELNAME/#. For convenience it should be copied to [.filename]#/boot/" +"kernel/#." +msgstr "" +"Установка отладочного ядра обычным способом (`make installkernel`) не даст " +"привычного результата: файл ядра будет называться [.filename]#kernel.debug# " +"и будет находиться в [.filename]#/usr/obj/usr/src/sys/KERNELNAME/#. Для " +"удобства, отладочное ядро необходимо скопировать в [.filename]#/boot/kernel/" +"#." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:113 +msgid "" +"Another convenience is enabling the kernel debugger so you can examine a " +"kernel panic when it happens. For this, enter the following lines in your " +"kernel configuration file:" +msgstr "" +"Также удобно иметь включенный отладчик ядра, так вы сможете исследовать " +"паники сразу-же после их возникновения. Для включения отладчика добавьте " +"следующие строки в файл конфигурации ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:119 +#, no-wrap +msgid "" +"options KDB\n" +"options DDB\n" +"options KDB_TRACE\n" +msgstr "" +"options KDB\n" +"options DDB\n" +"options KDB_TRACE\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:122 +msgid "" +"For this to work you might need to set a sysctl (if it is not on by default):" +msgstr "" +"Для автоматического запуска отладчика ядра после возникновения паники может " +"понадобиться установить переменную sysctl:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:126 +#, no-wrap +msgid " debug.debugger_on_panic=1\n" +msgstr " debug.debugger_on_panic=1\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:134 +msgid "" +"Kernel panics will happen, so care should be taken with the filesystem " +"cache. In particular, having softupdates might mean the latest file version " +"could be lost if a panic occurs before it is committed to storage. " +"Disabling softupdates yields a great performance hit, and still does not " +"guarantee data consistency. Mounting filesystem with the \"sync\" option is " +"needed for that. For a compromise, the softupdates cache delays can be " +"shortened. There are three sysctl's that are useful for this (best to be " +"set in [.filename]#/etc/sysctl.conf#):" +msgstr "" +"Паники системы будут происходить, поэтому уделите внимание кэшу файловой " +"системы. Обычно, при включенном механизме softupdates, последняя версия " +"файла может быть утеряна если паника произошла раньше сбрасывания кэша на " +"устройство хранения. Выключение механизма softupdates (посредством " +"монтирования файловой системы с опцией \"sync\") значительно сказывается на " +"производительности и, опять-же, не гарантирует целостности данных. Как " +"компромисс, можно сократить задержки сбрасывания кэша механизма softupdates. " +"Есть три переменных sysctl, значения которых необходимо изменить (лучше " +"всего - прописав их в [.filename]#/etc/sysctl.conf#):" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:140 +#, no-wrap +msgid "" +"kern.filedelay=5\n" +"kern.dirdelay=4\n" +"kern.metadelay=3\n" +msgstr "" +"kern.filedelay=5\n" +"kern.dirdelay=4\n" +"kern.metadelay=3\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:143 +msgid "The numbers represent seconds." +msgstr "Значения этих переменных - секунды." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:151 +msgid "" +"For debugging kernel panics, kernel core dumps are required. Since a kernel " +"panic might make filesystems unusable, this crash dump is first written to a " +"raw partition. Usually, this is the swap partition. This partition must be " +"at least as large as the physical RAM in the machine. On the next boot, the " +"dump is copied to a regular file. This happens after filesystems are " +"checked and mounted, and before swap is enabled. This is controlled with " +"two [.filename]#/etc/rc.conf# variables:" +msgstr "" +"Для отладки паник ядра необходимы дампы памяти. Так как паника ядра может " +"\"сломать\" файловую систему, дамп сначала сохраняется в \"сырой\" раздел. " +"Обычно, это своп-раздел. Поэтому, размер своп-раздела должен быть не меньше " +"размера ОЗУ компьютера. При последующей загрузке дамп копируется в обычный " +"файл. Это происходит сразу-же после проверки и монтирования файловых систем, " +"но перед активированием раздела свопа. Такое поведение контролируется " +"следующими переменными [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:156 +#, no-wrap +msgid "" +"dumpdev=\"/dev/ad0s4b\"\n" +"dumpdir=\"/usr/core\n" +msgstr "" +"dumpdev=\"/dev/ad0s4b\"\n" +"dumpdir=\"/usr/core\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:159 +msgid "" +"The `dumpdev` variable specifies the swap partition and `dumpdir` tells the " +"system where in the filesystem to relocate the core dump on reboot." +msgstr "" +"Переменная `dumpdev` указывает на раздел подкачки, а `dumpdir` сообщает " +"системе куда перемещать дамп ядра при следующей загрузке." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:162 +msgid "" +"Writing kernel core dumps is slow and takes a long time so if you have lots " +"of memory (>256M) and lots of panics it could be frustrating to sit and wait " +"while it is done (twice - first to write it to swap, then to relocate it to " +"filesystem). It is convenient then to limit the amount of RAM the system " +"will use via a [.filename]#/boot/loader.conf# tunable:" +msgstr "" +"Сохранение дампа ядра - процесс медленный, и, если у вашего компьютера много " +"оперативной памяти (>256M) и если паники случаются часто, то ожидание " +"сохранения дампов может начать раздражать (вспомним, что над дампом " +"происходит две операции: сохранение в своп-файл и перемещение на файловую " +"систему). В таком случае может оказаться удобным ограничивание объема " +"используемой системой памяти путем установки переменной в [.filename]#/boot/" +"loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:166 +#, no-wrap +msgid " hw.physmem=\"256M\"\n" +msgstr " hw.physmem=\"256M\"\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:169 +msgid "" +"If the panics are frequent and filesystems large (or you simply do not trust " +"softupdates+background fsck) it is advisable to turn background fsck off via " +"[.filename]#/etc/rc.conf# variable:" +msgstr "" +"Если паники случаются часто и размер файловых систем большой (или же вы " +"просто не доверяете softupdates и фоновой проверке файловых систем), " +"рекомендуется отключить фоновую проверку файловых систем посредством " +"установки переменной в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:173 +#, no-wrap +msgid " background_fsck=\"NO\"\n" +msgstr " background_fsck=\"NO\"\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:178 +msgid "" +"This way, the filesystems will always get checked when needed. Note that " +"with background fsck, a new panic could happen while it is checking the " +"disks. Again, the safest way is not to have many local filesystems by using " +"another computer as an NFS server." +msgstr "" +"В этом случае файловые системы будут проверяться только при необходимости. " +"Также заметьте, что в случае использования фоновой проверки, новая паника " +"может случиться в то время, когда проверяются диски. Другими словами, " +"наиболее безопасный способ - не иметь много локальных файловых систем, а " +"использовать второй компьютер в качестве NFS-сервера." + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:180 +#, no-wrap +msgid "Starting the Project" +msgstr "Начало проекта" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:184 +msgid "" +"For the purpose of creating a new GEOM class, an empty subdirectory has to " +"be created under an arbitrary user-accessible directory. You do not have to " +"create the module directory under [.filename]#/usr/src#." +msgstr "" +"Для написания нового класса GEOM необходимо создать поддиректорию в любой " +"доступной пользователю директории. Совсем не обязательно, чтоб ваш модуль " +"изначально размещался в [.filename]#/usr/src#." + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:186 +#, no-wrap +msgid "The Makefile" +msgstr "Makefile" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:189 +msgid "" +"It is good practice to create [.filename]#Makefiles# for every nontrivial " +"coding project, which of course includes kernel modules." +msgstr "" +"Правилом хорошего тона является создание [.filename]#Makefile#-ов для " +"каждого нетривиального проекта, примером которого конечно-же является " +"создание модулей ядра." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:192 +msgid "" +"Creating the [.filename]#Makefile# is simple thanks to an extensive set of " +"helper routines provided by the system. In short, here is how a minimal " +"[.filename]#Makefile# looks for a kernel module:" +msgstr "" +"Создание [.filename]#Makefile# - дело не сложное благодаря исчерпывающему " +"набору вспомогательных средств, предоставляемых системой. В вкратце, вот как " +"должен выглядеть [.filename]#Makefile# для модуля ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:197 +#, no-wrap +msgid "" +"SRCS=g_journal.c\n" +"KMOD=geom_journal\n" +msgstr "" +"SRCS=g_journal.c\n" +"KMOD=geom_journal\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:199 +#, no-wrap +msgid ".include \n" +msgstr ".include \n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:203 +msgid "" +"This [.filename]#Makefile# (with changed filenames) will do for any kernel " +"module, and a GEOM class can reside in just one kernel module. If more than " +"one file is required, list it in the `SRCS` variable, separated with " +"whitespace from other filenames." +msgstr "" +"Этот [.filename]#Makefile# (с измененными именами файлов) подойдет к любому " +"модулю ядра. Класс GEOM может размещаться в одном единственном модуле ядра. " +"Если для сборки вашего модуля требуется больше, чем один файл, то " +"перечислите их имена, разделенные пробельными символами, в переменной `SRCS`." + +#. type: Title == +#: documentation/content/en/articles/geom-class/_index.adoc:205 +#, no-wrap +msgid "On FreeBSD Kernel Programming" +msgstr "Программирование в ядре FreeBSD" + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:208 +#, no-wrap +msgid "Memory Allocation" +msgstr "Выделение памяти" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:213 +msgid "" +"See man:malloc[9]. Basic memory allocation is only slightly different than " +"its userland equivalent. Most notably, `malloc`() and `free`() accept " +"additional parameters as is described in the man page." +msgstr "" +"Прочитайте man:malloc[9] - выделение памяти лишь немного отличается от " +"своего эквивалента, используемого в пространстве пользовательских процессов " +"(userland). Наиболее приметно то, что `malloc`() и `free`() принимают " +"дополнительные параметры, которые описаны в странице справочника." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:215 +msgid "" +"A \"malloc type\" must be declared in the declaration section of a source " +"file, like this:" +msgstr "" +"Тип \"malloc_type\" необходимо объявить в секции деклараций файла с исходным " +"кодом, например:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/geom-class/_index.adoc:219 +#, no-wrap +msgid " static MALLOC_DEFINE(M_GJOURNAL, \"gjournal data\", \"GEOM_JOURNAL Data\");\n" +msgstr " static MALLOC_DEFINE(M_GJOURNAL, \"gjournal data\", \"GEOM_JOURNAL Data\");\n" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:222 +msgid "" +"To use this macro, [.filename]#sys/param.h#, [.filename]#sys/kernel.h# and " +"[.filename]#sys/malloc.h# headers must be included." +msgstr "" +"Для того, чтобы можно было использовать этот макрос, необходимо включить " +"следующие заголовочные файлы: [.filename]#sys/param.h#, [.filename]#sys/" +"kernel.h# и [.filename]#sys/malloc.h#." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:225 +msgid "" +"There is another mechanism for allocating memory, the UMA (Universal Memory " +"Allocator). See man:uma[9] for details, but it is a special type of " +"allocator mainly used for speedy allocation of lists comprised of same-sized " +"items (for example, dynamic arrays of structs)." +msgstr "" +"Существует еще один механизм выделения памяти - UMA (Universal Memory " +"Allocator), описанный в man:uma[9]. Это специфический метод, преимущественно " +"предназначенный для быстрого выделения памяти под списки, состоящие из " +"элементов одинакового размера (например, динамические массивы структур)." + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:227 +#, no-wrap +msgid "Lists and Queues" +msgstr "Очереди и списки" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:234 +msgid "" +"See man:queue[3]. There are a LOT of cases when a list of things needs to " +"be maintained. Fortunately, this data structure is implemented (in several " +"ways) by C macros included in the system. The most used list type is TAILQ " +"because it is the most flexible. It is also the one with largest memory " +"requirements (its elements are doubly-linked) and also the slowest (although " +"the speed variation is on the order of several CPU instructions more, so it " +"should not be taken seriously)." +msgstr "" +"Ознакомьтесь с man:queue[3] Во множестве случаев вам необходимо будет " +"организовывать и управлять такой структурой данных, как списки. К счастью, " +"эта структура данных реализована несколькими способами в виде макросов на " +"Си, а также включена в систему. Наиболее гибкий и часто употребляемый тип " +"списка - TAILQ. Этот тип списка также один из наиболее требовательных к " +"памяти (его элементы - с двойными связями), а также - наиболее медленный " +"(однако счет идет на несколько инструкций ЦПУ, поэтому последнее утверждение " +"не следует воспринимать в всерьез)." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:236 +msgid "" +"If data retrieval speed is very important, see man:tree[3] and " +"man:hashinit[9]." +msgstr "" +"Если важна скорость получения данных, то возьмите на вооружение man:tree[3] " +"и man:hashinit[9]." + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:238 +#, no-wrap +msgid "BIOs" +msgstr "BIOs" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:242 +msgid "" +"Structure `bio` is used for any and all Input/Output operations concerning " +"GEOM. It basically contains information about what device ('provider') " +"should satisfy the request, request type, offset, length, pointer to a " +"buffer, and a bunch of \"user-specific\" flags and fields that can help " +"implement various hacks." +msgstr "" +"Структура `bio` используется для всех операций ввода/вывода, касающихся " +"GEOM. Она содержит информацию о том, какое устройство ('поставщик geom') " +"должно ответить на запрос, тип запроса, смещение, длину и указатель на " +"буфер, а также набор \"определенных пользователем\" флагов и полей ." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:246 +msgid "" +"The important thing here is that ``bio``s are handled asynchronously. That " +"means that, in most parts of the code, there is no analogue to userland's " +"man:read[2] and man:write[2] calls that do not return until a request is " +"done. Rather, a developer-supplied function is called as a notification " +"when the request gets completed (or results in error)." +msgstr "" +"Важным моментом является то, что `bio` обрабатываются асинхронно. Это " +"значит, что во многих частях кода нет аналога к man:read[2] и man:write[2] " +"функциям из пространства пользовательских процессов, которые не возвращают " +"управление пока не выполнится системный вызов. Скорее, по завершении " +"обработки запроса (или в случае ошибки при обработке) как извещение " +"вызывается определенная пользователем функция." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:250 +msgid "" +"The asynchronous programming model (also called \"event-driven\") is " +"somewhat harder than the much more used imperative one used in userland (at " +"least it takes a while to get used to it). In some cases the helper " +"routines `g_write_data`() and `g_read_data`() can be used, but __not " +"always__. In particular, they cannot be used when a mutex is held; for " +"example, the GEOM topology mutex or the internal mutex held during the " +"`.start`() and `.stop`() functions." +msgstr "" +"Асинхронная модель программирования в чем-то сложней, нежели чаще " +"используемая императивная модель, используемая в пространстве " +"пользовательских процессов; в любом случае, привыкание займет некоторое " +"время. В некоторых случаях могут быть использованы вспомогательные функции " +"`g_write_data`() и `g_read_data`(), но __далеко не всегда__. В частности, " +"эти функции не могут использоваться когда захвачен мьютекс; например, " +"мьютекс GEOM-топологии или внутренний мьютекс, удерживаемый в ходе " +"выполнения `.start`() или `.stop`()." + +#. type: Title == +#: documentation/content/en/articles/geom-class/_index.adoc:252 +#, no-wrap +msgid "On GEOM Programming" +msgstr "Программирование в системе GEOM" + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:255 +#, no-wrap +msgid "Ggate" +msgstr "Ggate" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:259 +msgid "" +"If maximum performance is not needed, a much simpler way of making a data " +"transformation is to implement it in userland via the ggate (GEOM gate) " +"facility. Unfortunately, there is no easy way to convert between, or even " +"share code between the two approaches." +msgstr "" +"Если максимальная производительность не требуется, то более простой способ " +"совершать преобразования данных - это выполнять их в пространстве " +"пользовательских процессов посредством ggate (GEOM gate). К недостаткам " +"следует отнести невозможность простого переноса кода в ядро." + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:261 +#, no-wrap +msgid "GEOM Class" +msgstr "Класс GEOM" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:266 +msgid "" +"GEOM classes are transformations on the data. These transformations can be " +"combined in a tree-like fashion. Instances of GEOM classes are called " +"__geoms__." +msgstr "" +"Класс GEOM выполняет преобразования данных. Эти преобразования могут быть " +"скомпонованы друг с другом в виде дерева. Экземпляр класса GEOM называют " +"__geom__." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:268 +msgid "" +"Each GEOM class has several \"class methods\" that get called when there is " +"no geom instance available (or they are simply not bound to a single " +"instance):" +msgstr "" +"В каждом классе GEOM есть несколько \"методов класса\", которые вызываются " +"когда экземпляра класса нет в наличии (или же они не привязаны к конкретному " +"экземпляру класса):" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:270 +msgid "" +"`.init` is called when GEOM becomes aware of a GEOM class (when the kernel " +"module gets loaded.)" +msgstr "" +"`.init` вызывается тогда, когда системе GEOM становится известно о классе " +"GEOM (например, когда загружается модуль ядра)." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:271 +msgid "" +"`.fini` gets called when GEOM abandons the class (when the module gets " +"unloaded)" +msgstr "" +"`.fini` будет вызван в случае отказа GEOM системы от класса (например, при " +"выгрузке модуля)" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:272 +msgid "" +"`.taste` is called next, once for each provider the system has available. If " +"applicable, this function will usually create and start a geom instance." +msgstr "" +"`.taste` вызывается, когда в системе появляется новый класс или поставщик " +"geom (\"provider\"). Если соответствие найдено, то эта функция обычно " +"создает и запускает экземпляр geom." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:273 +msgid "`.destroy_geom` is called when the geom should be disbanded" +msgstr "`.destroy_geom` вызывается при необходимости разрушить экземпляр geom" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:274 +msgid "" +"`.ctlconf` is called when user requests reconfiguration of existing geom" +msgstr "" +"`.ctlconf` будет вызван, когда пользователь запросит изменение конфигурации " +"существующего экземпляра geom" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:276 +msgid "" +"Also defined are the GEOM event functions, which will get copied to the geom " +"instance." +msgstr "" +"Также определены функции событий GEOM, которые копируются в экземпляр geom." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:278 +msgid "" +"Field `.geom` in the `g_class` structure is a LIST of geoms instantiated " +"from the class." +msgstr "" +"Поле `.geom` в структуре `g_class` - это список (LIST) экземпляров geom, " +"реализованных из класса." + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:280 +msgid "These functions are called from the g_event kernel thread." +msgstr "Эти функции вызываются из g_event потока ядра." + +#. type: Title === +#: documentation/content/en/articles/geom-class/_index.adoc:282 +#, no-wrap +msgid "Softc" +msgstr "Softc" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:288 +msgid "" +"The name \"softc\" is a legacy term for \"driver private data\". The name " +"most probably comes from the archaic term \"software control block\". In " +"GEOM, it is a structure (more precise: pointer to a structure) that can be " +"attached to a geom instance to hold whatever data is private to the geom " +"instance. Most GEOM classes have the following members:" +msgstr "" +"\"softc\" - это устаревший термин для \"приватных данных драйвера\" " +"(\"driver private data\"). Название вероятней всего происходит от " +"устаревшего термина \"software control block\". В системе GEOM softc это " +"структура (точнее: указатель на структуру) которая может быть присоединена к " +"экземпляру geom и может содержать приватные данные экземпляра. У большинства " +"классов GEOM есть следующие члены:" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:290 +msgid "`struct g_provider *provider` : The \"provider\" this geom instantiates" +msgstr "" +"`struct g_provider *provider` : \"поставщик geom\" предоставляемый данным " +"экземпляром geom" + +#. type: Plain text +#: documentation/content/en/articles/geom-class/_index.adoc:291 +msgid "`uint16_t n_disks` : Number of consumer this geom consumes" +msgstr "" +"`uint16_t n_disks` : Количество потребителей geom (\"consumer\"), " +"обслуживаемых данным экземпляром geom" *** 571 LINES SKIPPED *** From nobody Sat Sep 20 10:38:09 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cTQnZ22HJz68c1v for ; Sat, 20 Sep 2025 10:38:10 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cTQnZ1KqSz47fX; Sat, 20 Sep 2025 10:38:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758364690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jNW85CRbNdqdoS63ITiE8LuALrkdpUFg2NqE308C4NM=; b=w1GWtW+GHh/vLvMw5lntXt3D26c2P74QWjoxFbM3eAEvt29woLqOPKckS5VZXqk+wQl1oW Fvmsg3BWx+TNhzaNrI3Znr4VGEkMrbTLb80tRFldUgZM/pEBEn0rhu9Z3BLh3MOpMlIC7N 4q8TW0t9CnTejc72QkRsCB+VXK+Yw0EYYW/0lvj3Xul0M0wUVxxlX1g2kx1IDHcB1j5JBK /j77EZoZC2DXiIDPjNR23vhUdvdUtwuzlALO4lddtFBWpsJy0ioTv9ROgWrhJzWc9PUAtQ i5nbDFN3noDjS+KsKISeMDn0b8xrSUqTCHILfeI0hpto9I2WUCugyS9T3r2fYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758364690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jNW85CRbNdqdoS63ITiE8LuALrkdpUFg2NqE308C4NM=; b=A1ffDrGCXK8rcxgXEoKwx7YuTGEOmR4+VNXlu3AYeC72+I2AHHuOPJR8NHKBjFsd0cAcL2 Yi8WqtDpx94yDxiurtMHNdm38ql2i119+kv8ugW+G8I3v4u8pBVho6+ol9nurzCGYVmIMH 3VEh5N/zcP9rzwZEvs+S9uB5rIN2v49I7BEcEt790V9YEKQa2dOOxxwgx1A6TJuG3gj7Ss TqltnZpuMdp7t3vwx0lqJL2xscrt0A+t4qTyZJv9gFV+jDzfqRd6bKC6o1NeAvsFm9pzn4 8PUov4SyzE0HfUpGSDRfE2pylAF12ZtZz78wNGk1OF5s/6240kMvBP5rkl4oBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758364690; a=rsa-sha256; cv=none; b=BTHP82Bxhk8wtMhckjTALM4dLLeI6/LWnYrSPFVq/0fcbrNm/voZ2Lxm+UKgmCnPlJp18U lZJAni7Q2SqcD93sYE6ooLDE9hNvZbjRQ3r4aha+zxwWG3XP9V1kL1dOLcQGm4uYIIp7Qz l2lUYUGUO6irbSvRCb6ZDnh33wqqLFt++pR9sJ2diZVnRpIKoV0ylw3TBkhJngkHPeUmNB tnXFFLEdLyEvCDqglyjy9eJr+6jgj/tKSOrJpuFMWjiu4XSBY7V7fhPczRzDe0WU3aiaPf OiQGVvvjLlTScRcaw/EmbbphrEw50EUOFYsWeJwAC4Bfh47FFgfWxSwszS4irg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cTQnZ0bqMz8hh; Sat, 20 Sep 2025 10:38:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58KAc9aM027353; Sat, 20 Sep 2025 10:38:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58KAc9QJ027350; Sat, 20 Sep 2025 10:38:09 GMT (envelope-from git) Date: Sat, 20 Sep 2025 10:38:09 GMT Message-Id: <202509201038.58KAc9QJ027350@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: 3412a9c34f - main - update translation of articles/bsdl-gpl to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3412a9c34f0a03982cfc934c4f6e84d5e5b8770a Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=3412a9c34f0a03982cfc934c4f6e84d5e5b8770a commit 3412a9c34f0a03982cfc934c4f6e84d5e5b8770a Author: Vladlen Popolitov AuthorDate: 2025-09-20 10:37:45 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-20 10:37:45 +0000 update translation of articles/bsdl-gpl to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D51974 --- .../content/ru/articles/bsdl-gpl/_index.adoc | 205 ++++ .../content/ru/articles/bsdl-gpl/_index.po | 1163 ++++++++++++++++++++ 2 files changed, 1368 insertions(+) diff --git a/documentation/content/ru/articles/bsdl-gpl/_index.adoc b/documentation/content/ru/articles/bsdl-gpl/_index.adoc new file mode 100644 index 0000000000..d35e047328 --- /dev/null +++ b/documentation/content/ru/articles/bsdl-gpl/_index.adoc @@ -0,0 +1,205 @@ +--- +authors: + - + author: 'Bruce Montague' + email: brucem@alumni.cse.ucsc.edu +description: 'Почему вы должны использовать лицензию в стиле BSD для вашего Open Source проекта' +tags: ["bsdl", "gpl", "FreeBSD License"] +title: 'Почему вы должны использовать лицензию в стиле BSD для вашего Open Source проекта' +trademarks: ["freebsd", "intel", "general"] +--- + += Почему вы должны использовать лицензию в стиле BSD для вашего Open Source проекта +:doctype: article +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:source-highlighter: rouge +:experimental: +:images-path: articles/bsdl-gpl/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +:imagesdir: ../../../images/{images-path} +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +''' + +toc::[] + +[[intro]] +== Введение + +Этот документ обосновывает использование лицензии в стиле BSD для программного обеспечения и данных; в частности, он рекомендует применять лицензию в стиле BSD вместо GPL. Его также можно рассматривать как введение и краткое сравнение открытых лицензий BSD и GPL. + +[[history]] +== Очень краткая история открытого исходного кода + +Долгое время до того, как термин "Открытое программное обеспечение" вошел в употребление, программное обеспечение разрабатывалось свободными объединениями программистов и свободно обменивалось. Начиная с ранних 1950-х годов, организации, такие как http://www.share.org[SHARE] и http://www.decus.org[DECUS], разрабатывали большую часть программного обеспечения, которое компании-производители аппаратного обеспечения поставляли вместе со своими продуктами. В то время компьютерные компании занимались аппаратным обеспечением; все, что снижало стоимость программног обеспечения и делало больше программ доступными, повышало конкурентоспособность производителей аппаратного обеспечения. + +Эта модель изменилась в 1960-х годах. В 1965 году ADR разработала первый лицензированный программный продукт, независимый от компании-производителя оборудования. ADR конкурировала с бесплатным пакетом IBM, изначально разработанным клиентами IBM. ADR запатентовала своё программное обеспечение в 1968 году. Чтобы предотвратить распространение своей программы, они предоставляли её по договору аренды оборудования, где оплата распределялась на весь срок службы продукта. Таким образом, ADR сохраняла право собственности и могла контролировать перепродажу и повторное использование. + +В 1969 году Министерство юстиции США обвинило IBM в уничтожении бизнесов путем объединения бесплатного программного обеспечения с аппаратным обеспечением IBM. В результате этого иска IBM прекратила практику объединения; то есть, программное обеспечение стало независимым продуктом, отдельным от аппаратного обеспечения. + +В 1968 году компания Informatics представила приложение — первый коммерческий хит продукт, и быстро утвердила концепцию программного продукта, программной компании и очень высоких норм прибыли. Informatics разработала бессрочную лицензию, которая теперь является стандартом во всей компьютерной отрасли, при которой право собственности никогда не передается клиенту. + +[[unix-license]] +== Unix с точки зрения лицензирования BSD + +AT&T, владевшая оригинальной реализацией Unix, была регулируемой государством монополией, связанной антимонопольными судебными разбирательствами; юридически она не могла продавать продукт на рынке программного обеспечения. Однако она имела возможность предоставлять его учебным заведениям по цене носителя. + +Университеты быстро приняли Unix после того, как конференция по операционным системам объявила о его доступности. Крайне полезным было то, что Unix работал на PDP-11 — очень доступном 16-битном компьютере — и был написан на языке высокого уровня, который явно подходил для системного программирования. У DEC PDP-11, по сути, был открытый аппаратный интерфейс, разработанный для того, чтобы клиентам было легко писать свою собственную ОС, что было обычной практикой. Как знаменито заявил основатель DEC Кен Олсен: «программное обеспечение приходит с небес, ко гда у тебя хорошее железо». + +Автор Unix Кен Томпсон вернулся в свой альма-матер, Калифорнийский университет в Беркли (UCB), в 1975 году и преподавал, построчно рассказывая, как работает ядро. В итоге это привело к созданию развивающейся системы, известной как BSD (Berkeley Standard Distribution). UCB перевел Unix на 32-битную архитектуру, добавил виртуальную память и реализовал версию стека TCP/IP, на котором, по сути, был построен Интернет. UCB сделал BSD доступным за стоимость носителя по условиям лицензии, которая стала известна как "лицензия BSD". Клиент покупал Unix у AT&T, а затем заказывал ленту BSD у UCB. + +В середине 1980-х годов антимонопольный иск правительства против AT&T завершился разделом компании. AT&T по-прежнему владела Unix и теперь могла продавать его. AT&T начала агрессивную кампанию по лицензированию, и большинство коммерческих Unix того времени стали производными от AT&T. + +В начале 1990-х годов AT&T подала в суд на UCB за нарушения лицензий, связанных с BSD. UCB обнаружила, что AT&T включила в свои продукты множество улучшений, сделанных в BSD, без указания авторства или оплаты, и последовало длительное судебное разбирательство, в основном между AT&T и UCB. В этот период некоторые программисты UCB начали проект по переписыванию любого кода AT&T, связанного с BSD. В результате этого проекта появилась система под названием BSD 4.4-lite (lite, потому что это была не полная система; в ней отсутствовали 6 ключевых файлов AT&T). + +Длинная серия статей, опубликованных чуть позже в журнале Dr. Dobbs, описывала версию Unix для ПК на базе 386, производную от BSD, с файлами-заменителями под лицензией BSD для 6 отсутствующих файлов из 4.4 lite. Эта система, названная 386BSD, была создана бывшим программистом из UCB Уильямом Джолитцем. Она стала первоосновой всех современных PC BSD. + +В середине 1990-х годов Novell приобрела права на Unix у AT&T, и было достигнуто (тогда секретное) соглашение о прекращении судебного разбирательства. Вскоре UCB прекратила поддержку BSD. + +[[current-bsdl]] +== Текущее состояние FreeBSD и лицензий BSD + +Так называемая http://www.opensource.org/licenses/bsd-license.php[новая лицензия BSD], применяемая к FreeBSD в последние годы, по сути, означает, что вы можете делать что угодно с программой или её исходным кодом, но не получаете никаких гарантий, и ни один из авторов не несёт ответственности (по сути, вы не можете ни на кого подать в суд). Эта новая лицензия BSD призвана стимулировать коммерциализацию продукта. Любой код BSD может быть продан или включён в проприетарные продукты без каких-либо ограничений на доступность вашего кода или ваше будущее поведение. + +Не путайте новую лицензию BSD с "общественным достоянием" (лицензия Public Domain). Хотя объект в общественном достоянии также свободен для использования всеми, у него нет владельца. + +[[origins-gpl]] +== Истоки GPL + +Пока будущее Unix оставалось неясным в конце 1980-х и начале 1990-х годов, GPL, ещё одна разработка с важными лицензионными аспектами, достигла зрелости. + +Ричард Столлман, разработчик Emacs, был сотрудником MIT, когда его лаборатория перешла с собственных разработок на проприетарные системы. Столлман был расстроен, обнаружив, что не может законно вносить даже незначительные улучшения в систему. (Многие его коллеги ушли, чтобы основать две компании, основанные на программном обеспечении, разработанном в MIT и лицензированном MIT; по-видимому, возникли разногласия по поводу доступа к исходному коду этого программного обеспечения). Столлман разработал альтернативу коммерческой лицензии на програм мное обеспечение и назвал её GPL, или «Универсальная общественная лицензия GNU» (GNU Public License). Он также основал некоммерческую организацию — http://www.fsf.org[Фонд свободного программного обеспечения] (FSF), целью которой была разработка целой операционной системы, включая все сопутствующие программы, которая не подчинялась бы проприетарным лицензиям. Эта система была названа GNU, что означает «GNU is Not Unix» (GNU — не Unix). + +GPL была создана как антитеза стандартной проприетарной лицензии. Для этого любые изменения, внесённые в программу под GPL, должны были возвращаться сообществу GPL (путем требования, чтобы исходный код программы был доступен пользователю), и любая программа, использующая или связывающаяся с кодом под GPL, должна была распространяться под GPL. Лицензия GPL предназначена для предотвращения перехода программного обеспечения в проприетарное состояние. Как сказано в последнем абзаце GPL: + +"This General Public License does not permit incorporating your program into proprietary programs (Стандартная Общественная Лицензия GNU не разрешает включать вашу программу в программы, использование которых ограничено их правообладателями)."<> + +http://www.opensource.org/licenses/gpl-license.php[GPL] — это сложная лицензия, поэтому вот несколько эмпирических правил при использовании GPL: + +* вы можете брать сколько угодно за распространение, поддержку или документацию к программному обеспечению, но вы не можете продавать само программное обеспечение. +* эмпирическое правило гласит, что если для компиляции программы требуется исходный код под GPL, то программа должна распространяться под лицензией GPL. Статическая линковка с библиотекой под GPL требует, чтобы программа также была под GPL. +* В соответствии с GPL, любые патенты, связанные с ПО под лицензией GPL, должны быть лицензированы для свободного использования всеми. +* простое объединение программного обеспечения, например, размещение нескольких программ на одном диске, не считается включением программ под лицензией GPL в программы, не подпадающие под GPL. +* вывод программы не считается производным произведением. Это позволяет использовать компилятор gcc в коммерческих средах без юридических проблем. +* поскольку ядро Linux распространяется под лицензией GPL, любой код, статически связанный с ядром Linux, должен быть лицензирован под GPL. Это требование можно обойти, используя динамическую загрузку модулей ядра. Это позволяет компаниям распространять двоичные драйверы, но часто имеет недостаток в том, что они будут работать только с определёнными версиями ядра Linux. + +Из-за своей сложности во многих частях мира сегодня юридические аспекты GPL игнорируются в отношении Linux и связанного с ним программного обеспечения. Долгосрочные последствия этого неясны. + +[[origins-lgpl]] +== Истоки Linux и LGPL + +Пока бушевали коммерческие войны Unix, ядро Linux разрабатывалось как клон Unix для ПК. Линус Торвальдс признает, что существование компилятора GNU C и связанных с ним инструментов GNU стало основой для появления Linux. Он выпустил ядро Linux под лицензией GPL. + +Помните, что лицензия GPL требует, чтобы любой код, статически связанный с кодом под GPL, также распространялся под GPL. Исходный код такой программы должен быть предоставлен пользователю. Однако динамическая линковка не считается нарушением GPL. Давление с целью размещения проприетарных приложений в Linux стало слишком сильным. Такие приложения часто должны быть связаны с системными библиотеками. Это привело к созданию модифицированной версии GPL под названием http://www.opensource.org/licenses/lgpl-license.php[LGPL] ("Library", позже переименована в "Lesser" GPL). LGPL разрешает про приетарному коду быть связанным с библиотекой GNU C, glibc. Вам не нужно раскрывать исходный код, который был динамически связан с библиотекой под LGPL. + +Если вы статически связываете приложение с glibc, как это часто требуется во встроенных системах, вы не можете сохранить ваше приложение проприетарным, то есть исходный код должен быть опубликован. И GPL, и LGPL требуют, чтобы любые изменения кода, подпадающего под лицензию, были выпущены. + +[[orphaning]] +== Открытые лицензии и проблема заброшенности проектов + +Одной из серьёзных проблем, связанных с проприетарным программным обеспечением, является так называемое "осиротение". Это происходит, когда единичный сбой в бизнесе или изменение стратегии продукта приводит к краху огромной пирамиды зависимых систем и компаний по причинам, не зависящим от них. Десятилетия опыта показали, что текущий размер или успех поставщика программного обеспечения не гарантирует, что их ПО останется доступным, поскольку рыночные условия и стратегии могут быстро меняться. + +Лицензия GPL пытается предотвратить потерю поддержки, разрывая связь с проприетарной интеллектуальной собственностью. + +Лицензия BSD предоставляет небольшой компании эквивалент программного обеспечения на условном депонировании без каких-либо юридических сложностей или затрат. Если программа под лицензией BSD становится заброшенной, компания может просто взять её под свой контроль в проприетарном режиме, если она от неё зависит. Ещё лучше, когда кодовая база BSD поддерживается небольшим неформальным консорциумом, поскольку процесс разработки не зависит от выживания отдельной компании или линейки продуктов. Выживаемость команды разработчиков, когда они н аходятся в режиме продуктивной работы, гораздо важнее простой физической доступности исходного кода. + +[[license-cannot]] +== Что лицензия не может сделать + +Ни одна лицензия не может гарантировать доступность программного обеспечения в будущем. Хотя владелец авторских прав традиционно может изменять условия авторского права в любое время, в сообществе BSD принято считать, что такая попытка просто приведёт к ответвлению исходного кода. + +Лицензия GPL явно запрещает отзыв лицензии. Однако случалось, что компания (Mattel) приобрела авторские права на продукт под GPL (cphack), отозвала все авторские права, обратилась в суд и выиграла дело <>. То есть они легально отозвали всё распространение и все производные работы, основанные на этих авторских правах. Остаётся открытым вопрос, может ли подобное произойти с более крупным и распределённым проектом; также есть некоторая путаница относительно того, действительно ли данное ПО распространялось под лицензией GPL. + +В другом примере, Red Hat приобрела Cygnus, инженерную компанию, которая взяла на себя разработку инструментов компилятора FSF. Cygnus смогла это сделать, потому что разработала бизнес-модель, в которой они продавали поддержку для программного обеспечения GNU. Это позволило им нанять около 50 инженеров и направлять развитие программ, внося основную часть изменений в код программы. Как отмечает Дональд Розенберг: «проекты, использующие лицензии вроде GPL... живут под постоянной угрозой, что кто-то перехватит проект, создав лучшую версию кода и сделав это быстрее, чем оригинальные владельцы.» <> + +[[gpl-advantages]] +== Преимущества и недостатки GPL + +Распространённая причина использовать GPL — это модификация или расширение компилятора gcc. Это особенно актуально при работе с уникальными специализированными процессорами в средах, где все затраты на программное обеспечение, скорее всего, считаются накладными расходами, с минимальными ожиданиями того, что другие будут использовать получившийся компилятор. + +Лицензия GPL также привлекательна для небольших компаний, продающих CD в условиях, где принцип «купи-дешево, продай-дорого» может по-прежнему обеспечить конечному пользователю очень недорогой продукт. Она также привлекательна для компаний, которые рассчитывают выжить за счет предоставления различных форм технической поддержки, включая документацию, для мира интеллектуальной собственности под GPL. + +Менее известное и непреднамеренное использование GPL заключается в том, что она очень выгодна крупным компаниям, которые хотят подорвать позиции компаний-разработчиков программного обеспечения. Другими словами, GPL хорошо подходит для использования в качестве маркетингового оружия, потенциально снижая общую экономическую выгоду и способствуя монополистическому поведению. + +Лицензия GPL может представлять реальную проблему для тех, кто хочет коммерциализировать программное обеспечение и получать от него прибыль. Например, GPL усложняет задачу выпускника, который хочет создать компанию для коммерциализации результатов своих исследований, или затрудняет ситуацию для студента, который планирует присоединиться к компании в расчете на коммерциализацию перспективного исследовательского проекта. + +Для тех, кто должен работать со статически связанными реализациями множества программных стандартов, GPL часто является неудобной лицензией, поскольку она исключает использование проприетарных реализаций этих стандартов. Таким образом, GPL минимизирует количество программ, которые могут быть созданы с использованием стандарта под лицензией GPL. Лицензия GPL задумывалась так, чтобы не предоставлять механизм для разработки стандарта, на основе которого создаются проприетарные продукты. (Это не относится к приложениям для Linux, поскольку они е используют статическую линковку, а вместо этого применяют API на основе трапов/ловушек.) + +Лицензия GPL пытается заставить программистов вносить вклад в развивающийся набор программ, а затем конкурировать в распространении и поддержке этого набора. Такая ситуация нереалистична для многих необходимых стандартов ядра системы, которые могут применяться в самых разных средах, требующих коммерческой настройки или интеграции с унаследованными стандартами под существующими (не-GPL) лицензиями. Системы реального времени часто статически связываются, поэтому GPL и LGPL определенно рассматриваются многими компаниями, работающими с встр аиваемыми системами, как потенциальные проблемы. + +GPL - это попытка удержать усилия, независимо от спроса, на этапах исследований и разработки. Это максимизирует выгоды для исследователей и разработчиков, при неизвестных затратах для тех, кто мог бы получить выгоду от более широкого распространения. + +GPL была разработана для предотвращения перехода результатов исследований в проприетарные продукты. Этот шаг часто считается последним этапом в традиционном процессе передачи технологий, и он обычно достаточно сложен даже в самых благоприятных условиях; GPL была призвана сделать это невозможным. + +[[bsd-advantages]] +== Преимущества BSD + +Лицензия в стиле BSD — это хороший выбор для долгосрочных исследований или других проектов, которым требуется среда разработки, обладающая следующими характеристиками: + +* имеет почти нулевую стоимость +* будет развиваться в течение длительного времени +* позволяет любому сохранить возможность коммерциализации конечных результатов с минимальными юридическими проблемами. + +Это последнее соображение часто может быть решающим, как это было, когда проект Apache выбирал свою лицензию: + +"Этот тип лицензии идеально подходит для продвижения использования эталонного кода, реализующего протокол для общего сервиса. Это ещё одна причина, по которой мы выбрали его для группы Apache - многие из нас хотели, чтобы HTTP выжил и стал по-настоящему многосторонним стандартом, и мы нисколько не возражали бы, если бы Microsoft или Netscape решили включить наш HTTP-движок или любой другой компонент нашего кода в свои продукты, если бы это способствовало достижению цели сохранения HTTP общим... Всё это означает, что, стратегически говоря, проект должен сохран ять достаточную динамику, а участники должны осознавать большую ценность внесения своего кода в проект, даже того кода, который мог бы иметь ценность, оставаясь проприетарным." + +Разработчики часто находят лицензию BSD привлекательной, так как она минимизирует юридические сложности и позволяет им делать с кодом всё, что угодно. В отличие от этого, те, кто в первую очередь планирует использовать систему, а не программировать её, или ожидает, что другие будут развивать код, или не рассчитывает зарабатывать на жизнь работой, связанной с системой (например, государственные служащие), находят GPL привлекательной, потому что она обязывает других разработчиков предоставлять им код и не позволяет их работодателю сохранять а торские права, что потенциально может привести к «забвению» или потере поддержки программного обеспечения. Если вы хотите заставить своих конкурентов помогать вам, GPL привлекательна. + +Лицензия BSD — это не просто подарок. Вопрос «почему мы должны помогать нашим конкурентам или позволять им красть нашу работу?» часто возникает в связи с лицензией BSD. Под лицензией BSD, если одна компания начинает доминировать в нише продукта, который другие считают стратегическим, остальные компании могут с минимальными усилиями создать мини-консорциум, направленный на восстановление паритета путем внесения вклада в конкурирующий вариант BSD, что увеличивает конкуренцию и справедливость на рынке. Это позволяет каждой компании верить, что она сможет извлечь прибыль из какого-либо преимущества, которое она может предоставить, одновременно способствуя экономической гибкости и эффективности. Чем быстрее и проще сотрудничающие участники смогут это сделать, тем успешнее они будут. Лицензия BSD по сути является минимально сложной лицензией, которая делает такое поведение возможным. + +Ключевой эффект GPL, делающий полную и конкурентоспособную систему с открытым исходным кодом широко доступной по стоимости носителя, является разумной целью. Лицензия в стиле BSD, в сочетании с ad-hoc-консорциумами индивидуумов, может достичь этой цели без разрушения экономических предположений, заложенных в развертывающем конце трубопровода передачи технологий. + +[[recommendations]] +== Конкретные рекомендации по использованию лицензии BSD + +* Лицензия BSD предпочтительна для передачи результатов исследований таким образом, чтобы они широко внедрялись и приносили максимальную пользу экономике. Таким образом, агентства, финансирующие исследования, такие как NSF, ONR и DARPA, должны на самых ранних этапах финансируемых исследовательских проектов поощрять принятие лицензий в стиле BSD для программного обеспечения, данных, результатов и открытого аппаратного обеспечения. Они также должны поощрять создание стандартов на основе реализованных систем с открытым исходным кодом и текущих проектов с открытым исходным кодом. +* Политика правительства должна минимизировать затраты и сложности перехода от исследований к внедрению. По возможности, гранты должны требовать, чтобы результаты были доступны под дружественной к коммерциализации лицензией в стиле BSD. +* Во многих случаях долгосрочные результаты лицензии в стиле BSD более точно отражают цели, провозглашенные в исследовательском уставе университетов, чем когда результаты защищены авторским правом или запатентованы и подлежат проприетарному лицензированию университета. Существуют неподтвержденные данные, что в долгосрочной перспективе университеты получают больше финансовых выгод, публикуя результаты исследований и затем обращаясь за пожертвованиями к коммерчески успешным выпускникам. +* Компании давно осознают, что создание де-факто стандартов является ключевым маркетинговым приемом. Лицензия BSD хорошо подходит для этой роли, если компания действительно обладает уникальным преимуществом в развитии системы. Лицензия юридически привлекательна для широкой аудитории, в то время как экспертиза компании гарантирует их контроль. Бывают случаи, когда GPL может быть подходящим инструментом для попытки создать такой стандарт, особенно при попытке подорвать или кооптировать другие. Однако GPL наказывает за эволюцию этого станда рта, потому что она продвигает набор инструментов, а не коммерчески применимый стандарт. Использование такого набора постоянно поднимает вопросы коммерциализации и юридические проблемы. Может оказаться невозможным совмещать стандарты, если некоторые из них под GPL, а другие — нет. Настоящий технический стандарт не должен требовать исключения других стандартов по нетехническим причинам. +* Компании, заинтересованные в продвижении развивающегося стандарта, который может стать основой коммерческих продуктов других компаний, должны остерегаться GPL. Независимо от используемой лицензии, итоговое программное обеспечение обычно переходит к тем, кто фактически вносит большинство инженерных изменений и лучше всего понимает состояние системы. GPL просто добавляет больше юридических сложностей к результату. +* Крупные компании, занимающиеся разработкой открытого исходного кода, должны понимать, что программисты ценят Open Source, потому что это позволяет сохранить доступ к программному обеспечению при смене работодателя. Некоторые компании поощряют такое поведение как дополнительное преимущество работы, особенно когда задействованное ПО не имеет прямого стратегического значения. По сути, это предварительно предоставленная пенсионная льгота с потенциальными упущенными возможностями, но без прямых затрат. Поощрение сотрудников к работе на пр знание коллег вне компании — это недорогое и переносимое преимущество, которое компания иногда может предоставить практически без негативных последствий. +* Небольшие компании с программными проектами, уязвимыми к заброшенности, должны по возможности использовать лицензию BSD. Компании любого размера должны рассмотреть возможность создания подобных проектов с открытым исходным кодом, когда это взаимовыгодно для поддержания минимальных юридических и организационных накладных расходов, связанных с настоящим проектом в стиле BSD с открытым исходным кодом. +* Некоммерческие организации должны по возможности участвовать в проектах с открытым исходным кодом. Чтобы минимизировать проблемы в разработке программного обеспечения, такие как смешивание кода под разными лицензиями, следует поощрять лицензии в стиле BSD. Осторожность в отношении GPL особенно важна для некоммерческих организаций, взаимодействующих с развивающимися странами. В некоторых регионах, где применение закона становится дорогостоящим процессом, простота новой лицензии BSD по сравнению с GPL может быть значительным преимуществ ом. + +[[conclusion]] +== Заключение + +В отличие от лицензии GPL, которая предназначена для предотвращения коммерциализации открытого исходного кода в проприетарных целях, лицензия BSD накладывает минимальные ограничения на дальнейшие действия. Это позволяет коду BSD оставаться открытым или быть интегрированным в коммерческие решения, в зависимости от изменяющихся потребностей проекта или компании. Другими словами, лицензия BSD не превращается в юридическую "бомбу замедленного действия" на каком-либо этапе процесса разработки. + +Помимо этого, поскольку лицензия BSD не обладает юридической сложностью лицензий GPL или LGPL, она позволяет разработчикам и компаниям тратить время на создание и продвижение качественного кода, вместо того чтобы беспокоиться о возможном нарушении лицензирования. + +[[addenda]] +[bibliography] +== Библиографические ссылки + +* [[[one,1]]] http://www.gnu.org/licenses/gpl.html + +* [[[two,2]]] http://archives.cnn.com/2000/TECH/computing/03/28/cyberpatrol.mirrors/ + +* [[[three,3]]] Open Source: the Unauthorized White Papers, Donald K. Rosenberg, IDG Books, 2000. Quotes are from page 114, "Effects of the GNU GPL". + +* [[[four,4]]] В разделе "What License to Use?" книги http://www.oreilly.com/catalog/opensources/book/brian.html + +Этот технический документ представляет собой сжатое изложение оригинальной работы, доступной по адресу http://alumni.cse.ucsc.edu/~brucem/open_source_license.htm diff --git a/documentation/content/ru/articles/bsdl-gpl/_index.po b/documentation/content/ru/articles/bsdl-gpl/_index.po new file mode 100644 index 0000000000..74b273029a --- /dev/null +++ b/documentation/content/ru/articles/bsdl-gpl/_index.po @@ -0,0 +1,1163 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Edson Brandi , 2025. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2022-02-01 09:21-0300\n" +"PO-Revision-Date: 2025-07-27 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Title = +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:1 +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:11 +#, no-wrap +msgid "Why you should use a BSD style license for your Open Source Project" +msgstr "" +"Почему вы должны использовать лицензию в стиле BSD для вашего Open Source " +"проекта" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:43 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:47 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:52 +msgid "" +"This document makes a case for using a BSD style license for software and " +"data; specifically it recommends using a BSD style license in place of the " +"GPL. It can also be read as a BSD versus GPL Open Source License " +"introduction and summary." +msgstr "" +"Этот документ обосновывает использование лицензии в стиле BSD для " +"программного обеспечения и данных; в частности, он рекомендует применять " +"лицензию в стиле BSD вместо GPL. Его также можно рассматривать как введение " +"и краткое сравнение открытых лицензий BSD и GPL." + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:54 +#, no-wrap +msgid "Very Brief Open Source History" +msgstr "Очень краткая история открытого исходного кода" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:60 +msgid "" +"Long before the term \"Open Source\" was used, software was developed by " +"loose associations of programmers and freely exchanged. Starting in the " +"early 1950's, organizations such as http://www.share.org[SHARE] and http://" +"www.decus.org[DECUS] developed much of the software that computer hardware " +"companies bundled with their hardware offerings. At that time computer " +"companies were in the hardware business; anything that reduced software cost " +"and made more programs available made the hardware companies more " +"competitive." +msgstr "" +"Долгое время до того, как термин \"Открытое программное обеспечение\" вошел " +"в употребление, программное обеспечение разрабатывалось свободными " +"объединениями программистов и свободно обменивалось. Начиная с ранних 1950-х " +"годов, организации, такие как http://www.share.org[SHARE] и http://www.decus." +"org[DECUS], разрабатывали большую часть программного обеспечения, которое " +"компании-производители аппаратного обеспечения поставляли вместе со своими " +"продуктами. В то время компьютерные компании занимались аппаратным " +"обеспечением; все, что снижало стоимость программного обеспечения и делало " +"больше программ доступными, повышало конкурентоспособность производителей " +"аппаратного обеспечения." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:67 +msgid "" +"This model changed in the 1960's. In 1965 ADR developed the first licensed " +"software product independent of a hardware company. ADR was competing " +"against a free IBM package originally developed by IBM customers. ADR " +"patented their software in 1968. To stop sharing of their program, they " +"provided it under an equipment lease in which payment was spread over the " +"lifetime of the product. ADR thus retained ownership and could control " +"resale and reuse." +msgstr "" +"Эта модель изменилась в 1960-х годах. В 1965 году ADR разработала первый " +"лицензированный программный продукт, независимый от компании-производителя " +"оборудования. ADR конкурировала с бесплатным пакетом IBM, изначально " +"разработанным клиентами IBM. ADR запатентовала своё программное обеспечение " +"в 1968 году. Чтобы предотвратить распространение своей программы, они " +"предоставляли её по договору аренды оборудования, где оплата распределялась " +"на весь срок службы продукта. Таким образом, ADR сохраняла право " +"собственности и могла контролировать перепродажу и повторное использование." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:70 +msgid "" +"In 1969 the US Department of Justice charged IBM with destroying businesses " +"by bundling free software with IBM hardware. As a result of this suit, IBM " +"unbundled its software; that is, software became independent products " +"separate from hardware." +msgstr "" +"В 1969 году Министерство юстиции США обвинило IBM в уничтожении бизнесов " +"путем объединения бесплатного программного обеспечения с аппаратным " +"обеспечением IBM. В результате этого иска IBM прекратила практику " +"объединения; то есть, программное обеспечение стало независимым продуктом, " +"отдельным от аппаратного обеспечения." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:75 +msgid "" +"In 1968 Informatics introduced the first commercial killer-app and rapidly " +"established the concept of the software product, the software company, and " +"very high rates of return. Informatics developed the perpetual license " +"which is now standard throughout the computer industry, wherein ownership is " +"never transferred to the customer." +msgstr "" +"В 1968 году компания Informatics представила приложение — первый " +"коммерческий хит продукт, и быстро утвердила концепцию программного " +"продукта, программной компании и очень высоких норм прибыли. Informatics " +"разработала бессрочную лицензию, которая теперь является стандартом во всей " +"компьютерной отрасли, при которой право собственности никогда не передается " +"клиенту." + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:77 +#, no-wrap +msgid "Unix from a BSD Licensing Perspective" +msgstr "Unix с точки зрения лицензирования BSD" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:83 +msgid "" +"AT&T, who owned the original Unix implementation, was a publicly regulated " +"monopoly tied up in anti-trust court; it was legally unable to sell a " +"product into the software market. It was, however, able to provide it to " +"academic institutions for the price of media." +msgstr "" +"AT&T, владевшая оригинальной реализацией Unix, была регулируемой " +"государством монополией, связанной антимонопольными судебными " +"разбирательствами; юридически она не могла продавать продукт на рынке " +"программного обеспечения. Однако она имела возможность предоставлять его " +"учебным заведениям по цене носителя." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:89 +msgid "" +"Universities rapidly adopted Unix after an OS conference publicized its " +"availability. It was extremely helpful that Unix ran on the PDP-11, a very " +"affordable 16-bit computer, and was coded in a high-level language that was " +"demonstrably good for systems programming. The DEC PDP-11 had, in effect, " +"an open hardware interface designed to make it easy for customers to write " +"their own OS, which was common. As DEC founder Ken Olsen famously " +"proclaimed, \"software comes from heaven when you have good hardware\"." +msgstr "" +"Университеты быстро приняли Unix после того, как конференция по операционным " +"системам объявила о его доступности. Крайне полезным было то, что Unix " +"работал на PDP-11 — очень доступном 16-битном компьютере — и был написан на " +"языке высокого уровня, который явно подходил для системного " +"программирования. У DEC PDP-11, по сути, был открытый аппаратный интерфейс, " +"разработанный для того, чтобы клиентам было легко писать свою собственную " +"ОС, что было обычной практикой. Как знаменито заявил основатель DEC Кен " +"Олсен: «программное обеспечение приходит с небес, когда у тебя хорошее " +"железо»." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:95 +msgid "" +"Unix author Ken Thompson returned to his alma mater, University of " +"California Berkeley (UCB), in 1975 and taught the kernel line-by-line. This " +"ultimately resulted in an evolving system known as BSD (Berkeley Standard " +"Distribution). UCB converted Unix to 32-bits, added virtual memory, and " +"implemented the version of the TCP/IP stack upon which the Internet was " +"essentially built. UCB made BSD available for the cost of media, under what " +"became known as \"the BSD license\". A customer purchased Unix from AT&T " +"and then ordered a BSD tape from UCB." +msgstr "" +"Автор Unix Кен Томпсон вернулся в свой альма-матер, Калифорнийский " +"университет в Беркли (UCB), в 1975 году и преподавал, построчно рассказывая, " +"как работает ядро. В итоге это привело к созданию развивающейся системы, " +"известной как BSD (Berkeley Standard Distribution). UCB перевел Unix на 32-" +"битную архитектуру, добавил виртуальную память и реализовал версию стека TCP/" +"IP, на котором, по сути, был построен Интернет. UCB сделал BSD доступным за " +"стоимость носителя по условиям лицензии, которая стала известна как " +"\"лицензия BSD\". Клиент покупал Unix у AT&T, а затем заказывал ленту BSD у " +"UCB." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:99 +msgid "" +"In the mid-1980s a government anti-trust case against AT&T ended with the " +"break-up of AT&T. AT&T still owned Unix and was now able to sell it. AT&T " +"embarked on an aggressive licensing effort and most commercial Unixes of the " +"day became AT&T-derived." +msgstr "" +"В середине 1980-х годов антимонопольный иск правительства против AT&T " +"завершился разделом компании. AT&T по-прежнему владела Unix и теперь могла " +"продавать его. AT&T начала агрессивную кампанию по лицензированию, и " +"большинство коммерческих Unix того времени стали производными от AT&T." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:105 +msgid "" +"In the early 1990's AT&T sued UCB over license violations related to BSD. " +"UCB discovered that AT&T had incorporated, without acknowledgment or " +"payment, many improvements due to BSD into AT&T's products, and a lengthy " +"court case, primarily between AT&T and UCB, ensued. During this period some " +"UCB programmers embarked on a project to rewrite any AT&T code associated " +"with BSD. This project resulted in a system called BSD 4.4-lite (lite " +"because it was not a complete system; it lacked 6 key AT&T files)." +msgstr "" +"В начале 1990-х годов AT&T подала в суд на UCB за нарушения лицензий, " +"связанных с BSD. UCB обнаружила, что AT&T включила в свои продукты множество " +"улучшений, сделанных в BSD, без указания авторства или оплаты, и последовало " +"длительное судебное разбирательство, в основном между AT&T и UCB. В этот " +"период некоторые программисты UCB начали проект по переписыванию любого кода " +"AT&T, связанного с BSD. В результате этого проекта появилась система под " +"названием BSD 4.4-lite (lite, потому что это была не полная система; в ней " +"отсутствовали 6 ключевых файлов AT&T)." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:109 +msgid "" +"A lengthy series of articles published slightly later in Dr. Dobbs magazine " +"described a BSD-derived 386 PC version of Unix, with BSD-licensed " +"replacement files for the 6 missing 4.4 lite files. This system, named " +"386BSD, was due to ex-UCB programmer William Jolitz. It became the original " +"basis of all the PC BSDs in use today." +msgstr "" +"Длинная серия статей, опубликованных чуть позже в журнале Dr. Dobbs, " +"описывала версию Unix для ПК на базе 386, производную от BSD, с файлами-" +"заменителями под лицензией BSD для 6 отсутствующих файлов из 4.4 lite. Эта " +"система, названная 386BSD, была создана бывшим программистом из UCB Уильямом " +"Джолитцем. Она стала первоосновой всех современных PC BSD." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:112 +msgid "" +"In the mid 1990s, Novell purchased AT&T's Unix rights and a (then secret) " +"agreement was reached to terminate the lawsuit. UCB soon terminated its " +"support for BSD." +msgstr "" +"В середине 1990-х годов Novell приобрела права на Unix у AT&T, и было " +"достигнуто (тогда секретное) соглашение о прекращении судебного " +"разбирательства. Вскоре UCB прекратила поддержку BSD." + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:114 +#, no-wrap +msgid "The Current State of FreeBSD and BSD Licenses" +msgstr "Текущее состояние FreeBSD и лицензий BSD" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:120 +msgid "" +"The so-called http://www.opensource.org/licenses/bsd-license.php[new BSD " +"license] applied to FreeBSD within the last few years is effectively a " +"statement that you can do anything with the program or its source, but you " +"do not have any warranty and none of the authors has any liability " +"(basically, you cannot sue anybody). This new BSD license is intended to " +"encourage product commercialization. Any BSD code can be sold or included " +"in proprietary products without any restrictions on the availability of your " +"code or your future behavior." +msgstr "" +"Так называемая http://www.opensource.org/licenses/bsd-license.php[новая " +"лицензия BSD], применяемая к FreeBSD в последние годы, по сути, означает, " +"что вы можете делать что угодно с программой или её исходным кодом, но не " +"получаете никаких гарантий, и ни один из авторов не несёт ответственности (" +"по сути, вы не можете ни на кого подать в суд). Эта новая лицензия BSD " +"призвана стимулировать коммерциализацию продукта. Любой код BSD может быть " +"продан или включён в проприетарные продукты без каких-либо ограничений на " +"доступность вашего кода или ваше будущее поведение." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:123 +msgid "" +"Do not confuse the new BSD license with \"public domain\". While an item in " +"the public domain is also free for all to use, it has no owner." +msgstr "" +"Не путайте новую лицензию BSD с \"общественным достоянием\" (лицензия Public " +"Domain). Хотя объект в общественном достоянии также свободен для " +"использования всеми, у него нет владельца." + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:125 +#, no-wrap +msgid "The origins of the GPL" +msgstr "Истоки GPL" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:129 +msgid "" +"While the future of Unix had been so muddled in the late 1980s and early " +"1990s, the GPL, another development with important licensing considerations, " +"reached fruition." +msgstr "" +"Пока будущее Unix оставалось неясным в конце 1980-х и начале 1990-х годов, " +"GPL, ещё одна разработка с важными лицензионными аспектами, достигла " +"зрелости." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:138 +msgid "" +"Richard Stallman, the developer of Emacs, was a member of the staff at MIT " +"when his lab switched from home-grown to proprietary systems. Stallman " +"became upset when he found that he could not legally add minor improvements " +"to the system. (Many of Stallman's co-workers had left to form two " +"companies based on software developed at MIT and licensed by MIT; there " +"appears to have been disagreement over access to the source code for this " +"software). Stallman devised an alternative to the commercial software " +"license and called it the GPL, or \"GNU Public License\". He also started a " +"non-profit foundation, the http://www.fsf.org[Free Software Foundation] " +"(FSF), which intended to develop an entire operating system, including all " +"associated software, that would not be subject to proprietary licensing. " +"This system was called GNU, for \"GNU is Not Unix\"." +msgstr "" +"Ричард Столлман, разработчик Emacs, был сотрудником MIT, когда его " +"лаборатория перешла с собственных разработок на проприетарные системы. " +"Столлман был расстроен, обнаружив, что не может законно вносить даже " +"незначительные улучшения в систему. (Многие его коллеги ушли, чтобы основать " +"две компании, основанные на программном обеспечении, разработанном в MIT и " +"лицензированном MIT; по-видимому, возникли разногласия по поводу доступа к " +"исходному коду этого программного обеспечения). Столлман разработал " +"альтернативу коммерческой лицензии на программное обеспечение и назвал её " +"GPL, или «Универсальная общественная лицензия GNU» (GNU Public License). Он " +"также основал некоммерческую организацию — http://www.fsf.org[Фонд " +"свободного программного обеспечения] (FSF), целью которой была разработка " +"целой операционной системы, включая все сопутствующие программы, которая не " +"подчинялась бы проприетарным лицензиям. Эта система была названа GNU, что " +"означает «GNU is Not Unix» (GNU — не Unix)." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:143 +msgid "" +"The GPL was designed to be the antithesis of the standard proprietary " +"license. To this end, any modifications that were made to a GPL program " +"were required to be given back to the GPL community (by requiring that the " +"source of the program be available to the user) and any program that used or " +"linked to GPL code was required to be under the GPL. The GPL was intended " +"to keep software from becoming proprietary. As the last paragraph of the " +"GPL states:" +msgstr "" +"GPL была создана как антитеза стандартной проприетарной лицензии. Для этого " +"любые изменения, внесённые в программу под GPL, должны были возвращаться " +"сообществу GPL (путем требования, чтобы исходный код программы был доступен " +"пользователю), и любая программа, использующая или связывающаяся с кодом под " +"GPL, должна была распространяться под GPL. Лицензия GPL предназначена для " +"предотвращения перехода программного обеспечения в проприетарное состояние. " +"Как сказано в последнем абзаце GPL:" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:145 +msgid "" +"\"This General Public License does not permit incorporating your program " +"into proprietary programs.\"<>" +msgstr "" +"\"This General Public License does not permit incorporating your program " +"into proprietary programs (Стандартная Общественная Лицензия GNU не " +"разрешает включать вашу программу в программы, использование которых " +"ограничено их правообладателями).\"<>" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:147 +msgid "" +"The http://www.opensource.org/licenses/gpl-license.php[GPL] is a complex " +"license so here are some rules of thumb when using the GPL:" +msgstr "" +"http://www.opensource.org/licenses/gpl-license.php[GPL] — это сложная " +"лицензия, поэтому вот несколько эмпирических правил при использовании GPL:" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:149 +msgid "" +"you can charge as much as you want for distributing, supporting, or " +"documenting the software, but you cannot sell the software itself." +msgstr "" +"вы можете брать сколько угодно за распространение, поддержку или " +"документацию к программному обеспечению, но вы не можете продавать само " +"программное обеспечение." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:150 +msgid "" +"the rule-of-thumb states that if GPL source is required for a program to " +"compile, the program must be under the GPL. Linking statically to a GPL " +"library requires a program to be under the GPL." +msgstr "" +"эмпирическое правило гласит, что если для компиляции программы требуется " +"исходный код под GPL, то программа должна распространяться под лицензией " +"GPL. Статическая линковка с библиотекой под GPL требует, чтобы программа " +"также была под GPL." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:151 +msgid "" +"the GPL requires that any patents associated with GPLed software must be " +"licensed for everyone's free use." +msgstr "" +"В соответствии с GPL, любые патенты, связанные с ПО под лицензией GPL, " +"должны быть лицензированы для свободного использования всеми." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:152 +msgid "" +"simply aggregating software together, as when multiple programs are put on " +"one disk, does not count as including GPLed programs in non-GPLed programs." +msgstr "" +"простое объединение программного обеспечения, например, размещение " +"нескольких программ на одном диске, не считается включением программ под " +"лицензией GPL в программы, не подпадающие под GPL." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:153 +msgid "" +"output of a program does not count as a derivative work. This enables the " +"gcc compiler to be used in commercial environments without legal problems." +msgstr "" +"вывод программы не считается производным произведением. Это позволяет " +"использовать компилятор gcc в коммерческих средах без юридических проблем." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:154 +msgid "" +"since the Linux kernel is under the GPL, any code statically linked with the " +"Linux kernel must be GPLed. This requirement can be circumvented by " +"dynamically linking loadable kernel modules. This permits companies to " +"distribute binary drivers, but often has the disadvantage that they will " +"only work for particular versions of the Linux kernel." +msgstr "" +"поскольку ядро Linux распространяется под лицензией GPL, любой код, " +"статически связанный с ядром Linux, должен быть лицензирован под GPL. Это " +"требование можно обойти, используя динамическую загрузку модулей ядра. Это " +"позволяет компаниям распространять двоичные драйверы, но часто имеет " +"недостаток в том, что они будут работать только с определёнными версиями " +"ядра Linux." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:157 +msgid "" +"Due in part to its complexity, in many parts of the world today the " +"legalities of the GPL are being ignored in regard to Linux and related " +"software. The long-term ramifications of this are unclear." +msgstr "" +"Из-за своей сложности во многих частях мира сегодня юридические аспекты GPL " +"игнорируются в отношении Linux и связанного с ним программного обеспечения. " +"Долгосрочные последствия этого неясны." + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:159 +#, no-wrap +msgid "The origins of Linux and the LGPL" +msgstr "Истоки Linux и LGPL" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:164 +msgid "" +"While the commercial Unix wars raged, the Linux kernel was developed as a PC " +"Unix clone. Linus Torvalds credits the existence of the GNU C compiler and " +"the associated GNU tools for the existence of Linux. He put the Linux " +"kernel under the GPL." +msgstr "" +"Пока бушевали коммерческие войны Unix, ядро Linux разрабатывалось как клон " +"Unix для ПК. Линус Торвальдс признает, что существование компилятора GNU C и " +"связанных с ним инструментов GNU стало основой для появления Linux. Он " +"выпустил ядро Linux под лицензией GPL." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:173 +msgid "" +"Remember that the GPL requires anything that statically links to any code " +"under the GPL also be placed under the GPL. The source for this code must " +"thus be made available to the user of the program. Dynamic linking, " +"however, is not considered a violation of the GPL. Pressure to put " +"proprietary applications on Linux became overwhelming. Such applications " +"often must link with system libraries. This resulted in a modified version " +"of the GPL called the http://www.opensource.org/licenses/lgpl-license." +"php[LGPL] (\"Library\", since renamed to \"Lesser\", GPL). The LGPL allows " +"proprietary code to be linked to the GNU C library, glibc. You do not have " +"to release the source code which has been dynamically linked to an LGPLed " +"library." +msgstr "" +"Помните, что лицензия GPL требует, чтобы любой код, статически связанный с " +"кодом под GPL, также распространялся под GPL. Исходный код такой программы " +"должен быть предоставлен пользователю. Однако динамическая линковка не " +"считается нарушением GPL. Давление с целью размещения проприетарных " +"приложений в Linux стало слишком сильным. Такие приложения часто должны быть " +"связаны с системными библиотеками. Это привело к созданию модифицированной " +"версии GPL под названием http://www.opensource.org/licenses/lgpl-license." +"php[LGPL] (\"Library\", позже переименована в \"Lesser\" GPL). LGPL " +"разрешает проприетарному коду быть связанным с библиотекой GNU C, glibc. Вам " +"не нужно раскрывать исходный код, который был динамически связан с " +"библиотекой под LGPL." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:177 +msgid "" +"If you statically link an application with glibc, such as is often required " +"in embedded systems, you cannot keep your application proprietary, that is, " +"the source must be released. Both the GPL and LGPL require any " +"modifications to the code directly under the license to be released." +msgstr "" +"Если вы статически связываете приложение с glibc, как это часто требуется во " +"встроенных системах, вы не можете сохранить ваше приложение проприетарным, " +"то есть исходный код должен быть опубликован. И GPL, и LGPL требуют, чтобы " +"любые изменения кода, подпадающего под лицензию, были выпущены." + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:179 +#, no-wrap +msgid "Open Source licenses and the Orphaning Problem" +msgstr "Открытые лицензии и проблема заброшенности проектов" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:184 +msgid "" +"One of the serious problems associated with proprietary software is known as " +"\"orphaning\". This occurs when a single business failure or change in a " +"product strategy causes a huge pyramid of dependent systems and companies to " +"fail for reasons beyond their control. Decades of experience have shown " +"that the momentary size or success of a software supplier is no guarantee " +"that their software will remain available, as current market conditions and " +"strategies can change rapidly." +msgstr "" +"Одной из серьёзных проблем, связанных с проприетарным программным " +"обеспечением, является так называемое \"осиротение\". Это происходит, когда " +"единичный сбой в бизнесе или изменение стратегии продукта приводит к краху " +"огромной пирамиды зависимых систем и компаний по причинам, не зависящим от " +"них. Десятилетия опыта показали, что текущий размер или успех поставщика " +"программного обеспечения не гарантирует, что их ПО останется доступным, " +"поскольку рыночные условия и стратегии могут быстро меняться." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:186 +msgid "" +"The GPL attempts to prevent orphaning by severing the link to proprietary " +"intellectual property." +msgstr "" +"Лицензия GPL пытается предотвратить потерю поддержки, разрывая связь с " +"проприетарной интеллектуальной собственностью." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:191 +msgid "" +"A BSD license gives a small company the equivalent of software-in-escrow " +"without any legal complications or costs. If a BSD-licensed program becomes " +"orphaned, a company can simply take over, in a proprietary manner, the " +"program on which they are dependent. An even better situation occurs when a " +"BSD code-base is maintained by a small informal consortium, since the " +"development process is not dependent on the survival of a single company or " +"product line. The survivability of the development team when they are " +"mentally in the zone is much more important than simple physical " +"availability of the source code." +msgstr "" +"Лицензия BSD предоставляет небольшой компании эквивалент программного " +"обеспечения на условном депонировании без каких-либо юридических сложностей " +"или затрат. Если программа под лицензией BSD становится заброшенной, " +"компания может просто взять её под свой контроль в проприетарном режиме, " +"если она от неё зависит. Ещё лучше, когда кодовая база BSD поддерживается " +"небольшим неформальным консорциумом, поскольку процесс разработки не зависит " +"от выживания отдельной компании или линейки продуктов. Выживаемость команды " +"разработчиков, когда они находятся в режиме продуктивной работы, гораздо " +"важнее простой физической доступности исходного кода." + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:193 +#, no-wrap +msgid "What a license cannot do" +msgstr "Что лицензия не может сделать" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:197 +msgid "" +"No license can guarantee future software availability. Although a copyright " +"holder can traditionally change the terms of a copyright at anytime, the " +"presumption in the BSD community is that such an attempt simply causes the " +"source to fork." +msgstr "" +"Ни одна лицензия не может гарантировать доступность программного обеспечения " +"в будущем. Хотя владелец авторских прав традиционно может изменять условия " +"авторского права в любое время, в сообществе BSD принято считать, что такая " +"попытка просто приведёт к ответвлению исходного кода." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:203 +msgid "" +"The GPL explicitly disallows revoking the license. It has occurred, " +"however, that a company (Mattel) purchased a GPL copyright (cphack), revoked " +"the entire copyright, went to court, and prevailed <>. That is, they " +"legally revoked the entire distribution and all derivative works based on " +"the copyright. Whether this could happen with a larger and more dispersed " +"distribution is an open question; there is also some confusion regarding " +"whether the software was really under the GPL." +msgstr "" +"Лицензия GPL явно запрещает отзыв лицензии. Однако случалось, что компания " +"(Mattel) приобрела авторские права на продукт под GPL (cphack), отозвала все " +"авторские права, обратилась в суд и выиграла дело <>. То есть они " +"легально отозвали всё распространение и все производные работы, основанные " +"на этих авторских правах. Остаётся открытым вопрос, может ли подобное " +"произойти с более крупным и распределённым проектом; также есть некоторая " +"путаница относительно того, действительно ли данное ПО распространялось под " +"лицензией GPL." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:208 +msgid "" +"In another example, Red Hat purchased Cygnus, an engineering company that " +"had taken over development of the FSF compiler tools. Cygnus was able to do " +"so because they had developed a business model in which they sold support " +"for GNU software. This enabled them to employ some 50 engineers and drive " +"the direction of the programs by contributing the preponderance of " +"modifications. As Donald Rosenberg states \"projects using licenses like " +"the GPL...live under constant threat of having someone take over the project " +"by producing a better version of the code and doing it faster than the " +"original owners.\" <>" +msgstr "" +"В другом примере, Red Hat приобрела Cygnus, инженерную компанию, которая " +"взяла на себя разработку инструментов компилятора FSF. Cygnus смогла это " +"сделать, потому что разработала бизнес-модель, в которой они продавали " +"поддержку для программного обеспечения GNU. Это позволило им нанять около 50 " +"инженеров и направлять развитие программ, внося основную часть изменений в " +"код программы. Как отмечает Дональд Розенберг: «проекты, использующие " +"лицензии вроде GPL... живут под постоянной угрозой, что кто-то перехватит " +"проект, создав лучшую версию кода и сделав это быстрее, чем оригинальные " +"владельцы.» <>" + +#. type: Title == +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:210 +#, no-wrap +msgid "GPL Advantages and Disadvantages" +msgstr "Преимущества и недостатки GPL" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:214 +msgid "" +"A common reason to use the GPL is when modifying or extending the gcc " +"compiler. This is particularly apt when working with one-off specialty CPUs " +"in environments where all software costs are likely to be considered " +"overhead, with minimal expectations that others will use the resulting " +"compiler." +msgstr "" +"Распространённая причина использовать GPL — это модификация или расширение " +"компилятора gcc. Это особенно актуально при работе с уникальными " +"специализированными процессорами в средах, где все затраты на программное " +"обеспечение, скорее всего, считаются накладными расходами, с минимальными " +"ожиданиями того, что другие будут использовать получившийся компилятор." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:217 +msgid "" +"The GPL is also attractive to small companies selling CDs in an environment " +"where \"buy-low, sell-high\" may still give the end-user a very inexpensive " +"product. It is also attractive to companies that expect to survive by " +"providing various forms of technical support, including documentation, for " +"the GPLed intellectual property world." +msgstr "" +"Лицензия GPL также привлекательна для небольших компаний, продающих CD в " +"условиях, где принцип «купи-дешево, продай-дорого» может по-прежнему " +"обеспечить конечному пользователю очень недорогой продукт. Она также " +"привлекательна для компаний, которые рассчитывают выжить за счет " +"предоставления различных форм технической поддержки, включая документацию, " +"для мира интеллектуальной собственности под GPL." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:220 +msgid "" +"A less publicized and unintended use of the GPL is that it is very favorable " +"to large companies that want to undercut software companies. In other " +"words, the GPL is well suited for use as a marketing weapon, potentially " +"reducing overall economic benefit and contributing to monopolistic behavior." +msgstr "" +"Менее известное и непреднамеренное использование GPL заключается в том, что " +"она очень выгодна крупным компаниям, которые хотят подорвать позиции " +"компаний-разработчиков программного обеспечения. Другими словами, GPL хорошо " +"подходит для использования в качестве маркетингового оружия, потенциально " +"снижая общую экономическую выгоду и способствуя монополистическому поведению." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:223 +msgid "" +"The GPL can present a real problem for those wishing to commercialize and " +"profit from software. For example, the GPL adds to the difficulty a " +"graduate student will have in directly forming a company to commercialize " +"his research results, or the difficulty a student will have in joining a " +"company on the assumption that a promising research project will be " +"commercialized." +msgstr "" +"Лицензия GPL может представлять реальную проблему для тех, кто хочет " +"коммерциализировать программное обеспечение и получать от него прибыль. " +"Например, GPL усложняет задачу выпускника, который хочет создать компанию " +"для коммерциализации результатов своих исследований, или затрудняет ситуацию " +"для студента, который планирует присоединиться к компании в расчете на " +"коммерциализацию перспективного исследовательского проекта." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:228 +msgid "" +"For those who must work with statically-linked implementations of multiple " +"software standards, the GPL is often a poor license, because it precludes " +"using proprietary implementations of the standards. The GPL thus minimizes " +"the number of programs that can be built using a GPLed standard. The GPL " +"was intended to not provide a mechanism to develop a standard on which one " +"engineers proprietary products. (This does not apply to Linux applications " +"because they do not statically link, rather they use a trap-based API.)" +msgstr "" +"Для тех, кто должен работать со статически связанными реализациями множества " +"программных стандартов, GPL часто является неудобной лицензией, поскольку " +"она исключает использование проприетарных реализаций этих стандартов. Таким " +"образом, GPL минимизирует количество программ, которые могут быть созданы с " +"использованием стандарта под лицензией GPL. Лицензия GPL задумывалась так, " +"чтобы не предоставлять механизм для разработки стандарта, на основе которого " +"создаются проприетарные продукты. (Это не относится к приложениям для Linux, " +"поскольку они не используют статическую линковку, а вместо этого применяют " +"API на основе трапов/ловушек.)" + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:232 +msgid "" +"The GPL attempts to make programmers contribute to an evolving suite of " +"programs, then to compete in the distribution and support of this suite. " +"This situation is unrealistic for many required core system standards, which " +"may be applied in widely varying environments which require commercial " +"customization or integration with legacy standards under existing (non-GPL) " +"licenses. Real-time systems are often statically linked, so the GPL and " +"LGPL are definitely considered potential problems by many embedded systems " +"companies." +msgstr "" +"Лицензия GPL пытается заставить программистов вносить вклад в развивающийся " +"набор программ, а затем конкурировать в распространении и поддержке этого " +"набора. Такая ситуация нереалистична для многих необходимых стандартов ядра " +"системы, которые могут применяться в самых разных средах, требующих " +"коммерческой настройки или интеграции с унаследованными стандартами под " +"существующими (не-GPL) лицензиями. Системы реального времени часто " +"статически связываются, поэтому GPL и LGPL определенно рассматриваются " +"многими компаниями, работающими с встраиваемыми системами, как потенциальные " +"проблемы." + +#. type: Plain text +#: documentation/content/en/articles/bsdl-gpl/_index.adoc:235 +msgid "" +"The GPL is an attempt to keep efforts, regardless of demand, at the research " *** 414 LINES SKIPPED *** From nobody Sat Sep 20 11:26:35 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cTRsR5DDmz68gqm for ; Sat, 20 Sep 2025 11:26: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cTRsR4qpSz3G4y; Sat, 20 Sep 2025 11:26:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758367595; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WtsFI6ybkPR2SOsnXuMd7pQHJtCWPRxvWQjjMhM46HY=; b=RmIu0/Rgu4Zjys1Uhodga+ymKoa5ChK3xBmpgSXJ23Lc1rXoWHohsoo55peBaS/GY0lZcz J/YZu2aPe1EgwtPMTcqiLMU+X8/apSI1DwJLo/ZiySXf4CdCSSqS8yQ7siSDSDvzQ+1PRz 13maTL7rOsbf2kGrTBOuhjMATbxlCPhEIAimcdn7CwXUKS276QNGes8uQovqmn+Kb8e6xn PswWKjKJmmRYm9WyLtnu2Beg+LcWzuSzobD/earzVJzscSXUX7isXnSMn2h2r8hEgbSj3F 0oaoC37BcFCLOQpwQ4h9tZBEWBzN1naJ+EfsIEY1sf//kM2jQn4r8q2IO8zp0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758367595; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WtsFI6ybkPR2SOsnXuMd7pQHJtCWPRxvWQjjMhM46HY=; b=b2yRbo24YofChc7C/mXPwbkJHgHkPxadame8VdHB24iuQhHUiHsiysku34DIcyiaNJ75p2 8mqOxjIPLFwe64Qi3lzMEuIVoW2bi7UI3zGRNAtAG4KEeq8siqGqtXsXB8CBdaWZGDeavO I28UO9+8ciGue4f+EVWtaSyo2Km0Au9EDHyxd4m1CPrnX1BmglFSSHbh1G724tOrhRwtRn xnjrKNr2aiSrluDHTvsEROikcPJ5ScyXZ8nbl130i3odSQ7UsnSp82wHopZ13yczpHSYuV 5wbg+Dr4Wg4k4X7I1KdLhkSwZthgDNh3Ha+7rxtWyhOa4+ernfWZFXh/KEk/Rg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758367595; a=rsa-sha256; cv=none; b=VBqvinFuZa7cFzUPbUndf3xDnft9AlhXGptRuoYKgbbXk4h6EOnrN73J8f/C5pA/HNRyU4 y9fCbaVZ7WGlIhB3AysatLwZYJCTAHf92Ynjr5dvwh8RMJFZuLQZs0M14ZF7NvpXXDqFdr m9gBcRHVjGU4bsW6bZlIjA/otMKFd8svJ6Yd45DDfiEkP7ifa8EyUGFf/+GduF9ZDwnraY k3SLRrGJ2H07pA9GRQfnkg4KS/rVWyl/W4X3DR92wh/UAVd0uKRaOvUjMis4O+RB+Tfo96 sXJAXUw2QKNZnk+9PDvpsJc5TJ7YBtJIMKblIIGcEJze5HDVoEIFzIpT/l58aQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cTRsR476Vz9sm; Sat, 20 Sep 2025 11:26:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58KBQZwT021322; Sat, 20 Sep 2025 11:26:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58KBQZ9N021319; Sat, 20 Sep 2025 11:26:35 GMT (envelope-from git) Date: Sat, 20 Sep 2025 11:26:35 GMT Message-Id: <202509201126.58KBQZ9N021319@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: e845221809 - main - update translation of books/fdp-primer to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e845221809bc347c37505da6f1bd936f3009ba4f Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=e845221809bc347c37505da6f1bd936f3009ba4f commit e845221809bc347c37505da6f1bd936f3009ba4f Author: Vladlen Popolitov AuthorDate: 2025-09-20 11:26:15 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-20 11:26:15 +0000 update translation of books/fdp-primer to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D52051 --- .../content/ru/books/fdp-primer/_index.adoc | 59 + .../content/ru/books/fdp-primer/_index.po | 68 + .../fdp-primer/asciidoctor-primer/_index.adoc | 335 +++++ .../books/fdp-primer/asciidoctor-primer/_index.po | 795 ++++++++++ .../content/ru/books/fdp-primer/book.adoc | 102 ++ documentation/content/ru/books/fdp-primer/book.po | 68 + .../ru/books/fdp-primer/doc-build/_index.adoc | 662 +++++++++ .../ru/books/fdp-primer/doc-build/_index.po | 1562 ++++++++++++++++++++ .../ru/books/fdp-primer/editor-config/_index.adoc | 323 ++++ .../ru/books/fdp-primer/editor-config/_index.po | 697 +++++++++ .../ru/books/fdp-primer/examples/_index.adoc | 133 ++ .../content/ru/books/fdp-primer/examples/_index.po | 261 ++++ .../ru/books/fdp-primer/manual-pages/_index.adoc | 531 +++++++ .../ru/books/fdp-primer/manual-pages/_index.po | 1454 ++++++++++++++++++ .../ru/books/fdp-primer/overview/_index.adoc | 321 ++++ .../content/ru/books/fdp-primer/overview/_index.po | 721 +++++++++ .../books/fdp-primer/po-translations/_index.adoc | 365 +++++ .../ru/books/fdp-primer/po-translations/_index.po | 1041 +++++++++++++ .../ru/books/fdp-primer/preface/_index.adoc | 155 ++ .../content/ru/books/fdp-primer/preface/_index.po | 319 ++++ .../ru/books/fdp-primer/rosetta/_index.adoc | 321 ++++ .../content/ru/books/fdp-primer/rosetta/_index.po | 793 ++++++++++ .../ru/books/fdp-primer/see-also/_index.adoc | 77 + .../content/ru/books/fdp-primer/see-also/_index.po | 127 ++ .../ru/books/fdp-primer/structure/_index.adoc | 386 +++++ .../ru/books/fdp-primer/structure/_index.po | 1340 +++++++++++++++++ .../content/ru/books/fdp-primer/tools/_index.adoc | 70 + .../content/ru/books/fdp-primer/tools/_index.po | 113 ++ .../ru/books/fdp-primer/trademarks/_index.adoc | 95 ++ .../ru/books/fdp-primer/trademarks/_index.po | 197 +++ .../ru/books/fdp-primer/translations/_index.adoc | 227 +++ .../ru/books/fdp-primer/translations/_index.po | 683 +++++++++ .../ru/books/fdp-primer/weblate/_index.adoc | 456 ++++++ .../content/ru/books/fdp-primer/weblate/_index.po | 1259 ++++++++++++++++ .../ru/books/fdp-primer/working-copy/_index.adoc | 140 ++ .../ru/books/fdp-primer/working-copy/_index.po | 336 +++++ .../ru/books/fdp-primer/writing-style/_index.adoc | 326 ++++ .../ru/books/fdp-primer/writing-style/_index.po | 1035 +++++++++++++ 38 files changed, 17953 insertions(+) diff --git a/documentation/content/ru/books/fdp-primer/_index.adoc b/documentation/content/ru/books/fdp-primer/_index.adoc new file mode 100644 index 0000000000..945a1bf839 --- /dev/null +++ b/documentation/content/ru/books/fdp-primer/_index.adoc @@ -0,0 +1,59 @@ +--- +add_single_page_link: true +authors: + - + author: 'The FreeBSD Documentation Project' +bookOrder: 50 +copyright: '1998-2023 The FreeBSD Documentation Project' +description: 'Все, что вам нужно знать, чтобы начать участвовать в проекте документации FreeBSD' +next: books/fdp-primer/preface +params: + path: /books/fdp-primer/ +showBookMenu: true +tags: ["FDP", "documentation", "FreeBSD", "Index"] +title: 'Проект документации FreeBSD: введение для новых участников' +trademarks: ["freebsd", "general", "git"] +weight: 10 +--- + += Проект документации FreeBSD: введение для новых участников +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/fdp-primer/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[.abstract-title] +Аннотация + +Спасибо, что стали частью проекта документации FreeBSD! Ваш вклад чрезвычайно важен, и мы очень ценим его. + +Это руководство содержит информацию, необходимую для начала работы с Проектом документации FreeBSD (FDP), включая инструменты, программное обеспечение и философию, лежащую в основе Проекта документации. + +Это работа в процессе. Исправления и дополнения всегда приветствуются. + +''' diff --git a/documentation/content/ru/books/fdp-primer/_index.po b/documentation/content/ru/books/fdp-primer/_index.po new file mode 100644 index 0000000000..d03b601e86 --- /dev/null +++ b/documentation/content/ru/books/fdp-primer/_index.po @@ -0,0 +1,68 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-20 14:02+0300\n" +"PO-Revision-Date: 2025-07-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/fdp-primer/_index.adoc:1 +#, no-wrap +msgid "Everything you need to know in order to start contributing to the FreeBSD Documentation Project" +msgstr "Все, что вам нужно знать, чтобы начать участвовать в проекте документации FreeBSD" + +#. type: Title = +#: documentation/content/en/books/fdp-primer/_index.adoc:1 +#: documentation/content/en/books/fdp-primer/_index.adoc:18 +#, no-wrap +msgid "FreeBSD Documentation Project Primer for New Contributors" +msgstr "Проект документации FreeBSD: введение для новых участников" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/_index.adoc:51 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/_index.adoc:54 +msgid "" +"Thank you for becoming a part of the FreeBSD Documentation Project. Your " +"contribution is extremely valuable, and we appreciate it." +msgstr "" +"Спасибо, что стали частью проекта документации FreeBSD! Ваш вклад " +"чрезвычайно важен, и мы очень ценим его." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/_index.adoc:56 +msgid "" +"This primer covers details needed to start contributing to the FreeBSD " +"Documentation Project, or FDP, including tools, software, and the philosophy " +"behind the Documentation Project." +msgstr "" +"Это руководство содержит информацию, необходимую для начала работы с " +"Проектом документации FreeBSD (FDP), включая инструменты, программное " +"обеспечение и философию, лежащую в основе Проекта документации." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/_index.adoc:59 +msgid "" +"This is a work in progress. Corrections and additions are always welcome." +msgstr "Это работа в процессе. Исправления и дополнения всегда приветствуются." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/_index.adoc:60 +msgid "'''" +msgstr "'''" diff --git a/documentation/content/ru/books/fdp-primer/asciidoctor-primer/_index.adoc b/documentation/content/ru/books/fdp-primer/asciidoctor-primer/_index.adoc new file mode 100644 index 0000000000..2b84d3eb2c --- /dev/null +++ b/documentation/content/ru/books/fdp-primer/asciidoctor-primer/_index.adoc @@ -0,0 +1,335 @@ +--- +description: 'Краткое введение в Asciidoctor' +next: books/fdp-primer/rosetta +params: + path: /books/fdp-primer/asciidoctor-primer/ +prev: books/fdp-primer/doc-build +showBookMenu: true +tags: ["AsciiDoc", "Asciidoctor", "Primer", "Introduction", "Guide"] +title: 'Глава 6. Введение в Asciidoctor' +weight: 7 +--- + +[[asciidoctor-primer]] += Основы Asciidoctor +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 6 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/fdp-primer/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../../images/{images-path} +endif::[] +ifndef::book[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +toc::[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +toc::[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +Большая часть документации FDP написана с использованием AsciiDoc. В этой главе объясняется, что это значит, как читать и понимать исходный код документации, а также используемые методы. Для получения полного справочника по возможностям Asciidoctor обратитесь к link:https://docs.asciidoctor.org/home/[документации Asciidoctor]. Некоторые примеры, используемые в этой главе, взяты из link:https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference[краткого справочника по синтаксису AsciiDoc]. + +[[asciidoctor-primer-overview]] +== Обзор + +В первые дни существования компьютеров электронный текст был простым. Существовало несколько наборов символов, таких как ASCII или EBCDIC, но на этом всё и заканчивалось. Текст был текстом, и вы видели именно то, что получали. Никаких изысков, никакого форматирования, никакого интеллекта. + +Неизбежно, этого оказалось недостаточно. Когда текст представлен в формате, пригодном для машинной обработки, ожидается, что машины смогут использовать и обрабатывать его интеллектуально. Авторы хотят указывать, что определённые фразы должны быть выделены, добавлены в глоссарий или преобразованы в гиперссылки. Имена файлов могут отображаться моноширинным шрифтом при просмотре на экране, но курсивом при печати или в любом другом из множества вариантов представления. + +Однажды надеялись, что искусственный интеллект (ИИ) сделает это легко. Компьютер прочитает документ и автоматически определит ключевые фразы, имена файлов, текст, который читатель должен ввести, примеры и многое другое. К сожалению, в реальной жизни всё оказалось не так просто, и компьютерам до сих пор требуется помощь, прежде чем они смогут осмысленно обрабатывать текст. + +Точнее говоря, им нужна помощь в определении, что есть что. Рассмотрим этот текст: + +Для удаления [.filename]#/tmp/foo# используйте man:rm[1]. + +[source, shell] +---- +% rm /tmp/foo +---- + +Читателю легко понять, какие части являются именами файлов, какие — командами для ввода, какие — ссылками на страницы руководства и так далее. Однако компьютер, обрабатывающий документ, не может надежно определить это. Для этого нам нужна разметка. + +Предыдущий пример фактически представлен в этом документе следующим образом: + +.... +To remove */tmp/foo*, use man:rm[1]. + +[source,shell] +---- +% rm /tmp/foo +---- +.... + +[[asciidoctor-headings]] +== Заголовки + +Asciidoctor поддерживает шесть уровней заголовков. Если тип документа `article`, можно использовать только один заголовок уровня 0 (`=`). Если тип документа `book`, то может быть несколько заголовков уровня 0 (`=`). + +Вот пример заголовков в `article`. + +.... += Название документа (Уровень 0) + +== Уровень 1 Название Раздела + +=== Уровень 2 Раздел Заголовок + +==== Уровень 3 Раздел Заголовок + +===== Уровень 4 Раздел Заголовок + +====== Level 5 Section Title + +== Другой заголовок раздела первого уровня +.... + +[WARNING] +==== +Уровни разделов нельзя пропускать при вложении разделов. + +Следующий синтаксис неверен. + +.... += Заголовок документа + +== Уровень 1 + +==== Уровень 3 +.... +==== + +[[asciidoctor-paragraphs]] +== Абзацы + +Абзацы не требуют специальной разметки в AsciiDoc. Абзац определяется одной или несколькими последовательными строками текста. Чтобы создать новый абзац, оставьте одну пустую строку. + +Например, это заголовок с двумя абзацами. + +.... += Это заголовок + +Это первый абзац. Это тоже первый абзац. + +А это второй абзац. +.... + +[[asciidoctor-lists]] +== Списки + +Asciidoctor поддерживает несколько типов списков, наиболее распространённые — `ordered` и `unordered`. Для получения дополнительной информации о списках см. link:https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/#lists[AsciiDoc Syntax Quick Reference]. + +[[asciidoctor-ordered-lists]] +=== Упорядоченные списки + +Для создания нумерованного списка используйте символ `.`. + +Например, это нумерованный список. + +.... +. Первый пункт +. Второй пункт +.. Подпункт второго пункта +. Третий пункт +.... + +И это будет отображено как. + +. Первый пункт +. Второй пункт +.. Подпункт второго пункта +. Третий пункт + +[[asciidoctor-unordered-lists]] +=== Неупорядоченные списки + +Для создания маркированного списка используйте символ `*`. + +Например, это ненумерованный список. + +.... +* Первый пункт +* Второй пункт +** Подпункт второго пункта +* Третий пункт +.... + +И это будет отображено как. + +* Первый пункт +* Второй пункт +** Подпункт второго пункта +* Третий пункт + +[[asciidoctor-links]] +== Links + +[[asciidoctor-links-external]] +=== Внешние ссылки + +Чтобы указать на другой веб-сайт, следует использовать макрос `link`. + +.... +link:https://www.FreeBSD.org[FreeBSD] +.... + +[NOTE] +==== +Как описано в документации Asciidoctor, макрос `link` не требуется, когда цель начинается со схемы URL, такой как `https`. Тем не менее, рекомендуется всё равно использовать его, чтобы гарантировать корректное отображение ссылки в Asciidoctor, особенно в языках с нелатинской письменностью, таких как японский. +==== + +[[asciidoctor-links-internal]] +=== Ссылки на другую книгу или статью + +Для указания на другую книгу или статью следует использовать переменные Asciidoctor. Например, если мы находимся в статье `cups` и хотим сослаться на `ipsec-must`, необходимо выполнить следующие шаги. + +. Включите файл [.filename]#urls.adoc# из папки [.filename]#~/doc/shared#. ++ +.... +\include::shared/{lang}/urls.adoc[] +.... ++ +. Затем создайте ссылку с использованием переменной Asciidoctor на статью `ipsec-must`. ++ +.... +extref:{ipsec-must}[Статья IPSec-Must] +.... ++ +И это будет отображено как. ++ +extref:{ipsec-must}[Статья IPSec-Must] + +[NOTE] +==== +Макрос `extref` определён как расширение. Он предназначен для корректного отображения ссылки в различных выходных форматах +==== + +=== Ссылки на тот же файл или на другой файл в той же книге + +Книги структурированы в разных каталогах для поддержания удобной организации. Чтобы создать ссылку из одного подкаталога книги в другой подкаталог той же книги, используйте макрос `crossref`: +.... +crossref:doc-build[documentation-makefile, Эта ссылка] +.... +И это будет отображено как + +crossref:doc-build[documentation-makefile, Эта ссылка] + +[NOTE] +==== +Макрос `crossref` определен как расширение. Он предназначен для формирования корректной ссылки в различных выходных форматах +==== + +[NOTE] +==== +Используйте макрос `crossref` для внутридокументных ссылок. Хотя указание имени текущего документа может быть неудобным, это гарантирует корректное отображение ссылки в различных выходных форматах +==== + +[WARNING] +==== +Не используйте макрос `xref` или его сокращение `<<` `>>`. Они не работают хорошо во всех выходных форматах. +==== + +[[asciidoctor-images-icons]] +== Изображения и иконки + +Изображения и иконки играют ключевую роль в улучшении общего пользовательского опыта. Эти визуальные элементы стратегически интегрированы для передачи информации, пояснения концепций и создания визуально привлекательного интерфейса. + +[[asciidoctor-images]] +=== Изображения + +Изображения помогают проиллюстрировать сложные концепции, делая их более понятными для пользователей. + +Первым шагом будет добавление изображения в директорию `images` по пути: + +* [.filename]#~/website/static/images/# для веб-сайта. +* [.filename]#~/documentation/static/images/# для документации. + +Например, чтобы добавить новое изображение в процесс установки FreeBSD, изображение сохраняется по пути [.filename]#~/documentation/static/images/books/handbook/bsdinstall/new-image3.png#. + +Следующим шагом будет настройка атрибутов Asciidoctor `images-path` и `imagesdir`. + +В качестве примера мы используем заголовок статьи extref:{freebsd-releng}[Подготовка релизов FreeBSD]. + +[source, asciidoc] +.... += Подготовка релизов FreeBSD +:doctype: article + +[...] + +:images-path: articles/freebsd-releng/ <1> + +ifdef::env-beastie[] ifdef::backend-html5[] + +[...] + +:imagesdir: ../../../images/{images-path} <2> endif::[] endif::[] + +[...] + +.... + +<.> Ссылается на путь внутри папки [.filename]#/static/images#. +<.> Делает ссылку на атрибут Asciidoctor. + +Как только изображение окажется в нужном пути и атрибуты Asciidoctor будут настроены в документе, можно использовать макрос `image`. + +Вот пример: + +.... +image::new-image3.png[New step in the FreeBSD install process] +.... + +[TIP] +==== +Для улучшения доступности обязательно добавлять описательный текст к каждому изображению. +==== + +[[asciidoctor-icons]] +=== Иконки + +Значки служат интуитивно понятными символами для быстрого распознавания и навигации. + +Первым шагом для использования иконок является добавление свойства `icons` в раздел свойств Asciidoctor в начале каждого документа. + +.... +:icons: font +.... + +После установки свойства иконки Asciidoctor можно добавить иконку, поддерживаемую link:https://fontawesome.com/v4/icons/[Font Awesome]. + +Это пример использования иконки `envelope`: + +.... +icon:envelope[link=mailto:test@example.com, title="contact"] +.... + +[TIP] +==== +Для повышения доступности веб-сайта атрибут `title` является обязательным. +==== + +[[asciidoctor-conclusion]] +== Заключение + +Это заключение введения в Asciidoctor. Из-за ограничений по объёму и сложности некоторые аспекты не были рассмотрены глубоко (или вообще не затронуты). diff --git a/documentation/content/ru/books/fdp-primer/asciidoctor-primer/_index.po b/documentation/content/ru/books/fdp-primer/asciidoctor-primer/_index.po new file mode 100644 index 0000000000..9c60728aa5 --- /dev/null +++ b/documentation/content/ru/books/fdp-primer/asciidoctor-primer/_index.po @@ -0,0 +1,795 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-20 14:02+0300\n" +"PO-Revision-Date: 2025-09-07 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:1 +#, no-wrap +msgid "A brief introduction to Asciidoctor" +msgstr "Краткое введение в Asciidoctor" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:1 +#, no-wrap +msgid "Chapter 6. Asciidoctor Primer" +msgstr "Глава 6. Введение в Asciidoctor" + +#. type: Title = +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:14 +#, no-wrap +msgid "Asciidoctor Primer" +msgstr "Основы Asciidoctor" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:55 +msgid "" +"Most FDP documentation is written with AsciiDoc. This chapter explains what " +"that means, how to read and understand the documentation source, and the " +"techniques used. To get a complete reference of the Asciidoctor " +"capabilities please consult the link:https://docs.asciidoctor.org/home/" +"[Asciidoctor documentation]. Some of the examples used in this chapter have " +"been taken from the link:https://docs.asciidoctor.org/asciidoc/latest/syntax-" +"quick-reference[AsciiDoc Syntax Quick Reference]." +msgstr "" +"Большая часть документации FDP написана с использованием AsciiDoc. В этой " +"главе объясняется, что это значит, как читать и понимать исходный код " +"документации, а также используемые методы. Для получения полного " +"справочника по возможностям Asciidoctor обратитесь к link:https://" +"docs.asciidoctor.org/home/[документации Asciidoctor]. Некоторые примеры, " +"используемые в этой главе, взяты из link:https://docs.asciidoctor.org/" +"asciidoc/latest/syntax-quick-reference[краткого справочника по синтаксису " +"AsciiDoc]." + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:57 +#, no-wrap +msgid "Overview" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:63 +msgid "" +"In the original days of computers, electronic text was simple. There were a " +"few character sets like ASCII or EBCDIC, but that was about it. Text was " +"text, and what you saw really was what you got. No frills, no formatting, " +"no intelligence." +msgstr "" +"В первые дни существования компьютеров электронный текст был простым. " +"Существовало несколько наборов символов, таких как ASCII или EBCDIC, но на " +"этом всё и заканчивалось. Текст был текстом, и вы видели именно то, что " +"получали. Никаких изысков, никакого форматирования, никакого интеллекта." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:68 +msgid "" +"Inevitably, this was not enough. When text is in a machine-usable format, " +"machines are expected to be able to use and manipulate it intelligently. " +"Authors want to indicate that certain phrases should be emphasized, or added " +"to a glossary, or made into hyperlinks. Filenames could be shown in a " +"“typewriter” style font for viewing on screen, but as “italics” when " +"printed, or any of a myriad of other options for presentation." +msgstr "" +"Неизбежно, этого оказалось недостаточно. Когда текст представлен в формате, " +"пригодном для машинной обработки, ожидается, что машины смогут использовать " +"и обрабатывать его интеллектуально. Авторы хотят указывать, что " +"определённые фразы должны быть выделены, добавлены в глоссарий или " +"преобразованы в гиперссылки. Имена файлов могут отображаться моноширинным " +"шрифтом при просмотре на экране, но курсивом при печати или в любом другом " +"из множества вариантов представления." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:72 +msgid "" +"It was once hoped that Artificial Intelligence (AI) would make this easy. " +"The computer would read the document and automatically identify key phrases, " +"filenames, text that the reader should type in, examples, and more. " +"Unfortunately, real life has not happened quite like that, and computers " +"still require assistance before they can meaningfully process text." +msgstr "" +"Однажды надеялись, что искусственный интеллект (ИИ) сделает это легко. " +"Компьютер прочитает документ и автоматически определит ключевые фразы, имена " +"файлов, текст, который читатель должен ввести, примеры и многое другое. К " +"сожалению, в реальной жизни всё оказалось не так просто, и компьютерам до " +"сих пор требуется помощь, прежде чем они смогут осмысленно обрабатывать " +"текст." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:75 +msgid "" +"More precisely, they need help identifying what is what. Consider this text:" +msgstr "" +"Точнее говоря, им нужна помощь в определении, что есть что. Рассмотрим этот " +"текст:" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:77 +msgid "To remove [.filename]#/tmp/foo#, use man:rm[1]." +msgstr "Для удаления [.filename]#/tmp/foo# используйте man:rm[1]." + +#. type: delimited block - 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:81 +#, no-wrap +msgid "% rm /tmp/foo\n" +msgstr "% rm /tmp/foo\n" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:86 +msgid "" +"It is easy for the reader to see which parts are filenames, which are " +"commands to be typed in, which parts are references to manual pages, and so " +"on. But the computer processing the document cannot reliably determine " +"this. For this we need markup." +msgstr "" +"Читателю легко понять, какие части являются именами файлов, какие — " +"командами для ввода, какие — ссылками на страницы руководства и так далее. " +"Однако компьютер, обрабатывающий документ, не может надежно определить это. " +"Для этого нам нужна разметка." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:88 +msgid "" +"The previous example is actually represented in this document like this:" +msgstr "" +"Предыдущий пример фактически представлен в этом документе следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:91 +#, no-wrap +msgid "To remove */tmp/foo*, use man:rm[1].\n" +msgstr "To remove */tmp/foo*, use man:rm[1].\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:96 +#, no-wrap +msgid "" +"[source,shell]\n" +"----\n" +"% rm /tmp/foo\n" +"----\n" +msgstr "" +"[source,shell]\n" +"----\n" +"% rm /tmp/foo\n" +"----\n" + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:99 +#, no-wrap +msgid "Headings" +msgstr "Заголовки" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:104 +msgid "" +"Asciidoctor supports six headings levels. If the document type is `article` " +"only one level 0 (`=`) can be used. If the document type is `book` then " +"there can be multiple level 0 (`=`) headings." +msgstr "" +"Asciidoctor поддерживает шесть уровней заголовков. Если тип документа " +"`article`, можно использовать только один заголовок уровня 0 (`=`). Если " +"тип документа `book`, то может быть несколько заголовков уровня 0 (`=`)." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:106 +msgid "This is an example of headings in an `article`." +msgstr "Вот пример заголовков в `article`." + +#. type: Title = +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:108 +#, no-wrap +msgid "Document Title (Level 0)" +msgstr "Название документа (Уровень 0)" + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:110 +#, no-wrap +msgid "Level 1 Section Title" +msgstr "Уровень 1 Название Раздела" + +#. type: Title === +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:112 +#, no-wrap +msgid "Level 2 Section Title" +msgstr "Уровень 2 Раздел Заголовок" + +#. type: Title ==== +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:114 +#, no-wrap +msgid "Level 3 Section Title" +msgstr "Уровень 3 Раздел Заголовок" + +#. type: Title ===== +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:116 +#, no-wrap +msgid "Level 4 Section Title" +msgstr "Уровень 4 Раздел Заголовок" + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:119 +msgid "====== Level 5 Section Title" +msgstr "====== Level 5 Section Title" + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:120 +#, no-wrap +msgid "Another Level 1 Section Title" +msgstr "Другой заголовок раздела первого уровня" + +#. type: delimited block = 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:126 +msgid "Section levels cannot be skipped when nesting sections." +msgstr "Уровни разделов нельзя пропускать при вложении разделов." + +#. type: delimited block = 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:128 +msgid "The following syntax is not correct." +msgstr "Следующий синтаксис неверен." + +#. type: Title = +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:130 +#, no-wrap +msgid "Document Title" +msgstr "Заголовок документа" + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:132 +#, no-wrap +msgid "Level 1" +msgstr "Уровень 1" + +#. type: Title ==== +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:134 +#, no-wrap +msgid "Level 3" +msgstr "Уровень 3" + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:139 +#, no-wrap +msgid "Paragraphs" +msgstr "Абзацы" + +#. type: delimited block = 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:144 +msgid "" +"Paragraphs don't require special markup in AsciiDoc. A paragraph is defined " +"by one or more consecutive lines of text. To create a new paragraph leave " +"one blank line." +msgstr "" +"Абзацы не требуют специальной разметки в AsciiDoc. Абзац определяется одной " +"или несколькими последовательными строками текста. Чтобы создать новый " +"абзац, оставьте одну пустую строку." + +#. type: delimited block = 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:146 +msgid "For example, this is a heading with two paragraphs." +msgstr "Например, это заголовок с двумя абзацами." + +#. type: Title = +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:148 +#, no-wrap +msgid "This is the heading" +msgstr "Это заголовок" + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:152 +msgid "This is the first paragraph. This is also the first paragraph." +msgstr "Это первый абзац. Это тоже первый абзац." + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:154 +msgid "And this is the second paragraph." +msgstr "А это второй абзац." + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:157 +#, no-wrap +msgid "Lists" +msgstr "Списки" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:161 +msgid "" +"Asciidoctor supports a few types of lists, the most common are `ordered` and " +"`unordered`. To get more information about lists, see link:https://" +"docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/#lists[AsciiDoc " +"Syntax Quick Reference]." +msgstr "" +"Asciidoctor поддерживает несколько типов списков, наиболее распространённые " +"— `ordered` и `unordered`. Для получения дополнительной информации о " +"списках см. link:https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-" +"reference/#lists[AsciiDoc Syntax Quick Reference]." + +#. type: Title === +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:163 +#, no-wrap +msgid "Ordered lists" +msgstr "Упорядоченные списки" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:166 +msgid "To create an ordered list use the `.` character." +msgstr "Для создания нумерованного списка используйте символ `.`." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:168 +msgid "For example, this is an ordered list." +msgstr "Например, это нумерованный список." + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:174 +#, no-wrap +msgid "" +". First item\n" +". Second item\n" +".. Subsecond item\n" +". Third item\n" +msgstr "" +". Первый пункт\n" +". Второй пункт\n" +".. Подпункт второго пункта\n" +". Третий пункт\n" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:177 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:198 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:241 +msgid "And this would be rendered as." +msgstr "И это будет отображено как." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:179 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:200 +msgid "First item" +msgstr "Первый пункт" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:180 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:201 +msgid "Second item" +msgstr "Второй пункт" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:181 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:202 +msgid "Subsecond item" +msgstr "Подпункт второго пункта" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:182 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:203 +msgid "Third item" +msgstr "Третий пункт" + +#. type: Title === +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:184 +#, no-wrap +msgid "Unordered lists" +msgstr "Неупорядоченные списки" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:187 +msgid "To create an unordered list use the `*` character." +msgstr "Для создания маркированного списка используйте символ `*`." + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:189 +msgid "For example, this is an unordered list." +msgstr "Например, это ненумерованный список." + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:195 +#, no-wrap +msgid "" +"* First item\n" +"* Second item\n" +"** Subsecond item\n" +"* Third item\n" +msgstr "" +"* Первый пункт\n" +"* Второй пункт\n" +"** Подпункт второго пункта\n" +"* Третий пункт\n" + +#. type: Title == +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:205 +#, no-wrap +msgid "Links" +msgstr "Links" + +#. type: Title === +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:208 +#, no-wrap +msgid "External links" +msgstr "Внешние ссылки" + +#. type: Plain text +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:211 +msgid "To point to another website the `link` macro should be used." +msgstr "Чтобы указать на другой веб-сайт, следует использовать макрос `link`." + +#. type: delimited block . 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:214 +#, no-wrap +msgid "link:https://www.FreeBSD.org[FreeBSD]\n" +msgstr "link:https://www.FreeBSD.org[FreeBSD]\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/fdp-primer/asciidoctor-primer/_index.adoc:220 +msgid "" +"As the Asciidoctor documentation describes, the `link` macro is not required " +"when the target starts with a URL scheme like `https`. However, it is a " +"good practice to do this anyway to ensure that Asciidoctor renders the link " +"correctly, especially in non-latin languages like Japanese." +msgstr "" +"Как описано в документации Asciidoctor, макрос `link` не требуется, когда " +"цель начинается со схемы URL, такой как `https`. Тем не менее, рекомендуется " +"всё равно использовать его, чтобы гарантировать корректное отображение " +"ссылки в Asciidoctor, особенно в языках с нелатинской письменностью, таких " *** 17251 LINES SKIPPED *** From nobody Sat Sep 20 11:39:42 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cTS8b2Q2Nz67j1x for ; Sat, 20 Sep 2025 11:39:43 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cTS8b1yvFz3HM5; Sat, 20 Sep 2025 11:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758368383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Js8oBO7Gxh8WCoe9XQLi8vZyBrp+KEalEXPjOYptyfE=; b=ucbTwXmc4/1vRJwPLubz17FSIY40bVmUNTGMV0lLGYyGqY+3t0y29WhTg//F5nXXTUZy96 aZ1/ydHkewFQNMzz8O8TsrUteVK1Quj/2CFeYd9EUZhNGaWoGAVIbg92cLLFfrIAuN7Lgj gEL+WSeqiYkj75m48tj1/gRMSEdS023SxAtjKGOyROMG2wPwpa76uJAnTg2jpfulDDd5/n LIj1oxKB1XUuIHJbf0ZSLYeYEaZ/OUb2hRYdsxBiuro9QROBZ3L2q4GHY7XB0CnvFmm7/2 YxagwGoDVdEii5tWtxMtR45SrkUOqDAkuZam9xbCIYTWUA31D98OlopZdQwzQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758368383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Js8oBO7Gxh8WCoe9XQLi8vZyBrp+KEalEXPjOYptyfE=; b=RgbApVVHuqQM7XitUGciwoxENaP/3Y/QQf+AYdCa9dBkCEgR0GLdbyy2PBfplcnKqlbh2a 4xeaCfrwd+efhA2ioSXSQEknlnzeGMncJ5HLpUZOvAAqjho0nU4tXQDQF5AdFklZ6mpzoP g+Kjyg2FKadL/AWKiSRl91fokqER1QkEIrrZFcLoPHFmRZAwR64yPIaAwhg0mfHhRf//rh wRBPw6PvUeHKY0r2uyYdHQ+DvI0bJtdATkC8/RerysOjnyab4BF9zOHekWxgsWM0CiZsNZ t3JPgMBKO4pLpOXu56SBu4NlUJQSdxrZtoN9/qHek75OwfKGsijECHGQEwX9KQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758368383; a=rsa-sha256; cv=none; b=rqB9Hb2GpzIUxACVgAoTmDu6idNxbby9GYPkigMsIDEqz0os6npyesR+1eh5Jd6BcpavLs jWBXDCl6PoJfgINukju/zUOjjiKPnrv8vOhIo/2hCIx73+4xqMPL2llEWmT3rp+CgICZqb vc36airVTAr0fdIwc+ywVq8ehAp90iVjKAJT4Y+kYf1B3MqwXQ5wpaCtJL+wHYi62AEpxJ zjrkhwGJSjbxZEsvAxblIAaNCe41yBcQYgM5UMzlNz0t4NHozfk7m42XpB4d1t5w+24N2L 33oM52hiRRyu/EHD4cgES9dnMhD8SHMLmSktx9/cclNCcnQqlPiHehjc68Z1Gw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cTS8b1GB3z9rr; Sat, 20 Sep 2025 11:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58KBdhgL040386; Sat, 20 Sep 2025 11:39:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58KBdgFJ040383; Sat, 20 Sep 2025 11:39:42 GMT (envelope-from git) Date: Sat, 20 Sep 2025 11:39:42 GMT Message-Id: <202509201139.58KBdgFJ040383@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: c6955b1112 - main - update translation of books/dev-model to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c6955b11122c42c882c4c402411b1f82cee0a4eb Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=c6955b11122c42c882c4c402411b1f82cee0a4eb commit c6955b11122c42c882c4c402411b1f82cee0a4eb Author: Vladlen Popolitov AuthorDate: 2025-09-20 11:39:29 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-20 11:39:29 +0000 update translation of books/dev-model to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D51949 --- .../content/ru/books/dev-model/_index.adoc | 903 +++++ documentation/content/ru/books/dev-model/_index.po | 3865 ++++++++++++++++++++ 2 files changed, 4768 insertions(+) diff --git a/documentation/content/ru/books/dev-model/_index.adoc b/documentation/content/ru/books/dev-model/_index.adoc new file mode 100644 index 0000000000..a23147d91c --- /dev/null +++ b/documentation/content/ru/books/dev-model/_index.adoc @@ -0,0 +1,903 @@ +--- +authors: + - + author: 'Niklas Saers' +bookOrder: 45 +copyright: '2002-2005 Niklas Saers' +description: 'Формальное исследование организации проекта FreeBSD' +layout: single +tags: ["model", "project model", "FreeBSD"] +title: 'Проектная модель для проекта FreeBSD' +trademarks: ["freebsd", "ibm", "ieee", "adobe", "intel", "linux", "microsoft", "opengroup", "sun", "netbsd", "general"] +--- + +//// +Copyright (c) 2002-2005 Niklas Saers +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +//// + += Проектная модель для проекта FreeBSD +:doctype: book +:toc: macro +:toclevels: 2 +:icons: font +:sectnums: +:sectnumlevels: 6 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/dev-model/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../images/{images-path} +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +''' + +toc::[] + +[[foreword]] +[.abstract-title] +Предисловие + +До настоящего момента проект FreeBSD выпустил ряд описанных методик для выполнения различных частей работы. Однако, из-за растущего числа участников проекта, необходима модель проекта, обобщающая его структуру. footnote:[Это согласуется с законом Брукса, согласно которому добавление нового человека в задерживающийся проект сделает его ещё более задержанным, поскольку увеличит потребность в коммуникации. Модель проекта — это инструмент для снижения потребности в коммуникации.] Данная статья предоставляет такую модель проекта и передаётся в п роект документации FreeBSD, где она может развиваться вместе с проектом, чтобы в любой момент времени отражать способ его работы. Она основана на [crossref:dev-model[диссертации, Saers,2003]]. + +Я хотел бы поблагодарить следующих людей за то, что они нашли время объяснить мне непонятные моменты и проверить документ. + +* Andrey A. Chernov mailto:ache@freebsd.org[ache@freebsd.org] +* Bruce A. Mah mailto:bmah@freebsd.org[bmah@freebsd.org] +* Dag-Erling Smørgrav mailto:des@freebsd.org[des@freebsd.org] +* Giorgos Keramidas mailto:keramida@freebsd.org[keramida@freebsd.org] +* Ingvil Hovig mailto:ingvil.hovig@skatteetaten.no[ingvil.hovig@skatteetaten.no] +* Jesper Holck mailto:jeh.inf@cbs.dk[jeh.inf@cbs.dk] +* John Baldwin mailto:jhb@freebsd.org[jhb@freebsd.org] +* John Polstra mailto:jdp@freebsd.org[jdp@freebsd.org] +* Kirk McKusick mailto:mckusick@freebsd.org[mckusick@freebsd.org] +* Mark Linimon mailto:linimon@freebsd.org[linimon@freebsd.org] +* Marleen Devos +* Niels Jørgenssen mailto:nielsj@ruc.dk[nielsj@ruc.dk] +* Nik Clayton mailto:nik@freebsd.org[nik@freebsd.org] +* Poul-Henning Kamp mailto:phk@freebsd.org[phk@freebsd.org] +* Simon L. Nielsen mailto:simon@freebsd.org[simon@freebsd.org] + +[[overview]] +== Обзор +Модель проекта — это способ снижения накладных расходов на коммуникации в проекте. Как показано в [crossref:dev-model[brooks, Brooks, 1995]], увеличение числа участников проекта приводит к экспоненциальному росту коммуникаций в проекте. За последние годы FreeBSD значительно увеличил как количество активных пользователей, так и коммиттеров, что соответственно привело к росту коммуникаций. Данная модель проекта поможет снизить эти накладные расходы за счёт предоставления актуального описания проекта. + +Во время выборов в Core в 2002 году Марк Мюррей заявил: «Я против длинного свода правил, так как это удовлетворяет склонности к юриспруденции и противоречит техноцентричности, в которой проект так нуждается.» [crossref:dev-model[bsd-election2002, FreeBSD, 2002B]]. Эта модель проекта не предназначена для того, чтобы оправдывать создание ограничений для разработчиков, а служит инструментом для облегчения координации. Она призвана описывать проект, давая обзор того, как выполняются различные процессы. Это введение в то, как работает проект FreeBSD. + +Модель проекта FreeBSD будет описана по состоянию на 1 июля 2004 года. Она основана на работе Нильса Йоргенсена [crossref:dev-model[jorgensen2001, Jørгенсен, 2001]], официальных документах FreeBSD, обсуждениях в списках рассылки FreeBSD и интервью с разработчиками. + +После определения используемых терминов в этом документе будет описана организационная структура (включая описания ролей и линии коммуникации), рассмотрена модель методологии, а после представления инструментов, используемых для контроля процессов, будут описаны определенные процессы. В заключение будут представлены основные подпроекты проекта FreeBSD. + +[crossref:dev-model[freebsd-developer-handbook, FreeBSD, 2002A]] Разделы 1.2 и 1.3 описывают видение и архитектурные принципы проекта. Видение сформулировано как: "Создать наилучший пакет операционной системы, подобной UNIX®, с должным уважением к оригинальной идеологии программных инструментов, а также к удобству использования, производительности и стабильности." Архитектурные принципы помогают определить, находится ли проблема, которую кто-то хочет решить, в рамках проекта + +[[definitions]] +== Определения + +[[ref-activity]] +=== Активность + +"Активность" — это элемент работы, выполняемый в ходе проекта [crossref:dev-model[ref-pmbok, PMI, 2000]]. У неё есть результат, который ведёт к достижению цели. Такой результат может быть либо входом для другой активности, либо частью поставки процесса. + +[[def-process]] +=== Процесс + +Процесс — это ряд действий, ведущих к определенному результату. Процесс может состоять из одного или нескольких подпроцессов. Примером процесса является проектирование программного обеспечения. + +[[ref-hat]] +=== Роль (hat) + +"Hat" (шляпа) является синонимом роли. Роль имеет определенные обязанности в процессе и ответственность за результат процесса. Роль выполняет действия. Четко определено, по каким вопросам участники проекта и люди вне проекта должны обращаться к ответственному, выполняющему эту роль. + +[[ref-outcome]] +=== Результат + +«Результат» — это конечный продукт процесса. Это синоним понятия «поставляемый результат», который определяется как «любой измеримый, осязаемый, проверяемый результат, итог или элемент, который должен быть произведён для завершения проекта или его части. Часто используется в более узком смысле в отношении внешнего поставляемого результата, который подлежит утверждению спонсором проекта или заказчиком» согласно [crossref:dev-model[ref-pmbok, PMI, 2000]]. Примерами результатов являются программное обеспечение, принятое решение или написанный отчёт. + +[[ref-freebsd]] +=== FreeBSD + +Говоря "FreeBSD", мы подразумеваем UNIX-подобную операционную систему FreeBSD, основанную на BSD, тогда как говоря "Проект FreeBSD", мы подразумеваем организацию проекта. + +[[model-orgstruct]] +== Организационная структура + +Хотя никто не является владельцем FreeBSD, организация FreeBSD разделена на ядро, коммиттеров и участников и является частью сообщества FreeBSD, которое существует вокруг неё. + +Структура проекта FreeBSD (в порядке убывания полномочий) + +[.informaltable] +[cols="1,1", options="header"] +|=== +| Группа +| Количество людей + +|Основные участники +|9 + +|Коммиттеры +|318 + +|Участники +|~3000 +|=== + +Количество коммиттеров было определено путем анализа журналов CVS с 1 января 2004 года по 31 декабря 2004 года, а список участников — путем просмотра перечня внесенных изменений и отчетов о проблемах. + +Основной ресурс сообщества FreeBSD — это его разработчики: коммиттеры и контрибьюторы. Именно их вклад позволяет проекту развиваться. Обычные разработчики называются участниками (контрибьюторами). По состоянию на 1 января 2003 года в проекте насчитывается около 5500 контрибьюторов. + +Коммиттеры — это разработчики, обладающие привилегией вносить изменения. Обычно это наиболее активные разработчики, которые готовы тратить своё время не только на интеграцию собственного кода, но и на интеграцию кода, предоставленного разработчиками без такой привилегии. Они также выбирают основную команду и имеют доступ к закрытым обсуждениям. + +Проект можно разделить на четыре отдельные части, и большинство разработчиков сосредоточат своё участие на одной из частей FreeBSD. Эти четыре части — разработка ядра, разработка пользовательского пространства, порты и документация. Под базовой системой подразумеваются как ядро, так и пользовательское пространство. + +Это разделение изменяет нашу таблицу следующим образом: + +Структура проекта FreeBSD с участниками, имеющими права на запись, по категориям + +[.informaltable] +[cols="1,1,1", options="header"] +|=== +| Группа +| Категория +| Количество людей + +|Основные участники +| +|9 + +|Коммиттеры +|Базовый +|164 + +| +|Docs +|45 + +| +|Порты +|166 + +| +|Total +|374 + +|Участники +| +|~3000 +|=== + +Количество коммиттеров по областям было определено путем анализа журналов CVS с 1 января 2004 года по 31 декабря 2004 года. Обратите внимание, что многие коммиттеры работают в нескольких областях, поэтому общее число больше реального количества коммиттеров. Общее количество активных уникальных коммиттеров на июнь 2022 года составляло 317. + +Коммиттеры делятся на три группы: коммиттеры, занимающиеся только одной областью проекта (например, файловыми системами), коммиттеры, участвующие только в одном подпроекте, и коммиттеры, вносящие изменения в разные части кода, включая подпроекты. Поскольку некоторые коммиттеры работают над разными частями, общее количество в разделе коммиттеров таблицы выше, чем в предыдущей таблице. + +Ядро является основным строительным блоком FreeBSD. Хотя пользовательские приложения защищены от сбоев в других пользовательских приложениях, вся система уязвима от ошибок в ядре. Это, в сочетании с огромным количеством зависимостей в ядре и тем, что нелегко увидеть все последствия изменения ядра, требует от разработчиков относительно полного понимания ядра. Множественные усилия по разработке в ядре также требуют более тесной координации, чем пользовательские приложения. + +Основные утилиты, известные как пользовательское окружение (userland), предоставляют интерфейс, который определяет FreeBSD, включая пользовательский интерфейс, общие библиотеки и внешние интерфейсы для подключения клиентов. В настоящее время 162 человека участвуют в разработке и поддержке пользовательского окружения, многие из которых являются сопровождающими (maintainers) для своей части кода. Вопросы сопровождения будут рассмотрены в разделе crossref:dev-model[role-maintainer,Сопровождение]. + +Документация обрабатывается crossref:dev-model[sub-project-documentation, Проектом документации FreeBSD] и включает все документы, связанные с проектом FreeBSD, включая веб-страницы. В течение 2004 года 101 человек внесли изменения в Проект документации FreeBSD. + +Порты — это коллекция метаданных, необходимых для корректной сборки программных пакетов в FreeBSD. Например, порт для веб-браузера Mozilla содержит информацию о том, откуда загружать исходный код, какие патчи применять и как, а также как пакет должен быть установлен в системе. Это позволяет автоматизированным инструментам загружать, собирать и устанавливать пакеты. На момент написания доступно более 12600 портов footnote:[Статистика получена подсчётом количества записей в файле, загруженном portsdb на 1 апреля 2005 года. portsdb является частью порта sysutils/portupg rade.], начиная от веб-серверов и игр до языков программирования и большинства типов приложений, используемых на современных компьютерах. Порты подробно рассматриваются в разделе crossref:dev-model[sub-project-ports, Подпроект Ports]. + +[[methodology-model]] +== Методологическая модель + +[[development-model]] +=== Модель разработки + +Не существует определенной модели того, как люди пишут код в FreeBSD. Однако Нильс Йоргенссен предложил модель того, как написанный код интегрируется в проект. + +Модель Йоргенссена для интеграции изменений + +[.informaltable] +[cols="1,1,1", options="header"] +|=== +| Этап +| Следующий, если успешно +| Следующий, если неудачно + +|программирование +|рецензирование +| + +|рецензирование +|предварительная проверка перед коммитом +|программирование + +|предварительная проверка перед коммитом +|релиз для разработки +|программирование + +|релиз для разработки +|параллельная отладка +|программирование + +|параллельная отладка +|релиз для производства +|программирование + +|релиз для производства +| +|программирование +|=== + +"Релиз для разработки" — это ветка FreeBSD-CURRENT ("-CURRENT"), а "релиз для производства" — ветка FreeBSD-STABLE ("-STABLE") [crossref:dev-model[jorgensen2001, Jørgensen, 2001]]. + +Это модель для одного изменения, которая показывает, что после написания кода разработчики ищут рецензирование сообщества и пытаются интегрировать это изменение в свои собственные системы. После интеграции изменения в версию разработки, называемую FreeBSD-CURRENT, оно тестируется многими пользователями и разработчиками сообщества FreeBSD. После достаточного тестирования оно объединяется с производственной версией, называемой FreeBSD-STABLE. Если каждая стадия не завершена успешно, разработчику необходимо вернуться, внести изменения в код и перезап стить процесс. Интеграция изменения в -CURRENT или -STABLE называется выполнением коммита. + +Йоргенсен обнаружил, что большинство разработчиков FreeBSD работают индивидуально, то есть эта модель используется параллельно многими разработчиками в различных текущих процессах разработки. Разработчик также может работать над несколькими изменениями одновременно, поэтому, ожидая рецензирования или тестирования одного или нескольких своих изменений, он может писать другое изменение. + +Поскольку каждый коммит представляет собой инкрементальное изменение, это модель с очень высокой степенью инкрементальности. Коммиты происходят настолько часто, что за один год footnote:[Для получения этого числа был исследован период с 1 января 2004 года по 31 декабря 2004 года.], было сделано 85427 коммитов, что составляет в среднем 233 коммита в день. + +В рамках "программирования" в модели Йоргенсена, каждый программист имеет свой собственный стиль работы и следует своим собственным моделям разработки. Этот этап вполне мог бы называться "разработкой", так как он включает сбор и анализ требований, системное и детальное проектирование, реализацию и проверку. Однако, единственным результатом этих подэтапов являются исходный код или документация системы. + +С точки зрения пошаговой модели (такой как каскадная модель), остальные этапы можно рассматривать как дальнейшую проверку и интеграцию системы. Эта интеграция системы также важна для определения того, будет ли изменение принято сообществом. До момента фиксации кода разработчик волен выбирать, насколько активно он будет обсуждать его с остальными участниками проекта. Чтобы -CURRENT мог выполнять роль буфера (позволяя откатывать идеи, которые оказались с невыявленными недостатками), минимальный срок, в течение которого изменения должны оста ваться в -CURRENT перед слиянием в -STABLE, составляет 3 дня. Такое слияние называется MFC (Merge From Current). + +Важно обратить внимание на слово "изменение". Большинство коммитов не содержат радикально новых функций, а представляют собой обновления для поддержки. + +Единственными исключениями из этой модели являются исправления безопасности и изменения в функциях, объявленных устаревшими в ветке -CURRENT. В этих случаях изменения могут быть внесены напрямую в ветку -STABLE. + +В дополнение к множеству людей, работающих над проектом, существует множество связанных проектов в рамках FreeBSD. Это могут быть проекты, разрабатывающие совершенно новые функции, подпроекты или проекты, результаты которых интегрируются в FreeBSD footnote:[Например, разработка стека Bluetooth начиналась как подпроект, пока не была признана достаточно стабильной для включения в ветку -CURRENT. Теперь это часть основной системы FreeBSD.]. Эти проекты вписываются в FreeBSD так же, как и обычные разработки: они создают код, который интегрируется с проектом FreeBSD. Однак некоторые из них (например, Ports и Documentation) имеют привилегию применяться к обеим веткам или коммитить напрямую как в -CURRENT, так и в -STABLE. + +Не существует стандартов по выполнению проектирования, также как и централизованного репозитория для хранения проектов. Основной дизайн взят из 4.4BSD. footnote:[По словам Кирка Маккузика, после 20 лет разработки операционных систем UNIX, интерфейсы в основном уже определены. Поэтому нет необходимости в большом количестве проектирования. Однако новые применения системы и новое оборудование приводят к тому, что некоторые реализации становятся более выгодными по сравнению с ранее предпочитаемыми. Одним из примеров является появление веб-браузин а, который превратил обычное TCP/IP-соединение в короткие всплески данных, а не в устойчивый поток за более длительный период времени.] Поскольку проектирование является частью этапа "Программирование" в модели Йоргенсена, каждый разработчик или подпроект сам решает, как это должно выполняться. Даже если проектирование должно храниться в централизованном репозитории, результаты этапов проектирования будут иметь ограниченную полезность, так как различия в методологиях сделают их плохо совместимыми, если вообще совместимыми. Для общего п оектирования проекта, п! роект полагается на подпроекты, которые договариваются о совместимых интерфейсах между собой, а не на диктат интерфейсов. + +[[release-branches]] +=== Ветви релизов + +Версии FreeBSD лучше всего иллюстрируются деревом с множеством ветвей, где каждая основная ветвь представляет основную версию. Минорные версии представлены ветвями основных ветвей. + +В следующем дереве релизов стрелки, следующие друг за другом в определенном направлении, представляют ветку. Прямоугольники со сплошными линиями и ромбы обозначают официальные релизы. Прямоугольники с пунктирными линиями представляют ветку разработки на тот момент. Ветки безопасности обозначены овалами. Ромбы отличаются от прямоугольников тем, что они представляют развилку, то есть место, где ветка разделяется на две ветки, одна из которых становится подветкой. Например, на 4.0-RELEASE ветка 4.0-CURRENT разделилась на 4-STABLE и 5.0-CURRENT. На 4.5-RELEASE ветк а разветвилась на ветку безопасности под названием RELENG_4_5. + +.Дерево релизов FreeBSD +image::branches.png["Обратитесь к таблице ниже для удобной версии для экранных дикторов."] + +[.informaltable] +[cols="1,1,1", options="header"] +|=== +| Основные выпуски +| Форкнут из +| Следующие минорные выпуски + +|... +| +| + +|3.0 Current (ветка разработки) +| +|Ветки Releng 3: выпуски с 3.0 Release по 3.5 Release, ведущие к выпуску 3.5.1 Release и последующей ветке 3 Stable + +|4.0 Current (ветка разработки) +|Релиз 3.1 +|Ветви Releng 4: релизы с 4.1 по 4.6 (и релиз 4.6.2), затем релизы с 4.7 по 4.11 (все, начиная с релиза 4.3, также ведущие к ветви Releng_4_n), и последующая ветвь релиза 4 + +|5.0 Current (ветка разработки) +|Релиз 4.0 +|Ветви Releng 5: Релизы с 5.0 до 5.4 (за исключением 5.0 и 5.3, которые также ведут к ветке Releng_5_n), и последующая ветка релиза 5 + +|6.0 Current (ветка разработки) +|Релиз 5.3 +| + +|... +| +| + +|=== + +Последняя версия -CURRENT всегда обозначается как -CURRENT, а последний релиз -STABLE всегда обозначается как -STABLE. На этом рисунке -STABLE относится к 4-STABLE, а -CURRENT относится к 5.0-CURRENT после 5.0-RELEASE. [crossref:dev-model[freebsd-releng, FreeBSD, 2002E]] + +«Основной выпуск» всегда создаётся из ветки -CURRENT. Однако ветка -CURRENT не обязательно должна разветвляться в этот момент, а может сосредоточиться на стабилизации. Примером этого является то, что после 3.0-RELEASE, 3.1-RELEASE также был продолжением ветки -CURRENT, и -CURRENT не стал настоящей веткой разработки до тех пор, пока не был выпущен этот релиз и не была создана ветка 3-STABLE. Когда -CURRENT снова становится веткой разработки, за ним может следовать только основной выпуск. Ожидается, что ветка 5-STABLE будет отделена от 5.0-CURRENT примерно на момент выпуска 5.3-RELEASE. Толь ко после отделения 5-STABLE ветка разработки получит название 6.0-CURRENT. + +"Минорный релиз" создается из ветки -CURRENT после основного релиза или из ветки -STABLE. + +Начиная с версии 4.3-RELEASE footnote:[Первым релизом, для которого это действительно произошло, был 4.5-RELEASE, но ветки безопасности были созданы одновременно для 4.3-RELEASE и 4.4-RELEASE.], когда выпускается минорный релиз, он становится «веткой безопасности». Это предназначено для организаций, которые не хотят следовать ветке -STABLE и потенциальным новым/изменённым функциям, которые она предлагает, но вместо этого требуют абсолютно стабильной среды, обновляемой только для внедрения исправлений безопасности. footnote:[Здесь вы видите терминологическое пересечен е со словом «стабильный», что приводит к некоторой путанице. Ветка -STABLE по-прежнему является веткой разработки, цель которой — быть полезной для большинства пользователей. Если для системы неприемлемо получать изменения, которые не были объявлены на момент её развёртывания, такая система должна работать на ветке безопасности.] + +Каждое обновление в ветке безопасности называется "уровнем исправления" (patchlevel). Для каждого выполненного улучшения безопасности номер уровня исправления увеличивается, что позволяет легко отслеживать, какие улучшения безопасности были реализованы. В случаях особенно серьезных уязвимостей безопасности может быть выпущен полностью новый релиз из ветки безопасности. Примером этого является 4.6.2-RELEASE. + +[[model-summary]] +=== Сводка модели + +Для подведения итогов, модель разработки FreeBSD можно представить в виде следующего дерева: + +.Общая модель разработки +image::freebsd-code-model.png["Обратитесь к параграфам ниже для версии, удобной для экранных дикторов."] + +Дерево разработки FreeBSD с текущими усилиями по разработке и непрерывной интеграцией. + +Дерево символизирует версии выпусков, где основные версии порождают новые главные ветви, а второстепенные версии являются версиями главной ветви. Верхняя ветвь — это ветвь -CURRENT, в которую интегрируется вся новая разработка, а ветвь -STABLE находится непосредственно под ней. Под ветвью -STABLE находятся старые, неподдерживаемые версии. + +Проект находится в тумане постоянной разработки, и разработчики выбирают модели разработки, которые считают подходящими. Результаты их работы затем интегрируются в -CURRENT, где проходят параллельную отладку, и наконец объединяются из -CURRENT в -STABLE. Исправления безопасности объединяются из -STABLE в ветки безопасности. + +Многие коммиттеры имеют специальную область ответственности. Эти роли называются "hats" (шляпами). Эти роли могут быть либо проектными ролями, например, офицер по связям с общественностью, либо сопровождающим определённой части кода. Поскольку это проект, где люди добровольно уделяют своё свободное время, люди с назначенными ролями не всегда доступны. Поэтому они должны назначить заместителя, который может выполнять эту роль в их отсутствие. Другой вариант — передать роль группе. + +Многие из этих ролей не формализованы. Формализованные роли имеют устав, в котором указаны точные цели, привилегии и обязанности. Написание таких уставов — новая часть проекта, поэтому оно ещё не завершено для всех ролей. Эти описания ролей не являются формализацией, а скорее представляют собой краткое описание роли со ссылками на устав, где он доступен, и контактными адресами. + +[[sect-hats]] +== Ответственные + +[[general-hats]] +=== Стандартные роли + +[[role-contributor]] +==== Участник (контрибьютор) + +Участник вносит вклад в проект FreeBSD в качестве разработчика, автора, отправляя отчеты о проблемах или другими способами способствуя прогрессу проекта. Участник не имеет особых привилегий в проекте FreeBSD. [crossref:dev-model[freebsd-contributors, FreeBSD, 2002F]] + +[[role-committer]] +==== Коммиттер + +Человек, обладающий необходимыми привилегиями для добавления своего кода или документации в репозиторий. Коммиттер совершил коммит в течение последних 12 месяцев. [crossref:dev-model[freebsd-developer-handbook, FreeBSD, 2000A]] Активный коммиттер — это коммиттер, который в среднем совершал один коммит в месяц в течение этого времени. + +Стоит отметить, что нет технических препятствий, которые могли бы помешать кому-либо, получившему права на коммиты в основном или подпроекте, делать коммиты в частях исходного кода проекта, для которых у коммиттера нет явного разрешения на изменение. Однако, при желании внести изменения в части, с которыми коммиттер ранее не работал, следует изучить логи, чтобы понять, что происходило в этой области ранее, а также прочитать файл MAINTAINERS, чтобы узнать, есть ли у сопровождающего этой части какие-либо особые требования к внесению изменений в ко . + +[[role-core]] +==== Основная команда (Core Team) + +Основная команда избирается коммиттерами из числа коммиттеров и выполняет функции совета директоров проекта FreeBSD. Она повышает активных участников до коммиттеров, назначает людей на четко определенные роли (hats) и является окончательным арбитром при принятии решений о направлении развития проекта. На 1 июля 2004 года в состав основной команды входило 9 членов. Выборы проводятся каждые два года. + +[[role-maintainer]] +==== Сопровождение + +Сопровождение означает, что человек ответственен за то, что допускается в определённую часть кода, и имеет решающее слово в случае разногласий по поводу кода. Это включает в себя как активную работу, направленную на стимулирование участников (контрибьюторов), так и реактивную работу по рецензированию коммитов. + +В исходном коде FreeBSD есть файл MAINTAINERS, содержащий краткое описание того, как каждый сопровождающий предпочитает получать вклады. Наличие этого уведомления и контактной информации позволяет разработчикам сосредоточиться на разработке, а не застревать в медленной переписке, если сопровождающий будет недоступен в течение некоторого времени. + +Если сопровождающий недоступен в течение неоправданно долгого времени, и другие люди выполняют значительный объем работы, сопровождение может быть передано без согласия сопровождающего. Это основано на позиции, что сопровождение должно быть продемонстрировано, а не заявлено. + +Сопровождение определенного участка кода — это роль, которая не осуществляется коллективно. + +[[official-hats]] +=== Официальные Роли + +Официальные роли в проекте FreeBSD — это более или менее формализованные и в основном административные должности. Они обладают полномочиями и ответственностью в своей области. В следующем списке показаны направления ответственности и дано описание каждой роли, включая информацию о том, кто её занимает. + +[[role-doc-manager]] +==== Менеджер проекта документации + +Архитектор crossref:dev-model[sub-project-documentation, Проекта документации FreeBSD] отвечает за определение и контроль целей документации для коммиттеров в проекте Документации, за которым они присматривают. + +Роль поддерживается: Командой DocEng mailto:doceng@FreeBSD.org[doceng@FreeBSD.org]. https://www.freebsd.org/internal/doceng/[Устав DocEng]. + +[[role-postmaster]] +==== Postmaster + +Postmaster отвечает за корректную доставку почты на адреса электронной почты коммиттеров. Также он отвечает за работоспособность почтовых рассылок и должен принимать меры против возможных сбоев в работе почты, таких как троллинг-, спам- и вирус-фильтры. + +Текущий руководитель: Команда почтовых серверов mailto:postmaster@FreeBSD.org[postmaster@FreeBSD.org]. + +[[role-release-coordination]] +==== Координация выпусков + +Обязанности команды выпуска релизов включают + +* Установка, публикация и соблюдение графика выпуска официальных релизов +* Документирование и формализация процедур выпуска релизов +* Создание и поддержка веток кода +* Согласование с командами Ports и Documentation для выпуска обновленного набора пакетов и документации вместе с новыми релизами +* Координация с командой безопасности для того, чтобы готовящиеся выпуски не были затронуты недавно обнаруженными уязвимостями. + +Дополнительная информация о процессе разработки доступна в разделе crossref:dev-model[process-release-engineering, Выпуск релизов]. + +[[role-releng]] +Роль поддерживается: командой выпуск релизов (Release Engineering) mailto:re@FreeBSD.org[re@FreeBSD.org]. https://www.freebsd.org/releng/charter/[ Устав Release Engineering]. + +[[role-pr-cr]] +==== Отношения с общественностью и корпоративные связи + +Обязанности отдела по связям с общественностью и корпоративным отношениям включают: + +* Публиковать пресс-релизы при возникновении событий, важных для проекта FreeBSD. +* Быть официальным контактным лицом для корпораций, тесно сотрудничающих с проектом FreeBSD. +* Принимать меры для продвижения FreeBSD как в сообществе Open Source, так и в корпоративном мире. +* Обрабатывать список рассылки "freebsd-advocacy". + +Эта роль в настоящее время не занята. + +[[role-security-officer]] +==== Ответственный за безопасность (Security Officer) + +Основная обязанность Ответственного за безопасность — координировать обмен информацией с сообществом безопасности и проектом FreeBSD. Ответственный за безопасность также принимает меры при поступлении сообщений о проблемах безопасности и способствует активному развитию в области безопасности. + +Из-за опасений, что информация об уязвимостях может попасть к злоумышленникам до выпуска исправления, только Ответственный за безопасность, включающий руководителя, заместителя и двух членов crossref:dev-model[role-core, Core Team], получает конфиденциальную информацию о проблемах безопасности. Однако для создания или внедрения исправления Ответственный за безопасность может обратиться к команде mailto:security-team@FreeBSD.org[security-team@FreeBSD.org] для помощи в выполнении работы. + +[[role-repo-manager]] +==== Менеджер репозитория исходного кода + +Менеджер репозитория исходного кода — единственный, кому разрешено напрямую изменять репозиторий без использования инструмента crossref:dev-model[tool-git, Git]. В его обязанности входит оперативное решение технических проблем, возникающих в репозитории. Менеджер репозитория исходного кода имеет право отменять коммиты, если это необходимо для устранения технических проблем с Git. + +Роль принадлежит: Менеджеру репозитория исходного кода mailto:clusteradm@FreeBSD.org[clusteradm@FreeBSD.org]. + +[[role-election-manager]] +==== Менеджер выборов + +Менеджер выборов отвечает за процесс crossref:dev-model[process-core-election,выборов Core Team]. Он отвечает за проведение и поддержание системы выборов, а также является окончательной инстанцией в случае незначительных непредвиденных событий в процессе выборов. Крупные непредвиденные события должны обсуждаться с crossref:dev-model[role-core,Core Team] + +Роль выполняется только во время выборов. + +[[role-webmaster]] +==== Управление веб-сайтом + +Роль управления веб-сайтом отвечает за координацию развертывания обновленных веб-страниц на зеркалах по всему миру, за общую структуру основного веб-сайта и систему, на которой он работает. Управление должно согласовывать содержимое с crossref:dev-model[документацией подпроекта, Документационный проект FreeBSD] и выступает в роли сопровождающего для дерева "www". + +Роль поддерживается: веб-мастеры FreeBSD mailto:www@FreeBSD.org[www@FreeBSD.org]. + +[[role-ports-manager]] +==== Менеджер портов + +Менеджер портов выступает в роли связующего звена между crossref:dev-model[sub-project-ports, Подпроектом портов] и основным проектом, и все запросы от проекта должны направляться менеджеру портов. + +Роль принадлежит: Команде управления портами mailto:portmgr@FreeBSD.org[portmgr@FreeBSD.org]. https://www.freebsd.org/portmgr/charter/[Устав Portmgr]. + +[[role-standards]] +==== Стандарты + +Роль стандартов отвечает за обеспечение соответствия FreeBSD стандартам, которым система следует, отслеживает развитие этих стандартов и уведомляет разработчиков FreeBSD о важных изменениях. Это позволяет разработчикам действовать проактивно и сокращать время между обновлением стандартов и достижением соответствия в FreeBSD. + +Текущий ответственный: Garrett Wollman mailto:wollman@FreeBSD.org[wollman@FreeBSD.org]. + +[[role-core-secretary]] +==== Секретарь Core Team + +Основная обязанность Секретаря Core Team — составление черновиков и публикация окончательных отчётов Core Team. Секретарь также ведёт повестку Core Team, гарантируя, что ни один вопрос не останется без решения. + +Ответственный в настоящее время: {rene}. + +[[role-bugmeister]] +==== Ответственный за ошибки (Bugmeister) + +Ответственный за ошибки (Bugmeister) отвечает за поддержание базы данных по обслуживанию в рабочем состоянии, за корректную категоризацию записей и отсутствие недействительных записей. Они курируют исправителей ошибок (bugbusters). + +Текущий ответственный: команда Bugmeister Team mailto:bugmeister@FreeBSD.org[bugmeister@FreeBSD.org]. + +[[role-donations]] +==== Представитель по привлечению пожертвований + +Задача представителя по привлечению пожертвований — связывать разработчиков, которым что-то нужно, с людьми или организациями, готовыми сделать пожертвование. + +Роль поддерживается: Отделом по привлечению пожертвований mailto:donations@FreeBSD.org[donations@FreeBSD.org]. https://www.freebsd.org/donations/[ Устав Отдела по привлечению пожертвований]. + +[[role-admin]] +==== Администратор (Admin) + +(Также называется "Администратор кластера FreeBSD") + +Команда администраторов состоит из людей, ответственных за администрирование компьютеров, которые проект использует для распределённой работы и синхронизации коммуникации. В основном в неё входят те, кто имеет физический доступ к серверам. + +Роль поддерживается: командой администраторов mailto:admin@FreeBSD.org[admin@FreeBSD.org]. + +[[proc-depend-hats]] +=== Процессозависимые роли + +[[role-problem-originator]] +==== Инициатор отчета + +Лицо, изначально ответственное за подачу отчета о проблеме. + +[[role-bugbuster]] +==== Исправитель ошибок (Bugbuster) + +Человек, который либо найдет подходящего специалиста для решения проблемы, либо закроет PR, если он является дубликатом или по другим причинам не представляет интереса. + +[[role-mentor]] +==== Наставник (Mentor) + +Наставник — это коммиттер, который берет на себя задачу ознакомить нового коммиттера с проектом. Это включает в себя проверку корректности настройки окружения нового коммиттера, обучение доступным инструментам, необходимым для работы, а также разъяснение ожидаемого поведения. + +[[role-vendor]] +==== Поставщик + +Лицо (лица) или организация, от которых поступает внешний код и которым отправляются исправления. + +[[role-reviewer]] +==== Рецензенты + +Люди из списка рассылки, куда отправлен запрос на рецензирование. + +Следующий раздел описывает установленные процессы проекта. Вопросы, не охваченные этими процессами, решаются по мере возникновения, исходя из сложившейся практики в аналогичных случаях. + +[[model-processes]] +== Процессы + +[[proc-addrem-committer]] +=== Добавление новых и удаление старых коммиттеров + +Основная команда (Core Team) отвечает за предоставление и отзыв прав на коммит для участников. Это может быть сделано только через голосование в списке рассылки Core Team. Подпроекты ports и documentation могут предоставлять права на коммит людям, работающим над этими проектами, но на данный момент не отзывали такие права. + +Обычно кандидата в коммиттеры основной команде (Core Team) рекомендуют коммиттеры. Для участников или посторонних обращаться в Core Team с просьбой стать коммиттером считается неблагоразумным и такая просьба, как правило, отклоняется. + +Если область, представляющая особый интерес для разработчика, потенциально пересекается с зоной ответственности других сопровождающих, запрашивается мнение этих сопровождающих. Однако часто именно этот сопровождающий рекомендует разработчика. + +Когда участнику предоставляется статус коммиттера, ему назначается наставник. В общем случае коммиттер, который рекомендовал нового коммиттера, берет на себя обязанности наставника для нового коммиттера. + +Когда участнику предоставляется право коммита (commit bit), отправляется подписанное с помощью crossref:dev-model[tool-pgp, Pretty Good Privacy] письмо от crossref:dev-model[role-core-secretary, Секретаря Core Team], crossref:dev-model[role-ports-manager, Менеджера портов] или nik@freebsd.org на адреса admins@freebsd.org, назначенного наставника, нового коммиттера и Core Team, подтверждая одобрение новой учётной записи. Затем наставник собирает строку пароля, crossref:dev-model[tool-ssh2, Secure Shell] открытый ключ и PGP-ключ от нового коммиттера и отправляет их crossref:dev-model[role-admin, Администратору]. Когда новая учётная запись создана, наставник акт ивирует право коммита и проводит нового коммиттера через остальные этапы начального процесса. + +.Процесс вкратце: добавление нового коммиттера +image::proc-add-committer.png["Обратитесь к абзацу ниже для версии, совместимой с программами чтения с экрана."] + +Когда участник отправляет фрагмент кода, принимающий коммиттер может предложить предоставить этому участнику права на коммит. Если он рекомендует это основной команде (Core Team), команда проводит голосование по этой рекомендации. Если голосование завершается в пользу предложения, новому коммиттеру назначается наставник, и новый коммиттер должен отправить свои данные администраторам для создания учётной записи. После этого новый коммиттер готов сделать свой первый коммит. По традиции, это делается путём добавления своего имени в список к оммиттеров. + +Recall that a committer is considered to be someone who has committed code during the past 12 months. However, it is not until after 18 months of inactivity have passed that commit privileges are eligible to be revoked. [crossref:dev-model[freebsd-expiration-policy, FreeBSD, 2002H]] There are, however, no automatic procedures for doing this. For reactions concerning commit privileges not triggered by time, see crossref:dev-model[process-reactions,section 1.5.8]. + +.Процесс: удаление коммиттера +image::proc-rm-committer.png["Обратитесь к абзацу ниже для версии, совместимой с программами чтения с экрана."] + +Когда Основная команда (Core Team) принимает решение очистить список коммиттеров, они проверяют, кто не делал коммитов за последние 18 месяцев. Коммиттеры, которые этого не сделали, лишаются прав на коммит, и их учетные записи удаляются администраторами. + +Также возможно для коммиттеров запросить отзыв их права на коммит, если по какой-то причине они больше не будут активно участвовать в проекте. В этом случае, право может быть восстановлено позже по запросу коммиттера. + +Роли в этом процессе: + +. crossref:dev-model[role-core, Основная команда (Core Team)] +. crossref:dev-model[role-contributor, Участник (контрибьютор)] +. crossref:dev-model[role-committer, Коммиттер] +. crossref:dev-model[role-maintainer, Сопровождение] +. crossref:dev-model[role-mentor, Наставник (Mentor)] + +[crossref:dev-model[freebsd-bylaws, FreeBSD, 2000A]] [crossref:dev-model[freebsd-expiration-policy, FreeBSD, 2002H]] [crossref:dev-model[freebsd-new-account, FreeBSD, 2002I]] + +[[committing]] +=== Коммит кода + +Добавление нового или изменённого кода — один из наиболее частых процессов в проекте FreeBSD и обычно происходит несколько раз в день. Фиксация кода может быть выполнена только "коммиттером". Коммиттеры фиксируют либо код, написанный ими самими, либо код, переданный им, либо код, отправленный через crossref:dev-model[model-pr,отчёт о проблеме]. + +Когда разработчик пишет нетривиальный код, он должен запросить рецензирование кода у сообщества. Это делается путём отправки письма в соответствующий список рассылки с просьбой о рецензировании. Перед отправкой кода на проверку разработчик должен убедиться, что он корректно компилируется со всем деревом исходного кода и что все соответствующие тесты выполняются. Это называется "предварительной проверкой перед коммитом". Когда получен вклад в виде кода, коммиттер должен просмотреть его и протестировать таким же образом. + +Когда изменение фиксируется в части исходного кода, которая была получена от внешнего crossref:dev-model[role-vendor,поставщика], сопровождающий должен убедиться, что патч передан обратно поставщику. Это соответствует философии открытого исходного кода и упрощает синхронизацию с внешними проектами, так как патчи не придётся применять заново при каждом новом выпуске. + +После того как код был доступен для рецензирования и дальнейшие изменения не требуются, код вносится в ветку разработки -CURRENT. Если изменение применимо и для ветки -STABLE, или других веток, коммиттер устанавливает отсчёт времени для "слияния из текущей" ("MFC"). После того как пройдёт количество дней, выбранное коммиттером при установке MFC, автоматически будет отправлено письмо коммиттеру с напоминанием внести изменения в ветку -STABLE (а также, возможно, в ветки безопасности). В ветки безопасности следует сливать только критические изменения, связ нные с безопасностью. + +Откладывание коммита в -STABLE и другие ветки позволяет проводить "параллельную отладку", когда закоммиченный код тестируется на широком спектре конфигураций. Это приводит к тому, что изменения в -STABLE содержат меньше ошибок, что и даёт ветке её название. + +.Процесс вкратце: коммиттер делает коммит кода +image::proc-commit.png["Обратитесь к абзацу ниже для версии, совместимой с программами чтения с экрана."] + +Когда коммиттер написал часть кода и хочет его закоммитить, он сначала должен определить, достаточно ли он тривиален, чтобы попасть в репозиторий без предварительной рецензии, или ему сначала следует сделать рецензию в сообществе разработчиков. Если код тривиален или был отрецензирован, и коммиттер не является сопровождающим, он должен проконсультироваться с сопровождающим перед тем, как продолжить. Если код предоставлен внешним поставщиком, сопровождающий должен создать патч, который отправляется обратно поставщику. Затем код комми ится и развертывается пользователями. Если они обнаружат проблемы с кодом, это будет сообщено, и коммиттер может вернуться к написанию патча. Если затронут поставщик, он может выбрать реализацию или игнорирование патча. + +.Процесс вкратце: Участник делает коммит кода +image::proc-contrib.png["Обратитесь к абзацам выше и ниже для версии, совместимой с программами чтения с экрана."] + +Разница, когда участник вносит код, заключается в том, что он отправляет код через интерфейс Bugzilla. Этот отчёт забирает сопровождающий, который просматривает код и делает ему коммит. + +Роли, задействованные в этом процессе: + +. crossref:dev-model[role-committer, Коммиттер] +. crossref:dev-model[role-contributor, Участник (контрибьютор)] +. crossref:dev-model[role-vendor, Поставщик] +. crossref:dev-model[role-reviewer, Рецензенты] + +[crossref:dev-model[freebsd-committer, FreeBSD, 2001]] [crossref:dev-model[jorgensen2001, Jørgensen, 2001]] + +[[process-core-election]] +=== Выборы основной команды (Core Team) + +Выборы Core Team проводятся не реже чем раз в два года. footnote:[Первые выборы Core Team состоялись в сентябре 2000 года] Избираются девять участников Core Team. Новые выборы проводятся, если количество участников Core Team становится меньше семи. Новые выборы также могут быть проведены, если этого потребуют как минимум 1/3 активных коммиттеров. + +Когда должны состояться выборы, Core Team объявляет об этом как минимум за 6 недель и назначает менеджера выборов для их проведения. + +Только коммиттеры могут быть избраны в состав основной команды (Core Team). Кандидаты должны подать свои заявки как минимум за одну неделю до начала выборов, но могут уточнять свои заявления до начала голосования. Они представлены в http://election.uk.freebsd.org/candidates.html[списке кандидатов]. При составлении своих предвыборных заявлений кандидаты должны ответить на несколько стандартных вопросов, предоставленных организатором выборов. + +Во время выборов строго соблюдается правило, что коммиттер должен был сделать коммит в течение последних 12 месяцев. Только эти коммиттеры имеют право голосовать. + +При голосовании коммиттер может проголосовать один раз в поддержку до девяти номинантов. Голосование проводится в течение четырёх недель, с напоминаниями, публикуемыми в рассылке "developers", доступной всем коммиттерам. + +Результаты выборов публикуются через неделю после их окончания, а новая основная команда вступает в должность через неделю после публикации результатов. + +В случае ничьей при голосовании, это будет разрешено новыми, однозначно избранными членами ядра. + +Голоса и заявления кандидатов архивируются, но архивы не являются общедоступными. + +.Процесс вкратце: Выборы основной команды (Core Team) +image::proc-elections.png["Обратитесь к абзацу ниже для версии, совместимой с программами чтения с экрана."] + +Core Team объявляет выборы и назначает руководителя выборов, который подготавливает процесс. Когда всё готово, кандидаты могут объявить о своей кандидатуре, представив заявления. Затем коммиттеры голосуют. После завершения голосования результаты выборов объявляются, и новая основная команда вступает в должность. + +Ответственный за выборы Core Team: + +* crossref:dev-model[role-core, Основная команда (Core Team)] +* crossref:dev-model[role-committer, Коммиттер] +* crossref:dev-model[role-election-manager, Менеджер выборов] + +[crossref:dev-model[freebsd-bylaws, FreeBSD, 2000A]] [crossref:dev-model[bsd-election2002, FreeBSD, 2002B]] [crossref:dev-model[freebsd-election, FreeBSD, 2002G]] + +[[new-features]] +=== Разработка новых функций + +В рамках проекта существуют подпроекты, работающие над новыми функциями. Эти проекты обычно выполняются одним человеком [crossref:dev-model[jorgensen2001, Йоргенсен, 2001]]. Каждый проект волен организовывать разработку так, как считает нужным. Однако, когда проект объединяется с ветвью -CURRENT, он должен следовать руководствам проекта. Когда код хорошо протестирован в ветви -CURRENT и признан достаточно стабильным и актуальным для ветви -STABLE, он объединяется с ветвью -STABLE. + +Требования проекта определяются пожеланиями разработчиков, запросами сообщества в виде прямых обращений по почте, отчетов о проблемах (Problem Reports), коммерческим финансированием разработки функциональности или вкладами научного сообщества. Пожелания, которые входят в зону ответственности разработчика, передаются этому разработчику, который расставляет приоритеты между запросом и своими собственными пожеланиями. Распространенный способ организации этого процесса — ведение списка задач (TODO-list), поддерживаемого проектом. Задачи, не вхо ящие в чью-либо зону ответственности, собираются в списках TODO, пока кто-нибудь не возьмет на себя ответственность за их выполнение. Все запросы, их распределение и отслеживание обрабатываются с помощью инструмента crossref:dev-model[tool-bugzilla, Bugzilla]. + +Анализ требований происходит двумя способами. Поступившие запросы обсуждаются в почтовых рассылках, как в основном проекте, так и в подпроекте, к которому относится запрос или который создается этим запросом. Кроме того, отдельные разработчики подпроекта оценивают осуществимость запросов и определяют приоритеты между ними. Помимо архивов обсуждений, на этом этапе не создается никаких результатов, которые включаются в основной проект. + +Поскольку запросы приоритизируются отдельными разработчиками на основе того, что они считают интересным, необходимым или за что им платят, отсутствует общая стратегия или приоритезация того, какие запросы считать требованиями, и как контролировать их корректную реализацию. Однако большинство разработчиков разделяют общее видение того, какие вопросы являются более важными, и они могут запросить рекомендации у команды инженеров по выпуску релизов. + +Фаза проверки проекта состоит из двух этапов. Перед внесением кода в текущую ветку разработчики запрашивают рецензирование своего кода коллегами. Это рецензирование в основном проводится с помощью функционального тестирования, но также важна проверка кода. Когда код внесён в ветку, проводится более широкое функциональное тестирование, которое может привести к дополнительной проверке кода и отладке, если код ведёт себя не так, как ожидалось. Эта вторая форма проверки может рассматриваться как структурная верификация. Хотя сами подпрое кты могут писать формальные тесты, такие как модульные тесты, они обычно не собираются основным проектом и чаще всего удаляются перед внесением кода в текущую ветку. footnote:[Однако всё больше тестов выполняется при сборке системы (make world). Эти тесты являются очень новым дополнением, и систематическая структура для них ещё не создана.] + +[[model-maintenance]] +=== Сопровождение + +Для проекта полезно, чтобы за каждую область исходного кода отвечал хотя бы один человек, который хорошо её знает. Некоторые части кода имеют назначенных сопровождающих. Другие имеют фактических сопровождающих, а некоторые части системы не имеют сопровождающих. Сопровождающий обычно является участником подпроекта, который написал и интегрировал код, или тем, кто портировал его с платформы, для которой он был написан. footnote:[sendmail и named — примеры кода, который был объединён с других платформ.] Задача сопровождающего — убедиться, что код синх ронизирован с проектом, из которого он получен, если это сторонний код, а также применять патчи, предоставленные сообществом, или исправлять обнаруженные проблемы. + +Основной объем работы, вкладываемый в проект FreeBSD, связан с сопровождением. [crossref:dev-model[jorgensen2001, Jørgensen, 2001]] предоставляет схему, показывающую жизненный цикл изменений. + +Модель Йоргенссена для интеграции изменений + +[.informaltable] +[cols="1,1,1", options="header"] +|=== +| Этап +| Следующий, если успешно +| Следующий, если неудачно + +|программирование +|рецензирование +| + +|рецензирование +|предварительная проверка перед коммитом +|программирование + +|предварительная проверка перед коммитом +|релиз для разработки +|программирование + +|релиз для разработки +|параллельная отладка +|программирование + +|параллельная отладка +|релиз для производства +|программирование + +|релиз для производства +| +|программирование +|=== + +Здесь "релиз для разработки" относится к ветке -CURRENT, а "релиз для производства" — к ветке -STABLE. "Предварительная проверка перед коммитом" — это функциональное тестирование, проводимое коллегами-разработчиками по запросу или для проверки кода с целью определения состояния подпроекта. "Параллельная отладка" — это функциональное тестирование, которое может вызвать дополнительный обзор и отладку, когда код включён в ветку -CURRENT. + +На момент написания этого документа в проекте было 269 коммиттеров. Когда они вносят изменения в ветку, это создает новый выпуск. Очень часто пользователи в сообществе отслеживают определенную ветку. Мгновенное появление нового выпуска делает изменения широко доступными сразу же и позволяет быстро получать отзывы от сообщества. Это также дает сообществу ожидаемое время реакции на проблемы, которые важны для них. Это делает сообщество более вовлеченным, что, в свою очередь, позволяет получать больше и лучше отзывов, что снова стимулирует ольше сопровождения и в конечном итоге должно создать лучший продукт. + +Прежде чем вносить изменения в код в частях дерева, история которых неизвестна коммиттеру, коммиттер обязан прочитать журналы коммитов, чтобы понять, почему определённые функции реализованы именно так, и избежать ошибок, которые уже были обдуманы или исправлены ранее. + +[[model-pr]] +=== Сообщение о проблеме + +До FreeBSD 10 в FreeBSD входил инструмент для отправки отчётов о проблемах под названием `send-pr`. Проблемы включают отчёты об ошибках, запросы функций, улучшения функций и уведомления о новых версиях внешнего программного обеспечения, включённого в проект. Хотя `send-pr` доступен, пользователям и разработчикам рекомендуется отправлять проблемы, используя нашу https://bugs.freebsd.org/submit/[форму отчёта о проблемах]. + +Отчёты о проблемах отправляются на электронный адрес, откуда они попадают в базу данных сопровождения отчётов о проблемах. crossref:dev-model[role-bugbuster, Исправитель ошибок (Bugbuster)] классифицирует проблему и направляет её соответствующей группе или сопровождающему в рамках проекта. После того, как кто-то берёт ответственность за отчёт, он анализируется. Этот анализ включает проверку проблемы и разработку решения. Часто требуется обратная связь от автора отчёта или даже от сообщества FreeBSD. Как только создаётся патч для устранения проблемы, автора от ета могут попросить его протестировать. В итоге рабочий патч интегрируется в проект и, если необходимо, документируется. Затем он проходит стандартный цикл сопровождения, как описано в разделе crossref:dev-model[model-maintenance, Сопровождение]. Отчёт о проблеме может находиться в следующих состояниях: открыт, анализируется, ожидает обратной связи, исправлен патчем, отложен и закрыт. Состояние "отложен" используется, когда дальнейшее продвижение невозможно из-за недостатка информации или когда задача требует столько работы, что в данный момент никто на д ней не работает. + +.Сводка процесса: сообщение о проблеме +image::proc-pr.png["Обратитесь к абзацу ниже для версии, совместимой с программами чтения с экрана."] + +Проблема сообщается автором отчета. Затем она классифицируется ответственным за обработку ошибок и передается соответствующему сопровождающему. Он проверяет проблему и обсуждает её с автором отчёта до тех пор, пока не будет собрано достаточно информации для создания рабочего исправления. Это исправление затем фиксируется, и отчёт о проблеме закрывается. + +Роли, включенные в этот процесс: + +. crossref:dev-model[role-problem-originator, Инициатор отчета] +. crossref:dev-model[role-maintainer, Сопровождение] +. crossref:dev-model[role-bugbuster, Исправитель ошибок (Bugbuster)] + +[crossref:dev-model[freebsd-handle-pr, FreeBSD, 2002C]]. [crossref:dev-model[freebsd-send-pr, FreeBSD, 2002D]] + +[[process-reactions]] +=== Реагирование на неправильное поведение + +[crossref:dev-model[freebsd-committer, FreeBSD, 2001]] содержит ряд правил, которым должны следовать коммиттеры. Однако случается, что эти правила нарушаются. Следующие правила существуют для того, чтобы можно было реагировать на неподобающее поведение. Они определяют, какие действия приведут к приостановке привилегий коммиттера на тот или иной срок. + +* Совершение коммитов во время заморозки кода без одобрения команды Release Engineering — 2 дня +* Коммит изменений в ветку безопасности без одобрения - 2 дня +* Войны коммитов — 5 дней для всех участвующих сторон +* Невежливое или неподобающее поведение — 5 дней + +[crossref:dev-model[ref-freebsd-trenches, Lehey, 2002]] + +Для эффективности приостановок любой член основной команды (Core Team) может применить приостановку до обсуждения на почтовой рассылке "core". Повторные нарушители могут, при 2/3 голосов от основной команды, получить более строгие наказания, включая постоянное лишение прав на коммиты. (Однако последнее всегда рассматривается как крайняя мера из-за присущей ему склонности вызывать споры.) Все приостановки публикуются в почтовой рассылке "developers", доступной только коммиттерам. + +Важно, что вас не могут приостановить за технические ошибки. Все наказания связаны с нарушением социального этикета. + +Роли, участвующие в этом процессе: + +* crossref:dev-model[role-core, Основная команда (Core Team)] +* crossref:dev-model[role-committer, Коммиттер] + +[[process-release-engineering]] +=== Выпуск релизов + +Проект FreeBSD имеет команду инженеров по выпуску релизов с главным инженером, который отвечает за создание релизов FreeBSD для распространения среди пользователей через интернет или продажи в розничных магазинах. Поскольку FreeBSD доступна на нескольких платформах, а релизы для различных архитектур выпускаются одновременно, в команде есть ответственный за каждую архитектуру. Также в команде есть роли, отвечающие за координацию усилий по обеспечению качества, сборку набора пакетов и актуализацию документации. Под инженером по выпуску релизов одразумевается представитель команды инженеров по выпуску релизов. + +Когда готовится выпуск релиза, проект FreeBSD несколько меняет свою структуру. Составляется график выпуска, включающий заморозку функциональности и кода, выпуск промежуточных релизов и финального релиза. Заморозка функциональности означает, что новые функции не могут быть добавлены в ветку без явного согласия инженеров релиза. Заморозка кода означает, что изменения в коде (например, исправления ошибок) не могут быть добавлены без явного согласия инженеров релиза. Этот процесс заморозки функциональности и кода известен как стабилизация. В процессе выпуска релиза инженер релиза имеет полномочия откатываться к более старым версиям кода и, таким образом, "отменять" изменения, если они сочтут, что эти изменения не подходят для включения в релиз. + +Существует три различных вида выпусков: + +. .0 выпуски являются первым релизом основной версии. Они ветвятся от ветки -CURRENT и имеют значительно более длительный цикл разработки из-за нестабильного характера ветки -CURRENT +. .X релизы — это релизы ветки -STABLE. Они запланированы к выходу каждые 4 месяца. +. .X.Y — это выпуски с исправлениями уязвимостей, следующие за веткой .X. Они выходят только тогда, когда с момента последнего выпуска в этой ветке было объединено достаточное количество исправлений уязвимостей. Новые функции включаются редко, а команда безопасности участвует в этих выпусках гораздо активнее, чем в обычных. + +Для выпусков ветки -STABLE процесс выпуска начинается за 45 дней до предполагаемой даты релиза. В течение первой фазы, первых 15 дней, разработчики переносят изменения из -CURRENT, которые они хотят включить в релиз, в ветку выпуска. По окончании этого периода код входит в 15-дневный период заморозки, в течение которого допускаются только исправления ошибок, обновления документации, исправления, связанные с безопасностью, и незначительные изменения драйверов устройств. Эти изменения должны быть предварительно одобрены инженером выпуска. В начале оследнего 15-дневного периода создается кандидат на выпуск для широкого тестирования. В этот период вероятность внесения изменений снижается, за исключением важных исправлений ошибок и обновлений безопасности. В этот заключительный период все выпуски считаются кандидатами на выпуск. По завершении процесса выпуска создается релиз с новым номером версии, включая бинарные дистрибутивы на веб-сайтах и создание образов CD-ROM. Однако релиз не считается «действительно выпущенным» до тех пор, пока на список рассылки freebsd-announce не будет отправле о сообщение, подписанно! е с помощью crossref:dev-model[tool-pgp, Pretty Good Privacy], в котором явно указано, что релиз состоялся; все, что обозначено как «релиз» до этого момента, может находиться в процессе доработки и изменяться до отправки PGP-подписанного сообщения. footnote:[Многие коммерческие поставщики используют эти образы для создания CD-ROM, которые продаются в розничных магазинах.]. + +Версии ветки -CURRENT (то есть все версии, оканчивающиеся на ".0"), очень похожи, но с вдвое большим временным промежутком. Процесс начинается за 8 недель до выпуска с объявления графика релиза. Через две недели после начала процесса выпуска вводится заморозка функциональности, и оптимизация производительности должна быть сведена к минимуму. За четыре недели до выпуска становится доступна официальная бета-версия. За две недели до выпуска код официально ветвится в новую версию. Этой версии присваивается статус релиз-кандидата, и, как и в случае с разработкой -STABLE, заморозка кода релиз-кандидата ужесточается. Однако разработка на основной ветке разработки может продолжаться. За исключением этих различий, процессы разработки релизов схожи. + +*.0 releases go into their own branch and are aimed mainly at early adopters. The branch then goes through a period of stabilisation, and it is not until the crossref:dev-model[role-releng, Release Engineering Team] decides the demands to stability have been satisfied that the branch becomes -STABLE and -CURRENT targets the next major version. While this for the majority has been with *.1 versions, this is not a demand. + +Большинство выпусков происходит по достижении даты, которая считается достаточно отдалённой от предыдущего выпуска. Установлена цель выпускать основные версии каждые 18 месяцев, а промежуточные — каждые 4 месяца. Сообщество пользователей чётко дало понять, что безопасность и стабильность не могут быть принесены в жертву из-за самостоятельно установленных сроков и целевых дат выпуска. Чтобы задержки не становились слишком длинными в вопросах безопасности и стабильности, требуется дополнительная дисциплина при внесении изменений в -STAB LE. + +. Сделать график выпуска релизов +. Заморозить функциональность +. Заморозка кода +. Создать ветку +. Кандидат на выпуск +. Стабилизировать выпуск (при необходимости вернуться к предыдущему шагу; когда выпуск считается стабильным, перейти к следующему шагу) +. Собрать пакеты +. Предупредить сайты-зеркала +. Опубликовать выпуск + +// Keep the spaces around the external square bracket to avoid a warning in the +// PDF converter +[ crossref:dev-model[freebsd-releng, FreeBSD, 2002E] ] + +[[tools]] +== Инструменты + +Основные инструменты поддержки процесса разработки — это Bugzilla, Mailman и OpenSSH. Это инструменты, разработанные сторонними организациями, которые широко используются в мире открытого исходного кода. + +[[tool-git]] +=== Git + +Git — это система для управления несколькими версиями текстовых файлов, отслеживания внесённых изменений, их авторов и причин. Проект хранится в «репозитории», а разные версии считаются разными «ветками». + +[[tool-bugzilla]] +=== Bugzilla + +Bugzilla — это база данных для сопровождения, состоящая из набора инструментов для отслеживания ошибок на центральном сайте. Она поддерживает процесс отслеживания ошибок, включая отправку и обработку ошибок, а также запросы и обновление базы данных, а также редактирование отчётов об ошибках. Проект использует веб-интерфейс для отправки "Отчётов о проблемах" на центральный сервер Bugzilla проекта. У коммиттеров также есть веб- и командные клиенты. + +[[model-mailman]] +=== Mailman + +Mailman - это программа, которая автоматизирует управление почтовыми рассылками. Проект FreeBSD использует ее для ведения 16 общих рассылок, 60 технических рассылок, 4 ограниченных рассылок и 5 рассылок с логами коммитов Git. Она также используется для многих почтовых рассылок, созданных и используемых другими людьми и проектами в сообществе FreeBSD. Общие рассылки предназначены для широкой публики, технические рассылки в основном предназначены для разработки определенных областей интересов, а закрытые рассылки используются для внутренней коммуник ции, не предназначенной для широкой публики. Большая часть всей коммуникации в проекте проходит через эти 85 рассылок [crossref:dev-model[ref-bsd-handbook, FreeBSD, 2003A], Приложение C]. + +[[tool-pgp]] +=== Pretty Good Privacy + +Pretty Good Privacy, более известный как PGP, — это криптосистема, использующая архитектуру открытого ключа, чтобы позволить пользователям подписывать и/или шифровать информацию цифровой подписью для обеспечения безопасной связи между двумя сторонами. Подпись используется при отправке информации множеству получателей, позволяя им убедиться, что информация не была изменена до того, как они её получили. В проекте FreeBSD это основной способ убедиться, что информация была написана тем, кто утверждает, что её создал, и не была изменена в процессе переда и. + +[[tool-ssh2]] +=== Secure Shell (SSH) + +Secure Shell - это стандарт безопасного входа в удалённую систему и выполнения команд на ней. Он позволяет устанавливать и защищать другие соединения, называемые туннелями, между двумя взаимодействующими системами. Этот стандарт существует в двух основных версиях, и только версия два используется в проекте FreeBSD. Наиболее распространённая реализация стандарта - OpenSSH, которая входит в основную дистрибуцию проекта. Поскольку её исходный код обновляется чаще, чем выпуски FreeBSD, последняя версия также доступна в дереве портов. + +[[sub-projects]] +== Подпроекты +Подпроекты создаются для уменьшения объема коммуникации, необходимой для координации группы разработчиков. Когда проблемная область достаточно изолирована, большая часть коммуникации происходит внутри группы, сосредоточенной на проблеме, что требует меньше общения с другими группами по сравнению с ситуацией, когда группа не изолирована. + +[[sub-project-ports]] +=== Подпроект Ports + +"Порт" — это набор метаданных и патчей, необходимых для загрузки, компиляции и корректной установки внешнего программного обеспечения в системе FreeBSD. Количество портов растёт с огромной скоростью, как показано на следующем рисунке. + +.Количество портов, добавленных между 1995 и 2022 годами +[[fig-ports]] +image::portsstatus.svg["Обратитесь к параграфам ниже для версии, удобной для экранных дикторов."] + +crossref:dev-model[fig-ports,image::portsstatus.svg] показывает количество портов, доступных для FreeBSD в период с 1995 по 2022 год. Похоже, что кривая сначала росла экспоненциально, а затем с середины 2001 до середины 2007 года росла линейно со скоростью около 2000 портов/год, после чего скорость роста снизилась. + +Поскольку внешнее программное обеспечение, описываемое портом, часто находится в стадии активной разработки, объем работы, необходимой для поддержки портов, уже велик и продолжает расти. Это привело к тому, что часть проекта FreeBSD, связанная с портами, получила более самостоятельную структуру и все больше становится подпроектом проекта FreeBSD. + +Порты имеют свою собственную основную команду с crossref:dev-model[role-ports-manager, Менеджером Портов] во главе, и эта команда может назначать коммиттеров без одобрения Основной команды FreeBSD (Core Team). В отличие от проекта FreeBSD, где активное сопровождение часто вознаграждается правом коммита, подпроект портов включает множество активных сопровождающих, не являющихся коммиттерами. + +В отличие от основного проекта, дерево портов не разветвляется. Каждый выпуск FreeBSD следует текущей коллекции портов, что обеспечивает доступ к обновлённой информации о том, где найти программы и как их собрать. Однако это означает, что порт, зависящий от системы, может требовать изменений в зависимости от версии FreeBSD, на которой он запущен. + +С неразветвлённым репозиторием портов невозможно гарантировать, что любой порт будет работать на чём-либо, кроме -CURRENT и -STABLE, в частности на старых, минорных выпусках. Для этого нет ни инфраструктуры, ни времени волонтёров. + +Команды, зависящие от Ports, такие как команда выпуска релизов, для эффективности коммуникации имеют своих собственных представителей по портам. + +[[sub-project-documentation]] +=== Проект документации FreeBSD + +Проект документации FreeBSD был начат в январе 1995 года. От первоначальной группы, состоявшей из руководителя проекта, четырёх руководителей команд и 16 участников, сейчас общее число коммиттеров достигло 44. Список рассылки документации насчитывает чуть менее 300 участников, что указывает на довольно большое сообщество вокруг него. + +Цель проекта Документации — предоставить качественную и полезную документацию проекта FreeBSD, чтобы новые пользователи могли легче освоить систему, а также подробно описать расширенные функции для пользователей. + +Основные задачи проекта Documentation — работа над текущими проектами в "Наборе документации FreeBSD" и перевод документации на другие языки. + +Как и проект FreeBSD, документация разделена на те же ветви. Это сделано для того, чтобы для каждой версии всегда была обновлённая документация. В ветвях безопасности исправляются только ошибки в документации. + +Как и подпроект ports, проект Documentation может назначать коммиттеров документации без одобрения основной команды FreeBSD (Core Team). [crossref:dev-model[freebsd-doceng-charter, FreeBSD, 2003B]]. + +Проект документации включает в себя extref:{fdp-primer}[вводное руководство]. Оно используется как для ознакомления новых участников проекта со стандартными инструментами и синтаксисом, так и в качестве справочника при работе над проектом. + +:sectnums!: + +[bibliography] +[[bibliography]] +== Список литературы + +[[brooks]] +[Brooks, 1995] Фредерик П. Брукс. Авторское право © 1975, 1995 Pearson Education Limited. 0201835959. Addison-Wesley Pub Co. Мифический человекомесяц. Эссе о программной инженерии, юбилейное издание (2-е издание). + +[[thesis]] +[Saers, 2003] Никлас Саерс. Авторское право © 2003. Модель проекта для FreeBSD. Кандидатская диссертация. http://niklas.saers.com/thesis. + +[[jorgensen2001]] +[Йоргенсен, 2001] Нильс Йоргенсен. Copyright © 2001. _Putting it All in the Trunk. Incremental Software Development in the FreeBSD Open Source Project_. http://www.dat.ruc.dk/~nielsj/research/papers/freebsd.pdf. + +[[ref-pmbok]] +[PMI, 2000] Институт управления проектами. Copyright © 1996, 2000 Институт управления проектами. 1-880410-23-0. Институт управления проектами. Ньютаун Сквер, Пенсильвания, США. PMBOK Guide. A Guide to the Project Management Body of Knowledge (Руководство PMBOK. Руководство к своду знаний по управлению проектами), издание 2000 года. + +[[freebsd-bylaws]] +[FreeBSD, 2000A] Copyright © 2002 The FreeBSD Project. Core Bylaws. https://www.freebsd.org/internal/bylaws/. + +[[freebsd-developer-handbook]] +[FreeBSD, 2002A] Copyright © 2002 The FreeBSD Documentation Project. Руководство FreeBSD для разработчиков. extref:{developers-handbook}[Руководство FreeBSD для разработчиков]. + +[[bsd-election2002]] +[FreeBSD, 2002B] Copyright © 2002 Проект FreeBSD. Выборы состава основной команды (Core Team) 2002. http://election.uk.freebsd.org/candidates.html. + +[[freebsd-handle-pr]] +[FreeBSD, 2002C] Даг-Эрлинг Смёрграв и Хитен Пандья. Copyright © 2002 The FreeBSD Documentation Project. The FreeBSD Documentation Project. Рекомендации по работе с сообщениями о проблемах. extref:{pr-guidelines}[Рекомендации по работе с сообщениями о проблемах]. + +[[freebsd-send-pr]] +[FreeBSD, 2002D] Даг-Эрлинг Смёрграв. Copyright © 2002 Проект документации FreeBSD. Проект документации FreeBSD. Составление сообщений о проблеме во FreeBSD. extref:{problem-reports}[Составление сообщений о проблеме во FreeBSD]. + +[[freebsd-committer]] +[FreeBSD, 2001] Copyright © 2001 The FreeBSD Documentation Project. The FreeBSD Documentation Project. Справочник коммиттера. extref:{committers-guide}[Справочник коммиттера]. + +[[freebsd-releng]] +[FreeBSD, 2002E] Мюррей Стокли. Copyright © 2002 The FreeBSD Documentation Project. Проект документации FreeBSD. Подготовка релизов FreeBSD. extref:{releng}[Подготовка релизов FreeBSD]. + +[[ref-bsd-handbook]] +[FreeBSD, 2003A] Проект документации FreeBSD. Руководство FreeBSD. extref:{handbook}[Руководство FreeBSD]. + +[[freebsd-contributors]] +[FreeBSD, 2002F] Copyright © 2002 The FreeBSD Documentation Project. Проект документации FreeBSD. Участники проекта FreeBSD. extref:{contributors}[Участники проекта FreeBSD]. + +[[freebsd-election]] +[FreeBSD, 2002G] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. Выборы состава основной команды (Core Team) 2002. http://election.uk.freebsd.org. + +[[freebsd-expiration-policy]] +[FreeBSD, 2002H] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. Политика истечения срока действия битов коммитов. 2002/04/06 15:35:30. https://www.freebsd.org/internal/expire-bits/. + +[[freebsd-new-account]] +[FreeBSD, 2002I] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. Процедура создания нового аккаунта. 2002/08/19 17:11:27. https://www.freebsd.org/internal/new-account/. + +[[freebsd-doceng-charter]] +[FreeBSD, 2003B] Copyright © 2002 The FreeBSD Documentation Project. The FreeBSD Documentation Project. Устав команды разработчиков документации FreeBSD. 2003/03/16 12:17. https://www.freebsd.org/internal/doceng/. + +[[ref-freebsd-trenches]] +[Lehey, 2002] Грег Лехи. Copyright © 2002 Грег Лехи. Грег Лехи. Two years in the trenches. The evolution of a software project (Два года в окопах. Эволюция программного проекта). http://www.lemis.com/grog/In-the-trenches.pdf. diff --git a/documentation/content/ru/books/dev-model/_index.po b/documentation/content/ru/books/dev-model/_index.po new file mode 100644 index 0000000000..b619bee136 --- /dev/null +++ b/documentation/content/ru/books/dev-model/_index.po @@ -0,0 +1,3865 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-20 14:30+0300\n" +"PO-Revision-Date: 2025-09-20 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/dev-model/_index.adoc:1 +#, no-wrap +msgid "A formal study of the organization of the FreeBSD project" +msgstr "Формальное исследование организации проекта FreeBSD" + +#. Copyright (c) 2002-2005 Niklas Saers +#. All rights reserved. +#. Redistribution and use in source and binary forms, with or without +#. modification, are permitted provided that the following conditions +#. are met: +#. 1. Redistributions of source code must retain the above copyright +#. notice, this list of conditions and the following disclaimer. +#. 2. Redistributions in binary form must reproduce the above copyright +#. notice, this list of conditions and the following disclaimer in the +#. documentation and/or other materials provided with the distribution. +#. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +#. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +#. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +#. ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +#. FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +#. DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +#. OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +#. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +#. LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +#. OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +#. SUCH DAMAGE. +#. type: Title = +#: documentation/content/en/books/dev-model/_index.adoc:1 +#: documentation/content/en/books/dev-model/_index.adoc:39 +#, no-wrap *** 3814 LINES SKIPPED *** From nobody Sun Sep 21 09:18:42 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cV0zQ5nDSz67p1s for ; Sun, 21 Sep 2025 09:18:42 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cV0zQ36hgz3NMb; Sun, 21 Sep 2025 09:18:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758446322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KFuGoin1raUR0BYqVMdQJoj8nImi4XEIyqvCHeSv/bc=; b=DSA0AEZ72TEptxWx1zeA64JoQ23w5pdgYOfS3kIXK492hte/B3i1i4DwHjLhUHpBINtLry IWh07O4oqz94FiVXL3Yr3tP1zQeKzvPKiYUlMscx742Ic61e2ovJlWOvcJe/CBixoPRn68 AlU6qknWYKcqb8gPgoatALV31WK0O5i7+i2+gVQItpDEXpv4fgj9H6UaYzIfwniAJt7dIy X3SyX9uwv3PooE5XNSs/Y7h0Grrcl8TQiTUn3gofs4tV+PKEzYzSqE8+6GX+6/R3Y9EKk6 UWRne8C0u+Za/g5GVhw3B+oNjExqDc8g2qOK7+PsjaD7cpF1Mjr35JFP1nWKGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758446322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KFuGoin1raUR0BYqVMdQJoj8nImi4XEIyqvCHeSv/bc=; b=IAjaT/WbYKfKWZAzlFVzcMuiBzLvgvAp1pEDHNj/GteUnVqvC2wqENJlgc9fAI4zVnjkMD kdjNtJlmTtz592PD2NBt221Nbz8X+2K0IVEyO7PYFy6ELl1EjrGNY0gd/sUhDtQiO+h3AF 3WGzTo/2fMOZ/Ui9UpqXFEt9JxwEw7ORfpunDvkheTMhAaAaiKUDSrVUotvG98w65astG/ /BTtC74Zkn9nw9wV94om16cQKHcQ+BzIoLBul4IYOPM7HaiXhin8aNaRGASzbHTCX0qgG7 pHjoT7She5x9uYELFppYIuSa5prrWe1dKTkW/N76Zd15veCESwdv+GKjVobVdQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758446322; a=rsa-sha256; cv=none; b=o6oiHz3YVYGyie2/bhQdy5a/bErwuuDpr88se8cfz6955B7XSX+ekGmVUA33Sl0tGC/oDs Sws68Ij3r2clL+1oouJKBuJSrLWI0YW7vPWlIGTz6Hsqq/gGlomvIH3+hq/TkopcceStJ3 e86rVnSAQIGHXHbaaPjIVSUVVR7VF9sMoY6VDFTXPJqxq5gVf/JCulmUpB7bF4E3KB28zm sNTfEXDadthh+WnTLm++EIvw8SwPr9o17VtyxOj8bRWOOP/qmmDkhoz/2NnnaNZGQTQ/GC 0+L9gq7M5iGPoiW4c8ucb+yzZUvOUOwDNHiyw1C0FFuCGTYq/voj2TINzng1PA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cV0zQ2cDQz16lB; Sun, 21 Sep 2025 09:18:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58L9IgUk082859; Sun, 21 Sep 2025 09:18:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58L9Ig6x082855; Sun, 21 Sep 2025 09:18:42 GMT (envelope-from git) Date: Sun, 21 Sep 2025 09:18:42 GMT Message-Id: <202509210918.58L9Ig6x082855@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: ab5ebd45b1 - main - update translation of articles/freebsd-update-server to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ab5ebd45b188d554d516a7f7d51ea21e2c7dd411 Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=ab5ebd45b188d554d516a7f7d51ea21e2c7dd411 commit ab5ebd45b188d554d516a7f7d51ea21e2c7dd411 Author: Vladlen Popolitov AuthorDate: 2025-09-21 09:18:29 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-21 09:18:29 +0000 update translation of articles/freebsd-update-server to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D51950 --- .../ru/articles/freebsd-update-server/_index.adoc | 610 ++++++++ .../ru/articles/freebsd-update-server/_index.po | 1482 ++++++++++++++++++++ 2 files changed, 2092 insertions(+) diff --git a/documentation/content/ru/articles/freebsd-update-server/_index.adoc b/documentation/content/ru/articles/freebsd-update-server/_index.adoc new file mode 100644 index 0000000000..d2aa4552ee --- /dev/null +++ b/documentation/content/ru/articles/freebsd-update-server/_index.adoc @@ -0,0 +1,610 @@ +--- +authors: + - + author: 'Jason Helfman' + email: jgh@FreeBSD.org +copyright: '2009-2011, 2013 Jason Helfman' +description: 'Создание собственного сервера freebsd-update позволяет системному администратору выполнять быстрые обновления для множества машин из локального зеркала' +tags: ["FreeBSD", "Update", "Server", "internal"] +title: 'Создайте свой собственный сервер обновлений FreeBSD' +trademarks: ["freebsd", "amd", "intel", "general"] +--- + += Создайте свой собственный сервер обновлений FreeBSD +:doctype: article +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:source-highlighter: rouge +:experimental: +:images-path: articles/freebsd-update-server/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +:imagesdir: ../../../images/{images-path} +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + + +[WARNING] +==== +Инструкции в этой статье относятся к более старой версии FreeBSD и могут не работать корректно в последних версиях ОС. В связи с появлением pkgbase, утилита freebsd-update планируется к удалению из FreeBSD в будущем. Когда это произойдет, статья будет либо обновлена с учетом новых процедур, либо полностью удалена. +==== + +[.abstract-title] +Аннотация + +В этой статье описывается создание внутреннего сервера обновлений FreeBSD. https://github.com/freebsd/freebsd-update-build/[freebsd-update-server] написан `{cperciva}`, почетным руководителем безопасности FreeBSD. Для пользователей, которым удобно обновлять свои системы через официальный сервер обновлений, создание собственного сервера обновлений FreeBSD может помочь расширить его функциональность, поддерживая вручную модифицированные выпуски FreeBSD или предоставляя локальное зеркало, которое позволит ускорить обновления для множества машин. + +''' + +toc::[] + +[[acknowledgments]] +== Благодарности + +Эта статья была впоследствии опубликована в онлайн издании https://people.freebsd.org/~jgh/files/fus/BSD_03_2010_EN.pdf[BSD Magazine]. + +[[introduction]] +== Введение + +Опытные пользователи или администраторы часто отвечают за несколько машин или окружений. Они понимают сложные требования и вызовы, связанные с поддержанием такой инфраструктуры. Запуск сервера обновлений FreeBSD упрощает развертывание исправлений безопасности и программного обеспечения на выбранных тестовых машинах перед их внедрением в рабочую среду. Это также означает, что множество систем могут быть обновлены из локальной сети, а не через потенциально медленное интернет-соединение. В этой статье описаны шаги, необходимые для создан я внутреннего сервера обновлений FreeBSD. + +[[prerequisites]] +== Предварительные требования + +Для создания внутреннего сервера обновлений FreeBSD необходимо выполнить некоторые требования. + +* Работающая система FreeBSD. ++ +[NOTE] +==== +Минимальное требование для обновлений — сборка на версии FreeBSD, которая не меньше целевой версии для распространения. +==== +* Пользовательская учётная запись с как минимум 4 ГБ свободного места. Это позволит создавать обновления для версий 7.1 и 7.2, но точные требования к месту могут меняться от версии к версии. +* Учетная запись man:ssh[1] на удаленной машине для загрузки распределенных обновлений. +* Веб-сервер, например extref:{handbook}[Apache, network-apache], с более чем половиной пространства, необходимого для сборки. Например, тестовые сборки для версий 7.1 и 7.2 занимают в общей сложности 4 ГБ, а пространство веб-сервера, необходимое для распространения этих обновлений, составляет 2.6 ГБ. +* Базовые знания написания скриптов для оболочки Bourne shell, man:sh[1]. + +[[Configuration]] +== Конфигурация: установка и настройка + +Загрузите программное обеспечение https://github.com/freebsd/freebsd-update-build/[freebsd-update-server], установив пакеты package:devel/git[] и package:security/ca_root_nss[], и выполните: + +[source, shell] +.... +% git clone https://github.com/freebsd/freebsd-update-build.git freebsd-update-server +.... + +Обновите соответствующим образом файл [.filename]#scripts/build.conf#. Он используется во всех операциях сборки. + +Вот стандартный [.filename]#build.conf#, который следует изменить в соответствии с вашим окружением. + +[.programlisting] +.... +# Main configuration file for FreeBSD Update builds. The +# release-specific configuration data is lower down in +# the scripts tree. + +# Location from which to fetch releases +export FTP=ftp://ftp2.freebsd.org/pub/FreeBSD/releases <.> + +# Host platform +export HOSTPLATFORM=`uname -m` + +# Host name to use inside jails +export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net <.> + +# Location of SSH key +export SSHKEY=/root/.ssh/id_dsa <.> + +# SSH account into which files are uploaded +MASTERACCT=builder@wadham.daemonology.net <.> + +# Directory into which files are uploaded +MASTERDIR=update-master.freebsd.org <.> +.... + +Учтите возможные варианты следующих настроек: + +<.> Это место, откуда загружаются образы ISO (с помощью подпрограммы `fetchiso()` из файла [.filename]#scripts/build.subr#). Настроенное расположение не ограничивается URI FTP. Должны работать любые схемы URI, поддерживаемые стандартной утилитой man:fetch[1]. Пользовательские изменения кода `fetchiso()` можно установить, скопировав скрипт [.filename]#build.subr# по умолчанию в область, специфичную для выпуска и архитектуры, по пути [.filename]#scripts/РЕЛИЗ/АРХИТЕКТУРА/build.subr#, и применив локальные изменения. + +<.> Имя хоста для сборки. Эта информация будет отображаться на обновленных системах при выполнении команды: ++ +[source, shell] +.... +% uname -v +.... ++ +<.> Ключ SSH для загрузки файлов на сервер обновлений. Пару ключей можно создать, выполнив команду `ssh-keygen -t dsa`. Этот параметр необязателен; стандартная аутентификация по паролю будет использоваться в качестве резервного метода, если `SSHKEY` не определён. Более подробную информацию о SSH и соответствующих шагах по созданию и использованию ключей можно найти на man:ssh-keygen[1]. + +<.> Учетная запись для загрузки файлов на сервер обновлений. + +<.> Каталог на сервере обновлений, в который загружаются файлы. + +В стандартном файле [.filename]#build.conf#, поставляемом с исходниками freebsd-update-server, задана сборка релизов FreeBSD для архитектуры i386. В качестве примера настройки сервера обновлений для других архитектур ниже приведены шаги с необходимыми изменениями конфигурации для amd64: + +[.procedure] +==== +. Создайте среду сборки для amd64: ++ +[source, shell] +.... +% mkdir -p /usr/local/freebsd-update-server/scripts/7.2-RELEASE/amd64 +.... + +. Установите файл [.filename]#build.conf# в только что созданный каталог сборки. Параметры конфигурации сборки для FreeBSD 7.2-RELEASE на amd64 должны быть примерно такими: ++ +[.programlisting] +.... +# SHA256 hash of RELEASE disc1.iso image. +export RELH=1ea1f6f652d7c5f5eab7ef9f8edbed50cb664b08ed761850f95f48e86cc71ef5 <.> +# Components of the world, source, and kernels +export WORLDPARTS="base catpages dict doc games info manpages proflibs lib32" +export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5 \ + lib libexec release rescue sbin secure share sys tools \ + ubin usbin cddl" +export KERNELPARTS="generic" + +# EOL date +export EOL=1275289200 <.> +.... ++ +<.> Хеш-ключ man:sha256[1] для желаемого выпуска опубликован в соответствующем link:https://www.FreeBSD.org/releases/[анонсе выпуска]. +<.> Для получения номера "End of Life" для файла [.filename]#build.conf# обратитесь к "Estimated EOL" на сайте link:https://www.FreeBSD.org/security/security/[FreeBSD Security Website]. Значение `EOL` можно вывести из даты, указанной на веб-сайте, используя утилиту man:date[1], например: ++ +[source, shell] +.... +% date -j -f '%Y%m%d-%H%M%S' '20090401-000000' '+%s' +.... +==== + +[[build]] +== Сборка кода обновления + +Первым шагом является запуск [.filename]#scripts/make.sh#. Это приведёт к сборке некоторых бинарных файлов, созданию каталогов и генерации RSA-ключа подписи, используемого для подтверждения сборок. На этом этапе потребуется ввести парольную фразу для окончательного создания ключа подписи. + +[source, shell] +.... +# sh scripts/make.sh +cc -O2 -fno-strict-aliasing -pipe findstamps.c -o findstamps +findstamps.c: In function 'usage': +findstamps.c:45: warning: incompatible implicit declaration of built-in function 'exit' +cc -O2 -fno-strict-aliasing -pipe unstamp.c -o unstamp +install findstamps ../bin +install unstamp ../bin +rm -f findstamps unstamp +Generating RSA private key, 4096 bit long modulus +................................................................................++ +...................++ +e is 65537 (0x10001) + +Public key fingerprint: +27ef53e48dc869eea6c3136091cc6ab8589f967559824779e855d58a2294de9e + +Encrypting signing key for root +enter aes-256-cbc encryption password: +Verifying - enter aes-256-cbc encryption password: +.... + +[NOTE] +==== +Сохраните сгенерированный отпечаток ключа. Это значение требуется в [.filename]#/etc/freebsd-update.conf# для бинарных обновлений. +==== + +На этом этапе мы готовы к подготовке сборки. + +[source, shell] +.... +# cd /usr/local/freebsd-update-server +# sh scripts/init.sh amd64 7.2-RELEASE +.... + +Ниже приведён пример _первоначальной_ сборки. + +[source, shell] +.... +# sh scripts/init.sh amd64 7.2-RELEASE +Mon Aug 24 16:04:36 PDT 2009 Starting fetch for FreeBSD/amd64 7.2-RELEASE +/usr/local/freebsd-update-server/work/7.2-RELE100 of 588 MB 359 kBps 00m00s +Mon Aug 24 16:32:38 PDT 2009 Verifying disc1 hash for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 16:32:44 PDT 2009 Extracting components for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 16:34:05 PDT 2009 Constructing world+src image for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 16:35:57 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 23:36:24 UTC 2009 Building world for FreeBSD/amd64 7.2-RELEASE +Tue Aug 25 00:31:29 UTC 2009 Distributing world for FreeBSD/amd64 7.2-RELEASE +Tue Aug 25 00:32:36 UTC 2009 Building and distributing kernels for FreeBSD/amd64 7.2-RELEASE +Tue Aug 25 00:44:44 UTC 2009 Constructing world components for FreeBSD/amd64 7.2-RELEASE +Tue Aug 25 00:44:56 UTC 2009 Distributing source for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 17:46:18 PDT 2009 Moving components into staging area for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 17:46:33 PDT 2009 Identifying extra documentation for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 17:47:13 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 17:47:18 PDT 2009 Indexing release for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 17:50:44 PDT 2009 Indexing world0 for FreeBSD/amd64 7.2-RELEASE + +Files built but not released: +Files released but not built: +Files which differ by more than contents: +Files which differ between release and build: +kernel|generic|/GENERIC/hptrr.ko +kernel|generic|/GENERIC/kernel +src|sys|/sys/conf/newvers.sh +world|base|/boot/loader +world|base|/boot/pxeboot +world|base|/etc/mail/freebsd.cf +world|base|/etc/mail/freebsd.submit.cf +world|base|/etc/mail/sendmail.cf +world|base|/etc/mail/submit.cf +world|base|/lib/libcrypto.so.5 +world|base|/usr/bin/ntpq +world|base|/usr/lib/libalias.a +world|base|/usr/lib/libalias_cuseeme.a +world|base|/usr/lib/libalias_dummy.a +world|base|/usr/lib/libalias_ftp.a +... +.... + +Затем выполняется сборка world с применением патчей world. Более подробное объяснение можно найти в [.filename]#scripts/build.subr#. + +[WARNING] +==== +В течение этого второго цикла сборки демон протокола сетевого времени, man:ntpd[8], отключен. По словам `{cperciva}`, почетного офицера безопасности FreeBSD, "код сборки https://github.com/freebsd/freebsd-update-build/[freebsd-update-server] должен идентифицировать временные метки, хранящиеся в файлах, чтобы их можно было игнорировать при сравнении сборок для определения того, какие файлы нуждаются в обновлении. Этот поиск временных меток работает путем выполнения двух сборок с интервалом в 400 дней и сравнения результатов." +==== + +[source, shell] +.... +Mon Aug 24 17:54:07 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-RELEASE +Wed Sep 29 00:54:34 UTC 2010 Building world for FreeBSD/amd64 7.2-RELEASE +Wed Sep 29 01:49:42 UTC 2010 Distributing world for FreeBSD/amd64 7.2-RELEASE +Wed Sep 29 01:50:50 UTC 2010 Building and distributing kernels for FreeBSD/amd64 7.2-RELEASE +Wed Sep 29 02:02:56 UTC 2010 Constructing world components for FreeBSD/amd64 7.2-RELEASE +Wed Sep 29 02:03:08 UTC 2010 Distributing source for FreeBSD/amd64 7.2-RELEASE +Tue Sep 28 19:04:31 PDT 2010 Moving components into staging area for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 19:04:46 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 19:04:51 PDT 2009 Indexing world1 for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 19:08:04 PDT 2009 Locating build stamps for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 19:10:19 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 19:10:19 PDT 2009 Preparing to copy files into staging area for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 19:10:20 PDT 2009 Copying data files into staging area for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 12:16:57 PDT 2009 Copying metadata files into staging area for FreeBSD/amd64 7.2-RELEASE +Mon Aug 24 12:16:59 PDT 2009 Constructing metadata index and tag for FreeBSD/amd64 7.2-RELEASE + +Files found which include build stamps: +kernel|generic|/GENERIC/hptrr.ko +kernel|generic|/GENERIC/kernel +world|base|/boot/loader +world|base|/boot/pxeboot +world|base|/etc/mail/freebsd.cf +world|base|/etc/mail/freebsd.submit.cf +world|base|/etc/mail/sendmail.cf +world|base|/etc/mail/submit.cf +world|base|/lib/libcrypto.so.5 +world|base|/usr/bin/ntpq +world|base|/usr/include/osreldate.h +world|base|/usr/lib/libalias.a +world|base|/usr/lib/libalias_cuseeme.a +world|base|/usr/lib/libalias_dummy.a +world|base|/usr/lib/libalias_ftp.a +... +.... + +Наконец, сборка завершена. + +[source, shell] +.... +Values of build stamps, excluding library archive headers: +v1.2 (Aug 25 2009 00:40:36) +v1.2 (Aug 25 2009 00:38:22) +@()FreeBSD 7.2-RELEASE 0: Tue Aug 25 00:38:29 UTC 2009 +FreeBSD 7.2-RELEASE 0: Tue Aug 25 00:38:29 UTC 2009 + root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC +7.2-RELEASE +Mon Aug 24 23:55:25 UTC 2009 +Mon Aug 24 23:55:25 UTC 2009 + built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009 + built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009 + built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009 + built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009 +Mon Aug 24 23:46:47 UTC 2009 +ntpq 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1) + * Copyright (c) 1992-2009 The FreeBSD Project. +Mon Aug 24 23:46:47 UTC 2009 +Mon Aug 24 23:55:40 UTC 2009 +Aug 25 2009 +ntpd 4.2.4p5-a Mon Aug 24 23:55:52 UTC 2009 (1) +ntpdate 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1) +ntpdc 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1) +Tue Aug 25 00:21:21 UTC 2009 +Tue Aug 25 00:21:21 UTC 2009 +Tue Aug 25 00:21:21 UTC 2009 +Mon Aug 24 23:46:47 UTC 2009 + +FreeBSD/amd64 7.2-RELEASE initialization build complete. Please +review the list of build stamps printed above to confirm that +they look sensible, then run + sh -e approve.sh amd64 7.2-RELEASE +to sign the release. +.... + +Одобрите сборку, если всё правильно. Дополнительную информацию о том, как это определить, можно найти в распределённом исходном файле с именем [.filename]#USAGE#. Выполните [.filename]#scripts/approve.sh#, как указано. Это подпишет релиз и переместит компоненты в промежуточную область, подходящую для загрузки. + +[source, shell] +.... +# cd /usr/local/freebsd-update-server +# sh scripts/mountkey.sh +.... + +[source, shell] +.... +# sh -e scripts/approve.sh amd64 7.2-RELEASE +Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.2-RELEASE +Wed Aug 26 12:50:06 PDT 2009 Copying files to patch source directories for FreeBSD/amd64 7.2-RELEASE +Wed Aug 26 12:50:06 PDT 2009 Copying files to upload staging area for FreeBSD/amd64 7.2-RELEASE +Wed Aug 26 12:50:07 PDT 2009 Updating databases for FreeBSD/amd64 7.2-RELEASE +Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-RELEASE +.... + +После завершения процесса утверждения можно начать процедуру загрузки. + +[source, shell] +.... +# cd /usr/local/freebsd-update-server +# sh scripts/upload.sh amd64 7.2-RELEASE +.... + +[NOTE] +==== +В случае необходимости повторной загрузки кода обновления, это можно сделать, перейдя в публичный каталог дистрибутивов для целевого выпуска и обновив атрибуты файла _uploaded_. + +[source, shell] +.... +# cd /usr/local/freebsd-update-server/pub/7.2-RELEASE/amd64 +# touch -t 200801010101.01 uploaded +.... + +==== + +Загруженные файлы должны находиться в корневом каталоге веб-сервера, чтобы обновления могли распространяться. Точная конфигурация будет зависеть от используемого веб-сервера. Для веб-сервера Apache обратитесь к разделу extref:{handbook}[Настройка серверов Apache, network-apache] в Руководстве. + +Обновите `KeyPrint` и `ServerName` клиента в [.filename]#/etc/freebsd-update.conf# и выполните обновления, как указано в разделе extref:{handbook}[Обновление FreeBSD, updating-upgrading-freebsdupdate] Руководства. + +[IMPORTANT] +==== +Для корректной работы сервера обновлений FreeBSD Update необходимо собирать обновления как для текущего релиза, так и для релиза, _на который планируется обновление_. Это необходимо для определения различий в файлах между релизами. Например, при обновлении системы FreeBSD с 7.1-RELEASE до 7.2-RELEASE потребуется собрать и загрузить на сервер распространения обновления для обеих версий. +==== + +Для справки, полный текст выполнения link:../../source/articles/freebsd-update-server/init.txt[init.sh] прилагается. + +[[patch]] +== Построение патча + +Каждый раз, когда объявляется link:https://www.FreeBSD.org/security/advisories/[консультативный документ по безопасности] или link:https://www.FreeBSD.org/security/notices/[уведомление о безопасности], можно собрать обновление с исправлением. + +Для этого примера будет использоваться версия 7.1-RELEASE. + +Несколько предположений сделано для другой сборки выпуска: + +* Настройка правильной структуры каталогов для первоначальной сборки. +* Выполните первоначальную сборку для 7.1-RELEASE. + +Создайте каталог с патчами соответствующего выпуска в [.filename]#/usr/local/freebsd-update-server/patches/#. + +[source, shell] +.... +% mkdir -p /usr/local/freebsd-update-server/patches/7.1-RELEASE/ +% cd /usr/local/freebsd-update-server/patches/7.1-RELEASE +.... + +В качестве примера возьмем патч для man:named[8]. Прочтите рекомендации и загрузите необходимый файл с link:https://www.FreeBSD.org/security/advisories/[FreeBSD Security Advisories]. Дополнительную информацию о том, как интерпретировать рекомендации, можно найти в extref:{handbook}[FreeBSD Handbook, security-advisories]. + +В https://security.freebsd.org/advisories/FreeBSD-SA-09:12.bind.asc[кратком обзоре безопасности] этот совет называется `SA-09:12.bind`. После загрузки файла необходимо переименовать его в соответствии с уровнем исправления. Рекомендуется сохранять это в соответствии с официальными уровнями исправлений FreeBSD, но имя может быть выбрано свободно. Для данной сборки давайте последуем текущей установленной практике FreeBSD и назовем его `p7`. Переименуйте файл: + +[source, shell] +.... +% cd /usr/local/freebsd-update-server/patches/7.1-RELEASE/; mv bind.patch 7-SA-09:12.bind +.... + +[NOTE] +==== +При выполнении сборки уровня патча предполагается, что предыдущие патчи уже установлены. При запуске сборки патча будут выполнены все патчи, содержащиеся в каталоге патчей. + +В сборку могут быть добавлены пользовательские патчи. Используйте ноль или любое другое число. +==== + +[WARNING] +==== + +Задача администратора сервера FreeBSD Update — принимать соответствующие меры для проверки подлинности каждого патча. +==== + +На этом этапе _diff_ готов к сборке. Программное обеспечение сначала проверяет, был ли запущен [.filename]#scripts/init.sh# для соответствующего выпуска перед выполнением сборки diff. + +[source, shell] +.... +# cd /usr/local/freebsd-update-server +# sh scripts/diff.sh amd64 7.1-RELEASE 7 +.... + +Вот пример выполнения _дифференциальной_ сборки. + +[source, shell] +.... +# sh -e scripts/diff.sh amd64 7.1-RELEASE 7 +Wed Aug 26 10:09:59 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 17:10:25 UTC 2009 Building world for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 18:05:11 UTC 2009 Distributing world for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 18:06:16 UTC 2009 Building and distributing kernels for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 18:17:50 UTC 2009 Constructing world components for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 18:18:02 UTC 2009 Distributing source for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 11:19:23 PDT 2009 Moving components into staging area for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 11:19:37 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 11:19:42 PDT 2009 Indexing world0 for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 11:23:02 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-RELEASE-p7 +Thu Sep 30 18:23:29 UTC 2010 Building world for FreeBSD/amd64 7.1-RELEASE-p7 +Thu Sep 30 19:18:15 UTC 2010 Distributing world for FreeBSD/amd64 7.1-RELEASE-p7 +Thu Sep 30 19:19:18 UTC 2010 Building and distributing kernels for FreeBSD/amd64 7.1-RELEASE-p7 +Thu Sep 30 19:30:52 UTC 2010 Constructing world components for FreeBSD/amd64 7.1-RELEASE-p7 +Thu Sep 30 19:31:03 UTC 2010 Distributing source for FreeBSD/amd64 7.1-RELEASE-p7 +Thu Sep 30 12:32:25 PDT 2010 Moving components into staging area for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:32:39 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:32:43 PDT 2009 Indexing world1 for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:35:54 PDT 2009 Locating build stamps for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:36:58 PDT 2009 Reverting changes due to build stamps for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:37:14 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:37:14 PDT 2009 Preparing to copy files into staging area for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:37:15 PDT 2009 Copying data files into staging area for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:43:23 PDT 2009 Copying metadata files into staging area for FreeBSD/amd64 7.1-RELEASE-p7 +Wed Aug 26 12:43:25 PDT 2009 Constructing metadata index and tag for FreeBSD/amd64 7.1-RELEASE-p7 +... +Files found which include build stamps: +kernel|generic|/GENERIC/hptrr.ko +kernel|generic|/GENERIC/kernel +world|base|/boot/loader +world|base|/boot/pxeboot +world|base|/etc/mail/freebsd.cf +world|base|/etc/mail/freebsd.submit.cf +world|base|/etc/mail/sendmail.cf +world|base|/etc/mail/submit.cf +world|base|/lib/libcrypto.so.5 +world|base|/usr/bin/ntpq +world|base|/usr/include/osreldate.h +world|base|/usr/lib/libalias.a +world|base|/usr/lib/libalias_cuseeme.a +world|base|/usr/lib/libalias_dummy.a +world|base|/usr/lib/libalias_ftp.a +... +Values of build stamps, excluding library archive headers: +v1.2 (Aug 26 2009 18:13:46) +v1.2 (Aug 26 2009 18:11:44) +@()FreeBSD 7.1-RELEASE-p7 0: Wed Aug 26 18:11:50 UTC 2009 +FreeBSD 7.1-RELEASE-p7 0: Wed Aug 26 18:11:50 UTC 2009 + root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC +7.1-RELEASE-p7 +Wed Aug 26 17:29:15 UTC 2009 +Wed Aug 26 17:29:15 UTC 2009 + built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009 + built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009 + built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009 + built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009 +Wed Aug 26 17:20:39 UTC 2009 +ntpq 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1) + * Copyright (c) 1992-2009 The FreeBSD Project. +Wed Aug 26 17:20:39 UTC 2009 +Wed Aug 26 17:29:30 UTC 2009 +Aug 26 2009 +ntpd 4.2.4p5-a Wed Aug 26 17:29:41 UTC 2009 (1) +ntpdate 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1) +ntpdc 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1) +Wed Aug 26 17:55:02 UTC 2009 +Wed Aug 26 17:55:02 UTC 2009 +Wed Aug 26 17:55:02 UTC 2009 +Wed Aug 26 17:20:39 UTC 2009 +... +.... + +Обновления выводятся на экран, и запрашивается подтверждение. + +[source, shell] +.... +New updates: +kernel|generic|/GENERIC/kernel.symbols|f|0|0|0555|0|7c8dc176763f96ced0a57fc04e7c1b8d793f27e006dd13e0b499e1474ac47e10| +kernel|generic|/GENERIC/kernel|f|0|0|0555|0|33197e8cf15bbbac263d17f39c153c9d489348c2c534f7ca1120a1183dec67b1| +kernel|generic|/|d|0|0|0755|0|| +src|base|/|d|0|0|0755|0|| +src|bin|/|d|0|0|0755|0|| +src|cddl|/|d|0|0|0755|0|| +src|contrib|/contrib/bind9/bin/named/update.c|f|0|10000|0644|0|4d434abf0983df9bc47435670d307fa882ef4b348ed8ca90928d250f42ea0757| +src|contrib|/contrib/bind9/lib/dns/openssldsa_link.c|f|0|10000|0644|0|c6805c39f3da2a06dd3f163f26c314a4692d4cd9a2d929c0acc88d736324f550| +src|contrib|/contrib/bind9/lib/dns/opensslrsa_link.c|f|0|10000|0644|0|fa0f7417ee9da42cc8d0fd96ad24e7a34125e05b5ae075bd6e3238f1c022a712| +... +FreeBSD/amd64 7.1-RELEASE update build complete. Please review +the list of build stamps printed above and the list of updated +files to confirm that they look sensible, then run + sh -e approve.sh amd64 7.1-RELEASE +to sign the build. +.... + +Следуйте той же процедуре, что и ранее, для подтверждения сборки: + +[source, shell] +.... +# sh -e scripts/approve.sh amd64 7.1-RELEASE +Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.1-RELEASE +Wed Aug 26 12:50:06 PDT 2009 Copying files to patch source directories for FreeBSD/amd64 7.1-RELEASE +Wed Aug 26 12:50:06 PDT 2009 Copying files to upload staging area for FreeBSD/amd64 7.1-RELEASE +Wed Aug 26 12:50:07 PDT 2009 Updating databases for FreeBSD/amd64 7.1-RELEASE +Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.1-RELEASE + +The FreeBSD/amd64 7.1-RELEASE update build has been signed and is +ready to be uploaded. Remember to run + sh -e umountkey.sh +to unmount the decrypted key once you have finished signing all +the new builds. +.... + +После утверждения сборки загрузите программное обеспечение: + +[source, shell] +.... +# cd /usr/local/freebsd-update-server +# sh scripts/upload.sh amd64 7.1-RELEASE +.... + +Для справки, полный запуск скрипта link:../../source/articles/freebsd-update-server/diff.txt[diff.sh] прилагается. + +[[tips]] +== Советы + +* Если пользовательская сборка создана с использованием стандартной процедуры `make release` extref:{releng}[procedure, release-build], код freebsd-update-server будет работать с вашей сборкой. Например, сборка без портов или документации может быть создана путем отключения функциональности, относящейся к подпрограммам документации `findextradocs ()`, `addextradocs ()`, и изменения места загрузки в `fetchiso ()` соответственно в файле [.filename]#scripts/build.subr#. В завершение измените хеш man:sha256[1] в файле [.filename]#build.conf# для соответствующей сборки и архитектуры, после чего можно приступать к сборке вашей по ьзовательской версии. ++ +[.programlisting] +.... +# Compare ${WORKDIR}/release and ${WORKDIR}/$1, identify which parts +# of the world|doc subcomponent are missing from the latter, and +# build a tarball out of them. +findextradocs () { +} +# Add extra docs to ${WORKDIR}/$1 +addextradocs () { +} +.... + +* Добавление флагов `-j _ЧИСЛО_` к целям `buildworld` и `obj` в скрипте [.filename]#scripts/build.subr# может ускорить обработку в зависимости от используемого оборудования, однако это не обязательно. Использование этих флагов в других целях не рекомендуется, так как это может привести к ненадёжности сборки. ++ +[.programlisting] +.... + # Build the world + log "Building world" + cd /usr/src && + make -j 2 ${COMPATFLAGS} buildworld 2>&1 + # Distribute the world + log "Distributing world" + cd /usr/src/release && + make -j 2 obj && + make ${COMPATFLAGS} release.1 release.2 2>&1 +.... + +* Создайте соответствующий extref:{handbook}[DNS, network-dns] SRV-запись для сервера обновлений и разместите остальные за ним с переменными весами. Использование этой возможности обеспечит зеркала для обновлений, однако данный совет не обязателен, если вы не хотите предоставлять избыточный сервис. ++ +[.programlisting] +.... +_http._tcp.update.myserver.com. IN SRV 0 2 80 host1.myserver.com. + IN SRV 0 1 80 host2.myserver.com. + IN SRV 0 0 80 host3.myserver.com. +.... diff --git a/documentation/content/ru/articles/freebsd-update-server/_index.po b/documentation/content/ru/articles/freebsd-update-server/_index.po new file mode 100644 index 0000000000..7e8874769e --- /dev/null +++ b/documentation/content/ru/articles/freebsd-update-server/_index.po @@ -0,0 +1,1482 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-21 11:50+0300\n" +"PO-Revision-Date: 2025-08-15 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:1 +#, no-wrap +msgid "Building your own freebsd-update server allows a system administrator to perform fast updates for a number of machines from a local mirror" +msgstr "Создание собственного сервера freebsd-update позволяет системному администратору выполнять быстрые обновления для множества машин из локального зеркала" + +#. type: Title = +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:1 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:12 +#, no-wrap +msgid "Build Your Own FreeBSD Update Server" +msgstr "Создайте свой собственный сервер обновлений FreeBSD" + +#. type: delimited block = 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:51 +msgid "" +"The instructions in this article refer to an older version of FreeBSD and " +"may not work properly on recent versions of the OS. With the availability of " +"pkgbase, the freebsd-update utility is scheduled to be removed from FreeBSD " +"in the future. When that happens, this article is either updated to reflect " +"the new procedures or removed entirely." +msgstr "" +"Инструкции в этой статье относятся к более старой версии FreeBSD и могут не " +"работать корректно в последних версиях ОС. В связи с появлением pkgbase, " +"утилита freebsd-update планируется к удалению из FreeBSD в будущем. Когда " +"это произойдет, статья будет либо обновлена с учетом новых процедур, либо " +"полностью удалена." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:55 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:59 +msgid "" +"This article describes building an internal FreeBSD Update Server. The " +"https://github.com/freebsd/freebsd-update-build/[freebsd-update-server] is " +"written by `{cperciva}`, Security Officer Emeritus of FreeBSD. For users " +"that think it is convenient to update their systems against an official " +"update server, building their own FreeBSD Update Server may help to extend " +"its functionality by supporting manually-tweaked FreeBSD releases or by " +"providing a local mirror that will allow faster updates for a number of " +"machines." +msgstr "" +"В этой статье описывается создание внутреннего сервера обновлений FreeBSD. " +"https://github.com/freebsd/freebsd-update-build/[freebsd-update-server] " +"написан `{cperciva}`, почетным руководителем безопасности FreeBSD. Для " +"пользователей, которым удобно обновлять свои системы через официальный " +"сервер обновлений, создание собственного сервера обновлений FreeBSD может " +"помочь расширить его функциональность, поддерживая вручную модифицированные " +"выпуски FreeBSD или предоставляя локальное зеркало, которое позволит " +"ускорить обновления для множества машин." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:61 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:65 +#, no-wrap +msgid "Acknowledgments" +msgstr "Благодарности" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:68 +msgid "" +"This article was subsequently printed at https://people.freebsd.org/~jgh/" +"files/fus/BSD_03_2010_EN.pdf[BSD Magazine]." +msgstr "" +"Эта статья была впоследствии опубликована в онлайн издании https://" +"people.freebsd.org/~jgh/files/fus/BSD_03_2010_EN.pdf[BSD Magazine]." + +#. type: Title == +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:70 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:77 +msgid "" +"Experienced users or administrators are often responsible for several " +"machines or environments. They understand the difficult demands and " +"challenges of maintaining such an infrastructure. Running a FreeBSD Update " +"Server makes it easier to deploy security and software patches to selected " +"test machines before rolling them out to production. It also means a number " +"of systems can be updated from the local network rather than a potentially " +"slower Internet connection. This article outlines the steps involved in " +"creating an internal FreeBSD Update Server." +msgstr "" +"Опытные пользователи или администраторы часто отвечают за несколько машин " +"или окружений. Они понимают сложные требования и вызовы, связанные с " +"поддержанием такой инфраструктуры. Запуск сервера обновлений FreeBSD " +"упрощает развертывание исправлений безопасности и программного обеспечения " +"на выбранных тестовых машинах перед их внедрением в рабочую среду. Это также " +"означает, что множество систем могут быть обновлены из локальной сети, а не " +"через потенциально медленное интернет-соединение. В этой статье описаны " +"шаги, необходимые для создания внутреннего сервера обновлений FreeBSD." + +#. type: Title == +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:79 +#, no-wrap +msgid "Prerequisites" +msgstr "Предварительные требования" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:82 +msgid "" +"To build an internal FreeBSD Update Server some requirements should be met." +msgstr "" +"Для создания внутреннего сервера обновлений FreeBSD необходимо выполнить " +"некоторые требования." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:84 +msgid "A running FreeBSD system." +msgstr "Работающая система FreeBSD." + +#. type: delimited block = 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:88 +msgid "" +"At a minimum, updates require building on a FreeBSD release greater than or " +"equal to the target release version for distribution." +msgstr "" +"Минимальное требование для обновлений — сборка на версии FreeBSD, которая не " +"меньше целевой версии для распространения." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:90 +msgid "" +"A user account with at least 4 GB of available space. This will allow the " +"creation of updates for 7.1 and 7.2, but the exact space requirements may " +"change from version to version." +msgstr "" +"Пользовательская учётная запись с как минимум 4 ГБ свободного места. Это " +"позволит создавать обновления для версий 7.1 и 7.2, но точные требования к " +"месту могут меняться от версии к версии." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:91 +msgid "" +"An man:ssh[1] account on a remote machine to upload distributed updates." +msgstr "" +"Учетная запись man:ssh[1] на удаленной машине для загрузки распределенных " +"обновлений." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:92 +msgid "" +"A web server, like extref:{handbook}[Apache, network-apache], with over half " +"of the space required for the build. For instance, test builds for 7.1 and " +"7.2 consume a total amount of 4 GB, and the webserver space needed to " +"distribute these updates is 2.6 GB." +msgstr "" +"Веб-сервер, например extref:{handbook}[Apache, network-apache], с более чем " +"половиной пространства, необходимого для сборки. Например, тестовые сборки " +"для версий 7.1 и 7.2 занимают в общей сложности 4 ГБ, а пространство веб-" +"сервера, необходимое для распространения этих обновлений, составляет 2.6 ГБ." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:93 +msgid "Basic knowledge of shell scripting with Bourne shell, man:sh[1]." +msgstr "" +"Базовые знания написания скриптов для оболочки Bourne shell, man:sh[1]." + +#. type: Title == +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:95 +#, no-wrap +msgid "Configuration: Installation & Setup" +msgstr "Конфигурация: установка и настройка" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:98 +msgid "" +"Download the https://github.com/freebsd/freebsd-update-build/[freebsd-update-" +"server] software by installing package:devel/git[] and package:security/" +"ca_root_nss[], and execute:" +msgstr "" +"Загрузите программное обеспечение https://github.com/freebsd/freebsd-update-" +"build/[freebsd-update-server], установив пакеты package:devel/git[] и " +"package:security/ca_root_nss[], и выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:102 +#, no-wrap +msgid "% git clone https://github.com/freebsd/freebsd-update-build.git freebsd-update-server\n" +msgstr "% git clone https://github.com/freebsd/freebsd-update-build.git freebsd-update-server\n" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:106 +msgid "" +"Update [.filename]#scripts/build.conf# appropriately. It is sourced during " +"all build operations." +msgstr "" +"Обновите соответствующим образом файл [.filename]#scripts/build.conf#. Он " +"используется во всех операциях сборки." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:108 +msgid "" +"Here is the default [.filename]#build.conf#, which should be modified to " +"suit your environment." +msgstr "" +"Вот стандартный [.filename]#build.conf#, который следует изменить в " +"соответствии с вашим окружением." + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:114 +#, no-wrap +msgid "" +"# Main configuration file for FreeBSD Update builds. The\n" +"# release-specific configuration data is lower down in\n" +"# the scripts tree.\n" +msgstr "" +"# Main configuration file for FreeBSD Update builds. The\n" +"# release-specific configuration data is lower down in\n" +"# the scripts tree.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:117 +#, no-wrap +msgid "" +"# Location from which to fetch releases\n" +"export FTP=ftp://ftp2.freebsd.org/pub/FreeBSD/releases <.>\n" +msgstr "" +"# Location from which to fetch releases\n" +"export FTP=ftp://ftp2.freebsd.org/pub/FreeBSD/releases <.>\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:120 +#, no-wrap +msgid "" +"# Host platform\n" +"export HOSTPLATFORM=`uname -m`\n" +msgstr "" +"# Host platform\n" +"export HOSTPLATFORM=`uname -m`\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:123 +#, no-wrap +msgid "" +"# Host name to use inside jails\n" +"export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net <.>\n" +msgstr "" +"# Host name to use inside jails\n" +"export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net <.>\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:126 +#, no-wrap +msgid "" +"# Location of SSH key\n" +"export SSHKEY=/root/.ssh/id_dsa <.>\n" +msgstr "" +"# Location of SSH key\n" +"export SSHKEY=/root/.ssh/id_dsa <.>\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:129 +#, no-wrap +msgid "" +"# SSH account into which files are uploaded\n" +"MASTERACCT=builder@wadham.daemonology.net <.>\n" +msgstr "" +"# SSH account into which files are uploaded\n" +"MASTERACCT=builder@wadham.daemonology.net <.>\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:132 +#, no-wrap +msgid "" +"# Directory into which files are uploaded\n" +"MASTERDIR=update-master.freebsd.org <.>\n" +msgstr "" +"# Directory into which files are uploaded\n" +"MASTERDIR=update-master.freebsd.org <.>\n" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:135 +msgid "Parameters for consideration would be:" +msgstr "Учтите возможные варианты следующих настроек:" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:138 +msgid "" +"This is the location where ISO images are downloaded from (by the " +"`fetchiso()` subroutine of [.filename]#scripts/build.subr#). The location " +"configured is not limited to FTP URIs. Any URI scheme supported by standard " +"man:fetch[1] utility should work fine. Customizations to the `fetchiso()` " +"code can be installed by copying the default [.filename]#build.subr# script " +"to the release and architecture-specific area at [.filename]#scripts/RELEASE/" +"ARCHITECTURE/build.subr# and applying local changes." +msgstr "" +"Это место, откуда загружаются образы ISO (с помощью подпрограммы " +"`fetchiso()` из файла [.filename]#scripts/build.subr#). Настроенное " +"расположение не ограничивается URI FTP. Должны работать любые схемы URI, " +"поддерживаемые стандартной утилитой man:fetch[1]. Пользовательские изменения " +"кода `fetchiso()` можно установить, скопировав скрипт " +"[.filename]#build.subr# по умолчанию в область, специфичную для выпуска и " +"архитектуры, по пути [.filename]#scripts/РЕЛИЗ/АРХИТЕКТУРА/build.subr#, и " +"применив локальные изменения." + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:140 +msgid "" +"The name of the build host. This information will be displayed on updated " +"systems when issuing:" +msgstr "" +"Имя хоста для сборки. Эта информация будет отображаться на обновленных " +"системах при выполнении команды:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:144 +#, no-wrap +msgid "% uname -v\n" +msgstr "% uname -v\n" + +#. type: Plain text +#: documentation/content/en/articles/freebsd-update-server/_index.adoc:148 +msgid "" +"The SSH key for uploading files to the update server. A key pair can be " *** 1138 LINES SKIPPED *** From nobody Sun Sep 21 09:25:13 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cV16x5Jnzz67pMC for ; Sun, 21 Sep 2025 09:25:13 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cV16x3pSPz3P3f; Sun, 21 Sep 2025 09:25:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758446713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uyLQvUiWBpjyxtxCoCZQ6aAZYqotiwfimVg5CT1jGvw=; b=GZsRQ8xZXXQWBtIbZX9mozZOlt+rNxVl9MwYRxAjzOxUmWlsVdqTx6lqo0i6E24buQ++VV xCRxd6FV7Z9XdUGJrLhYvKM9oK9Ok1tSZ4TlHPehSI/RZDM4cINZ0EqBG/Jem0DXroyBKQ cT1DJVyHWXVY2U3R5+bccvzaPO8Z68V0m2ze6Vl1kX1q3BO3TG8VoU8cYCPnNbSXUHdb1i ixMYfpyuLAxju/VGFDMXXqnQTdib9BZnsT+oy9kq86XJyvXCsVHQE5LpKiXw39EyPErRIG y2KrOS5sz3KxqPgsEKfIm2DY2Cro5LV5qiJSeTZPSI+Sl2Z4Tc+EPtJKbBnm6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758446713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uyLQvUiWBpjyxtxCoCZQ6aAZYqotiwfimVg5CT1jGvw=; b=u01Hiyv+IaPYzzEEzA3GPETg42rfTbeFGbAXk7Ny6fBP1AxMFgSz8GDV4f33HerO+ougT1 1lE4c+b7KVjpzawRO0lLCYQ9svkDMmkmDooxwdfiWqx2sGQrG0lZDgzWWeZ8FurEcUvohc NbyOjko3wxEpbBeKiTQOWeS3EDPMcF22h8K/vYd+vazp5sUgoCKMMpTE1LlL98Rrmu/KC3 MBpvvR+9UMaIALNhxEeN+ONtrQIV4eFv+oVQdYnefGNM6ETKwC1MY4HvoLJAKwJXc5fPFK kZ++mYuJQ7AvKRqLl+tMQtrOBEqAd4npKH4mm5WbQO0MTpz6f39AzjpXJxHUPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758446713; a=rsa-sha256; cv=none; b=TI+inzei8DG1B0M3BRowo5TjPLJ9HWA03v5vWn1MEuHAJ9jKaOpTNo3vihYba96YXFTNOi 7B1oQ7WgHkATctn1inKhNKRSA1VvNerSlpEEuZS0VbqlyvflxYKmjGq2S0BYN6YqB2AY1m lE7NcYfamOwmKbe7qiOFf4/UIr8F8668XHokrTGs9g/E4E25tciSx9txmMfyrFUHGQb8ZK FczMA2r50YkBP2z2Fo2pcPljj3eVlOfxgthgxhPUo6pdPD8jB+pJpOB3R/YHWjIAqwGRvh FVezI+L9jBT+VnwKRAAIKAtxAynYX7XXpGV81kE3ix6Lr5jcd9l7koJUWek2tg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cV16x3LVsz17ht; Sun, 21 Sep 2025 09:25:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58L9PDIs000123; Sun, 21 Sep 2025 09:25:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58L9PDYK000120; Sun, 21 Sep 2025 09:25:13 GMT (envelope-from git) Date: Sun, 21 Sep 2025 09:25:13 GMT Message-Id: <202509210925.58L9PDYK000120@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: 72c160d27a - main - update translation of articles/building-products to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 72c160d27a8f421932dccae9dcff4cea2a336738 Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=72c160d27a8f421932dccae9dcff4cea2a336738 commit 72c160d27a8f421932dccae9dcff4cea2a336738 Author: Vladlen Popolitov AuthorDate: 2025-09-21 09:24:49 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-21 09:24:49 +0000 update translation of articles/building-products to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D51951 --- .../ru/articles/building-products/_index.adoc | 333 ++++ .../ru/articles/building-products/_index.po | 1595 ++++++++++++++++++++ 2 files changed, 1928 insertions(+) diff --git a/documentation/content/ru/articles/building-products/_index.adoc b/documentation/content/ru/articles/building-products/_index.adoc new file mode 100644 index 0000000000..469af9b0ef --- /dev/null +++ b/documentation/content/ru/articles/building-products/_index.adoc @@ -0,0 +1,333 @@ +--- +authors: + - + author: 'Joseph Koshy' + email: jkoshy@FreeBSD.org +description: 'Как FreeBSD может помочь вам создать лучший продукт' +organizations: + - + organization: 'The FreeBSD Project' +tags: ["FreeBSD", "FreeBSD as base for your product"] +title: 'Создание продуктов на основе FreeBSD' +trademarks: ["freebsd", "general"] +--- + += Создание продуктов на основе FreeBSD +:doctype: article +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:source-highlighter: rouge +:experimental: +:images-path: articles/building-products/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +:imagesdir: ../../../images/{images-path} +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[.abstract-title] +Аннотация + +Проект FreeBSD — это всемирный, основанный на добровольцах и совместной работе проект, разрабатывающий переносимую и высококачественную операционную систему. Проект FreeBSD распространяет исходный код своего продукта под либеральной лицензией с целью поощрения использования своего кода. Сотрудничество с проектом FreeBSD может помочь организациям сократить время выхода на рынок, снизить инженерные затраты и улучшить качество своих продуктов. + +В этой статье рассматриваются вопросы использования кода FreeBSD в устройствах и программных продуктах. В ней подчеркиваются характеристики FreeBSD, которые делают её отличной основой для разработки продуктов. В заключение статьи предлагаются несколько «лучших практик» для организаций, сотрудничающих с проектом FreeBSD. + +''' + +toc::[] + +[[introduction]] +== Введение + +Современный FreeBSD известен как высокопроизводительная серверная операционная система. Он развернут на миллионах веб-серверов и хостов, доступных из интернета, по всему миру. Код FreeBSD также является неотъемлемой частью множества продуктов — от устройств, таких как сетевые маршрутизаторы, межсетевые экраны и системы хранения данных, до персональных компьютеров. Части FreeBSD также использовались в коммерческом коробочном программном обеспечении (см. crossref:building-products[freebsd-intro, FreeBSD как набор строительных блоков]). + +В этой статье мы рассматриваем проект link:https://www.FreeBSD.org/[FreeBSD] как ресурс для разработки программного обеспечения — как набор строительных блоков и процессов, которые можно использовать для создания продуктов. + +Хотя исходный код FreeBSD распространяется свободно, чтобы в полной мере воспользоваться преимуществами работы проекта, организациям необходимо _сотрудничать_ с ним. В последующих разделах этой статьи мы обсудим эффективные способы взаимодействия с проектом и подводные камни, которых следует избегать при этом. + +*Caveat Reader.* The author believes that the characteristics of the FreeBSD Project listed in this article were substantially true at the time the article was conceived and written (2005). However, the reader should keep in mind that the practices and processes used by open-source communities can change over time, and that the information in this article should therefore be taken as indicative rather than normative. + +=== Целевая аудитория + +Этот документ может быть интересен следующим широким группам людей: + +* Принимающие решения в продуктовых компаниях, ищущие способы повысить качество своего продукта, сократить время выхода на рынок и снизить инженерные затраты в долгосрочной перспективе. +* Консультанты по технологиям, ищущие передовые методы использования "открытого исходного кода". +* Заинтересованные в понимании динамики проектов с открытым исходным кодом представители отрасли. +* Разработчики программного обеспечения, желающие использовать FreeBSD и ищущие способы внести свой вклад. + +=== Цели статьи + +Прочитав эту статью, вы должны: + +* Понимание целей проекта FreeBSD и его организационной структуры. +* Понимание модели разработки и процессов выпуска релизов. +* Понимание того, как традиционные корпоративные процессы разработки программного обеспечения отличаются от используемых в проекте FreeBSD. +* Осведомленность о каналах связи, используемых проектом, и уровне прозрачности, который вы можете ожидать. +* Осознание оптимальных способов работы с проектом — как лучше всего снизить инженерные затраты, ускорить выход на рынок, управлять уязвимостями безопасности и сохранить будущую совместимость с вашим продуктом по мере развития проекта FreeBSD. + +=== Структура статьи + +Остальная часть статьи структурирована следующим образом: + +* crossref:building-products[freebsd-intro, FreeBSD как набор строительных блоков] представляет проект FreeBSD, исследует его организационную структуру, ключевые технологии и процессы разработки релизов. +* crossref:building-products[freebsd-collaboration, Сотрудничество с FreeBSD] описывает способы взаимодействия с проектом FreeBSD. В нём рассматриваются типичные проблемы, с которыми сталкиваются компании при работе с добровольными проектами, такими как FreeBSD. +* crossref:building-products[conclusion, Заключение] завершает. + +[[freebsd-intro]] +== FreeBSD как набор строительных блоков + +FreeBSD представляет собой отличную основу для создания продуктов: + +* Исходный код FreeBSD распространяется под либеральной лицензией BSD, что способствует его использованию в коммерческих продуктах crossref:building-products[Mon2005,"Почему следует использовать лицензию в стиле BSD для вашего открытого проекта"] с минимальными сложностями. +* Проект FreeBSD обладает превосходными инженерными практиками, которые можно использовать. +* Проект обеспечивает исключительную прозрачность своей работы, позволяя организациям, использующим его код, эффективно планировать будущее. +* Культура проекта FreeBSD, унаследованная от Исследовательской группы по информатике Калифорнийского университета в Беркли crossref:building-products[McKu1999-1,"Двадцать лет Berkeley Unix: от собственности AT&T до свободного распространения"], способствует созданию высококачественных продуктов. Некоторые функции FreeBSD задают современный уровень развития технологий. + +crossref:building-products[GoldGab2005,"Инновации происходят в другом месте: открытое ПО как бизнес-стратегия"] подробно рассматривает бизнес-причины использования открытого ПО. Для организаций преимущества использования компонентов FreeBSD в своих продуктах включают сокращение времени выхода на рынок, снижение затрат на разработку и уменьшение рисков разработки. + +=== Сборка с FreeBSD + +Вот несколько способов, как организации использовали FreeBSD: + +* В качестве вышестоящего источника для проверенного кода библиотек и утилит. ++ +Будучи "нисходящими" по отношению к проекту, организации используют новые функции, исправления ошибок и тестирование, которые получает вышестоящий код. +* Как встроенная ОС (например, для OEM-маршрутизаторов и устройств с межсетевым экраном). В этой модели организации используют настроенное ядро FreeBSD и набор прикладных программ вместе с проприетарным уровнем управления для своего устройства. OEM-производители получают выгоду от добавления поддержки нового оборудования проектом FreeBSD на уровне вышестоящего кода, а также от тестирования, которое проходит базовая система. ++ +FreeBSD поставляется с автономной средой разработки, которая позволяет легко создавать подобные конфигурации. +* Как совместимая с Unix среда для функций управления высокопроизводительными устройствами хранения данных и сетевого оборудования, работающая на отдельном процессорном "лезвии". ++ +FreeBSD предоставляет инструменты для создания выделенных образов ОС и прикладных программ. Его реализация API BSD Unix является зрелой и проверенной. FreeBSD также может обеспечить стабильную среду кросс-разработки для других компонентов высокопроизводительных устройств. +* Как средство для получения широкого тестирования и поддержки от международной команды разработчиков для некритичной "интеллектуальной собственности". ++ +В этой модели организации вносят полезные инфраструктурные фреймворки в проект FreeBSD (например, см. man:netgraph[3]). Широкое распространение кода помогает быстро выявлять проблемы производительности и ошибки. Участие высококлассных разработчиков также приводит к полезным расширениям инфраструктуры, от которых выигрывает и сама организация-вкладчик. +* Как среда разработки, поддерживающая кросс-разработку для встраиваемых ОС, таких как http://www.rtems.com/[RTEMS] и http://ecos.sourceware.org/[eCOS]. ++ +В обширной коллекции портированных и упакованных приложений FreeBSD, насчитывающей {numports} элементов, доступно множество полноценных сред разработки. +* В качестве способа поддержки Unix-подобного API в проприетарной ОС, повышая её привлекательность для разработчиков приложений. ++ +В этой части ядра FreeBSD и прикладных программ "портированы" для работы вместе с другими задачами в проприетарной ОС. Наличие стабильной и хорошо протестированной реализации Unix(TM) API может сократить усилия, необходимые для переноса популярных приложений на проприетарную ОС. Поскольку FreeBSD поставляется с качественной документацией по своей внутренней структуре и имеет эффективные процессы управления уязвимостями и выпуска релизов, затраты на поддержание актуальности остаются низкими. + +[[freebsd-technologies]] +=== Технологии + +В проекте FreeBSD поддерживается большое количество технологий. Ниже приведен их выбор: + +* Полная система, способная самостоятельно осуществлять кросс-хостинг для link:https://www.FreeBSD.org/platforms/[множества архитектур:] +* Модульное симметричное многопроцессорное ядро с загружаемыми модулями и гибкой, удобной системой настройки. +* Поддержка эмуляции бинарных файлов Linux(TM) и SVR4 с почти нативной скоростью. Поддержка бинарных сетевых драйверов Windows(TM) (NDIS). +* Библиотеки для множества задач программирования: архиваторы, поддержка FTP и HTTP, поддержка потоков, а также полноценная среда программирования, аналогичная POSIX(TM). +* Безопасность: Принудительное управление доступом (man:mac[9]), клетки (man:jail[2]), ACL и поддержка криптографических устройств в ядре. +* Сетевые возможности: работа с межсетевым экраном, управление QoS, высокопроизводительные TCP/IP сети с поддержкой множества расширений. ++ +Встроенная в FreeBSD система Netgraph (man:netgraph[4]) позволяет гибко соединять модули сетевого ядра между собой. +* Поддержка технологий хранения данных: Fibre Channel, SCSI, программный и аппаратный RAID, ATA и SATA. ++ +FreeBSD поддерживает множество файловых систем, а его родная файловая система UFS2 +поддерживает мягкие обновления, снимки и очень большие размеры файловых систем (16TB на +файловую систему) crossref:building-products[McKu1999,"Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem"]. ++ +Встроенная в ядро FreeBSD система GEOM (man:geom[4]) позволяет гибко комбинировать модули хранения данных. +* Более {numports} портированных приложений, как коммерческих, так и с открытым исходным кодом, управляемых через коллекцию портов FreeBSD. + +=== Организационная структура + +Организационная структура FreeBSD не является иерархической. + +Существует два основных типа участников FreeBSD: обычные пользователи FreeBSD и разработчики с правом записи (известные в жаргоне как _коммиттеры_) в исходную базу. + +В первой группе участвуют тысячи разработчиков; подавляющее большинство вкладов в FreeBSD поступает от участников этой группы. Права на коммит (доступ на запись) в репозиторий предоставляются тем, кто регулярно вносит вклад в проект. Права на коммит связаны с дополнительными обязанностями, и новым коммиттерам назначаются наставники, чтобы помочь им освоиться. + +.Организация FreeBSD +image::freebsd-organization.png[] + +Разрешение конфликтов осуществляется «Основной командой» из девяти человек, которая избирается из группы коммиттеров. + +В FreeBSD нет "корпоративных" коммиттеров. Отдельные коммиттеры обязаны нести ответственность за изменения, которые они вносят в код. В extref:{committers-guide}[Руководстве коммиттера FreeBSD] crossref:building-products[ComGuide,"Руководство коммиттера"] описаны правила и обязанности коммиттеров. + +Модель проекта FreeBSD подробно рассматривается в crossref:building-products[Nik2005,"Модель проекта для FreeBSD"]. + +=== Процессы разработки релизов FreeBSD + +Процессы разработки релизов FreeBSD играют важную роль в обеспечении высокого качества выпускаемых версий. В любой момент времени добровольцы FreeBSD поддерживают несколько линий кода (crossref:building-products[fig-freebsd-branches, Ветви релизов FreeBSD]): + +* Новые функции и критически важный код попадают в ветку разработки, также известную как ветка _-CURRENT_. +* Ветви _-STABLE_ представляют собой линии кода, ответвленные от HEAD через регулярные промежутки времени. В ветку -STABLE допускается только проверенный код. Новые функции добавляются только после их тестирования и стабилизации в ветке -CURRENT. +* Ветви _-RELEASE_ поддерживаются командой безопасности FreeBSD. На ветви -RELEASE допускаются только исправления ошибок для критических проблем. + +[[fig-freebsd-branches]] +.Ветви выпусков FreeBSD +image::freebsd-branches.png[] + +Строки кода поддерживаются до тех пор, пока есть интерес со стороны пользователей и разработчиков. + +Архитектуры машин разделены на «уровни»: архитектуры _Уровня 1_ полностью поддерживаются командами разработки выпусков и безопасности проекта, архитектуры _Уровня 2_ поддерживаются по мере возможностей, а экспериментальные архитектуры составляют _Уровень 3_. Список extref:{committers-guide}[поддерживаемых архитектур, archs] является частью коллекции документации FreeBSD. + +Команда разработки релизов публикует link:https://www.FreeBSD.org/releng/[дорожную карту] будущих выпусков FreeBSD на веб-сайте проекта. Указанные в дорожной карте даты не являются крайними сроками; FreeBSD выпускается, когда его код и документация готовы. + +Процессы разработки релизов FreeBSD описаны в crossref:building-products[RelEngDoc,"Инженерия релизов FreeBSD"]. + +[[freebsd-collaboration]] +== Сотрудничество с FreeBSD + +Проекты с открытым исходным кодом, такие как FreeBSD, предлагают готовый код очень высокого качества. + +Хотя доступ к качественному исходному коду может снизить затраты на начальную разработку, в долгосрочной перспективе затраты на управление изменениями становятся преобладающими. По мере того как вычислительные среды меняются с годами и обнаруживаются новые уязвимости безопасности, ваш продукт также должен меняться и адаптироваться. Использование открытого исходного кода лучше рассматривать не как разовое мероприятие, а как __непрерывный процесс__. Лучшие проекты для сотрудничества — это те, которые __активны__; т.е. имеют активное сооб щество, четкие цели и прозрачный стиль работы. + +* FreeBSD имеет активное сообщество разработчиков. На момент написания этого документа в мире насчитываются тысячи участников со всех обитаемых континентов, а также более 300 человек с правом записи в исходные репозитории проекта. +* Цели проекта FreeBSD описаны в crossref:building-products[Hub1994,"Участие в проекте FreeBSD"]: + +** Разработать высококачественную операционную систему для популярного компьютерного оборудования и, +** Сделать нашу работу доступной для всех под либеральной лицензией. + +* FreeBSD придерживается открытой и прозрачной рабочей культуры. Почти все обсуждения в проекте происходят по электронной почте на link:https://lists.freebsd.org/[публичных списках рассылки], которые также архивируются для потомков. Политики проекта link:https://www.FreeBSD.org/internal/policies/[документированы] и поддерживаются в системе контроля версий. Участие в проекте открыто для всех. + +[[freebsd-org]] +=== Понимание культуры FreeBSD + +Чтобы эффективно работать с проектом FreeBSD, необходимо понимать его культуру. + +Добровольческие проекты работают по другим правилам, чем коммерческие компании. Частая ошибка, которую совершают компании, входя в мир открытого исходного кода, — недооценка этих различий. + +*Motivation.* Most contributions to FreeBSD are done voluntarily without monetary rewards entering the picture. The factors that motivate individuals are complex, ranging from altruism, to an interest in solving the kinds of problems that FreeBSD attempts to solve. In this environment, "elegance is never optional"crossref:building-products[Nor1993,"Tutorial on Good Lisp Programming Style"]. + +*The Long Term View.* FreeBSD traces its roots back nearly twenty years to the work of the Computer Science Research Group at the University of California Berkeley.footnote:[FreeBSD's source repository contains a history of the project since its inception, and there are CDROMs available that contain earlier code from the CSRG.] A number of the original CSRG developers remain associated with the project. + +Проект ценит долгосрочные перспективы crossref:building-products[Nor2001,"Научись программировать за десять лет"]. Часто встречающаяся в проекте аббревиатура — DTRT, что означает «Do The Right Thing» (сделай правильно). + +*Development Processes.* Computer programs are tools for communication: at one level programmers communicate their intentions using a precise notation to a tool (a compiler) that translates their instructions to executable code. At another level, the same notation is used for communication of intent between two programmers. + +Формальные спецификации и проектные документы редко используются в проекте. Вместо них применяются понятный и хорошо написанный код, а также хорошо составленные журналы изменений (crossref:building-products[fig-change-log, Пример записи в журнале изменений]). Разработка FreeBSD происходит по принципу «грубого консенсуса и работающего кода» crossref:building-products[Carp1996,"Архитектурные принципы Интернета"]. + +[.programlisting] +.... +r151864 | bde | 2005-10-29 09:34:50 -0700 (Sat, 29 Oct 2005) | 13 lines +Changed paths: + M /head/lib/msun/src/e_rem_pio2f.c + +Use double precision to simplify and optimize arg reduction for small +and medium size args too: instead of conditionally subtracting a float +17+24, 17+17+24 or 17+17+17+24 bit approximation to pi/2, always +subtract a double 33+53 bit one. The float version is now closer to +the double version than to old versions of itself -- it uses the same +33+53 bit approximation as the simplest cases in the double version, +and where the float version had to switch to the slow general case at +|x| == 2^7*pi/2, it now switches at |x| == 2^19*pi/2 the same as the +double version. + +This speeds up arg reduction by a factor of 2 for |x| between 3*pi/4 and +2^7*pi/4, and by a factor of 7 for |x| between 2^7*pi/4 and 2^19*pi/4. +.... +.Пример записи в журнале изменений [[fig-change-log]] + +Общение между программистами улучшается благодаря использованию общего стандарта кодирования man:style[9]. + +*Communication Channels.* FreeBSD's contributors are spread across the world. Email (and to a lesser extent, IRC) is the preferred means of communication in the project. + +=== Лучшие практики для сотрудничества с проектом FreeBSD + +Теперь рассмотрим несколько лучших практик для наиболее эффективного использования FreeBSD в разработке продуктов. + +Планируйте на долгосрочную перспективу:: +Настройка процессов, которые помогают отслеживать разработку FreeBSD. Например: ++ +*Track FreeBSD source code.* The project makes it easy to mirror its SVN repository using extref:{committers-guide}[svnsync, svn-advanced-use-setting-up-svnsync]. Having the complete history of the source is useful when debugging complex problems and offers valuable insight into the intentions of the original developers. Use a capable source control system that allows you to easily merge changes between the upstream FreeBSD code base and your own in-house code. ++ +crossref:building-products[fig-svn-blame, Аннотированный листинг исходного кода, сгенерированный с помощью `svn blame`] показывает часть аннотированного листинга файла, на который ссылается журнал изменений в crossref:building-products[fig-change-log, Пример записи в журнале изменений]. Происхождение каждой строки исходного кода чётко видно. Аннотированные листинги, показывающие историю каждого файла, входящего в состав FreeBSD, https://svnweb.freebsd.org/[доступны в интернете]. ++ +[.programlisting] +.... +#REV #WHO #DATE #TEXT + +176410 bde 2008-02-19 07:42:46 -0800 (Tue, 19 Feb 2008) #include +176410 bde 2008-02-19 07:42:46 -0800 (Tue, 19 Feb 2008) __FBSDID("$FreeBSD$"); + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) /* __ieee754_rem_pio2f(x,y) + 8870 rgrimes 1995-05-29 22:51:47 -0700 (Mon, 29 May 1995) * +176552 bde 2008-02-25 05:33:20 -0800 (Mon, 25 Feb 2008) * return the remainder of x rem pi/2 in *y +176552 bde 2008-02-25 05:33:20 -0800 (Mon, 25 Feb 2008) * use double precision for everything except passing x +152535 bde 2005-11-16 18:20:04 -0800 (Wed, 16 Nov 2005) * use __kernel_rem_pio2() for large x + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) */ + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) +176465 bde 2008-02-22 07:55:14 -0800 (Fri, 22 Feb 2008) #include +176465 bde 2008-02-22 07:55:14 -0800 (Fri, 22 Feb 2008) + 2116 jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) #include "math.h" +.... +.Аннотированный листинг исходного кода, сгенерированный с использованием `svn blame` [[fig-svn-blame]] ++ +*Use a gatekeeper.* Appoint a _gatekeeper_ to monitor FreeBSD development, to keep an eye out for changes that could potentially impact your products. ++ +*Report bugs upstream.* If you notice bug in the FreeBSD code that you are using, file a https://www.FreeBSD.org/support/bugreports/[bug report]. This step helps ensure that you do not have to fix the bug the next time you take a code drop from upstream. +Используйте преимущества разработки релизов FreeBSD:: +Используйте код из ветви разработки -STABLE FreeBSD. Эти ветви разработки официально поддерживаются инженерной командой выпуска и командой безопасности FreeBSD и содержат проверенный код. + +Пожертвовуйте код для снижения затрат:: +Основная часть затрат, связанных с разработкой продуктов, приходится на их поддержку. Пожертвовав некритичный код проекту, вы получаете выгоду в виде гораздо более широкого распространения вашего кода, чем это было бы возможно иначе. В свою очередь, это приводит к выявлению большего количества ошибок и уязвимостей безопасности, а также к обнаружению и исправлению аномалий производительности. + +Получайте поддержку эффективно:: +Для продуктов с жёсткими сроками рекомендуется нанять или заключить консультационное соглашение с разработчиком или компанией, имеющими опыт работы с FreeBSD. {freebsd-jobs} является полезным каналом связи для поиска специалистов. Проект FreeBSD поддерживает link:https://www.FreeBSD.org/commercial/consult_bycat/[галерею консультантов и консалтинговых компаний], занимающихся работой с FreeBSD. http://www.bsdcertification.org/[Группа сертификации BSD] предлагает сертификацию для всех основных ОС, производных от BSD. ++ +Для менее критичных задач вы можете обратиться за помощью в link:https://lists.freebsd.org/[списки рассылки проекта]. Полезное руководство о том, как правильно задавать вопросы, приведено в crossref:building-products[Ray2004,"Как правильно задавать вопросы"]. +Распространите информацию о вашем участии:: +Вы не обязаны афишировать своё использование FreeBSD, но это поможет как вашему делу, так и проекту. ++ +Позволяя сообществу FreeBSD узнать, что ваша компания использует FreeBSD, вы повышаете шансы привлечь высококвалифицированных специалистов. Большой список поддержки FreeBSD также означает большее внимание среди разработчиков. Это, в свою очередь, создает более устойчивую основу для вашего будущего. +Поддержите разработчиков FreeBSD:: +Иногда самый прямой способ получить нужную функциональность в FreeBSD — это поддержать разработчика, который уже занимается связанной проблемой. Помощь может варьироваться от пожертвования оборудования до прямой финансовой поддержки. В некоторых странах пожертвования проекту FreeBSD имеют налоговые льготы. У проекта есть специальный link:https://www.FreeBSD.org/donations/[представитель по пожертвованиям], который помогает донорам. Также проект поддерживает веб-страницу, где разработчики link:https://www.FreeBSD.org/donations/wantlist/[указывают свои потребности]. ++ +В соответствии с политикой проекта FreeBSD, о всех полученных вкладах в любой форме на его веб-сайте делается extref:{contributors}[запись с благодарностью]. + +[[conclusion]] +== Заключение + +Цели проекта FreeBSD — создание и бесплатное распространение исходного кода высококачественной операционной системы. Сотрудничая с проектом FreeBSD, вы можете сократить затраты на разработку и ускорить вывод продукта на рынок в различных сценариях разработки. + +Мы рассмотрели характеристики проекта FreeBSD, которые делают его отличным выбором для включения в продуктовую стратегию организации. Затем мы изучили преобладающую культуру проекта и рассмотрели эффективные способы взаимодействия с его разработчиками. В завершение статьи был приведён список лучших практик, которые могут помочь организациям в сотрудничестве с проектом. + +:sectnums!: + +[bibliography] +== Библиография + +[[Carp1996]] [Carp1996] http://www.ietf.org/rfc/rfc1958.txt[The Architectural Principles of the Internet] B. Carpenter. The Internet Architecture Board.The Internet Architecture Board. Copyright(R) 1996 год. + +[[ComGuide]] [ComGuide] extref:{committers-guide}[Committer's Guide] The FreeBSD Project. Copyright(R) 2005 год. + +[[GoldGab2005]] [GoldGab2005] http://dreamsongs.com/IHE/IHE.html[Innovation Happens Elsewhere: Open Source as Business Strategy] Ron Goldman. Richard Gabriel. Copyright(R) 2005 год. Morgan-Kaufmann. + +[[Hub1994]] [Hub1994] extref:{contributing}[Contributing to the FreeBSD Project] Jordan Hubbard. Copyright(R) 1994-2005 гг. The FreeBSD Project. + +[[McKu1999]] [McKu1999] http://www.usenix.org/publications/library/proceedings/usenix99/mckusick.html[Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem] Kirk McKusick. Gregory Ganger. Copyright(R) 1999 год. + +[[McKu1999-1]] [McKu1999-1] http://www.oreilly.com/catalog/opensources/book/kirkmck.html[Twenty Years of Berkeley Unix: From AT&T-Owned to Freely Redistributable] Marshall Kirk McKusick. http://www.oreilly.com/catalog/opensources/book/toc.html[Open Sources: Voices from the Open Source Revolution] O'Reilly Inc.. Copyright(R) 1993 год. + +[[Mon2005]] [Mon2005] extref:{bsdl-gpl}[Why you should use a BSD style license for your Open Source Project] Bruce Montague. The FreeBSD Project. Copyright(R) 2005 год. + +[[Nik2005]] [Nik2005] extref:{dev-model}[A project model for the FreeBSD Project] Niklas Saers. Copyright(R) 2005 год. The FreeBSD Project. + +[[Nor1993]] [Nor1993] http://www.norvig.com/luv-slides.ps[Tutorial on Good Lisp Programming Style] Peter Norvig. Kent Pitman. Copyright(R) 1993 год. + +[[Nor2001]] [Nor2001] http://www.norvig.com/21-days.html[Teach Yourself Programming in Ten Years] Peter Norvig. Copyright(R) 2001 год. + +[[Ray2004]] [Ray2004] http://www.catb.org/~esr/faqs/smart-questions.html[How to ask questions the smart way] Eric Steven Raymond. Copyright(R) 2004 год. + +[[RelEngDoc]] [RelEngDoc] extref:{releng}[FreeBSD Release Engineering] Murray Stokely. Copyright(R) 2001 год. The FreeBSD Project. diff --git a/documentation/content/ru/articles/building-products/_index.po b/documentation/content/ru/articles/building-products/_index.po new file mode 100644 index 0000000000..1cd929d1ad --- /dev/null +++ b/documentation/content/ru/articles/building-products/_index.po @@ -0,0 +1,1595 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-21 12:20+0300\n" +"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/articles/building-products/_index.adoc:1 +#, no-wrap +msgid "How FreeBSD can help you build a better product" +msgstr "Как FreeBSD может помочь вам создать лучший продукт" + +#. type: Title = +#: documentation/content/en/articles/building-products/_index.adoc:1 +#: documentation/content/en/articles/building-products/_index.adoc:13 +#, no-wrap +msgid "Building Products with FreeBSD" +msgstr "Создание продуктов на основе FreeBSD" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:46 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:50 +msgid "" +"The FreeBSD project is a worldwide, volunteer based, and collaborative " +"project, which develops a portable and high-quality operating system. The " +"FreeBSD project distributes the source code for its product under a liberal " +"license, with the intention of encouraging the use of its code. " +"Collaborating with the FreeBSD project can help organizations reduce their " +"time to market, reduce engineering costs and improve their product quality." +msgstr "" +"Проект FreeBSD — это всемирный, основанный на добровольцах и совместной " +"работе проект, разрабатывающий переносимую и высококачественную операционную " +"систему. Проект FreeBSD распространяет исходный код своего продукта под " +"либеральной лицензией с целью поощрения использования своего кода. " +"Сотрудничество с проектом FreeBSD может помочь организациям сократить время " +"выхода на рынок, снизить инженерные затраты и улучшить качество своих " +"продуктов." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:54 +msgid "" +"This article examines the issues in using FreeBSD code in appliances and " +"software products. It highlights the characteristics of FreeBSD that make " +"it an excellent substrate for product development. The article concludes by " +"suggesting a few \"best practices\" for organizations collaborating with the " +"FreeBSD project." +msgstr "" +"В этой статье рассматриваются вопросы использования кода FreeBSD в " +"устройствах и программных продуктах. В ней подчеркиваются характеристики " +"FreeBSD, которые делают её отличной основой для разработки продуктов. В " +"заключение статьи предлагаются несколько «лучших практик» для организаций, " +"сотрудничающих с проектом FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:56 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/building-products/_index.adoc:60 +#, no-wrap +msgid "Introduction" +msgstr "Введение" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:67 +msgid "" +"FreeBSD today is well-known as a high-performance server operating system. " +"It is deployed on millions of web servers and internet-facing hosts " +"worldwide. FreeBSD code also forms an integral part of many products, " +"ranging from appliances such as network routers, firewalls, and storage " +"devices, to personal computers. Portions of FreeBSD have also been used in " +"commercial shrink-wrapped software (see crossref:building-products[freebsd-" +"intro, FreeBSD as a set of building blocks])." +msgstr "" +"Современный FreeBSD известен как высокопроизводительная серверная " +"операционная система. Он развернут на миллионах веб-серверов и хостов, " +"доступных из интернета, по всему миру. Код FreeBSD также является " +"неотъемлемой частью множества продуктов — от устройств, таких как сетевые " +"маршрутизаторы, межсетевые экраны и системы хранения данных, до персональных " +"компьютеров. Части FreeBSD также использовались в коммерческом коробочном " +"программном обеспечении (см. crossref:building-products[freebsd-intro, " +"FreeBSD как набор строительных блоков])." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:69 +msgid "" +"In this article we look at the link:https://www.FreeBSD.org/[FreeBSD " +"project] as a software engineering resource-as a collection of building " +"blocks and processes which you can use to build products." +msgstr "" +"В этой статье мы рассматриваем проект link:https://www.FreeBSD.org/[FreeBSD] " +"как ресурс для разработки программного обеспечения — как набор строительных " +"блоков и процессов, которые можно использовать для создания продуктов." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:72 +msgid "" +"While FreeBSD's source is distributed freely to the public, to fully enjoy " +"the benefits of the project's work, organizations need to _collaborate_ with " +"the project. In subsequent sections of this article we discuss effective " +"means of collaboration with the project and the pitfalls that need to be " +"avoided while doing so." +msgstr "" +"Хотя исходный код FreeBSD распространяется свободно, чтобы в полной мере " +"воспользоваться преимуществами работы проекта, организациям необходимо " +"_сотрудничать_ с ним. В последующих разделах этой статьи мы обсудим " +"эффективные способы взаимодействия с проектом и подводные камни, которых " +"следует избегать при этом." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:75 +#, fuzzy +#| msgid "" +#| "*Caveat Reader.* The author believes that the characteristics of the " +#| "FreeBSD Project listed in this article were substantially true at the " +#| "time the article was conceived and written (2005).\n" +#| "However, the reader should keep in mind that the practices and processes " +#| "used by open-source communities can change over time, and that the " +#| "information in this article should therefore be taken as indicative " +#| "rather than normative.\n" +msgid "" +"*Caveat Reader.* The author believes that the characteristics of the FreeBSD " +"Project listed in this article were substantially true at the time the " +"article was conceived and written (2005). However, the reader should keep " +"in mind that the practices and processes used by open-source communities can " +"change over time, and that the information in this article should therefore " +"be taken as indicative rather than normative." +msgstr "" +"*Предупреждение для читателя.* Автор считает, что перечисленные в этой " +"статье характеристики проекта FreeBSD были в основном верны на момент " +"написания статьи (2005 год).\n" +"Однако читателю следует учитывать, что практики и процессы, используемые " +"сообществами открытого исходного кода, могут меняться со временем, поэтому " +"информацию в этой статье следует рассматривать как ориентировочную, а не " +"нормативную.\n" + +#. type: Title === +#: documentation/content/en/articles/building-products/_index.adoc:76 +#, no-wrap +msgid "Target Audience" +msgstr "Целевая аудитория" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:79 +msgid "" +"This document would be of interest to the following broad groups of people:" +msgstr "Этот документ может быть интересен следующим широким группам людей:" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:81 +msgid "" +"Decision makers in product companies looking at ways to improve their " +"product quality, reduce their time to market and lower engineering costs in " +"the long term." +msgstr "" +"Принимающие решения в продуктовых компаниях, ищущие способы повысить " +"качество своего продукта, сократить время выхода на рынок и снизить " +"инженерные затраты в долгосрочной перспективе." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:82 +msgid "" +"Technology consultants looking for best-practices in leveraging \"open-" +"source\"." +msgstr "" +"Консультанты по технологиям, ищущие передовые методы использования " +"\"открытого исходного кода\"." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:83 +msgid "" +"Industry observers interested in understanding the dynamics of open-source " +"projects." +msgstr "" +"Заинтересованные в понимании динамики проектов с открытым исходным кодом " +"представители отрасли." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:84 +msgid "" +"Software developers seeking to use FreeBSD and looking for ways to " +"contribute back." +msgstr "" +"Разработчики программного обеспечения, желающие использовать FreeBSD и " +"ищущие способы внести свой вклад." + +#. type: Title === +#: documentation/content/en/articles/building-products/_index.adoc:85 +#, no-wrap +msgid "Article Goals" +msgstr "Цели статьи" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:88 +msgid "After reading this article you should have:" +msgstr "Прочитав эту статью, вы должны:" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:90 +msgid "" +"An understanding of the goals of the FreeBSD Project and its organizational " +"structure." +msgstr "Понимание целей проекта FreeBSD и его организационной структуры." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:91 +msgid "" +"An understanding of its development model and release engineering processes." +msgstr "Понимание модели разработки и процессов выпуска релизов." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:92 +msgid "" +"An understanding of how conventional corporate software development " +"processes differ from that used in the FreeBSD project." +msgstr "" +"Понимание того, как традиционные корпоративные процессы разработки " +"программного обеспечения отличаются от используемых в проекте FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:93 +msgid "" +"Awareness of the communication channels used by the project and the level of " +"transparency you can expect." +msgstr "" +"Осведомленность о каналах связи, используемых проектом, и уровне " +"прозрачности, который вы можете ожидать." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:94 +msgid "" +"Awareness of optimal ways of working with the project-how best to reduce " +"engineering costs, improve time to market, manage security vulnerabilities, " +"and preserve future compatibility with your product as the FreeBSD project " +"evolves." +msgstr "" +"Осознание оптимальных способов работы с проектом — как лучше всего снизить " +"инженерные затраты, ускорить выход на рынок, управлять уязвимостями " +"безопасности и сохранить будущую совместимость с вашим продуктом по мере " +"развития проекта FreeBSD." + +#. type: Title === +#: documentation/content/en/articles/building-products/_index.adoc:95 +#, no-wrap +msgid "Article Structure" +msgstr "Структура статьи" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:98 +msgid "The rest of the article is structured as follows:" +msgstr "Остальная часть статьи структурирована следующим образом:" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:100 +msgid "" +"crossref:building-products[freebsd-intro, FreeBSD as a set of building " +"blocks] introduces the FreeBSD project, explores its organizational " +"structure, key technologies and release engineering processes." +msgstr "" +"crossref:building-products[freebsd-intro, FreeBSD как набор строительных " +"блоков] представляет проект FreeBSD, исследует его организационную " +"структуру, ключевые технологии и процессы разработки релизов." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:101 +msgid "" +"crossref:building-products[freebsd-collaboration, Collaborating with " +"FreeBSD] describes ways to collaborate with the FreeBSD project. It examines " +"common pitfalls encountered by corporates working with voluntary projects " +"like FreeBSD." +msgstr "" +"crossref:building-products[freebsd-collaboration, Сотрудничество с FreeBSD] " +"описывает способы взаимодействия с проектом FreeBSD. В нём рассматриваются " +"типичные проблемы, с которыми сталкиваются компании при работе с " +"добровольными проектами, такими как FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:102 +msgid "crossref:building-products[conclusion, Conclusion] concludes." +msgstr "crossref:building-products[conclusion, Заключение] завершает." + +#. type: Title == +#: documentation/content/en/articles/building-products/_index.adoc:104 +#, no-wrap +msgid "FreeBSD as a set of building blocks" +msgstr "FreeBSD как набор строительных блоков" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:107 +msgid "FreeBSD makes an excellent foundation on which to build products:" +msgstr "FreeBSD представляет собой отличную основу для создания продуктов:" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:110 +msgid "" +"FreeBSD source code is distributed under a liberal BSD license facilitating " +"its adoption in commercial products crossref:building-products[Mon2005,\"Why " +"you should use a BSD style license for your Open Source Project\"] with " +"minimum hassle." +msgstr "" +"Исходный код FreeBSD распространяется под либеральной лицензией BSD, что " +"способствует его использованию в коммерческих продуктах crossref:building-" +"products[Mon2005,\"Почему следует использовать лицензию в стиле BSD для " +"вашего открытого проекта\"] с минимальными сложностями." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:111 +msgid "" +"The FreeBSD project has excellent engineering practices that can be " +"leveraged." +msgstr "" +"Проект FreeBSD обладает превосходными инженерными практиками, которые можно " +"использовать." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:112 +msgid "" +"The project offers exceptional transparency into its workings, allowing " +"organizations using its code to plan effectively for the future." +msgstr "" +"Проект обеспечивает исключительную прозрачность своей работы, позволяя " +"организациям, использующим его код, эффективно планировать будущее." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:115 +msgid "" +"The culture of the FreeBSD project, carried over from the Computer Science " +"Research Group at The University of California, Berkeley crossref:building-" +"products[McKu1999-1,\"Twenty Years of Berkeley Unix: From AT&T-Owned to " +"Freely Redistributable\"], fosters high-quality work. Some features in " +"FreeBSD define the state of the art." +msgstr "" +"Культура проекта FreeBSD, унаследованная от Исследовательской группы по " +"информатике Калифорнийского университета в Беркли crossref:building-" +"products[McKu1999-1,\"Двадцать лет Berkeley Unix: от собственности AT&T до " +"свободного распространения\"], способствует созданию высококачественных " +"продуктов. Некоторые функции FreeBSD задают современный уровень развития " +"технологий." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:118 +msgid "" +"crossref:building-products[GoldGab2005,\"Innovation Happens Elsewhere: Open " +"Source as Business Strategy\"] examines the business reasons for using open-" +"source in greater detail. For organizations, the benefits of using FreeBSD " +"components in their products include a shorter time to market, lower " +"development costs and lower development risks." +msgstr "" +"crossref:building-products[GoldGab2005,\"Инновации происходят в другом " +"месте: открытое ПО как бизнес-стратегия\"] подробно рассматривает бизнес-" +"причины использования открытого ПО. Для организаций преимущества " +"использования компонентов FreeBSD в своих продуктах включают сокращение " +"времени выхода на рынок, снижение затрат на разработку и уменьшение рисков " +"разработки." + +#. type: Title === +#: documentation/content/en/articles/building-products/_index.adoc:119 +#, no-wrap +msgid "Building with FreeBSD" +msgstr "Сборка с FreeBSD" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:122 +msgid "Here are a few ways organizations have used FreeBSD:" +msgstr "Вот несколько способов, как организации использовали FreeBSD:" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:124 +msgid "As an upstream source for tested code for libraries and utilities." +msgstr "" +"В качестве вышестоящего источника для проверенного кода библиотек и утилит." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:126 +msgid "" +"By being \"downstream\" of the project, organizations leverage the new " +"features, bug fixes and testing that the upstream code receives." +msgstr "" +"Будучи \"нисходящими\" по отношению к проекту, организации используют новые " +"функции, исправления ошибок и тестирование, которые получает вышестоящий код." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:127 +msgid "" +"As an embedded OS (for example, for an OEM router and firewall device). In " +"this model, organizations use a customized FreeBSD kernel and application " +"program set along with a proprietary management layer for their device. OEMs " +"benefit from new hardware support being added by the FreeBSD project " +"upstream, and from the testing that the base system receives." +msgstr "" +"Как встроенная ОС (например, для OEM-маршрутизаторов и устройств с " +"межсетевым экраном). В этой модели организации используют настроенное ядро " +"FreeBSD и набор прикладных программ вместе с проприетарным уровнем " +"управления для своего устройства. OEM-производители получают выгоду от " +"добавления поддержки нового оборудования проектом FreeBSD на уровне " +"вышестоящего кода, а также от тестирования, которое проходит базовая система." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:129 +msgid "" +"FreeBSD ships with a self-hosting development environment that allows easy " +"creation of such configurations." +msgstr "" +"FreeBSD поставляется с автономной средой разработки, которая позволяет легко " +"создавать подобные конфигурации." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:130 +msgid "" +"As a Unix compatible environment for the management functions of high-end " +"storage and networking devices, running on a separate processor \"blade\"." +msgstr "" +"Как совместимая с Unix среда для функций управления высокопроизводительными " +"устройствами хранения данных и сетевого оборудования, работающая на " +"отдельном процессорном \"лезвии\"." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:134 +msgid "" +"FreeBSD provides the tools for creating dedicated OS and application program " +"images. Its implementation of a BSD unix API is mature and tested. FreeBSD " +"can also provide a stable cross-development environment for the other " +"components of the high-end device." +msgstr "" +"FreeBSD предоставляет инструменты для создания выделенных образов ОС и " +"прикладных программ. Его реализация API BSD Unix является зрелой и " +"проверенной. FreeBSD также может обеспечить стабильную среду кросс-" +"разработки для других компонентов высокопроизводительных устройств." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:135 +msgid "" +"As a vehicle to get widespread testing and support from a worldwide team of " +"developers for non-critical \"intellectual property\"." +msgstr "" +"Как средство для получения широкого тестирования и поддержки от " +"международной команды разработчиков для некритичной \"интеллектуальной " +"собственности\"." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:139 +msgid "" +"In this model, organizations contribute useful infrastructural frameworks to " +"the FreeBSD project (for example, see man:netgraph[3]). The widespread " +"exposure that the code gets helps to quickly identify performance issues and " +"bugs. The involvement of top-notch developers also leads to useful " +"extensions to the infrastructure that the contributing organization also " +"benefits from." +msgstr "" +"В этой модели организации вносят полезные инфраструктурные фреймворки в " +"проект FreeBSD (например, см. man:netgraph[3]). Широкое распространение кода " +"помогает быстро выявлять проблемы производительности и ошибки. Участие " +"высококлассных разработчиков также приводит к полезным расширениям " +"инфраструктуры, от которых выигрывает и сама организация-вкладчик." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:140 +msgid "" +"As a development environment supporting cross-development for embedded OSes " +"like http://www.rtems.com/[RTEMS] and http://ecos.sourceware.org/[eCOS]." +msgstr "" +"Как среда разработки, поддерживающая кросс-разработку для встраиваемых ОС, " +"таких как http://www.rtems.com/[RTEMS] и http://ecos.sourceware.org/[eCOS]." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:142 +msgid "" +"There are many full-fledged development environments in the {numports}-" +"strong collection of applications ported and packaged with FreeBSD." +msgstr "" +"В обширной коллекции портированных и упакованных приложений FreeBSD, " +"насчитывающей {numports} элементов, доступно множество полноценных сред " +"разработки." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:143 +msgid "" +"As a way to support a Unix-like API in an otherwise proprietary OS, " +"increasing its palatability for application developers." +msgstr "" +"В качестве способа поддержки Unix-подобного API в проприетарной ОС, повышая " +"её привлекательность для разработчиков приложений." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:147 +msgid "" +"Here parts of FreeBSD's kernel and application programs are \"ported\" to " +"run alongside other tasks in the proprietary OS. The availability of a " +"stable and well tested Unix(TM) API implementation can reduce the effort " +"needed to port popular applications to the proprietary OS. As FreeBSD ships " +"with high-quality documentation for its internals and has effective " +"vulnerability management and release engineering processes, the costs of " +"keeping up-to-date are kept low." +msgstr "" +"В этой части ядра FreeBSD и прикладных программ \"портированы\" для работы " +"вместе с другими задачами в проприетарной ОС. Наличие стабильной и хорошо " +"протестированной реализации Unix(TM) API может сократить усилия, необходимые " +"для переноса популярных приложений на проприетарную ОС. Поскольку FreeBSD " +"поставляется с качественной документацией по своей внутренней структуре и " +"имеет эффективные процессы управления уязвимостями и выпуска релизов, " +"затраты на поддержание актуальности остаются низкими." + +#. type: Title === +#: documentation/content/en/articles/building-products/_index.adoc:149 +#, no-wrap +msgid "Technologies" +msgstr "Технологии" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:153 +msgid "" +"There are a large number of technologies supported by the FreeBSD project. " +"A selection of these are listed below:" +msgstr "" +"В проекте FreeBSD поддерживается большое количество технологий. Ниже " +"приведен их выбор:" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:155 +msgid "" +"A complete system that can cross-host itself for link:https://" +"www.FreeBSD.org/platforms/[many architectures:]" +msgstr "" +"Полная система, способная самостоятельно осуществлять кросс-хостинг для " +"link:https://www.FreeBSD.org/platforms/[множества архитектур:]" + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:156 +msgid "" +"A modular symmetric multiprocessing capable kernel, with loadable kernel " +"modules and a flexible and easy to use configuration system." +msgstr "" +"Модульное симметричное многопроцессорное ядро с загружаемыми модулями и " +"гибкой, удобной системой настройки." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:157 +msgid "" +"Support for emulation of Linux(TM) and SVR4 binaries at near machine speeds. " +"Support for binary Windows(TM) (NDIS) network drivers." +msgstr "" +"Поддержка эмуляции бинарных файлов Linux(TM) и SVR4 с почти нативной " +"скоростью. Поддержка бинарных сетевых драйверов Windows(TM) (NDIS)." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:158 +msgid "" +"Libraries for many programming tasks: archivers, FTP and HTTP support, " +"thread support, in addition to a full POSIX(TM) like programming environment." +msgstr "" +"Библиотеки для множества задач программирования: архиваторы, поддержка FTP и " +"HTTP, поддержка потоков, а также полноценная среда программирования, " +"аналогичная POSIX(TM)." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:159 +msgid "" +"Security features: Mandatory Access Control (man:mac[9]), jails " +"(man:jail[2]), ACLs, and in-kernel cryptographic device support." +msgstr "" +"Безопасность: Принудительное управление доступом (man:mac[9]), клетки " +"(man:jail[2]), ACL и поддержка криптографических устройств в ядре." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:160 +msgid "" +"Networking features: firewall-ing, QoS management, high-performance TCP/IP " +"networking with support for many extensions." +msgstr "" +"Сетевые возможности: работа с межсетевым экраном, управление QoS, " +"высокопроизводительные TCP/IP сети с поддержкой множества расширений." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:162 +msgid "" +"FreeBSD's in-kernel Netgraph (man:netgraph[4]) framework allows kernel " +"networking modules to be connected together in flexible ways." +msgstr "" +"Встроенная в FreeBSD система Netgraph (man:netgraph[4]) позволяет гибко " +"соединять модули сетевого ядра между собой." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:163 +msgid "" +"Support for storage technologies: Fibre Channel, SCSI, software and hardware " +"RAID, ATA and SATA." +msgstr "" +"Поддержка технологий хранения данных: Fibre Channel, SCSI, программный и " +"аппаратный RAID, ATA и SATA." + +#. type: Plain text +#: documentation/content/en/articles/building-products/_index.adoc:167 +#, no-wrap +msgid "" +"FreeBSD supports a number of filesystems, and its native UFS2 filesystem\n" +"supports soft updates, snapshots and very large filesystem sizes (16TB per\n" +"\t\tfilesystem) crossref:building-products[McKu1999,\"Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem\"].\n" +msgstr "" +"FreeBSD поддерживает множество файловых систем, а его родная файловая система UFS2\n" +"поддерживает мягкие обновления, снимки и очень большие размеры файловых систем (16TB на\n" +"файловую систему) crossref:building-products[McKu1999,\"Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem\"].\n" + *** 974 LINES SKIPPED *** From nobody Sun Sep 21 09:34:13 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cV1KL2YBrz67pgg for ; Sun, 21 Sep 2025 09:34:14 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cV1KL0xyLz3PGh; Sun, 21 Sep 2025 09:34:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758447254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9XJsa6fpboyjcW0ew6D0fh/T3GoUPJYY+/s2eKmbrq4=; b=Ozq6LmS+WAkCntNaIorPO6wDgWObQku9uucM1QuTrsZPAeZBhL9pioGbZc2OQ7pnMH3AgQ eiJRM8cgYQ0zB4x8MYFgtU19CotxmmfSTm2hIiSjv5XZfQfvSeOIYO7nEBEOPhKpIXMLCn ztrz/89oj6znx2xHPUMQYsg7THn46NIZGz1fbD3ITKJmfp4+UZpJWpcjxqZ3/uFy8CJhKn OGtpHCmY8BMzmhCi50oHSITGJ9tP+oLpldLwz6e4nXt/b1IqgbWN9OdmMiHy9co6zhhXuR fLiFQTUMKmv47yFBwe/VcuS6hJJsVzXzTomAmOR+II++iMsEtDTgecqvLuvXCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758447254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9XJsa6fpboyjcW0ew6D0fh/T3GoUPJYY+/s2eKmbrq4=; b=qypb4p++J7Z7de+2IR/PLOnzqbn1EC6R6R+opodUU44CVrFW9ieaU3Vwxv60+jL5kDRGM6 scakfxCuiLyDBX0TBw/h0/H4VwjZGhQh1U5vYSLHDh6vFS+dQ0qRKhgmm9BdlGcmXcjFVz 9uW+cqa83lBXvlnnF3qbFc6+1QAmXByseavMdU6y4t6IXEXABUR+BzsW49T2U2CQSjKaAu SUiJKm6saMbC82Z9q/ud+c5qQv+dJKNWh1r5/NKZov0hPnQ65qxweSEmzxXsaRbzwyexvd sZMArTth/K3k6ca7fwMpMqp7zmaaT23rCzqlCqn6rmHWaulRmlW/iOEQQ0Y3qw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758447254; a=rsa-sha256; cv=none; b=ws08Yo4cxvUKhy4qQTWooEHU89rEcSqLu2e3Co01veyHV0ZrUC2SUazL3XN7CP60/0gq8g JG9MQSKTzXKN9Xl9uRpK1IL0lyHuceqtE0eqwOSjv7doFpKTU9nisiTOt189kvCCpIWRTM r1DNoH8EDFkib7DybDx6CK3vsZ8sgDaEAkZFJAvaJ5YT23jcQltGrxWhJue5B0AWDefJSd UmDHKs69RZ786EZAl1aoH9GXxafn9RA6eBqA6C2s2ir05uXGkCn01AnFN3s0gP2AHXaDgH A+NjMa89a82onfOvQZFBgqQ+0wJ2ITK9PG2E4UyVf3hYxbdnKVhFvXiRurZH8Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cV1KL0X1Jz17WF; Sun, 21 Sep 2025 09:34:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58L9YD7e018988; Sun, 21 Sep 2025 09:34:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58L9YDvu018985; Sun, 21 Sep 2025 09:34:13 GMT (envelope-from git) Date: Sun, 21 Sep 2025 09:34:13 GMT Message-Id: <202509210934.58L9YDvu018985@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Vladlen Popolitov Subject: git: 649f17aa0b - main - update translation of articles/new-users to Russian List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vladlen X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 649f17aa0ba6cec0e6156a74553f5a7b54fb8699 Auto-Submitted: auto-generated The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=649f17aa0ba6cec0e6156a74553f5a7b54fb8699 commit 649f17aa0ba6cec0e6156a74553f5a7b54fb8699 Author: Vladlen Popolitov AuthorDate: 2025-09-21 09:32:49 +0000 Commit: Vladlen Popolitov CommitDate: 2025-09-21 09:32:49 +0000 update translation of articles/new-users to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D51957 --- .../content/ru/articles/new-users/_index.adoc | 56 +- .../content/ru/articles/new-users/_index.po | 1440 ++++++++++++++++++++ 2 files changed, 1470 insertions(+), 26 deletions(-) diff --git a/documentation/content/ru/articles/new-users/_index.adoc b/documentation/content/ru/articles/new-users/_index.adoc index 541ef8470c..5338731a98 100644 --- a/documentation/content/ru/articles/new-users/_index.adoc +++ b/documentation/content/ru/articles/new-users/_index.adoc @@ -1,8 +1,11 @@ --- -title: Пособие для новичков во FreeBSD и UNIX® authors: - - author: Annelise Anderson + - + author: 'Annelise Anderson' email: andrsn@andrsn.stanford.edu +description: 'Введение для пользователей, не знакомых с FreeBSD и UNIX®' +tags: ["Introduction", "basics", "FreeBSD", "UNIX"] +title: 'Для тех, кто новичок и в FreeBSD, и в UNIX®' trademarks: ["freebsd", "ibm", "microsoft", "opengroup", "general"] --- @@ -49,11 +52,11 @@ toc::[] [[in-and-out]] == Регистрация в системе и выход из неё -Зарегистрируйтесь в системе (когда увидите приглашение `login:`) как пользователь, которого вы создали во время установки, или войдите в систему как пользователь `root`. (В вашей установленной системе уже имеется учётная запись для пользователя `root`; который может переходить хоть куда и делать всё, что угодно, в том числе удаление необходимых для работы файлов, так что будьте внимательны!) Обозначения % и # в последующем тексте означают приглашения системы (ваше может отличаться от него), причём % обозначает обычного пользователя, а # пользователя `ro ot`. +Войдите в систему (когда увидите `login:`), используя пользователя, созданного во время установки, или как `root`. (В вашей установке FreeBSD уже будет учётная запись для `root`; этот пользователь может ходить куда угодно и делать что угодно, включая удаление важных файлов, так что будьте осторожны!) Символы % и # в дальнейшем обозначают приглашение командной строки (у вас оно может выглядеть иначе), где % означает обычного пользователя, а # — `root`. Чтобы выйти из системы (и получить новое приглашение `login:`) наберите -[source,shell] +[source, shell] .... # exit .... @@ -62,21 +65,21 @@ toc::[] Для завершения работы машины наберите -[source,shell] +[source, shell] .... # /sbin/shutdown -h now .... Или, для перезагрузки нужно набрать -[source,shell] +[source, shell] .... # /sbin/shutdown -r now .... или -[source,shell] +[source, shell] .... # /sbin/reboot .... @@ -88,7 +91,7 @@ toc::[] Если при установке системы вы не создали ни одного пользователя, и поэтому вошли в систему как `root`, то теперь вы должны создать пользователя по команде -[source,shell] +[source, shell] .... # adduser .... @@ -97,7 +100,7 @@ toc::[] Предположим, что вы создали пользователя `jack` с полным именем __Jack Benimble__. Назначьте пользователю `jack` пароль, если информационная безопасность имеет значение (даже если это дети, которые могут стучать по клавиатуре). Когда вам будет задан вопрос по включению пользователя `jack` в другие группы, наберите `wheel` -[source,shell] +[source, shell] .... Login group is "jack". Invite jack into other groups: wheel .... @@ -175,14 +178,14 @@ Login group is "jack". Invite jack into other groups: wheel Некоторые из этих команд работают не очень хорошо? Обе команды man:locate[1] и man:whatis[1] зависят от базы данных, которая перестраивается еженедельно. Если ваша машина будет оставаться включенной на выходные (и она работает под FreeBSD), то вы можете пожелать запускать определённые команды раз в день, неделю, месяц. Запускайте их как `root` и дайте каждой отработать, прежде чем запускать следующую. -[source,shell] +[source, shell] .... # periodic daily -выдача опущена +output omitted # periodic weekly -выдача опущена +output omitted # periodic monthly -выдача опущена +output omitted .... Если вам надоело ждать, нажмите kbd:[Alt+F2] для перехода в другую _виртуальную консоль_, и войдите в систему снова. В конце концов, это многопользовательская и многозадачная система. Тем не менее эти команды, скорее всего, в процессе работы будут выдавать сообщения вам на экран; вы можете набрать `clear` в приглашении для очистки экрана. Пока они работают, вы можете смотреть в содержимое файлов [.filename]#/var/mail/root# и [.filename]#/var/log/messages#. @@ -196,14 +199,14 @@ Login group is "jack". Invite jack into other groups: wheel Перед тем, как редактировать файл, наверное, вы должны сохранить резервную копию. Предположим, что вы собираетесь отредактировать файл [.filename]#/etc/rc.conf#. Вы можете воспользоваться командой `cd /etc` для перехода в каталог [.filename]#/etc# и выполнить следующее: -[source,shell] +[source, shell] .... # cp rc.conf rc.conf.orig .... При этом файл [.filename]#rc.conf# скопируется в [.filename]#rc.conf.orig#, и в последующем вы сможете скопировать [.filename]#rc.conf.orig# в файл [.filename]#rc.conf# для восстановления оригинала. Но ещё лучше его переместить (переименовать), после чего скопировать обратно: -[source,shell] +[source, shell] .... # mv rc.conf rc.conf.orig # cp rc.conf.orig rc.conf @@ -211,7 +214,7 @@ Login group is "jack". Invite jack into other groups: wheel потому что команда `mv` сохраняет исходную информацию о дате и владельце файла. Теперь вы можете редактировать [.filename]#rc.conf#. Если вы захотите восстановить исходное состояние, то выполните `mv rc.conf rc.conf.myedit` (полагаем, что вы хотите сохранить отредактированную версию), а затем -[source,shell] +[source, shell] .... # mv rc.conf.orig rc.conf .... @@ -220,7 +223,7 @@ Login group is "jack". Invite jack into other groups: wheel Для редактирования файла наберите -[source,shell] +[source, shell] .... # vi filename .... @@ -262,8 +265,8 @@ Login group is "jack". Invite jack into other groups: wheel kbd:[Ctrl+L]:: для перерисовки экрана -kbd:[Ctrl+b] и kbd:[Ctrl+f]:: -для перемотки на экран назад и вперёд, как при работе с `more` и `view`. +kbd:[Ctrl+b] and kbd:[Ctrl+f]:: +для перелистывания экрана вперед и назад, как это делается в `more` и `view`. Поупражняйтесь с редактором `vi` в своём домашнем каталоге, создав новый файл по команде `vi _filename_`, добавляя и удаляя текст, сохраняя файл и вызывая его снова. Редактор `vi` преподносит некоторые сюрпризы, потому что он на самом деле достаточно сложный, и иногда вы можете неправильно вызвать команду, которая сделает нечто, чего вы не ожидали. (Некоторым людям действительно нравится `vi`-он более мощный, чем EDIT из DOS-посмотрите команду `:r`.) Для того, чтобы удостовериться, что вы находитесь в режиме команд, нажимайте kbd:[Esc] один или несколько раз, и начи найте снова с этого места, если возникли какие-то проблемы, часто сохраняйте текст командой `:w` и используйте `:q!` для того, чтобы прекратить работу и начать всё сначала (с вашей последней команды `:w`), если это нужно. @@ -295,7 +298,7 @@ kbd:[Ctrl+b] и kbd:[Ctrl+f]:: Используйте `find` для поиска [.filename]#filename# в [.filename]#/usr# или в любом из её подкаталогов при помощи команды -[source,shell] +[source, shell] .... % find /usr -name "filename" .... @@ -313,7 +316,7 @@ kbd:[Ctrl+b] и kbd:[Ctrl+f]:: Найдите нужный вам порт, скажем, `kermit`. На CDROM для него должен существовать каталог. Скопируйте этот подкаталог в каталог [.filename]#/usr/local# (хорошее место для программного обеспечения, которое вы добавляете, и которое должно быть доступно всем пользователям) такой командой: -[source,shell] +[source, shell] .... # cp -R /cdrom/ports/comm/kermit /usr/local .... @@ -324,7 +327,7 @@ kbd:[Ctrl+b] и kbd:[Ctrl+f]:: После этого по команде `cd` перейдите в подкаталог [.filename]#/usr/local/kermit#, в котором есть файл [.filename]#Makefile#. Наберите -[source,shell] +[source, shell] .... # make all install .... @@ -343,13 +346,14 @@ kbd:[Ctrl+b] и kbd:[Ctrl+f]:: Вот три шага по установке нового командного процессора: [.procedure] +==== . Установите командный процессор как порт или пакет, как вы обычно это делаете с другим портом или пакетом. -. Работая как пользователь `root`, отредактируйте файл [.filename]#/etc/shells#, добавив в него строку с новой оболочкой, в нашем случае это [.filename]#/usr/local/bin/tcsh#, и сохраните файл. (Некоторые порты могут делать это за вас.) -. Воспользуйтесь командой `chsh` для смены постоянно используемой вами оболочки на `tcsh`, либо наберите `tcsh` в командной строке для смены вашей оболочки без повторного входа в систему. +. Используйте `chsh`, чтобы навсегда изменить оболочку на `tcsh`, или введите `tcsh` в командной строке, чтобы сменить оболочку без повторного входа в систему. +==== [NOTE] ==== -Менять командный процессор для пользователя `root` на что-то, отличающееся от `sh` или `csh`, в ранних версиях FreeBSD и во многих других версиях UNIX(R) может быть опасно; вы можете лишиться работающей оболочки при переходе системы в однопользовательский режим. Решением является использование `su -m` для того, чтобы стать пользователем `root`, что даст в качестве оболочки `tcsh`, но вы будете являться пользователем `root`, потому что оболочка является частью окружения. Вы можете сделать это постоянным, добавив в ваш файл [.filename]#.tcshrc# в качестве алиаса по такой коман де: +Может быть опасно изменять оболочку `root` на что-то отличное от `sh` или `csh` в ранних версиях FreeBSD и многих других версиях UNIX(R); у вас может не оказаться рабочей оболочки, когда система переведёт вас в однопользовательский режим. Решение заключается в использовании `su -m` для получения прав `root`, что даст вам `tcsh` в качестве оболочки `root`, так как оболочка является частью окружения. Вы можете сделать это постоянным, добавив в ваш [.filename]#.tcshrc# алиас с: [.programlisting] .... @@ -369,7 +373,7 @@ set prompt = "%h %t %~ %# " Перечень других установленных переменных окружения вы можете получить, набрав `env` в приглашении командной строки. В результате, кроме всего прочего, будут показаны редактор, используемый по умолчанию, программа постраничной выдачи и тип терминала. Командой, полезной при входе в систему с удалённого места и невозможности запуска программы, потому что терминал не обладает некоторыми возможностями, является команда `setenv TERM vt100`. [[other]] -== Остальное +== Другие Работая как пользователь `root`, вы можете отмонтировать CDROM по команде `/sbin/umount /cdrom`, вытащить его из привода, вставить другой диск и смонтировать его командой `/sbin/mount_cd9660 /dev/cd0a /cdrom`, при этом предполагается, что `cd0a` является именем устройства для вашего привода CDROM. Самые последние версии FreeBSD позволяют вам монтировать CDROM просто по команде `/sbin/mount /cdrom`. diff --git a/documentation/content/ru/articles/new-users/_index.po b/documentation/content/ru/articles/new-users/_index.po new file mode 100644 index 0000000000..e0c5a1b6e9 --- /dev/null +++ b/documentation/content/ru/articles/new-users/_index.po @@ -0,0 +1,1440 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov , 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-21 12:28+0300\n" +"PO-Revision-Date: 2025-07-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/articles/new-users/_index.adoc:1 +#, no-wrap +msgid "Introduction for people new to both FreeBSD and UNIX®" +msgstr "Введение для пользователей, не знакомых с FreeBSD и UNIX®" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/articles/new-users/_index.adoc:1 +#, no-wrap +msgid "For People New to Both FreeBSD and UNIX®" +msgstr "Для тех, кто новичок и в FreeBSD, и в UNIX®" + +#. type: Title = +#: documentation/content/en/articles/new-users/_index.adoc:11 +#, no-wrap +msgid "For People New to Both FreeBSD and UNIX(R)" +msgstr "Пособие для новичков во FreeBSD и UNIX(R)" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:44 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:46 +msgid "" +"Congratulations on installing FreeBSD! This introduction is for people new " +"to both FreeBSD _and_ UNIX(R)-so it starts with basics." +msgstr "" +"Поздравляем вас с установкой FreeBSD! Это вводное пособие предназначено для " +"тех, кто является новичком в мире FreeBSD _и_ UNIX(R)-так что оно начнётся с " +"основ." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:48 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/new-users/_index.adoc:52 +#, no-wrap +msgid "Logging in and Getting Out" +msgstr "Регистрация в системе и выход из неё" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:58 +msgid "" +"Log in (when you see `login:`) as a user you created during installation or " +"as `root`. (Your FreeBSD installation will already have an account for " +"`root`; who can go anywhere and do anything, including deleting essential " +"files, so be careful!) The symbols % and # in the following stand for the " +"prompt (yours may be different), with % indicating an ordinary user and # " +"indicating `root`." +msgstr "" +"Войдите в систему (когда увидите `login:`), используя пользователя, " +"созданного во время установки, или как `root`. (В вашей установке FreeBSD " +"уже будет учётная запись для `root`; этот пользователь может ходить куда " +"угодно и делать что угодно, включая удаление важных файлов, так что будьте " +"осторожны!) Символы % и # в дальнейшем обозначают приглашение командной " +"строки (у вас оно может выглядеть иначе), где % означает обычного " +"пользователя, а # — `root`." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:60 +msgid "To log out (and get a new `login:` prompt) type" +msgstr "" +"Чтобы выйти из системы (и получить новое приглашение `login:`) наберите" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:64 +#, no-wrap +msgid "# exit\n" +msgstr "# exit\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:68 +msgid "" +"as often as necessary. Yes, press kbd:[enter] after commands, and remember " +"that UNIX(R) is case-sensitive-``exit``, not `EXIT`." +msgstr "" +"столько раз, сколько нужно. Да, нажимайте kbd:[enter] после набора команд, и " +"помните, что UNIX(R) чувствителен к регистру букв-набирайте `exit`, но не " +"`EXIT`." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:70 +msgid "To shut down the machine type" +msgstr "Для завершения работы машины наберите" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:74 +#, no-wrap +msgid "# /sbin/shutdown -h now\n" +msgstr "# /sbin/shutdown -h now\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:77 +msgid "Or to reboot type" +msgstr "Или, для перезагрузки нужно набрать" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:81 +#, no-wrap +msgid "# /sbin/shutdown -r now\n" +msgstr "# /sbin/shutdown -r now\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:84 +msgid "or" +msgstr "или" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:88 +#, no-wrap +msgid "# /sbin/reboot\n" +msgstr "# /sbin/reboot\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:94 +msgid "" +"You can also reboot with kbd:[Ctrl+Alt+Delete]. Give it a little time to do " +"its work. This is equivalent to `/sbin/reboot` in recent releases of " +"FreeBSD and is much, much better than hitting the reset button. You do not " +"want to have to reinstall this thing, do you?" +msgstr "" +"Перезагрузку можно также выполнить нажатием клавиш kbd:[Ctrl+Alt+Delete]. " +"Подождите некоторое время, чтобы дать этой команде отработать. В последних " +"релизах FreeBSD она эквивалента выдаче команды `/sbin/reboot` и гораздо, " +"гораздо лучше, чем нажатие кнопки сброса. Вы ведь не хотите всё " +"переустанавливать заново, не так ли?" + +#. type: Title == +#: documentation/content/en/articles/new-users/_index.adoc:96 +#, no-wrap +msgid "Adding a User with Root Privileges" +msgstr "Добавление пользователя с привилегиями root" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:99 +msgid "" +"If you did not create any users when you installed the system and are thus " +"logged in as `root`, you should probably create a user now with" +msgstr "" +"Если при установке системы вы не создали ни одного пользователя, и поэтому " +"вошли в систему как `root`, то теперь вы должны создать пользователя по " +"команде" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:103 +#, no-wrap +msgid "# adduser\n" +msgstr "# adduser\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:109 +msgid "" +"The first time you use `adduser`, it might ask for some defaults to save. " +"You might want to make the default shell man:csh[1] instead of man:sh[1], if " +"it suggests `sh` as the default. Otherwise just press enter to accept each " +"default. These defaults are saved in [.filename]#/etc/adduser.conf#, an " +"editable file." +msgstr "" +"При первом использовании утилиты `adduser` она может запрашивать сохранение " +"некоторых параметров для использования их по умолчанию. вы можете сделать " +"оболочкой, используемой по умолчанию, командный процессор man:csh[1], а не " +"man:sh[1], если по умолчанию вам предлагается `sh`. В противном случае " +"просто нажимайте enter для принятия всех предлагаемых по умолчанию " +"вариантов. Эти значения по умолчанию сохраняются в файле [.filename]#/etc/" +"adduser.conf#, в форме, доступной для редактирования." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:113 +msgid "" +"Suppose you create a user `jack` with full name _Jack Benimble_. Give " +"`jack` a password if security (even kids around who might pound on the " +"keyboard) is an issue. When it asks you if you want to invite `jack` into " +"other groups, type `wheel`" +msgstr "" +"Предположим, что вы создали пользователя `jack` с полным именем __Jack " +"Benimble__. Назначьте пользователю `jack` пароль, если информационная " +"безопасность имеет значение (даже если это дети, которые могут стучать по " +"клавиатуре). Когда вам будет задан вопрос по включению пользователя `jack` в " +"другие группы, наберите `wheel`" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:117 +#, no-wrap +msgid "Login group is \"jack\". Invite jack into other groups: wheel\n" +msgstr "Login group is \"jack\". Invite jack into other groups: wheel\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:121 +msgid "" +"This will make it possible to log in as `jack` and use the man:su[1] command " +"to become `root`. Then you will not get scolded any more for logging in as " +"`root`." +msgstr "" +"Это позволит входить в систему как пользователь `jack` и использовать " +"команду man:su[1] для того, чтобы стать пользователем `root`. Тогда вас не " +"будут больше обвинять в том, чтобы вы входите в систему как пользователь " +"`root`." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:124 +msgid "" +"You can quit `adduser` any time by typing kbd:[Ctrl+C], and at the end you " +"will have a chance to approve your new user or simply type kbd:[n] for no. " +"You might want to create a second new user so that when you edit `jack`'s " +"login files, you will have a hot spare in case something goes wrong." +msgstr "" +"Вы можете прекратить работы с `adduser` в любой момент, нажав kbd:[Ctrl+C], " +"а в завершении ввода у вас будет шанс подтвердить заведение нового " +"пользователя или набрать kbd:[n] в качестве отрицательного ответа. Вам может " +"захотеться создать второго нового пользователя, для того, чтобы при " +"редактировании файлов для входа пользователя `jack` имелся горячий резерв на " +"тот случай, если что-то пойдёт не так." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:127 +msgid "" +"Once you have done this, use `exit` to get back to a login prompt and log in " +"as `jack`. In general, it is a good idea to do as much work as possible as " +"an ordinary user who does not have the power-and risk-of `root`." +msgstr "" +"После того, как вы это сделаете, воспользуйтесь командой `exit` для возврата " +"к приглашению ко входу в систему и зарегистрируйтесь в ней как пользователь " +"`jack`. Вообще говоря, лучше всего основную массу работы выполнять, работая " +"как обычный пользователь, который не имеет мощь и опасность пользователя " +"`root`." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:130 +msgid "" +"If you already created a user and you want the user to be able to `su` to " +"`root`, you can log in as `root` and edit the file [.filename]#/etc/group#, " +"adding `jack` to the first line (the group `wheel`). But first you need to " +"practice man:vi[1], the text editor-or use the simpler text editor, " +"man:ee[1], installed on recent versions of FreeBSD." +msgstr "" +"Если вы уже создали пользователя и хотите, чтобы он мог выполнять команду " +"`su` для получения привилегий `root`, вы можете войти в систему как `root` и " +"отредактировать файл [.filename]#/etc/group#, добавив пользователя `jack` в " +"первую строчку (в группу `wheel`). Однако сначала вам нужно поупражняться с " +"программой man:vi[1], текстовым редактором,-или использовать более простой " +"редактор, man:ee[1], имеющийся в последней версии FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:132 +msgid "To delete a user, use `rmuser`." +msgstr "Для удаления пользователя воспользуйтесь командой `rmuser`." + +#. type: Title == +#: documentation/content/en/articles/new-users/_index.adoc:134 +#, no-wrap +msgid "Looking Around" +msgstr "Просмотр окружения" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:137 +msgid "" +"Logged in as an ordinary user, look around and try out some commands that " +"will access the sources of help and information within FreeBSD." +msgstr "" +"Войдя в систему как обычный пользователь, оглянитесь вокруг и попробуйте " +"выполнить некоторые команды, дающие доступ к источникам информации и помощи " +"внутри FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:139 +msgid "Here are some commands and what they do:" +msgstr "Вот некоторые команды и то, что они делают:" + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:140 +#, no-wrap +msgid "`id`" +msgstr "`id`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:142 +msgid "Tells you who you are!" +msgstr "Говорит вам, кто вы!" + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:143 +#, no-wrap +msgid "`pwd`" +msgstr "`pwd`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:145 +msgid "Shows you where you are-the current working directory." +msgstr "Показывает, где вы находитесь-текущий рабочий каталог." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:146 +#, no-wrap +msgid "`ls`" +msgstr "`ls`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:148 +msgid "Lists the files in the current directory." +msgstr "Выдаёт список файлов, находящихся в текущем каталоге." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:149 +#, no-wrap +msgid "`ls -F`" +msgstr "`ls -F`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:151 +msgid "" +"Lists the files in the current directory with a * after executables, a `/` " +"after directories, and an `@` after symbolic links." +msgstr "" +"Выдаёт перечень файлов, находящихся в текущем каталоге, добавляя символы " +"`\\*` после выполнимых файлов, `/` после каталогов и `@` после символических " +"ссылок." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:152 +#, no-wrap +msgid "`ls -l`" +msgstr "`ls -l`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:154 +msgid "Lists the files in long format-size, date, permissions." +msgstr "" +"Выдаёт перечень файлов в расширенном формате-размер, дата и права доступа." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:155 +#, no-wrap +msgid "`ls -a`" +msgstr "`ls -a`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:158 +msgid "" +"Lists hidden \"dot\" files with the others. If you are `root`, the \"dot\" " +"files show up without the `-a` switch." +msgstr "" +"Вместе со всеми выдаёт и список скрытых \"dot\"-файлов (начинающихся с " +"точки). Если вы являетесь пользователем `root`, то \"dot\"-файлы выдаются и " +"без указания флага `-a`." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:159 +#, no-wrap +msgid "`cd`" +msgstr "`cd`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:163 +msgid "" +"Changes directories. `cd ..` backs up one level; note the space after `cd`. " +"`cd /usr/local` goes there. `cd ~` goes to the home directory of the person " +"logged in-e.g., [.filename]#/usr/home/jack#. Try `cd /cdrom`, and then " +"`ls`, to find out if your CDROM is mounted and working." +msgstr "" +"Смена каталогов. `cd ..` перемещает на один уровень выше; обратите внимание " +"на промежуток после `cd`. `cd /usr/local` перейдёт в указанное место. `cd ~` " +"перейдёт в домашний каталог человека, который вошёл в систему-к примеру, " +"[.filename]#/usr/home/jack#. попробуйте выполнить команду `cd /cdrom`, а " +"затем `ls` для проверки того, что ваш CDROM смонтирован и работает." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:164 +#, no-wrap +msgid "`less _filename_`" +msgstr "`less _filename_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:168 +msgid "" +"Lets you look at a file (named _filename_) without changing it. Try `less /" +"etc/fstab`. Type `q` to quit." +msgstr "" +"Позволяет вам просмотреть файл (с именем _filename_) без внесения в него " +"изменений. Попробуйте выполнить команду `less /etc/fstab`. Для выхода " +"наберите `q`." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:169 +#, no-wrap +msgid "`cat _filename_`" +msgstr "`cat _filename_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:174 +msgid "" +"Displays _filename_ on screen. If it is too long and you can see only the " +"end of it, press kbd:[ScrollLock] and use the kbd:[up-arrow] to move " +"backward; you can use kbd:[ScrollLock] with manual pages too. Press kbd:" +"[ScrollLock] again to quit scrolling. You might want to try `cat` on some " +"of the dot files in your home directory-`cat .cshrc`, `cat .login`, " +"`cat .profile`." +msgstr "" +"Выдаёт содержимое _filename_ на экран. если он слишком длинный и вы можете " +"увидеть только его конец, нажмите kbd:[ScrollLock] и используйте клавишу kbd:" +"[стрелка вверх] для движения назад; вы можете также использовать kbd:" +"[ScrollLock] и со страницами справки. Нажмите kbd:[ScrollLock] снова для " +"прекращения прокрутки. Вам может захотеться попробовать команду `cat` с " +"некоторыми из dot-файлов в вашем домашнем каталоге-`cat .cshrc`, " +"`cat .login`, `cat .profile`." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:178 +msgid "" +"You will notice aliases in [.filename]#.cshrc# for some of the `ls` commands " +"(they are very convenient). You can create other aliases by editing " +"[.filename]#.cshrc#. You can make these aliases available to all users on " +"the system by putting them in the system-wide `csh` configuration file, " +"[.filename]#/etc/csh.cshrc#." +msgstr "" +"В файле [.filename]#.cshrc# вы заметите алиасы для некоторых из команд `ls` " +"(они очень удобны). Вы можете создать другие алиасы, отредактировав файл " +"[.filename]#.cshrc#. Вы можете сделать эти алиасы доступными всем " +"пользователям системы, поместив их в общесистемный конфигурационный файл для " +"`csh`, [.filename]#/etc/csh.cshrc#." + +#. type: Title == +#: documentation/content/en/articles/new-users/_index.adoc:180 +#, no-wrap +msgid "Getting Help and Information" +msgstr "Получение помощи и информации" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:184 +msgid "" +"Here are some useful sources of help. _Text_ stands for something of your " +"choice that you type in-usually a command or filename." +msgstr "" +"Вот несколько полезных источников получения помощи. Здесь _Text_ обозначает " +"что-то по вашему выбору, что вы вводите-обычно команду или имя файла." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:185 +#, no-wrap +msgid "`apropos _text_`" +msgstr "`apropos _text_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:187 +msgid "Everything containing string _text_ in the `whatis database`." +msgstr "Всё, что содержит строку _text_ в `базе whatis`." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:188 +#, no-wrap +msgid "`man _text_`" +msgstr "`man _text_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:193 +msgid "" +"The manual page for _text_. The major source of documentation for UNIX(R) " +"systems. `man ls` will tell you all the ways to use `ls`. Press kbd:" +"[Enter] to move through text, kbd:[Ctrl+B] to go back a page, kbd:[Ctrl+F] " +"to go forward, kbd:[q] or kbd:[Ctrl+C] to quit." +msgstr "" +"Страница справки по _text_. Это главный источник документации в UNIX(R)-" +"системах. `man ls` покажет вам все способы использования команды `ls`. " +"Нажимайте kbd:[Enter] для передвижения по тексту, kbd:[Ctrl+B] для возврата " +"на страницу назад, kbd:[Ctrl+F] для продвижения вперёд, kbd:[q] или kbd:" +"[Ctrl+C] для выхода." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:194 +#, no-wrap +msgid "`which _text_`" +msgstr "`which _text_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:196 +msgid "Tells you where in the user's path the command _text_ is found." +msgstr "" +"Покажет, в каком месте из маршрута поиска пользователя находится команда " +"_text_." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:197 +#, no-wrap +msgid "`locate _text_`" +msgstr "`locate _text_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:199 +msgid "All the paths where the string _text_ is found." +msgstr "Все маршруты, где находится строчка _text_." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:200 +#, no-wrap +msgid "`whatis _text_`" +msgstr "`whatis _text_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:203 +msgid "" +"Tells you what the command _text_ does and its manual page. Typing `whatis " +"*` will tell you about all the binaries in the current directory." +msgstr "" +"Описывает, что делает команда _text_ и её справочная страница. Команда " +"`whatis *` расскажет вам обо всех двоичных файлах в текущем каталоге." + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:204 +#, no-wrap +msgid "`whereis _text_`" +msgstr "`whereis _text_`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:206 +msgid "Finds the file _text_, giving its full path." +msgstr "Ищет файл _text_ и выдаёт полный путь до него." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:210 +msgid "" +"You might want to try using `whatis` on some common useful commands like " +"`cat`, `more`, `grep`, `mv`, `find`, `tar`, `chmod`, `chown`, `date`, and " +"`script`. `more` lets you read a page at a time as it does in DOS, e.g., " +"`ls -l | more` or `more _filename_`. The * works as a wildcard-e.g., `ls " +"w*` will show you files beginning with `w`." +msgstr "" +"Вы можете захотеть попробовать использоваться команду `whatis` с некоторыми " +"полезными командами типа `cat`, `more`, `grep`, `mv`, `find`, `tar`, " +"`chmod`, `chown`, `date`, и `script`. Команда `more` позволит вам читать " +"постранично, как и в DOS, например, `ls -l | more` или `more _filename_`. " +"Знак `\\*` работает как общий шаблон-например, `ls w*` выдаст перечень " +"файлов, начинающихся с буквы `w`." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:214 +msgid "" +"Are some of these not working very well? Both man:locate[1] and " +"man:whatis[1] depend on a database that is rebuilt weekly. If your machine " +"is not going to be left on over the weekend (and running FreeBSD), you might " +"want to run the commands for daily, weekly, and monthly maintenance now and " +"then. Run them as `root` and, for now, give each one time to finish before " +"you start the next one." +msgstr "" +"Некоторые из этих команд работают не очень хорошо? Обе команды man:locate[1] " +"и man:whatis[1] зависят от базы данных, которая перестраивается еженедельно. " +"Если ваша машина будет оставаться включенной на выходные (и она работает под " +"FreeBSD), то вы можете пожелать запускать определённые команды раз в день, " +"неделю, месяц. Запускайте их как `root` и дайте каждой отработать, прежде " +"чем запускать следующую." + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:223 +#, no-wrap +msgid "" +"# periodic daily\n" +"output omitted\n" +"# periodic weekly\n" +"output omitted\n" +"# periodic monthly\n" +"output omitted\n" +msgstr "" +"# periodic daily\n" +"output omitted\n" +"# periodic weekly\n" +"output omitted\n" +"# periodic monthly\n" +"output omitted\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:229 +msgid "" +"If you get tired of waiting, press kbd:[Alt+F2] to get another _virtual " +"console_, and log in again. After all, it is a multi-user, multi-tasking " +"system. Nevertheless these commands will probably flash messages on your " +"screen while they are running; you can type `clear` at the prompt to clear " +"the screen. Once they have run, you might want to look at [.filename]#/var/" +"mail/root# and [.filename]#/var/log/messages#." +msgstr "" +"Если вам надоело ждать, нажмите kbd:[Alt+F2] для перехода в другую " +"_виртуальную консоль_, и войдите в систему снова. В конце концов, это " +"многопользовательская и многозадачная система. Тем не менее эти команды, " +"скорее всего, в процессе работы будут выдавать сообщения вам на экран; вы " +"можете набрать `clear` в приглашении для очистки экрана. Пока они работают, " +"вы можете смотреть в содержимое файлов [.filename]#/var/mail/root# и " +"[.filename]#/var/log/messages#." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:235 +msgid "" +"Running such commands is part of system administration-and as a single user " +"of a UNIX(R) system, you are your own system administrator. Virtually " +"everything you need to be `root` to do is system administration. Such " +"responsibilities are not covered very well even in those big fat books on " +"UNIX(R), which seem to devote a lot of space to pulling down menus in " +"windows managers. You might want to get one of the two leading books on " +"systems administration, either Evi Nemeth et.al.'s UNIX System " +"Administration Handbook (Prentice-Hall, 1995, ISBN 0-13-15051-7)-the second " +"edition with the red cover; or Æleen Frisch's Essential System " +"Administration (O'Reilly & Associates, 2002, ISBN 0-596-00343-9). I used " +"Nemeth." +msgstr "" +"Выполнение таких команд является частью системного администрирования-и как " +"единственный пользователь UNIX(R)-системы вы являетесь собственным системным " +"администратором. Практически всё, для чего вам нужно быть пользователем " +"`root`, это системное администрирование. Эти обязанности не описываются " +"достаточно хорошо даже в тех больших толстых книгах по UNIX(R), в которых " +"слишком много места отдаётся описанию работы с меню в оконных менеджерах. " +"Вам может понадобиться одна из двух лучших книг по системному " +"администрированию, либо автора Эви Немет UNIX System Administration Handbook " +"(Prentice-Hall, 1995, ISBN 0-13-15051-7)-второе издание с красной обложкой; " +"или автора Æleen Frisch Essential System Administration (O'Reilly & " +"Associates, 2002, ISBN 0-596-00343-9). Я использую книгу Немет." + +#. type: Title == +#: documentation/content/en/articles/new-users/_index.adoc:237 +#, no-wrap +msgid "Editing Text" +msgstr "Редактирование текста" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:243 +msgid "" +"To configure your system, you need to edit text files. Most of them will be " +"in the [.filename]#/etc# directory; and you will need to `su` to `root` to " +"be able to change them. You can use the easy `ee`, but in the long run the " +"text editor `vi` is worth learning. There is an excellent tutorial on vi in " +"[.filename]#/usr/src/contrib/nvi/docs/tutorial#, if you have the system " +"sources installed." +msgstr "" +"Для конфигурации вашей системы вам нужно редактировать текстовые файлы. " +"Большинство из них будут находиться в каталоге [.filename]#/etc#; и вам " +"необходимо командой `su` получить полномочия пользователя `root`, чтобы их " +"править. Вы можете использовать простой редактор `ee`, однако в смысле " +"перспективности лучше изучить текстовый редактор `vi`. В каталоге " +"[.filename]#/usr/src/contrib/nvi/docs/tutorial# есть прекрасный учебник по " +"vi, если у вас есть исходники системы." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:247 +msgid "" +"Before you edit a file, you should probably back it up. Suppose you want to " +"edit [.filename]#/etc/rc.conf#. You could just use `cd /etc` to get to the " +"[.filename]#/etc# directory and do:" +msgstr "" +"Перед тем, как редактировать файл, наверное, вы должны сохранить резервную " +"копию. Предположим, что вы собираетесь отредактировать файл [.filename]#/etc/" +"rc.conf#. Вы можете воспользоваться командой `cd /etc` для перехода в " +"каталог [.filename]#/etc# и выполнить следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:251 +#, no-wrap +msgid "# cp rc.conf rc.conf.orig\n" +msgstr "# cp rc.conf rc.conf.orig\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:255 +msgid "" +"This would copy [.filename]#rc.conf# to [.filename]#rc.conf.orig#, and you " +"could later copy [.filename]#rc.conf.orig# to [.filename]#rc.conf# to " +"recover the original. But even better would be moving (renaming) and then " +"copying back:" +msgstr "" +"При этом файл [.filename]#rc.conf# скопируется в [.filename]#rc.conf.orig#, " +"и в последующем вы сможете скопировать [.filename]#rc.conf.orig# в файл " +"[.filename]#rc.conf# для восстановления оригинала. Но ещё лучше его " +"переместить (переименовать), после чего скопировать обратно:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:260 +#, no-wrap +msgid "" +"# mv rc.conf rc.conf.orig\n" +"# cp rc.conf.orig rc.conf\n" +msgstr "" +"# mv rc.conf rc.conf.orig\n" +"# cp rc.conf.orig rc.conf\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:265 +msgid "" +"because `mv` preserves the original date and owner of the file. You can now " +"edit [.filename]#rc.conf#. If you want the original back, you would then " +"`mv rc.conf rc.conf.myedit` (assuming you want to preserve your edited " +"version) and then" +msgstr "" +"потому что команда `mv` сохраняет исходную информацию о дате и владельце " +"файла. Теперь вы можете редактировать [.filename]#rc.conf#. Если вы захотите " +"восстановить исходное состояние, то выполните `mv rc.conf rc.conf.myedit` " +"(полагаем, что вы хотите сохранить отредактированную версию), а затем" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:269 +#, no-wrap +msgid "# mv rc.conf.orig rc.conf\n" +msgstr "# mv rc.conf.orig rc.conf\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:272 +msgid "to put things back the way they were." +msgstr "для возврата всего на место." + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:274 +msgid "To edit a file, type" +msgstr "Для редактирования файла наберите" + +#. type: delimited block . 4 +#: documentation/content/en/articles/new-users/_index.adoc:278 +#, no-wrap +msgid "# vi filename\n" +msgstr "# vi filename\n" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:283 +msgid "" +"Move through the text with the arrow keys. kbd:[Esc] (the escape key) puts " +"`vi` in command mode. Here are some commands:" +msgstr "" +"Передвигайтесь по тексту при помощи клавиш со стрелками. kbd:[Esc] (клавиша " +"отмены) переводит редактор `vi` в командный режим. Вот некоторые из них:" + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:284 +#, no-wrap +msgid "`x`" +msgstr "`x`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:286 +msgid "delete letter the cursor is on" +msgstr "удалить символ, на котором находится курсор" + +#. type: Labeled list +#: documentation/content/en/articles/new-users/_index.adoc:287 +#, no-wrap +msgid "`dd`" +msgstr "`dd`" + +#. type: Plain text +#: documentation/content/en/articles/new-users/_index.adoc:289 +msgid "delete the entire line (even if it wraps on the screen)" +msgstr "" *** 674 LINES SKIPPED *** From nobody Sun Sep 21 13:30:42 2025 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cV6ZB5fBjz6870Q for ; Sun, 21 Sep 2025 13:30:42 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cV6ZB50PBz3mBr; Sun, 21 Sep 2025 13:30:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758461442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8paqt3xAdcHSztzf6JY6o3RxDInNaZtTeQpV/yJJpOc=; b=AncaVv4tiS5ozwVuX5UjC9HnuN4JxGxG2Y5VWSP3VCMXAOa4/tzNMRtVDBEaquq43WT8z9 1g0mts2YCgP/hjfR3Q5mbq8xIR0nWXOrilYQ4r1vkobZJvask4D5h4qIRxRqnyh14Fyqr6 +aHB5XMTKaba2f6L1lfzCuWSdNnQGmYEZDRZZW0Z7eefNWOdJGW1bxc2hNCliCO6fnd+IK XlfGQtVlXf38EGo7/QOVjs7gKbwReTe1TNNkU3byueqSoAcElP/jgBsYA2FYy3d5rDcZDQ 2nmUCsV2D0YJ/sjz7XhiRDgzc2zdhL9IMAqo2WjuYtmRjtEzxt1RF6xvalbNBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758461442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8paqt3xAdcHSztzf6JY6o3RxDInNaZtTeQpV/yJJpOc=; b=iqcyQRcTKcbWq/hz+Cjrai2oNjNNgCC3yp8hgD8NG2wFwbL3+6Dv6zsvq5ZcHm1tzrcO6w 7d69Xec+FBjqdUSmPaLL0HZPDUd0nL1Rx8KSPersxolElTXUrVypQeKqCXKzsecBBLQdUC e9Ti6PnuVRM9OwKifIoCoQrGR0rZ8aNmU44I1MHlUDyRScOCTie7dRLVat5LyMWRbgZU+b BqBeB5AqoyxNKFzqlUrXFZbcaRgh0LtDFg0Kc1IxUXtU9J4A/9QhXUfw4oEICIobcBHPjW wL4QW5UJ1m69PzsdniucGuMeUHxBaHKKMTscTYWRRtwH88prPg1Hf/4d90CIKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758461442; a=rsa-sha256; cv=none; b=YCHTqSgUTH7jw88hwkDrBDk8vQ0CDd7A1YLEMUw9+xwTNFIFSQXdkmegXlN82ERXKNiUah 50Hxq9Qm/pObEpKUCX0JVHgDRfDWYgj2FZSEuCuEE1ux9l5ZdrDll+rW1CV+60BnxXNgAz o/tnLYJ0IUdjFNCISHoVX+d5qvV+L9+bWgiyUVN2GKPtXoKQTcU6kzYflRlVULm1WLBgGs b+rjK014bvDiV6cqCQAz5QECwwHqUN6CxCQltJjxJIN5tnxRLyj+gzOPmNid5cOx3a78Uf KieIjTA/I83Cf6M9AjrFasJEC4hf/f0/ZE2Yk4erKXvqjU1IntP/VlkcHBgpzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cV6ZB4ZyTz1CY; Sun, 21 Sep 2025 13:30:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58LDUglk063198; Sun, 21 Sep 2025 13:30:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58LDUgjq063195; Sun, 21 Sep 2025 13:30:42 GMT (envelope-from git) Date: Sun, 21 Sep 2025 13:30:42 GMT Message-Id: <202509211330.58LDUgjq063195@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Colin Percival Subject: git: 6ac69d27f4 - main - 15.0: Almost on schedule List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6ac69d27f4dd5d535b98eae13b8ebb3bf2b41f5e Auto-Submitted: auto-generated The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/doc/commit/?id=6ac69d27f4dd5d535b98eae13b8ebb3bf2b41f5e commit 6ac69d27f4dd5d535b98eae13b8ebb3bf2b41f5e Author: Colin Percival AuthorDate: 2025-09-21 13:29:38 +0000 Commit: Colin Percival CommitDate: 2025-09-21 13:29:38 +0000 15.0: Almost on schedule ALPHA3 builds started 1 day late. Sponsored by: https://www.patreon.com/cperciva --- website/content/en/releases/15.0R/schedule.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/en/releases/15.0R/schedule.adoc b/website/content/en/releases/15.0R/schedule.adoc index ced312f973..3caf29b904 100644 --- a/website/content/en/releases/15.0R/schedule.adoc +++ b/website/content/en/releases/15.0R/schedule.adoc @@ -37,7 +37,7 @@ General discussions about the pending release and known issues should be sent to |{localBranchStable} branch |5 September 2025 |5 September 2025 |{localBranchStable} branch created; future release engineering proceeds on this branch. |ALPHA1 builds begin |5 September 2025 |6 September 2025 |First alpha test snapshot. |ALPHA2 builds begin |12 September 2025 |14 September 2025 |Second alpha test snapshot. -|ALPHA3 builds begin |19 September 2025 |- |Third alpha test snapshot. +|ALPHA3 builds begin |19 September 2025 |20 September 2025 |Third alpha test snapshot. |ALPHA4 builds begin |26 September 2025 |- |Fourth alpha test snapshot. |{localBranchReleng} branch |3 October 2025 |- |{localBranchReleng} branch created; future release engineering proceeds on this branch. |BETA1 builds begin |3 October 2025 |- |First beta test snapshot.