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>
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