ansible-koji/docs/compilación_de_paquetes.rst
Rénich Bon Ćirić 7ab7d80bd2
docs: add package compilation and symlinks configuration
Add Koji package compilation documentation outlining SCM, lookaside cache, and repository priority configuration. Fix Apache configuration to follow symlinks in /mnt/koji.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>

Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-16 15:33:57 -06:00

3.9 KiB

Compilación de Paquetes en Koji

Este documento detalla el procedimiento para el empaquetado, la gestión de repositorios externos y la compilación de paquetes dentro del clúster Koji de MxOS.

Estructura de Repositorios y Fuentes

Para mantener una compatibilidad estricta con CentOS Stream 10, los paquetes de MxOS siguen las siguientes pautas:

  • Repositorios Git: Las recetas Spec y los parches se almacenan en repositorios hospedados en la organización RPMs de Git:

    git.mx-os.mx/RPMs/<paquete>.git

  • Lookaside Cache: Los archivos fuente de gran tamaño (tarballs, crates de Rust, etc.) no se suben al control de versiones de Git. En su lugar, se suben al Lookaside Cache (Dist-Git) hospedado en cs10-koji-04.mx-os mediante la API de carga. Cada repositorio Git contiene un archivo llamado sources en su raíz que define los nombres de los archivos fuente y sus hashes SHA512 correspondientes.

Prioridades de Repositorios Externos

Koji utiliza el comando mergerepo_c para fusionar los paquetes internos creados dentro de la etiqueta mxos0 con los repositorios externos oficiales de CentOS y EPEL. Para asegurar que las dependencias se resuelvan adecuadamente y los paquetes de bootstrap compilados localmente (como bash o llvm-libs) tengan precedencia sobre los de upstream, es crucial configurar prioridades correctas en la etiqueta de construcción (mxos0-build):

  • Prioridad 5: centos-stream-10-baseos

  • Prioridad 10: centos-stream-10-appstream

  • Prioridad 15: centos-stream-10-epel

  • Prioridad 20: centos-stream-10-crb

Si necesitas restaurar o corregir las prioridades de los repositorios externos, ejecuta los siguientes comandos como el usuario kojiadmin:

koji remove-external-repo centos-stream-10-appstream mxos0-build
koji add-external-repo -t mxos0-build -p 10 centos-stream-10-appstream

Procedimiento para Iniciar Construcciones

Para registrar un nuevo paquete e iniciar su compilación en el sistema Koji, sigue estos pasos:

1. Registrar el Paquete en Koji

Antes de iniciar la compilación de un paquete por primera vez, este debe registrarse bajo la etiqueta del tag destino (mxos0). Ejecuta:

koji add-pkg --owner kojiadmin mxos0 <nombre-del-paquete>

Por ejemplo:

koji add-pkg --owner kojiadmin mxos0 rust-siguldry

2. Solicitar la Construcción (Build)

Una vez registrado, puedes solicitar la compilación directamente indicando el tag destino y la dirección del repositorio Git (SCM URL) junto con la rama o el commit correspondiente:

koji build mxos0 'git+https://git.mx-os.mx/RPMs/<paquete>.git#<rama-o-commit>'

Por ejemplo, para compilar rust-siguldry desde la rama c10s:

koji build mxos0 'git+https://git.mx-os.mx/RPMs/rust-siguldry.git#c10s'

Resolución de Problemas y Regeneración del Repositorio

Si has importado paquetes base nuevos o modificado las prioridades de los repositorios externos y la inicialización de la buildroot falla debido a dependencias desactualizadas o un error de payloadhash mismatch, debes forzar la regeneración inmediata del repositorio de la buildroot mediante el siguiente comando:

koji regen-repo --make-task mxos0-build