aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/zh-tw/articles/contributing/_index.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/zh-tw/articles/contributing/_index.adoc')
-rw-r--r--documentation/content/zh-tw/articles/contributing/_index.adoc235
1 files changed, 235 insertions, 0 deletions
diff --git a/documentation/content/zh-tw/articles/contributing/_index.adoc b/documentation/content/zh-tw/articles/contributing/_index.adoc
new file mode 100644
index 0000000000..5e112db1ee
--- /dev/null
+++ b/documentation/content/zh-tw/articles/contributing/_index.adoc
@@ -0,0 +1,235 @@
+---
+title: 幫助 FreeBSD
+authors:
+ - author: Jordan Hubbard
+releaseinfo: "$FreeBSD$"
+trademarks: ["freebsd", "ieee", "general"]
+---
+
+= 幫助 FreeBSD
+:doctype: article
+:toc: macro
+:toclevels: 1
+:icons: font
+:sectnums:
+:sectnumlevels: 6
+:source-highlighter: rouge
+:experimental:
+:toc-title: 目录
+:part-signifier: 部分
+:chapter-signifier: 第
+:appendix-caption: 附录
+:table-caption: 表
+:figure-caption: 图
+:example-caption: 例
+
+include::shared/zh-tw/mailing-lists.adoc[]
+include::shared/zh-tw/urls.adoc[]
+
+[.abstract-title]
+摘要
+
+無論是個人或是各種組織,如果希望為 FreeBSD 提供幫助,都可以在本文中找到合適的方法。
+
+'''
+
+toc::[]
+
+你希望替 FreeBSD 做點什麼嗎?太好了,我們歡迎你。FreeBSD 正是有賴於廣大使用者的貢獻才得以發展壯大的。我們不僅非常感謝您所做的貢獻,而且,這些工作對於 FreeBSD 的持續發展也至關重要。
+
+也許與您想像的不同,您既不必得是一名出色的 Programmer,也無須和 FreeBSD core team 成員有很好的私交,我們會一視同仁的對待您的工作。 FreeBSD 的開發人員遍布全球,大家技術專長各異,年齡分布也非常廣泛。 然而,每天我們都在面對持續增加的工作,而苦於沒有足夠的人手,因此我們隨時歡迎您的幫助。
+
+FreeBSD 計劃所處理的是一個完整的作業系統環境,而不只是一個 kernel 或是一些零散的工具包。 因此,我們的 [.filename]#TODO# 待辦任務列表裡包含各式各樣的工作: 從文件、使用者測試、demo,到系統安裝程式和更專業的 kernel 開發。 因此無論您的技術水準如何,從事何種領域,都可以幫助這個計劃。
+
+我們鼓勵從事和 FreeBSD 相關工作的企業和我們聯繫。 您需要一些特殊的擴展來使您的產品運轉起來嗎? 您會發現我們很樂意答應您的請求,除非是特別稀奇古怪的。 您是否正從事相關的增值業務? 讓我們來幫助您吧, 我們也許可以在某些方面相互合作。 自由軟體界正在努力打破舊有的框框(像是關於軟體開發、銷售和維護), 我們希望懇請您至少能給它一次機會。
+
+[[contrib-what]]
+== 我們的需求
+
+下面列出了一些需要完成的任務和子計劃, 它們代表 [.filename]#TODO#(待辦任務列表) 列表的意思,以及使用者的要求。
+
+[[non-programmer-tasks]]
+=== 正在進行中的任務(非程式開發人員)
+
+很多參加 FreeBSD 計劃的人不是 Programmer。 這個計劃裡有文件撰寫者、網頁設計師、以及技術支援人員。 對於這些義工來說,他們只需要貢獻一些時間,並且具有學習的意願。
+
+. 您可以時常翻閱 FAQ 和手冊(Handbook) ,如果發現有解釋不清楚的地方,或是不合時宜的文件,甚至完全不正確的地方, 都請告訴我們。當然,若能順手把他們修正,並把勘誤寄給我們,那就更好了。:) (SGML 其實並不難學,但我們也不反對您直接提交一般 ASCII 的純文字版本)。
+. 幫助我們把 FreeBSD 文件翻譯成你的母語。 如果你的母語版本已經存在了, 也可以翻譯一些額外的文件,或者檢查那些已有的文件是否為最新版。 您可以先簡單看看 FreeBSD 文件計劃中有關 link:{fdp-primer}#translations[翻譯時的常見問題]。 參加翻譯工作,並不是說您要孤軍奮戰翻譯所有 FreeBSD 文件。 身為義工,要做多少工作完全取決於您的意願。一旦某個人開始翻譯了, 之後幾乎一定會有其他人參與到這些工作中來。 如果時間有限,或者精力不夠去翻譯整份文件,那可以首先去翻譯安裝指南。
+. 閱讀 {freebsd-questions} 並偶爾翻閱(甚至有規律地這樣做) link:news:comp.unix.bsd.freebsd.misc[comp.unix.bsd.freebsd.misc] 。與別人分享您的專業知識, 並幫助他們解決問題,是件令人愉悅的事情; 有時候,您甚至可以在這個過程中學到一些新東西! 這些論壇有時也會為您激發出一些不錯的想法。
+
+[[ongoing-programmer-tasks]]
+=== 正在進行中的任務(程式開發人員)
+
+列在這裡的大部分任務都需要您投入可觀的時間,或者需要您在 FreeBSD kernel 方面有豐富的知識,或者兩者都要。當然這裡也有很多重要的任務,適合像是 "weekend hackers" 這類只用週末就可以搞定的 Hacker。
+
+. 如果您正在跑的是 FreeBSD -CURRENT 版本,並且網路速度還不錯, 那麼可以到 `current.FreeBSD.org`, 這台每天會有一個新版本 - 如果您有空, 您可以三不五時下載並安裝, 其間如果出了什麼問題,請告訴我們。
+. 閱讀 {freebsd-bugs}。這些問題,或許您能提供有建設性意義的意見, 或者幫忙測試一些 patch 。此外,甚至可以嘗試修正其中的一些問題。
+. 如果您知道有一些修正已經在 -CURRENT 上成功地使用, 但在經過一段時間(通常是 2 週左右)之後,仍未合併到 -STABLE (這步驟就是 MFC -- Merged From Current),那麼可以給相關的 committer 人員發封禮貌的提醒信。
+. 將第三方(3rd party)軟體加入到原始碼中的 [.filename]#src/contrib# 目錄。
+. 確保 [.filename]#src/contrib# 中的原始碼是最新的。
+. 編譯原始碼(或是部分原始碼)時,請改用更高的警告等級(warning level) 以便偵錯(debug)用,並在完成測試、確認正常完畢之後,清除這些編譯的警告等級。
+. 更新那些在 ports 中使用過時的東西, 例如 `gets()` 或包含 [.filename]#malloc.h# 所產生的警告。
+. 如果有為 ports 作了任何修正, 請記得將您的 patch 發給原作者 (這樣下次升級時,您的工作會變得輕鬆一些)。
+. 先取得正式的標準,如 POSIX(R) 的副本。 在 link:https://www.FreeBSD.org/projects/c99/[FreeBSD C99 & POSIX 標準相容計劃] 網站上,可以得到相關鏈接。 請將 FreeBSD 的行為與上述的標準進行比較,若所得結果與 C99 & POSIX 標準不同的話, 特別是那些細節地方的微小差異,請發一個關於它的 PR (問題報告)。 如果可能,請指出如何修正它,並隨 PR 提交 patch 。 如果您認為標準有問題,請向這些規格標準的相關團體,請求對其進行重新的考慮。
+. 為這份列表提供更多建議!
+
+=== 查閱整個 PR 資料庫
+
+http://www.FreeBSD.org/cgi/query-pr-summary.cgi[FreeBSD PR 列表] 這裡會顯示目前所有 PR 的問題狀態,以及由 FreeBSD 使用者提交的改進建議。 PR 資料庫同時包括了開發人員和非開發人員的任務。 查看那些尚未解決的 PR,並看看是否有您感興趣的任務。 這其中可能有一些是非常簡單的問題,只需要看一看並確認 PR 是正確的。 另外一些可能會非常複雜,或者完全未附任何修正。
+
+首先看一看那些還沒有人接手的 PR。 如果 PR 已經分配給了其它人,但看起來是您能夠處理的, 您可以寄信給那個人,並詢問您是否可以提供幫助 - 他們可能已經有可供測試的 patch ,或有一些可供討論的意見。
+
+=== 由 "Ideas" 中選一項
+
+link:https://www.FreeBSD.org/projects/ideas/[FreeBSD list of projects and ideas for volunteers] 同樣地開放給有意願參與 FreeBSD 計劃的人。 這份清單將持續地更新,同時提供各個項目的資訊給所有人 (不論是否為程式設計人員)。
+
+[[contrib-how]]
+== 如何提供幫助
+
+基本上可以分為以下 5 種方式:
+
+[[contrib-general]]
+=== 錯誤報告和意見發表
+
+通常,__一般__ 的技術想法和建議應該發到 {freebsd-hackers}。 同樣地,對於這些東西有興趣的人 (當然, 他們同時還要能夠容忍 _大量的_ 郵件!) 可以考慮訂閱 {freebsd-hackers}。 請參閱 link:{handbook}#eresources-mail[FreeBSD 使用手冊] 以了解關於這個郵遞論壇, 以及其它郵遞論壇的詳細情況。
+
+如果您發現了 bug 或者想要提交某些修改, 請透過 man:send-pr[1] 程式或使用 link:https://www.FreeBSD.org/send-pr/[網頁介面 的回報] 來提交。請試著填寫 PR 的每個項目。 一般來說,除非 patch 檔超過 65 KB,我們建議在 PR 中直接附上 patch 就可以了。 若可直接套用 patch 到原始碼的話,那麼建議在 PR 的 Synopsis 欄位註明 `[PATCH]`。 對了,在附上 patch 時,請 _不要_ 透過滑鼠的『複製、貼上』來進行,因為這樣做會把 Tab 變成空格, 會導致 patch 就不能用了。如果 patch 超過 20KB, 請考慮壓縮它並使用 man:uuencode[1] 來進行編碼。
+
+在寫完 PR 之後,您會收到一封確認郵件以及事件追蹤編號。 請保留這個編號,因為事後可以用這編號發信到 {bugfollowup} 來回覆、提供關於該事件的後續資料。您需要做的是將編號放到郵件的標題中, 例如 `"Re: kern/3377"`。 若是同一問題的回覆方面,應該透過這種方式來進行。
+
+如果您在一段時間 (超過 3 天甚至 1 週,這取決於您的郵件服務)之後仍然沒有收到確認信 或者由於一些原因無法使用 man:send-pr[1] 程式, 則可以發信到 {freebsd-bugs} 來請別人幫你代寄。
+
+請參閱 link:{problem-reports}[這篇文章] 了解如何撰寫好的問題報告。
+
+=== 對於文件的修訂
+
+文件的修改方面,是由 {freebsd-doc} 來審查。 請參閱 link:{fdp-primer}[FreeBSD Documentation Project Primer] 來獲得完整的教學細節。 請按照 <<contrib-general>> 中介紹的方法使用 man:send-pr[1] 來提交新的文件,或者改善現有的文件 (哪怕是很小的改進也是歡迎的!)。
+
+=== 對於現有原始碼的修改
+
+在現有原始碼上進行修改或增加功能,在某種程度上是需要更多技巧的事, 並且還跟您對於目前 FreeBSD 的開發現狀了解程度有關。 有多種方式可以得到被稱作 "FreeBSD-CURRENT" 的 FreeBSD 開發版本。 請參閱 FreeBSD 使用手冊的 link:{handbook}#current-stable[相關部份] ,來了解使用 FreeBSD-CURRENT 的詳情。
+
+在舊的原始碼上進行修改,則通常可能原始碼已過時, 或與新的版本差異太大而無法被重新整合到 FreeBSD 中。 如果您有訂 {freebsd-announce} 以及 {freebsd-current} 的話, 則可以透過它們來大致了解目前的開發狀態。
+
+若您能夠儘量以最新的原始碼來進行您的修改, 則下一步要做的事情就是產生您所修改的 diff 檔, 並將它發給 FreeBSD 的維護人員。這項工作可以透過 man:diff[1] 命令來完成。
+
+提交 patch 時,建議 man:diff[1] 格式採用 unified diff (可以用 `diff -u` 來產生)。不過,如果您修改了大量的原始碼, 則使用 `diff -c` 來生成的 context diff 的 diff 可能更容易閱讀,因而推薦使用。一般而言,大都是採用 `diff -ruN` 即可。
+
+例如:
+
+[source,bash]
+....
+% diff -c oldfile newfile
+....
+
+或
+
+[source,bash]
+....
+% diff -c -r olddir newdir
+....
+
+將會對特定目錄,產生 context 的 diff 檔。
+
+或者像是...
+
+[source,bash]
+....
+% diff -u oldfile newfile
+....
+
+或
+
+[source,bash]
+....
+% diff -u -r olddir newdir
+....
+
+將產生一樣的 diff ,但是格式為 unified 。
+
+更多的細節部份,請參閱 man:diff[1]。
+
+一旦您使用 man:diff[1] 來產生 diff 檔 (可以使用 man:patch[1] 命令來測試一下),就可以提交它們,以便被 FreeBSD 收錄。 透過使用 <<contrib-general>> 中所介紹的 man:send-pr[1] 程式就可以完成這項工作。 請注意:不要只把 diff 檔發到 {freebsd-hackers}, 否則它們可能會被遺忘! 我們會非常感激您提交的修改 (這是一個義工計劃!); 因為我們都很忙, 因此有時不一定能夠立即修正問題,但 PR 資料庫將一直保持著這些記錄, 因此只要有人有了時間它們就能被改正了。 如果您的問題報告中包括 patch ,不要忘了在標題加上 `[PATCH]` 來強調一下。
+
+如果您認為合適 (例如增、刪檔案或更改檔名), 還可以考慮使用 `tar` 來將檔案打包,然後用 man:uuencode[1] 來編碼。此外,也可以用 man:shar[1] 產生的方式。
+
+如果您的修改可能存在潛在的爭議,例如, 您不確定相關的版權問題,或者感覺需要經過更嚴格的復審才可以發佈它們, 則應直接發給 {core},而不是透過 man:send-pr[1] 來發送。 {core} 這小組成員大多從事 FreeBSD 的日常工作。 需要注意的是,這個小組也因此十分忙碌, 因此只有在非常必要的時候,才應寫信給他們。
+
+請參考 man:intro[9] 和 man:style[9] 以了解關於撰寫程式碼的風格偏好。 若能在送出相關程式碼之前,先了解這些,那對大家來說將是極大的幫助。
+
+=== 新原始碼或重要的加值軟體包
+
+如果您打算提供規模較大的原始碼,或者為 FreeBSD 增加重要的新功能, 則可能必須將它們透過 uuencode 進行編碼,或傳到某個 Web 或 FTP 站點,以便更多的人能夠得到它。如果您沒有這樣的主機, 請到相關的 FreeBSD 郵遞論壇提出,看看是否有人願意幫您放置它們。
+
+對於大量的原始碼而言,關於版權的問題肯定會被提出。 FreeBSD 基本系統中能夠使用的版權聲明包括:
+
+. BSD 版權。我們傾向於使用這類授權的原始碼, 因為它『不附加多餘的條件』,因而更能夠吸引商業企業使用。 FreeBSD 並不反對商業公司使用它的原始碼,相反, 我們積極地鼓勵商業公司使用我們的原始碼, 當然,如果它們若最終能把部分原始碼,重新捐贈給 FreeBSD 就更好了。
+. GNU General Public License,或簡稱 "GPL"。 我們並不很歡迎使用這樣授權的原始碼, 因為商業公司使用它需要做更多的工作。不過,由於很多使用 GPL 授權的原始碼目前是無法避免的 (compiler, assembler, text formatter等等) ,拒絕使用所有採用這樣授權的軟體是很不明智的。 採用 GPL 授權的原始碼會被放到原始碼的一些特定的位置,例如 [.filename]#/sys/gnu# 或 [.filename]#/usr/src/gnu#,以便那些認為 GPL 可能會造成麻煩的人能夠作出適當的判斷。
+
+使用其它授權的原始碼在進入 FreeBSD 之前必須經過慎重的復審和考慮。 採用包含嚴厲限制的商業授權的原始碼,一般來說會被拒絕, 但我們鼓勵這些原始碼的作者,透過自己的管道來發布它們。
+
+若要在您的成果上加入 "BSD-based" 版權的話, 請把下列文字放到每份原始碼的最開始部分, 並用適當的文字替換 `%%` 之間的文字。
+
+[.programlisting]
+....
+Copyright (c) %%proper_years_here%%
+ %%your_name_here%%, %%your_state%% %%your_zip%%.
+ 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 as
+ the first lines of this file unmodified.
+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 %%your_name_here%% ``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 %%your_name_here%% 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$
+....
+
+為了方便您的使用,在 [.filename]#/usr/shared/examples/etc/bsd-style-copyright# 也可以找到此授權的副本。
+
+=== 贊助資金、硬體或 Internet mirror
+
+我們非常願意接受各種形式的捐贈,以進一步拓展 FreeBSD 計劃 ,因為有您的支持,像我們這樣的義工努力才能夠有更大的成就! 捐贈硬體也非常重要,因為這樣能夠幫助我們增加可支援的硬體種類, 而我們中的很多人並沒有足夠的資金來購置這些硬體。
+
+[[donations]]
+==== 捐款
+
+FreeBSD 基金會是一個非營利的、有課稅豁免權的基金會, 之所以會建立這個基金會,是為了讓 FreeBSD 計劃能夠可長可久。 因為該基金會屬 501(c)3 實體,一般而言捐款給基金會的話,可以免繳美國聯邦收入稅, 以及科羅拉多州收入稅。通常對於有課稅豁免權的實體進行捐贈的話, 可以折抵聯邦收入中應課稅部分的金額。
+
+您可以把支票寄往:
+
+[.address]
+****
+The FreeBSD Foundation +
+P.O. Box 20247, +
+Boulder, +
+CO 80308 +
+USA
+****
+
+FreeBSD 基金會現在可以透過 PayPal 從網上接受捐款。 如果您想向基金會捐款,請參閱 http://www.freebsdfoundation.org[FreeBSD 基金會] 網站。
+
+關於 FreeBSD 基金會的更多詳情,可以在 http://people.FreeBSD.org/~jdp/foundation/announcement.html[FreeBSD 基金會 -- 介紹] 找到。要聯絡基金會, 請發送電子郵件到 mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]。
+
+==== 捐贈硬體
+
+FreeBSD 計劃歡迎任何人捐贈可以使用的硬體。 如果您有興趣捐贈硬體,請聯繫 link:https://www.FreeBSD.org/donations/[捐贈聯絡人辦公室]。
+
+==== 成為 FreeBSD mirror 的網站
+
+我們歡迎新的 FTP、WWW 或 `cvsup` mirror 站。如果您希望成為這樣的 mirror 站, 請參閱 link:{hubs}[如何架設 FreeBSD mirror] 一文,以了解進一步的情況。