Qué puede ser empaquetado

No todo puede ser empaquetado en Fedora. Muchas cosas consideradas para ser “software libre” o “software de fuente abierta” están permitidos, pero definiciones en estos no son siempre consistente y Fedora tiene unos pocos requisitos específicos y excepciones. Esto es un vistazo de algunos requisitos específicos y excepciones, pero no es intentado para ser exhaustivo. Si surge alguna pregunta, el {comité de empaquetado} y el {equipo legal} son los lugares primarios para recibir respuestas.

Temas Legales

Algunos software (o en algunos casos, porciones de ese software) no puede ser empaquetado por razones legales. Esto incluye temas relacionados para licencia, patentes, legislación de marcas comerciales, etc.

Consulte las páginas siguientes para varios ejemplos.

Contenido Inadmisible

Es importante distinguir entre código ejecutable y contenido informático. Si bien el código está permitido (suponiendo, por supuesto, que tenga una licencia compatible con código abierto y no sea legalmente cuestionable, etc.), solo ciertos tipos de contenido están permitidos.

La regla es esta:

Si el contenido mejora la experiencia de usuario del sistema operativo, entonces el contenido está OK para ser empaquetado en Fedora. Esto significa, por ejemplo, que las cosas como fuentes tipográficas, temas, imágenes pre‐diseñadas y fondos de pantalla se permiten.

El contenido aún debe revisarse para su inclusión. Debe tener una licencia compatible con código abierto, y no debe ser legalmente cuestionable. Además, existen varias restricciones adicionales para el contenido:

  • El contenido no es pornográfico, o contener desnudos, ya sea animado, simulado, o fotografiado. Hay lugares mejores en el Internet para obtener pornografía.

  • El contenido no tendría que ser ofensivo, discriminatorio, o derogatorio. Si no estás seguro si una pieza del contenido es una de estas cosas, probablemente es.

  • Todos el contenido está sujeto para revisión por FESCo, quién tiene la potestad para decir si es o no es incluido.

Algunos ejemplos del contenido el cual es permisible:

  • Documentación del paquete o archivos de ayuda.

  • Imágenes prediseñadas para utilizar en suites de oficinas.

  • Imágenes de fondo (no-ofensivas, discriminatorias, con permiso a redistribución libre).

  • Fuentes tipográficas (bajo una licencia de código abierto, sin propiedad/preocupaciones legales).

  • Niveles de juego no son contenido considerado, desde los juegos sin niveles serían no funcionales.

  • El sonido o el gráfico incluidos con la fuente tarball que el programa o los usos del tema (o la documentación) es aceptable.

  • Música de juego o contenido de audio es permisibles, mientras el contenido es libremente distribuido sin restricción, y el formato no está sujeto a patentes..

  • Los archivos de ejemplo incluidos con el tarball de fuente no son considerados contenido.

Algunos ejemplos del contenido el cual no está permitido:

  • Archivos de arte bibliográfico para cómic

  • Textos religiosos

  • Archivos en formatos de medios de comunicación gravados por patente

Si no estás seguro si algo está considerado como contenido aprobado, pedir el Packaging Committee o, si su cuestión es de una naturaleza legal, Legal Team.

Paquetes los cuales no son útiles sin código externo

Algún software no es funcional o útil sin la presencia de dependencias de código externo en el runtime entorno de sistema operativo. Cuándo aquellas dependencias de código externas son no-libres, legalmente inaceptables, o binarios-únicos (con la excepción de permisible firmware), entonces el software dependiente no es aceptable para inclusión en Fedora. Si las dependencias de código son aceptables para Fedora, entonces tendrían que ser packaged e incluidos en Fedora como pre‐requisite para inclusión del software dependiente. Software qué fardos de código de las descargas del internet para ser funcional o útil no es aceptable para inclusión en Fedora (a toda costa de si el código descargado sería aceptable de estar empaquetado en Fedora como dependencia apropiada).

Esto también significa que los paquetes los cueles no son funcionales o útiles sin código o paquetes desde fuentes de terceros no son aceptables para inclusión en Fedora.

Solo un paquete de kernel

Fedora sólo deja un único paquete del kernel; los paquetes que contienen los kernel alternos no concedidos en la distribución. Si hay características del kernel los cuales son útiles generalmente, comunique con el Kernel Team.

Sin módulos externos del kernel

Fedora no concede los módulos del kernel para ser empaquetados externos del paquete del kernel principal. Tendrías que comunicar con el equipo Kernel Team respecto a habilitar módulos adicionales del kernel.

Sin inclusión de binarios pre‐creados o bibliotecas

Todos los binarios y bibliotecas del programa incluidos en paquetes de Fedora deben ser creados desde el código fuente que está incluido en el paquete fuente. Esto es un requerimiento para las razones siguientes:

  • Seguridad: binarios y bibliotecas del programa pre‐empaquetados del programa no creados desde el código fuente pudo contener partes que son maliciosas, peligrosas, o tan sólo rotas. También, estos son funcionalmente imposibles para parches.

  • Indicadores del compilador: bibliotecas y binarios del programa pre‐empaquetados no creados desde el código fuente probablemente fueron no compilados con los indicadores del compilador de Fedora estándar para seguridad y optimización.

Binarios del contenido (tales como archivos .pdf, .png, .pg,) no son requeridos para ser recreados desde el código fuente.

Si estás en duda como para si algo está considerado un programa binario o una biblioteca del programa, aquí hay algo de criterio útil:

  • ¿Es ejecutable? Si por tanto, es probablemente un programa binario.

  • ¿Contiene una extensión de .so, .so.#, o .so.#.#.#? Si es así, es probable una biblioteca del programa.

  • Si en duda, solicite su revisor. Si el revisor no es seguro, solicitaría al Comité de Empaquetado de Fedora.

Los paquetes los cuales requieren componentes fuente no abiertos para crear además no están permitidos (p. ej. el compilador propietario requerido).

Cuando encuentre binarios pre‐creados en un paquete DEBE:

  • Retira todos los programas pre‐creados de binarios y bibliotecas del programa en %prep interior a la creación del paquete. Los ejemplos incluyen, pero no es limitan a, archivos *.class, *.dll, *.DS_Store, *.exe, *.jar, *.o, *.pyc, *.pyo, *.egg, *.so, *.swf.

  • Pide desarrollo para eliminar los binarios en su próximo lanzamiento.

Excepciones

  • Algún software (normalmente narrado a compiladores o compilación‐cruzada de compilador) no puede ser construido sin el uso de un cadena herramientas anterior o entorno de desarrollo (código abierto). Si tienes un paquete el cual cumple estos criterios, contacto el Comité de Empaquetado de Fedora para aprobación. Note que esta excepción, si es concedida, está limitada a sólo la creación inicial del paquete. Puedes bootstrap esta complexión con un binario pre‐construido de "bootstrap", pero tras esto esté completo, tienes que inmediatamente increment Emisión, gota el "bootstrap" pre‐construido binario, y complexión completamente de fuente. Los paquetes de Bootstrapped que contienen binarios pre‐creados de "bootstrap" no tiene que ser pulsado como paquetes de lanzamiento o actualizaciones bajo cualesquier circunstancias. Estos paquetes tendrían que contener la lógica necesaria para ser creada una vez el "bootstrapping" está completado y los programas pre‐creados ya no son necesarios. La información aproximadamente de como tendrías que romper dependencias circulares por "bootstrapping" puede encontrarse aquí.

  • Se hace una excepción para firmware binario, tan larga como los encuentra los requerimientos documentados en aquí.

  • Algunos programas binarios pre‐empaquetados o bibliotecas del programa pueden estar bajo la denominación sobre cuáles no permiten redistribución, o ser afectado por escenarios legales como patentes. En tales situaciones, sencillamente eliminando estos archivos en %prep no es suficiente, el maintainer necesitará hacer una fuente modificada que no contiene estos archivos. Consulte: Cuando Upstream utiliza código prohibido.

Código pre‐generado

A menudo un paquete contendrá código el cual fue generado por sí mismo por otro código. Esto a menudo toma el formulario de archivos de configuración o código interpretado generado por bison/yacc o lex/flex.

Está requerido que los archivos de fuente originales de qué el código estuvo generada ser incluidos en el paquete fuente. Generalmente estos archivos son parte del archivador de fuente proporcionado por flujo, pero puede ser necesario a obtener aquellos archivos de un repositorio en desarrollo de fuente e incluirles en el paquete de fuente como Source: apuntes.

Es preferido, pero no requerido, que las herramientas utilizadas para generar dicho código es software libre e incluido en Fedora.

Está sugerido, pero no requerido, que tal código está regenerado como parte del proceso de creación. El medio para hacer esto es enteramente específico para que el paquete individual sea creado, pero puede suceder automáticamente si están presentes las dependencias necesarias en tiempo de creación.