Line 24: | Line 24: | ||
=== Lee los Principios === | === Lee los Principios === | ||
Si no sabes como crear un paquete RPM, ve el [ | Si no sabes como crear un paquete RPM, ve el [http://fedoraproject.org/wiki/How_to_create_an_RPM_package/es 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). | 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). |
Revision as of 22:26, 3 May 2014
Unirse Mantenedores de Paquetes
Roles de Contribución
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.
- Si no sabes como crear un paquete RPM, lee la guía de Cómo_crear_un_paquete_RPM.
- Asegurate de que tu paquete cumpla con 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).
- Está pendiente de los Items Prohibidos ("Forbidden Items":https://fedoraproject.org/wiki/ForbiddenItems) y de los Lineamientos de Revisión de Paquetes ("Packages Review Guidelines":https://fedoraproject.org/wiki/Packaging/ReviewGuidelines) (estos serán utilizados durante la revisión de los paquetes)
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.
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)
- Visita el sistema de cuentas: https://admin.fedoraproject.org/accounts/
- Haz click en 'Cuenta Nueva' y llena el formulario.
- 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.
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
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
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.
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.
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
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.