GNU 软件评估

向 GNU 提供软件

如果您编写了想要提供给 GNU 项目的软件,非常感谢!本页面包含一个问卷,请在发送软件包时填写,以便我们能够获得所需的信息并尽快对其进行评估。

请花时间填写问卷。我们将其编写为预格式化文本,以便您可以将其复制到您的系统并认真填写。完成后,请将其通过电子邮件(纯文本格式)发送至 <[email protected]>

GNU 不仅仅是一系列有用的程序,而是一个100% 自由软件的统一操作系统。因此,为了保持 GNU 系统在技术上的连贯性,我们确保各个部分能够很好地协同工作。因此,评估人员会根据程序在技术上和哲学上与 GNU 系统的契合程度,以及它们的质量、可用性和您期望的其他特性来评判程序。根据评估人员的报告,Richard Stallman(GNU 的首席麻烦制造者)将最终决定是否接受该贡献。

由此产生的一个结果是,我们通常不接受与现有 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 标准是,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 提供软件的问卷

* 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.ac.cn/prep/standards/html_node/Configuration.html
    https://gnu.ac.cn/prep/standards/html_node/Makefile-Conventions.html

** Documentation:
    We require using Texinfo (https://gnu.ac.cn/software/texinfo/)
    for documentation, and recommend writing both reference and tutorial
    information in the same manual.  Please see
    https://gnu.ac.cn/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.ac.cn/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.ac.cn/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.ac.cn/directory/)
   for projects similar to yours.  If any exist, please also explain
   what the principal differences are.

* Any other information, comments, or questions:

再次强调,完成后,请将问卷通过电子邮件发送至 <[email protected]>

帮助 GNU 项目的其他方式

还有许多其他方式可以帮助 GNU,包括技术方面和非技术方面。