GNU 軟體評估
向 GNU 提供軟體
如果您撰寫了想要提供給 GNU 計劃的軟體,非常感謝您!此頁面包含一份問卷,請在發送您的軟體包時填寫,以便我們可以獲得所需資訊並儘快評估它。
請花時間填寫問卷。我們已將其寫成預先格式化的文字,您可以將其複製到您的系統並仔細填寫。完成後,請通過電子郵件將其發送至 <gnueval@gnu.org>(純文字格式)。
GNU 不僅僅是一系列有用的程式,而是一個 100% 自由軟體的統一作業系統。因此,為了保持 GNU 系統在技術上的一致性,我們確保各個部分能良好地協同工作。因此,評估人員會根據程式在技術和哲學上與 GNU 系統的契合程度,以及它們的品質、可用性以及您期望的其他特性來判斷程式。根據評估人員的報告,Richard Stallman(首席 GNUisance)會對是否接受貢獻做出最終決定。
這樣做的一個後果是,我們通常不接受與現有的 GNU 軟體包大幅重疊的新軟體包。作為一個連貫的系統,GNU 最好有一個指定的軟體包來完成指定的工作,並且該領域的人們可以共同協作,貢獻並改進該軟體包,而不是擁有許多軟體包,每個軟體包都完成工作的一部分,並且各自獨立開發。同樣,一個小程式通常更適合作為現有軟體包的一部分,而不是作為一個獨立的新軟體包。(GNU 今天確實有許多這樣的重疊軟體包,通常是出於歷史原因。這並不能否定一般原則。)
另一個後果是,成為 GNU 維護者是一個相當正式的過程,因為以維護者身份加入 GNU 計劃意味著您必須同意在維護範圍內,為了 GNU 計劃的軟體自由使命而工作。
因此,除了問卷之外,請閱讀 GNU 軟體維護者資訊 中的 GNU 政策以及 GNU 編碼標準。下面給出了 主要政策的摘要,但請也瀏覽完整的文件。
如果您發布了一個自由軟體包,但不希望填寫問卷和/或滿足官方 GNU 軟體包的要求,我們仍然鼓勵您在 自由軟體目錄 中列出它。我們希望該目錄涵蓋所有已發布的自由軟體包。
再次感謝您對 GNU 的興趣。
程式成為 GNU 軟體包的意義
以下是 rms 對於程式成為 GNU 軟體包的意義的解釋,其中也解釋了 GNU 軟體包維護者的責任。
使程式成為 GNU 軟體意味著其開發者和 GNU 計劃都同意「此程式是 GNU 計劃的一部分,在 GNU 的贊助下發布」—並在程式中聲明。
GNU 計劃任命軟體包維護者—最初是主要開發者,或那些希望被任命的開發者—代表 GNU 計劃對軟體包負責。我們希望這種情況不會發生,但如果他們辭職,我們會尋找其他維護者。除非/直到 GNU 計劃決定將其退役,否則該程式仍然是 GNU 軟體包。
作為 GNU 軟體包意味著我們通常將程式的打包發行版放在 ftp.gnu.org
上。但是,如果我們認為您選擇的發行版站點是安全的,它允許來自任何地方的任何人的連接,並且即使使用者的瀏覽器拒絕執行 JavaScript 程式碼也能正常工作,我們可以轉而參考您選擇的站點。
這也意味著程式的官方網站應該位於 www.gnu.org
上,具體來說是在 /software/PROGRAMNAME
中。每當您發布軟體包首頁的 URL 時,您都應該提供此地址。對於次要主題(例如用於幫助開發軟體包的人員的頁面)和用於運行資料庫的頁面,可以使用另一個站點是可以的。(如果確實有迫切的原因,我們可以例外地將程式的網頁放在其他地方。)
這意味著開發人員同意注意使程式與 GNU 系統的其餘部分良好協同工作—反之,GNU 計劃將鼓勵其他 GNU 維護者注意使他們的程式與其良好協同工作。
程式之間良好協同工作到底意味著什麼,主要是一個實際問題,取決於程式的功能。但是有一些通用原則。GNU 編碼標準的某些部分直接影響整個系統的一致性。這些包括配置和構建程式的標準,以及命令列選項的標準。重要的是使所有 GNU 程式都遵循這些標準(在適用的情況下)。
另一個重要的 GNU 標準是,GNU 程式應附帶 Texinfo 格式的文件。那是 GNU 標準文件格式,它可以自動轉換為各種其他格式。您可以使用 DocBook 或任何其他合適的格式作為文件來源,只要將其自動轉換為 Texinfo 可以產生良好的效果即可。
如果 GNU 程式想要具有可擴展性,它應該盡可能使用 Guile 作為可擴展性的程式語言。對於某些程式,可能有理由以不同的方式執行,但如果可行,請使用 Guile。
GNU 程式應使用 GNU 計劃推薦的最新版本的授權條款—而不僅僅是任何自由軟體授權條款。對於大多數軟體包,這意味著使用 GNU GPL「第 3 版或更高版本」。
GNU 程式不應推薦使用任何非自由軟體,也不應將使用者引導至任何非自由軟體的文件以獲取自由軟體。與自由軟體配套的 自由文件運動 是 GNU 計劃的主要重點;為了表明我們對此是認真的,我們絕不能通過推薦非自由文件來破壞我們的立場。
偶爾會出現術語問題,這些問題對於 GNU 計劃作為一個整體的成功至關重要。因此,我們希望 GNU 程式的維護者能夠遵守它們。例如,程式中的文件和註釋應提及 GNU/Linux 系統,而不是將整個系統稱為「Linux」,並且應使用術語「自由軟體」而不是「開放原始碼」。由於 GNU 程式是在 GNU 的贊助下發布的,因此它不應說任何與 GNU 計劃觀點相矛盾的話。
程式成為 GNU 軟體並不要求將著作權轉讓給 FSF;這是一個獨立的問題。如果您將著作權轉讓給 FSF,如果有人違反 GPL,FSF 將為該程式強制執行 GPL;如果您保留著作權,則強制執行將由您負責。
作為軟體包的 GNU 維護者,請務必與 GNU 計劃保持聯繫。如果我們遇到與軟體包相關的問題,我們需要告訴您,並與您討論如何解決。有時我們需要請您與其他維護者合作,以解決涉及一起使用多個軟體包的問題。這種情況可能每年發生不到一次,但請確保我們可以在這種情況下與您聯繫。
這份 GNU 維護者提示 簡短列表可能對您在軟體包成為 GNU 的一部分後的一些事項提供有用的概述。
更多詳細資訊可在以下文件中找到
關於 GNU 和自由軟體的基本概念,請閱讀以下文章
- GNU 計劃
- 什麼是自由軟體?
- 自由和非自由軟體的類別
- 避免有害的妥協
- 由於帶有傾向性或令人困惑而應避免(或謹慎使用)的詞語
- Linux 和 GNU 系統
- Richard Stallman 的 GNU/Linux 常見問題解答
- 為什麼開放原始碼錯失了自由軟體的重點
提供給 GNU 軟體的問卷
* General Information ** Do you agree to follow GNU policies? If your program is accepted to be part of the GNU system, it means that you become a GNU maintainer, which in turn means that you will need to follow GNU policies in regards to that GNU program. (Summarized above, see maintainers document for full descriptions.) ** Package name and version: ** Author Full Name <Email>: ** URL to package home page (if any): ** URL to source tarball: Please make a release tarball for purposes of evaluation, whether or not you publicly release it. If you don't have anywhere to upload it, send it as an attachment. ** Brief description of the package: * Code ** Dependencies: Please list the package's dependencies (source language, libraries, etc.). ** Configuration, building, installation: It might or might not use Autoconf/Automake, but it must meet GNU standards. Even packages that do not require compilation must follow these standards, so installers have a uniform way to define target directories, etc. Please see: https://gnu.dev.org.tw/prep/standards/html_node/Configuration.html https://gnu.dev.org.tw/prep/standards/html_node/Makefile-Conventions.html ** Documentation: We require using Texinfo (https://gnu.dev.org.tw/software/texinfo/) for documentation, and recommend writing both reference and tutorial information in the same manual. Please see https://gnu.dev.org.tw/prep/standards/html_node/GNU-Manuals.html ** Internationalization: If your package has any user-visible strings, please make them translatable to other languages using GNU Gettext: https://gnu.dev.org.tw/software/gettext/ ** Accessibility: Please discuss any accessibility issues with your package, such as use of relevant APIs. ** Security: Please discuss any possible security issues with your package: cryptographic algorithms being used, sensitive data being stored, possible elevation of privileges, etc. * Licensing: Both the software itself *and all dependencies* (third-party libraries, etc.) must be free software in order to be included in GNU. In general, official GNU software should be released under the GNU GPL version 3 or any later version, and GNU documentation should be released under the GNU FDL version 1.3 or any later version. Please see https://gnu.dev.org.tw/philosophy/license-list.html for a practical guide to which licenses are free (for GNU's purposes) and which are not. Please give specific url's to any licenses involved that are not listed on that page. * Similar free software projects: Please explain what motivated you to write your package, and search at least the Free Software Directory (https://gnu.dev.org.tw/directory/) for projects similar to yours. If any exist, please also explain what the principal differences are. * Any other information, comments, or questions:
再次提醒,完成問卷後,請通過電子郵件將其發送至 <gnueval@gnu.org>。
幫助 GNU 計劃的其他方式
有 許多其他方式 可以幫助 GNU,包括技術性和非技術性。