Esta es una traducción de la página original en inglés.

Evaluación de software para GNU

Cómo ofrecer software a GNU

Si ha escrito software y quisiera ofrecerlo al Proyecto GNU, ¡muchas gracias! Le pedimos que al enviarnos su paquete rellene el cuestionario que encontrará en esta página, a fin de que podamos disponer de la información necesaria para evaluarlo lo antes posible.

Tómese el tiempo necesario para rellenar el cuestionario. Lo hemos escrito como texto preformateado para que pueda copiarlo en su sistema y rellenarlo con atención. Cuando lo tenga listo, envíelo por correo electrónico a <gnueval@gnu.org> (en texto simple).

GNU no es una simple colección de programas útiles, sino un sistema operativo unificado que es 100% software libre. Para mantener la coherencia técnica del sistema GNU, nos aseguramos de que todas las partes encajen sin problemas. Al evaluar los programas se juzga cómo encajan en el sistema GNU, tanto técnica como filosóficamente, así como su calidad, utilidad y otras características que cabe esperar de ellos. Basándose en el informe de los evaluadores, Richard Stallman es quien decide si aceptar o no el software propuesto.

Una consecuencia de esto es que en general no aceptamos nuevos paquetes que sustancialmente coinciden con un paquete de GNU que ya existe. Por tratarse de un sistema coherente, es mejor que GNU tenga un paquete específico para realizar una tarea específica, y que haya personas de esa área que contribuyan y mejoren ese paquete trabajando juntas, en lugar de tener muchos paquetes que hagan diferentes partes de la tarea y se desarrollen independientemente. Asimismo, un programa pequeño a menudo encaja mejor como parte de un paquete existente que como un nuevo paquete independiente. (GNU tiene bastantes de esos paquetes redundantes hoy en día, generalmente por razones históricas. Esto no invalida el principio general).

Otra consecuencia es que convertirse en el encargado del mantenimiento de un paquete de GNU es un proceso formal, ya que unirse al Proyecto GNU como encargado del mantenimiento implica que se debe aceptar trabajar —dentro de los límites del mantenimiento— en pro de la libertad del software, que es la misión del Proyecto GNU.

Así pues le pedimos que, además de enviarnos el cuestionario, lea las directrices de GNU en Información para los encargados del mantenimiento de paquetes de GNU y también las Normas de programación de GNU. A continuación puede leer un resumen de las directrices más importantes, pero por favor consulte la documentación completa.

Si usted ha publicado un paquete de software libre pero no desea rellenar el cuestionario y/o su programa no cumple con los requisitos de los paquetes oficiales de GNU, aun así le animamos a incluirlo en el Directorio de Software Libre. Aspiramos a que en ese Directorio se encuentren todos los paquetes de software libre publicados.

Gracias de nuevo por su interés en GNU.

¿Qué significa que un programa es un paquete de GNU?

A continuación, la explicación de Richard Stallman de lo que significa que un paquete «es de GNU», lo cual también describe de manera general cuáles son las responsabilidades de los encargados del mantenimiento de un paquete de GNU.

Hacer que un programa sea parte del software de GNU significa que su desarrollador y el Proyecto GNU están de acuerdo en que «Este programa es parte del Proyecto GNU, publicado bajo la tutela de GNU», y así lo declaran en el programa.

El Proyecto GNU designa a los mantenedores del paquete (inicialmente los desarrolladores principales o aquellos de ellos que así lo deseen) para que se responsabilicen de él en nombre del proyecto GNU. Esperamos que no suceda, pero si ellos abandonan, buscamos otros mantenedores. El programa continúa siendo un paquete de GNU a menos o hasta que el proyecto GNU decida retirarlo.

En los paquetes de GNU, las versiones empaquetadas del programa se encuentran generalmente en ftp.gnu.org. No obstante, podemos remitir en su lugar a un sitio de su elección, siempre que lo consideremos seguro, que permita conexiones de cualquiera en cualquier parte y que funcione también cuando el navegador del usuario rechace ejecutar código JavaScript.

Eso significa también que la página oficial del programa ha de estar en www.gnu.org, concretamente en /software/NOMBREDELPROGRAMA. Siempre se tendrá que señalar esa dirección como la URL de la página principal del paquete. Se puede usar otro sitio para asuntos secundarios tales como las páginas destinadas a quienes colaboran con el desarrollo del paquete, y para ejecutar bases de datos (podemos hacer una excepción y poner las páginas web del programa en algún otro sitio si hubiera razones de mucho peso).

Esto quiere decir que los desarrolladores se comprometen a velar por que el programa funcione correctamente con el resto del sistema GNU y que el Proyecto GNU, a su vez, animará a los otros encargados del mantenimiento de GNU a que velen por que sus programas encajen bien con el programa en cuestión.

En cuanto a lo que significa hacer que los programas encajen sin problemas, esa es principalmente una cuestión práctica que depende de la función de cada programa. Existen sin embargo algunos principios generales. Ciertas partes de las normas de programación de GNU afectan directamente a la consistencia de todo el sistema. Estas incluyen las normas para la configuración y la compilación de un programa y las normas para las opciones de la línea de órdenes. Es importante que todos los programas de GNU sigan estas normas, donde sean aplicables.

Otra norma importante de GNU es que todos los programas de GNU deben incluir la documentación en formato Textinfo. Ese es el formato estándar que usamos para la documentación de GNU, y se puede convertir automáticamente a varios formatos diferentes. Para los fuentes de la documentación se puede usar DocBook o cualquier otro formato adecuado, siempre y cuando la conversión automática a Textinfo dé buenos resultados.

Si se quiere que un programa de GNU sea extensible, se debe usar Guile como lenguaje de programación para extensiones, siempre que sea posible. Para algunos programas está justificado hacerlo de manera diferente, pero le pedimos que si es posible utilice Guile.

Un programa de GNU debe usar la última versión de la licencia que el Proyecto GNU recomiende, no simplemente cualquier licencia de software libre. Para la mayoría de los paquetes, esto significa usar la licencia GPL de GNU en su versión 3 o posterior.

Un programa de GNU no debe recomendar el uso de ningún programa que no sea libre, y no debe remitir al usuario a ninguna documentación de un programa libre que no sea ella misma libre. La campaña para la documentación libre del software libre es uno de los principales objetivos del Proyecto GNU. Para mostrar que nos lo tomamos en serio, no debemos socavar nuestra posición recomendando documentación que no sea libre.

De vez en cuando se presentan conflictos en el uso de términos que son importantes para el éxito del Proyecto GNU en su conjunto. Esperamos por lo tanto que los encargados del mantenimiento de los programas de GNU sigan las pautas. Por ejemplo, en los archivos de la documentación y en los comentarios del programa se debe hacer referencia al sistema GNU/Linux en lugar de llamar a todo el sistema «Linux», y se deberá utilizar la expresión «software libre» en lugar de «código abierto». Puesto que un programa de GNU se publica bajo los auspicios de GNU, no debe decir nada que contradiga los puntos de vista del Proyecto GNU.

Para que un programa sea incluido como software de GNU no se requiere la transferencia del copyright a la FSF, esa es una cuestión aparte. Si usted transfiere el copyright a la FSF, la FSF hará cumplir la licencia GPL para el programa en caso de violación. Si en cambio el autor conserva el copyright, hacer valer la licencia dependerá de él.

Como encargado del mantenimiento de un paquete de GNU, por favor asegúrese de permanecer en contacto con el Proyecto GNU. Si nos encontramos con un problema relativo a su software, necesitaremos ponernos en contacto con usted para discutir la manera de solucionarlo. A veces necesitaremos pedirle que trabaje junto con otros encargados del mantenimiento para resolver algún problema que implique el uso de múltiples paquetes. Esto quizás ocurra menos de una vez al año, pero por favor asegúrese de que podamos ponernos en contacto con usted cuando sea necesario.

Puede ser útil echar un vistazo a esta breve lista de Recomendaciones para los encargados del mantenimiento de los paquetes de GNU, allí encontrará algunas cosas que tendrá que hacer después de que su software pase a ser parte de GNU.

En los siguientes documentos encontrará información más detallada:

Para conocer las ideas básicas sobre GNU y el software libre, lea estos textos:

Questionnaire for offering software to GNU [2]

* 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:
    http://www.gnu.org/prep/standards/html_node/Configuration.html
    http://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html

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

* Any other information, comments, or questions:

Una vez más, cuando haya completado el cuestionario, envíelo por favor a <gnueval@gnu.org>.

Otras maneras de ayudar al Proyecto GNU

Hay muchas otras maneras de ayudar al Proyecto GNU, tanto en aspectos técnicos como no técnicos.

Notas de traducción

[1] El cuestionario se ha de rellenar en inglés. Si necesita ayuda para hacerlo, escriba a <www-es-general@gnu.org>.
[2] Versión original en inglés del cuestionario que usted debe utilizar. La siguiente es una traducción que tiene carácter meramente informativo y no se debe utilizar:

Cuestionario para ofrecer software a GNU

* Información general

** ¿Acepta seguir las directrices del Proyecto GNU?
Si su programa es aceptado como parte del sistema GNU, esto significa que usted se convertirá en encargado del mantenimiento de GNU, lo que a su vez significa que deberá seguir las directrices de GNU con relación a ese programa de GNU.
(Más arriba encontrará un resumen. Para una descripción completa, consulte el documento para encargados del mantenimiento).

** Nombre y versión del paquete:

** Nombre completo del autor <correo electrónico>:

** Dirección del sitio principal del paquete (si es que existe):

** Dirección del archivo fuente tarball:
Le pedimos que, a efectos de la evaluación, haga un archivo tarball, vaya a publicarlo o no. Si no tiene un sitio donde subirlo, envíenoslo como archivo adjunto.

** Breve descripción del paquete:


* Código

** Dependencias:
Haga por favor un listado de las dependencias del paquete (lenguaje del código fuente, bibliotecas, etc.).

** Configuración, compilación, instalación:
Puede utilizar Autoconf/Automake o no hacerlo, pero debe seguir las normas de GNU. Los paquetes que no necesiten compilarse también deben seguir esas normas, a fin de que los instaladores dispongan de una manera uniforme de definir los directorios de destino, etc. Por favor, lea esto:
http://www.gnu.org/prep/standards/html_node/Configuration.html
http://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html

** Documentación:
Para la documentación es necesario utilizar Texinfo (http://www.gnu.org/software/texinfo/), y recomendamos que la información de referencia y el tutorial figuren en el mismo manual. Por favor, lea esto:
http://www.gnu.org/prep/standards/html_node/GNU-Manuals.html

** Internacionalización:
Si su paquete de software tiene cadenas de texto visibles para los usuarios, hágalas de modo que se puedan traducir utilizando GNU Gettext:
http://www.gnu.org/software/gettext/

** Accesibilidad:
Comente por favor las cuestiones de accesibilidad que afecten a su programa, como el uso de interfaces (API) adecuadas.

** Seguridad:
Comente por favor cualquier cuestión de seguridad relacionada con su programa: algoritmos de cifrado utilizados, almacenamiento de datos sensibles, posible ampliación de privilegios, etc.


* Licencia:

Para que se incluya en GNU, tanto el propio software del programa como todas sus dependencias (bibliotecas de terceros, etc.) deben ser software libre. En general, el software oficial de GNU debe publicarse bajo la GPL de GNU versión 3 o cualquier versión posterior, y la documentación de GNU, bajo la FDL de GNU versión 1.3 o cualquier versión posterior.

Le pedimos que consulte este enlace: http://www.gnu.org/philosophy/license-list.html. Ahí encontrará una guía práctica para saber qué licencias son libres (a los efectos del Proyecto GNU) y cuáles no. Por favor, facilite la dirección web de cualquier licencia utilizada que no esté incluida en esa página.


* Proyectos de software libre similares:

Por favor, explique qué le ha motivado a escribir su paquete de software, y busque al menos en el Directorio de Software Libre (http://directory.fsf.org/wiki/Main_Page) proyectos similares al suyo. Si existe alguno, explique cuáles son las principales diferencias entre ambos.


* Otra información adicional, comentarios o preguntas: