En el boletín de Fedora se publicó una propuesta una propuesta para la estandarización de macros en archivos de especificación RPM, que permite agregar a los paquetes RPM la opción de seleccionar banderas de compilación y dependencias adicionales en la etapa de construcción.
Ejemplo de uso:
%if %{use ssl}
BuildRequires: openssl-devel
%endif
%prep
%configure %{use_enable ssl openssl}
%check
make test %{?_use_ssl:-DSSL}
En este ejemplo, al establecer el macro USE ssl en el archivo de especificación, se añadirá una dependencia adicional en el paquete openssl-devel, se realizará el paso de configuración con la opción habilitada —enable-openssl, y también se ejecutarán las pruebas correspondientes durante la construcción.
Se supone que la opción de construcción se establecerá mediante el macro binario %_use_ con envolturas adicionales del tipo:
- %{use } – acepta valores 0 o 1,
- %{use_enable [ []]} – se expande en —disable- o —enable-.
La adición de opciones de este tipo en los archivos de especificación permitirá construir diferentes variantes de la distribución a partir de las mismas fuentes.
Por ejemplo, para minimizar el árbol de dependencias de construcción, se podrá utilizar el parámetro global %{use docs} que desactiva la compilación de documentación.
Se podrá proporcionar un conjunto adecuado de opciones configurando el entorno de construcción. Además, las opciones se podrán establecer tanto a nivel global como redefinirlas individualmente para cada paquete.
La propuesta aún no ha sido aceptada y se encuentra en discusión.
Fuente: linux.org.ru
