Guía de Empaquetado
Es responsabilidad del revisor señalar problemas específicos con un paquete y es responsabilidad del empaquetador manejar esos problemas. El revisor y el empaquetador trabajan en conjunto para determinar el grado de severidad del problema (si se bloquea el paquete o se puede manejar después del que el paquete se encuentre en el repositorio.) La Guía de Empaquetamiento es una colección de problemas comunes y el grado de severidad que debe ser puesto en ellos. Mientras que estas guías no deben ser ignoradas, tampoco deben seguirse a ciegas. Si usted piensa que su paquete debería exento de parte de la guía, puede comunicarle su inquietud al Comité de Empaquetado de Fedora.
Por favor recuerde que cualquier paquete que usted envíe debe ajustarse a la Guía de Revisión
Autor: Tom 'spot' Callaway (basado en muchos otros documentos)
Revision: 1.01
Borrador Inicial: Miércoles 23 de Febrero, 2005
Última Revisión: Viernes 4 de Febrero, 2011
Nombrado
Usted debe seguir la Guía de Nombramiento para asegurarse que su paquete esta nombrado apropiadamente.
Versión y Publicación
La documentación que cubre la manera adecuada de utilizar los campos Versión y Publicación pueden ser encontrados aquí: Packaging:NamingGuidelines#Package_Version
Legal
Hay varios aspectos legales que considerar cuando se empaqueta para Fedora.
Licenciamiento
Usted debería revisar el Licensing:Main y la Guía de Licenciamiento para segurarse de que su paquete está licenciado de manera apropiada.
Paquetes que no son útiles sin bits externos
Algunos programas no son funcionales o útiles sin la presencia de dependencias de código externo al ejecutarlos en el entorno del sistema operativo. Cuando estas dependencias de código externo no son gratis, es legalmente inaceptable, o solo binario (con excepción de algunos firmwares permisibles),entonces el programa dependiente no es aceptable para su inclusión en Fedora. Si el código dependiente es aceptable para Fedora, entonces ellos deben ser empacados e incluidos en Fedora como un pre-requisito para la inclusión del software dependiente. Programas que permiten descargar grupos de paquetes de Internet para que sean funcionales o útiles no son aceptables para ser incluidos en Fedora (independientemente de si el código descargado sería aceptable para ser empacados en Fedora como una dependencia apropiada).
Esto también significa que paquetes que no son funcionales o útiles sin código o paquetes de terceros no son aceptados para ser incluidos en Fedora.
No incluir binarios pre-construidos o librerías
Todos los binarios del programa y las librerías de programas incluidas en los paquetes de Fedora deben ser construidas desde el código fuente que está incluido en la fuente del paquete. Esto es un requerimiento por las siguientes razones:
- Seguridad: Programas binarios pre-empaquetados y librerias de programas no construidas del código fuente pueden contener partes maliciosas,peligrosas o rotas. Además son imposibles de reparar.
- Banderas del Compilador: Programas Binarios pre-empaquetados y librerías de programas no construidas desde el código fuente probablemente no fueron compiladas con las banderas estándar de Fedora para seguridad y optimización.
Contenido binario (como archivos .pfd, .png, .ps) no son requeridos para reconstruir desde el código fuente.
Si tiene alguna duda sobre si algo es considerado un programa binario o una biblioteca de programas, he aquí algunos criterios útiles:
- Es un ejecutable? si es asi, posiblemente sea un programa binario.
- Contiene una extensión .so, so.#, o .so.#.#.#? si es asi, es probable que sea una librería de programas.
- Si esta en duda, consulte con su revisor. Si el revisor no está seguro, entonces debe preguntar al Comité de Empaquetado de Fedora.
Paquetes que requieren de componentes propietarios para construirse tampoco son permitidos (ej. requiere un compilador propietario).
Cuando usted se encuentra con binarios pre-construidos usted DEBE:
- Remover todo los programas binarios pre-construidos y las librerías de programas en %prep antes de la construcción del paquete. Ejemplos incluidos, pero no están limitados a archivos *.class, *.dll, *.DS_Store, *.exe, *.jar, *.o, *.pyc, *.pyo, *.egg, *.so.
- Pregunte arriba para remover los binarios en sus próximos lanzamientos.
Excepciones
- Algunos programas (usualmente relacionados a compiladores o ambientes de compiladores cruzados) no pueden ser construidos primero sin el uso de herramientas de cadena o ambiente de desarrollo (código abierto). Si usted tiene un paquete que coincide con este criterio, contacte al Comité de Empaquetado de Fedora para aprobación.
- Se ha hecho una excepción para firmware binario, mientras cumpla con los requerimientos encontrados aquí: Licensing:Main#Binary_Firmware
- Algunos programas binarios pre-empacados o librerías de programas bajo términos que no permiten su distribución o pueden ser afectados por escenarios legales como patentes. En estos casos, borrar simplemente los archivos en %prep no es suficiente, el mantenedor va a tener que hacer una fuente modificada para que no contengas estos archivos. Ver: Packaging:SourceURL#When_Upstream_uses_Prohibited_Code