From Fedora Project Wiki

Unirse Mantenedores de Paquetes

Roles de Contribución

Roles de Contribución
Estas son solo sugerencias para roles de contribución. Sólo tu imaginación pone los lí­mites.


OS Developer

Como unirse al Fedora Package Collection Maintainers

Así­ que has decidido convertirte en un mantenedor de paquetes para el Proyecto Fedora. Esta guí­a te llevará a través de tu primera entrega de un paquete.


Convertirse en un Fedora Package Collection Maintainer

Lee los Principios

Si no sabes como crear un paquete RPM, ve el Cómo_crear_un_paquete_RPM y las Guías de Construcción de Paquetes ("Building Packages Guide":https://fedoraproject.org/wiki/Docs/Drafts/BuildingPackagesGuide).

Lee los Lineamientos de Empaquetamiento ("Packaging Guidelines":https://fedoraproject.org/wiki/Packaging/Guidelines) y Los Lineamientos de Colocar Nombre a los Paquetes ("PackageNamingGuidelines":https://fedoraproject.org/wiki/Packaging/NamingGuidelines).

Es necesario que estés bien familiarizado con estos puntos. Ellos gobiernan todas el empaquetamiento. Si tienes alguna pregunta, puedes consultar en las Listas de Empaquetamiento de Fedora ("Fedora Packaging List":https://www.redhat.com/mailman/listinfo/fedora-packaging).

Crea una Cuenta en Bugzilla

Debes tener una cuenta en "Red Hat Bugzilla":https://bugzilla.redhat.com/.

La dirección de correo electrónico que utilices para tu cuenta de bugzilla debe ser la misma dirección que utilizas en el Sistema de Cuentas de Fedora ("Fedora Account System":https://fedoraproject.org/wiki/Infrastructure/AccountSystem) para todas las cosas que estén relacionadas con empaquetamiento.

Únete a las Listas de Correo Importantes

Debes unirte a la lista de correo de "fedora-devel-announce@redhat.com":https://www.redhat.com/mailman/listinfo/fedora-devel-announce, esta es una lista de bajo tráfico donde sólo se dan anuncios y se publica información importante de desarrollo.

Puedes unirte a la lista de "fedora-devel-list@redhat.com":https://www.redhat.com/mailman/listinfo/fedora-devel-list, donde se discute acerca del desarrollo de Fedora. Esta es una lista de alto tráfico.

También puedes considerar unirte a la lista de correo de "fedora-extras-commits@redhat.com":https://www.redhat.com/mailman/listinfo/fedora-extras-commits -- La lista de correo de entregas tiene todas las notificaciones de todas las entregas de cualquier paquete en el repositorio de Fedora. Esta es una lista de muy alto tráfico. La base de datos de los paquetes de Fedora manda los correos de las entrega de los paquetes que tu (co-)mantienes.

Otra lista de correo que puedes considerar (al menos para ver los archivos) es "fedora-packaging@redhat.com":http://www.redhat.com/mailman/listinfo/fedora-packaging. Esta es la lista de correo del Comite de Empquetamiento de Fedora ("Fedora Packaging Committee":https://fedoraproject.org/wiki/Packaging/Committee), quienes determinan los lineamientos oficiales de empaquetamiento para los proyectos de Fedora.

Lee Las Contribuciones de Otros

Lee las contribuciones de paquetes de otros para aprender acerca del empaquetamiento y te familiarices con el proceso y los requerimientos.

Una forma de hacer esto es unirse a la lista de correo "fedora-package-review@redhat.com":http://www.redhat.com/mailman/listinfo/fedora-package-review; todos los comentarios de las revisiones de los paquetes en Fedora son enviados a esta lista (que es de solo lectura).

Hacer un Paquete

Debes estar seguro de que es un paquete nuevo. El paquete que estas entregando puede ser de cualquier proyecto Libre y de código abierto que no esté empaquetado en Fedora. Puedes encontrar una lista de los paquetes existentes en la Colección de Paquetes de Fedora (Fedora Package Collection) en la Base de Datos de Paquetes de Fedora ("Fedora Package Database":https://apps.fedoraproject.org/packages/). Por favor revisa también "Solicitudes de Revisión de en progreso y no asignados":http://fedoraproject.org/PackageReviewStatus/, que da una lista de los paquetes que necesitan revisión o que están actualmente bajo revisión, así­ como también la lista de "paquetes retirados":https://fedoraproject.org/wiki/Deprecated_packages.

Subir tu Paquete

Sube tus archivos SRPM y SPEC en algún lado en Internet. Puede ser cualquier sitio que pueda ser accesible a través de un URL. Si ya tienes tu cuenta de Fedora entonces puedes utilizar el espacio de almacenamiento en http://fedorapeople.org para esto.

Crear tu Petición de Revisión

Llena esta forma: https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora&format=fedora-review.

  • Antes de enviar tu petición, debes estar seguro de que no haya ninguna petición anterior para el mismo paquete.
  • Asegurate de que coloques el nombre del paquete (excluyendo la versión y el número de release) en el campo de 'Review Summary' junto con un breve resumen de que es el paquete.
  • Sube el archivo SPEC y el SRPM a un sitio web público. Si necesitas espacio de hosting, por favor haz una nota en tu ticket de entrega y alguien te ayudará con esto. Si ya tienes tu cuenta Fedora, puedes hacer uso de http://fedorapeople.org
  • Coloca una descripción de tu paquete en el campo de 'Review Description' (usualmente, puede ser la misma que colocaste en el spec %description). Incluye los URLs de los archivos SRPM y SPEC. También coloca que este es tu primer paquete y que necesitas un patrocinante.


Asegurate que mencionas en el campo de 'Review Description' que es tu primer paquete, y que estás buscando un patrocinador. En la Colección de Paquetes de Fedora (Fedora Package Collection), todos los nuevos contribuidores deben estar patrocinados. Los patrocinadores potenciales mirarán el bug FE-NEEDSPONSOR en bugzilla para encontrar los paquetes que necesitan revisión. Puedes añadir tu paquete a esta lista editando tu bug de solicitud de revisión donde debes añadir FE-NEEDSPONSOR en el campo ' Bug xyz blocks'(donde xyz es el número de bug para tu solicitud de revisión).

El proceso de revisión está descrito en detalle en la página de Proceso de Revisión de Paquete ("Package Review Process":https://fedoraproject.org/wiki/Package_Review_Process).


Informar a Upstream

Fedora como proyecto, prefiere mantenerse cerca del upstream. Informa a los desarrolladores que estás empaquetando el software. Puedes hacer esto enviandoles un correo electrónico presentandote e informándoles la solicitud de revisión. Esto coloca el escenario para futuras conversaciones. Usualmente publicarán el hecho de que su software es ahora parte de Fedora o querrán informarte de bugs importantes en la versión actual, lanzamientos futuros, etc.

Está Pendiente de las Respuestas

Revisa en el reporte de Bugzilla por tu primer paquete. Debes obtener las notificaciones de cambios por correo. Arregla cualquier bloqueo que indique el revisor.

Obten una Cuenta Fedora

Crea una cuenta en el Sistema de Cuentas de FedoraCreate ("Fedora Account System":https://fedoraproject.org/wiki/Infrastructure/AccountSystem) (esto no es sólo una cuenta bugzilla)

  1. Visita el sistema de cuentas: https://admin.fedoraproject.org/accounts/
  2. Haz click en 'Cuenta Nueva' y llena el formulario.
  3. Después de crear la cuenta, por favor asegúrate de firmar el CLA (si haces click en el link "Mi Cuenta" en la parte superior derecha, podrás ver CLA: CLA Done)
 Nota:  Los empleados de Red Hat deben aplicar por el cla_redhat. Desde el Sistema de Cuentas, Aplicar por Grupo Nuevo, coloca cla_redhat en el campo de grupo y luego haz click en Aplicar. Luego pí­dele a TomCallway que te apruebe.

Instala las Herramientas de Cliente (Koji)

Necesitas koji para construir paquetes para la Fedora Collection o "EPEL":https://fedoraproject.org/wiki/EPEL. También necesitarás generar un certificado de cliente en el "Fedora Account System":https://admin.fedoraproject.org/accounts/user/gencert y guardar el archivo en ~/.fedora.cert, que es donde los makefiles de Fedora CVS buscan por defecto.

Expiración de Certificado
Luego de 6 meses tu certificado expirará. Por lo que tienes que solicitar otro. Cada vez que solicites un nuevo certificado el anterior no podrá ser utilizado nuevamente.

El paquete fedora-packager provee las herramientas que te ayudarán a configurar y trabajar con fedora, por lo que lo debes instalar:

yum install fedora-packager

Después de la instalación debes ejecutarlo con tu usuario para configurar koji:

fedora-packager-setup
Actualización de Certificado
Debes volver a correr fedora-packager-setup cada vez que actualices tu certificado de Fedora

Ahora puedes utilizar "koji" para construir paquetes RPM para plataformas o distribuciones que no tengas (por ejemplo, PPC). Nota que puedes probar tus construcciones ("scratch" builds) así­ tu paquete no haya sido aprobado o no tengas todaví­a un patrocinador. Una forma sencilla de contruir desde 0 (scratch build) utilizando koji es ejecutando:

koji build --arch-override=PLATFORM --scratch TARGET path_to_source_RPM

Donde:

   * TARGET es una palabra clave de la distribución como dist-9 (para Fedora 9). Puedes ejecutar "koji list-targets"  para verlas todas. Para construir para el proximo release (rawhide), no utilices "dist-rawhide" - utiliza en cambio "dist-fX" donde X es uno más que la última versión estable (por ejemplo 13 en el caso de Fedora 12)
   * PLATFORM es una palabra clave de la plataforma como por ejemplo i386 (32-bit), x86_64, ppc, o ppc64. Puedes omitir --arch-override=PLATFORM, en cuyo caso koji hará test builds para todas las arquitecturas que diga que soporta en el archivo spec.
   * Fí­jate que necesitas colocar la ruta para el archivo fuente RPM (que termina en .src.rpm), y no un URL. (Si sólo tienes el archivo spec, utiliza rpmbuild --nodeps -bs SPECFILE para crear la fuente RPM). 

Lo que construyas con koji solo puede depender de paquetes que estén en los repositorios del TARGET. Por lo que no puedes utilizar koji para construir para versiones de las distribuciones si tu paquete depende de otros nuevos paquetes que Bodhi no ha publicado aún. Puedes utilizar koji para construir de rawhide (la próxima versión que no ha sido lanzanda), así­ este dependa de nuevos paquetes, siempre y cuando que estén en la sección "devel" del CVS como se describe abajo. Si necesitas construir contra paquetes que no tienen todaví­a una versión actualizada estable, puedes hacer un ticket con rel-eng a: https://fedorahosted.org/rel-eng/newticket y solicitar que el paquete sea añadido como un buildroot override. Para paquetes en EPEL, debes utilizar el componente epel para que el requerimiento llegue a las personas correctas.

Puedes aprender más de koji a través de:

koji --help            # Ayuda general
koji --help-commands   # lista los comandos de koji
koji COMMAND --help    # ayuda con el comando COMMAND

Para más información de como utilizar koji "PackageMaintainers/UsingKoji":https://fedoraproject.org/wiki/PackageMaintainers/UsingKoji

Unirse al grupo de Empaquetadores

Debes aplicar para una membresí­a en el grupo Fedora "Packager":https://admin.fedoraproject.org/accounts/group/view/packager

Obten Patrocinio

Cuando el paquete es APROBADO por el revisor, debes obtener separadamente un patrocionio de un miembro para revise y construya tu paquete. El patrocinio no es automático y puede requerir que participes en otras formas para demostrar tu entendimiento de los lineamientos de empaquetamiento. La clave para ser patrocinado es convencer a un miembro que sea patrocinador de que entiendes y sigues los lí­neamientos y procesos del proyecto.

Para más información de patrocinio revisa "PackageMaintainers/HowToGetSponsored":https://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored


La revisión y aprobación de el primer paquete para nuevos empaquetadores debe hacerse por patrocinadores registrados. Revisiones posteriores pueden hacerse por cualquier mantenedor de paquetes. Las revisiones informales siempre se pueden hacer por cualquiera que esté interesado.

Tu patrocinador puede aprobar tu solicitud y moverte de "pendiente" a "patrocinado". Deberí­as recibir un correo de confirmación de tu patrocinio.

Añadir Paquete a CVS y Colocar el Propietario

Sigue el procedimiento "CVSAdminProcedure":https://fedoraproject.org/wiki/PackageMaintainers/CVSAdminProcedure para obtener un módulo CVS para versiones recientes de tu nuevo paquete y sus ramas.

Esto se utilizará para configurar registros apropiados en la base de datos del propietario, que es utilizada como acceso para construir el paquete, población de bugzilla y otras caracterí­sticas. Este paso crea un módulo CVS para tu nuevo paquete, con directorios vacios para cada distribución solicitada.

Check out del módulo

Ya podrí­as hacer el check out de tu módulo, pero antes de hacerlo, debes considerar ejecutar "mkdir ~/cvs ; cd ~/cvs" - de esta manera, aseguras que todos tus archivos estén dentro del directorio. También para no tener que escribir la contraseña para cada paso debes ejecutar ssh-add.

Ejecutar <cod>ssh-add antes de hacer cualquier operación cvs es una buena idea ya que te ahorrará el escribir la contraseña para cada operación. Sólo tienes que ejecutar ssh-add una vez por sesión y lo recordará hasta que te salgas de la sesión o reinicies. Si "ssh-add" da el error "Could not open a connection to your authentication agent." inicia un nuevo shell ejecutando "exec ssh-agent bash".

Ahora estas listo para hacer checkout desde CVS de tu módulo:

fedora-cvs <packagename>

Donde <packagename> debe ser reemplazado por el nombre de tu paquete.

Ahora debes tener un directorio llamado igual que tu paquete con un directorio por cada rama (branch) dentro de él.

Si este paso falla, asegúrate que tienes el modo de tu llave privada ssh* @(~/.ssh/id_rsa)@ *esté como 0400. Podrí­as tener que esperar hasta una hora después para que tu solicitud de un nuevo módulo CVS sea aprobada. Asegúrate también que la clave pública sea la misma que la de Fedora Account System (FAS). La propagación de la clave puede llevar más o menos una hora después de que ha sido cargada en FAS.

Puedes utilizar fedora-cvs con varios módulos al mismo tiempo. Para hacer checkout desde el cvs ejecuta fedora-cvs {nombres de módulos separados por espacios}, por ejemplo:

fedora-cvs konversation mysql-gui-tools snort

Importar Tu Paquete

Ahora que ya has hecho el check out de tu módulo con fedora-cvs, cd dentro del módulo:

cd MODULE_NAME

Ejecuta el script common/cvs-import.sh, para improtar los contenidos de SRPM en CVS:

./common/cvs-import.sh RUTA_A_SRPM

Obviamente, reemplaza RUTA_A_SRPM por la ruta absoluta (no URL) de tu SRPM aprobado.

Esto importa solo la rama de desarrollo (devel branch). Probablemente quieras importar otras cosas utilizando el parámetro -b, que importará el paquete dentro de otras ramas de distribución como F-9. Por ejemplo

./common/cvs-import.sh -b F-9 RUTA_A_SRPM

El programa cvs-import.sh responderá con:

Checking out module: 'NAME'

Puede que veas errores como los siguientes varias veces los cuales pueden ser ignorados:

buffer_get_ret: trying to get more bytes 129 than in buffer 34
buffer_get_string_ret: buffer_get failed
buffer_get_bignum2_ret: invalid bignum
key_from_blob: can't read rsa key
key_read: key_from_blob AA....  failed

Pero entre ellos debes ver:

Unpacking source package: NAME....src.rpm...

Junto con una lista de archivos fuente en el paquete, seguidos por la revisión y subida de los archivos.

Luego, veras "If you want to make any changes before committing, please press Ctrl-C. Otherwise press Enter to proceed to commit." Presiona Enter/Intro.

Finalmente (si no has configurado ningún otro editor) se abrirá vi para dejarte editar el changelog de CVS. Para el changelog, utiliza el mismo formato del final del archivo .spec. Si no has utilizado vi, despues de introducir tu changelog presiona Enter y escribe

:wq

y vuelve a presionar 'Enter' para finalizar.

Etiqueta o Actualiza tus Ramas (Branches)

Las ramas son F-# (anteriormente FC-#), devel, etc. Así­ que F-9 es la rama para Fedora 9.

Antes que una rama pueda ser contruida en el sistema de Fedora Package, los archivos en esa rama deben ser etiquetados en CVS.

El comando "import", descrito arriba, automáticamente etiqueta los archivos. Sin embargo, tu directorio local puede que no tenga exactamente las versiones correctas de los archivos, así­ que debemos ir al directorio de la rama (por ejemplo cd devel/ o cd F-9/) y ejecutar:

cvs up

El script "import" automáticamente etiqueta los archivos. Sin embargo, si importaste los archivos "a mano" o vas a hacer un release bump luego de una falla al construir, en vez de utilizar el script de "import", debes etiquetar tu mismo. Para hacerlo, ve al directorio de la rama y ejecuta:

make tag

Se deberí­a etiquetar con la versión y release del archivo SPEC. Debes etiquetar todas las ramas que quieras construir.

Solicitar Construcción

Para cada rama etiquetada que quieras solicitar que se construya, debes ir al directorio (ejemplo cd devel/) y ejecutar:

make build
Asegúrate que estás construyendo para rawhide (versión sin publicar) antes de colocar actualizaciones para cualquiera de las otras ramas! de otra manera, esas actualizaciones serán heredadas dentro de rawhide, que no es lo que queremos.
Sincronizar a buldsys es cuestión de una hora. Así­ que algunas veces tendrás que esperar una hora para poder acceder al servidor para dar el "make build"

Si todo sale bien, debe estar en cola para la construcción de la rama, tu paquete estará construido limpiamente y estas listo!

Si falla la construcción, el sistema constructor te enviará un correo reportando la falla y te mostrará los logs. Haz cualquier cambio que sea necesario al cvs, sube el número de release del archivo SPEC, re-etiqueta la rama, y pide una nueva construcción.

Enviar un Paquete como una Actualización en Bodhi

El sistema de actualización de Fedora llamado Bodhi es utilizado para enviar actualizaciones, clasificar paquetes, etc. No envies paquetes "devel" (rawhide) ví­a bodhi.

Antes se podí­a enviar una actualización utilizando Bodhi por la lí­nea de comandos ejecutando:

make update

Pero ahora si quieres utilizar la lí­nea de comandos, usa el comando "bodhi" como está descrito en la "Bodhi Guide":https://fedoraproject.org/wiki/Bodhi_Guide.

También puedes utilizar la "interfaz Web de Bodhi":https://admin.fedoraproject.org/updates/new/ para solicitar actualizaciones de mejoras para los release de Fedora a los que estás trayendo los nuevos paquetes.

El primer campo te pregunta por el nombre del "Package". Este campo se auto-completará con el nombre del paquete encontrado en el sistema Koji. por ejemplo <package-name>-<version>-<release>.fc9. Si la completación no sirve, escribe tu mismo el nombre del paquete.

Para nuevos paquetes, escoge "newpackage" como el "type" de la actualización.

Coloca el "Request" como "testing" si quieres que el paquete sea probado primero, ve el "Fedora Quality Assurance":https://fedoraproject.org/wiki/QA (Aseguramiento de Calidad de Fedora). Coloca estable si quieres enviar directamente el paquete a estable.

Coloca el número de bug de la Solicitud de Revisión en el campo "Bugs". Bodhi automáticamente lo cerrará como NEXTRELEASE cuando se enví­e al estatus de solicitud de actualización.

Para nuevos paquetes, añade una copia de la descripción del paquete en la sección de "Notes", para que así­ los usuarios finales sepan de que trata el paquete.

Aquí­ está la "Bodhi Guide":https://fedoraproject.org/wiki/Bodhi_Guide y "más información de Bodhi":https://fedoraproject.org/wiki/Infrastructure/UpdatesSystem/Bodhi-info-DRAFT.

Luego que hayas enviado una actualización a través de bodhi, tu paquete será colocado en una cola. Periódicamente, un administrador revisará la cola y enviará todos los paquetes a los repositorios apropiados.

Hacer el paquete disponible en los archivos "comps"

Si es apropiado para el paquete, hazlo disponible en los archivos "comps" para que pueda ser seleccionado durante la instalación e incluido en las operaciones de grupo de paquetes de yum. Ver "PackageMaintainers/CompsXml":https://fedoraproject.org/wiki/PackageMaintainers/CompsXml para más información.

Revisa las actualizaciones

Fedora tiene una infraestructura disponible para monitorear nuevas versiones de upstream del software que estás empaquetando. Revisa "Upstream Release Monitoring":https://fedoraproject.org/wiki/Upstream_Release_Monitoring para más detalles. Aprende a manejar las actualizaciones leyendo el "Package update HOWTO":https://fedoraproject.org/wiki/Package_update_HOWTO.

Obtener Ayuda

Sabemos que este proceso puede ser tan claro como el lodo algunas veces, y siempre intentamos hacerlo mejor. Si te encuentras con algún problema, o tienes cualquier pregunta, por favor hazla en la lista de correo "fedora-devel-list":https://www.redhat.com/mailman/listinfo/fedora-devel-list o en #fedora-devel en "freenode":http://freenode.net/ . Ve la página de "Comunicados":https://fedoraproject.org/wiki/Communicate para más detalles.

El proyecto de mentores de Fedora (The Fedora Mentors Project) tiene personas dispuestas a ayudar a nuevos contribuidores en sus esfuerzos de empaquetamiento. Ve la página de "Mentores":https://fedoraproject.org/wiki/Mentors para más información.

Revisa también el "CVS FAQ":https://fedoraproject.org/wiki/Using_CVS_FAQ_for_package_maintainers

Obtener un nuevo paquete dentro de Fedora Package Collection para mantenedores existentes

Si tu ya mantienes un paquete en Fedora y quieres mantener otro, sigue el "proceso para nuevos paquetes":https://fedoraproject.org/wiki/PackageMaintainers/NewPackageProcess.