Después de casi dos años de desarrollo lanzamiento del gestor de paquetes . El proyecto RPM4 es desarrollado por Red Hat y se utiliza en distribuciones como RHEL (incluyendo proyectos derivados como CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen y muchas más. Anteriormente, fue un equipo de desarrolladores independiente. iniciado hace varios años , que no está directamente relacionado con RPM4 y actualmente está abandonado (no se ha actualizado desde 2010).
Más destacadas en RPM 4.15:
- Se añadió soporte experimental para compilación no privilegiada en el entorno chroot;
- soporte para la paralelización de la compilación de paquetes en sistemas multicore. El límite del número de hilos se establece a través de la macro "%_smp_build_ncpus" y la variable $RPM_BUILD_NCPUS. Se propuso la macro "%getncpus" para determinar el número de CPU;
- En los archivos spec apareció soporte para el operador condicional "%elif" (else if), así como las variantes "%elifos" y "%elifarch" para atar a la distribución y la arquitectura;
- nuevas secciones "%patchlist" y "%sourcelist", que se pueden utilizar para agregar parches y fuentes de texto simplemente enumerando los nombres sin especificar números de registro (por ejemplo, en lugar de
"Patch0: popt-1.16-pkgconfig.patch" en la sección %patchlist se puede indicar "popt-1.16-pkgconfig.patch"); - En rpmbuild soporte para construcción dinámica de dependencias con su inclusión en src.rpm. En el archivo spec se añadió soporte para la sección "%generate_buildrequires", cuyo contenido se maneja como una lista de dependencias (BuildRequires) que requiere verificación (si una dependencia está ausente, se mostrará un error).
- el operador "^" para verificar versiones posteriores a una fecha dada, que realiza la acción opuesta al operador "~". Por ejemplo,
"1.1^20160101" abarcará la versión 1.1 y los parches añadidos después del 1 de enero de 2016; - Se añadió la opción "—scm" para habilitar el modo "%autosetup SCM";
- Se incorporó la macro incorporada "%{expr:…}" para calcular expresiones arbitrarias (hace unos días también se añadió el formato "%[ expr ]");
- Se garantizó el uso por defecto de la codificación UTF-8 para los datos de cadena en los encabezados;
- Se añadieron macros globales %build_cflags, %build_cxxflags, %build_fflags y %build_ldflags con flags para el compilador y enlazador;
- Se añadió la macro "%dnl" (Descartar a la Siguiente Línea) para insertar comentarios;
- En los bindings para Python 3 se aseguró que las cadenas se devuelvan como secuencias UTF-8 escapadas en lugar de datos en bytes;
- Se añadió un backend ficticio de base de datos para mejorar el soporte en sistemas sin rpmdb (por ejemplo, Debian);
- Se mejoró la detección de arquitecturas ARM y se añadió soporte para armv8;
- Se aseguró un soporte fluido para Lua 5.2-5.3, sin requerir definiciones compat en el código.
Fuente: opennet.ru
