Pautas de empaquetado de GAP
Este documento describe las convenciones y personalizaciones relativas a propio empaquetamiento de los paquetes GAP agregados en Fedora. A través de este documento, utilizamos la palabra add-on (agregado) para sustituir en el uso anterior de GAP de la palabra package (paquete), para evitar confundir con los paquetes RPM.
Nombrando
El paquete principal de GAP, sus bibliotecas y sistema de ayuda asociados se encuentran en los paquetes gap, gap-libs, gap-core, gap-online-help, gap-rpm-macros, gap-devel, gap-vim y libgap. Para distinguir los paquetes complementarios de estos paquetes principales, estos deben tener nombres con la forma gap-pkg-foo. Por ejemplo, el complemento FGA se nombra como gap-pkg-fga.
Lugar Adjuntado
Los paquetes independientes de la arquitectura (noarch) DEBEN instalarse en %{gap_libdir}/pkg/%{pkgname}, y los paquetes específicos de la arquitectura en %{gap_archdir}/pkg/%{pkgname}, donde %{pkgname} se expande al nombre GAP del complemento.
Los complementos de GAP están diseñados para instalarse simplemente descomprimiéndolos en un árbol de directorios de GAP existente. Para la mayoría de los complementos, la única acción de compilación necesaria es compilar la documentación. Sin embargo, dado que los autores de los complementos asumieron que esto ocurriría dentro del árbol de directorios de GAP, los complementos usan libremente rutas relativas para acceder a los archivos de GAP. Por ejemplo, los paquetes que usan TTH para compilar la documentación (ver más abajo) suelen invocar ../../../convert.pl. El archivo de especificaciones RPM DEBE tener esto en cuenta, ya sea modificando el complemento para que apunte a las rutas bajo %{gap_libdir} o creando enlaces simbólicos para que parezca que la compilación se realiza dentro del árbol de directorios de GAP. Si se modifica el complemento para la compilación, el archivo de especificaciones DEBERÍA encargarse de que se instalen los archivos originales (sin modificar), de modo que las rutas sean correctas después de la instalación.
Los complementos de GAP se distribuyen frecuentemente en archivos tar con un directorio de nivel superior con el formato addon-version. El complemento DEBERÍA instalarse sin el número de versión. La documentación de un paquete suele enlazarse con la documentación de otros paquetes. Si los directorios involucrados contienen números de versión, los enlaces pueden romperse al actualizar el paquete. Para evitar esta situación, omita los números de versión. GAP puede recuperar el número de versión del archivo PackageInfo.g del complemento, por lo que no se pierde información.
BuildRequires
Todos los complementos DEBEN incluir BuildRequires: gap-devel, ya que este paquete contiene las herramientas esenciales para compilar módulos binarios y crear documentación, así como un conjunto de macros RPM para usar en archivos de especificaciones. Cada complemento también DEBE incluir un BuildRequires que depende del estilo de documentación utilizado por el complemento GAP.
TTH
Los complementos que usan un guion buildman.pe o convert.pl para generar documentación también necesitan BuildRequires: tth para generar páginas de documentación HTML a partir de la entrada de TeX. Algunos complementos incluyen estos guiones, así como algunos archivos auxiliares. Los complementos que contengan alguno de los siguientes archivos deben modificarse para enlazarse a la versión del archivo incluida en los paquetes gap o gap‐devel.
-
gapmacro.tex→%{gap_libdir}/doc/gapmacro.tex -
gapmacrodoc.tex→%{gap_libdir}/doc/gapmacrodoc.tex -
manualbib.xml→%{gap_libdir}/doc/manualbib.xml -
manualbib.xml.bib→%{gap_libdir}/doc/manualbib.xml.bib -
manualindex→%{gap_libdir}/doc/manualindex -
buildman.pe→%{gap_libdir}/etc/buildman.pe -
convert.pl→%{gap_libdir}/etc/convert.pl
Requerir, Recomendar, y Sugerir
Todos los complementos DEBEN incluyir Requieres: gap-core, o bien directamente o bien transitivamente. Además, las dependencias en otros paquetes de GAP, como grabados en PackageInfo.g, DEBEN estar especificadas, con la excepción de GAPDoc, como anotó encima. GAP tiene un sistema de una dependencia de 2 niveles, especificada con las etiquetas NeededOtherPackages y SuggestedOtherPackages en PackageInfo.g. Como esta relación del sistema de dependencias RPM a nivel-3 de Requisitos, Recomendaciones, y Sugerencias quedan a la discreción del empaquetador de Fedora.
Archivos Innecesarios
El complemento GAP es intenta ser desempaquetado en un lugar con un árbol deldirectorio GAP. Normalmente, el directorio de la distribución completa es copiada a %{gap_libdir}/pkg o %{gap_archdir}/pkg. Esto incluye los directorios de la documentación, las cuales están consumidas por las herramientas contenidas en gap-online-help. Aun así, algunos archivos no son necesarias en el directorio de instalación final. Los archivos que no aparecerían allí incluyen:
-
Descripciones textuales del complemento, tales como un README
-
Archivos de licencias (COPYING, COPYRIGHT, LICENSE, etc.)
-
Archivos para generar la documentación, a menudo llamados
make_doc -
Los archivos generados por LaTeX y herramientas asociadas, incluyendo archivos con estos sufijos:
-
.aux
-
.bbl
-
.blg
-
.idx
-
.ilg
-
.ind
-
.log
-
.toc
-
Note que los archivos de la Licencia aún DEBE ser incluida dentro del paquete con la etiqueta %licence, y otra documentación tal como archivos README pueden ser incluidos como %doc.
La macro de %gap_copy_docs tiene como objetivo facilitar la instalación de los archivos de documentación. Para muchos paquetes, asegura que el subdirectorio doc existe en el buildroot, entonces invocar la macro sin argumentos en %instalar. Para casos especiales, pueden darse dos argumentos opcionales:
-
-d directory: para casos donde el directorio de la documentación no se nombradoc, o hay múltiples directorios de documentación -
-n package: se asume el nombre del directorio del complemento instalado para estar disponible desde una macro%pkgname. Si eso no es el caso, utilice esta macro para proporcionar el nombre del directorio del complemento principal.
Documentación
Desde la documentación GAP DEBE ser instalada debajo de %{gap_libdir}/pkg o %{gap_archdir}/pkg para el explorador de documentación embebida para encontrarlo, ya que la documentación NO ESTARÍA duplicada con %doc. Sin embargo, la documentación aún ESTARÍA marcada como tal de modo que la documentación-libre instala el trabajo como se esperaba. Muchos complementos INCLUIRÍAN %docdir declarations en la sección %files` del archivo spec; p. ej., %docdir %{gap_libdir}/pkg/%{pkgname}/doc y %docdir %{gap_libdir}/pkg/%{pkgname}/htm.
Otras macros de RPM
Otras macros de RPM que pueden ser útiles para los archivos spec del complemento GAP incluye los siguientes:
-
%gap_version: la versión del paquete GAP principal; p.ej. 4.12.0. -
%gap_archdir: directorio antecesor para complemento GAP de arquitectura específica , actualmente%{_libdir}/gap. -
%gap_libdir: el directorio root de la instalación GAP, actualmente%{_datadir}/gap. -
%gap_arch: el nombre GAP para la arquitectura de construcción;x86_64-redhat-linux-gnu.
Want to help? Learn how to contribute to Fedora Docs ›