Después de un año 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 que actualmente se encuentra abandonado (no se ha actualizado desde 2010). Código del proyecto se encuentra bajo las licencias GPLv2 y LGPLv2.
Más destacadas en RPM 4.16:
- Se ha implementado un nuevo backend para el almacenamiento de bases de datos en el SGBD SQLite. Este backend en Fedora Linux 33 en lugar del backend basado en BerkeleyDB.
- Se ha implementado un nuevo backend experimental para el almacenamiento de bases de datos en BDB (Oracle Berkeley DB), que funciona en modo solo lectura. La implementación se ha escrito desde cero y no utiliza el código del antiguo backend BerkeleyDB, que ha sido declarado obsoleto, pero aún se incluye por defecto.
- Se ha eliminado el backend experimental de la base de datos basado en LMDB.
- Se ha declarado estable el backend de base de datos basado en el almacenamiento NDB.
- Se ha añadido soporte para macros y expresiones '%if' (%{expr:1==0?»sí»:»no»}) y se ha propuesto una función incorporada para comparar versiones (‘%[v»3:1.2-1″ > v»2.0″]’).
- Se ha implementado soporte para la clasificación de archivos según los tipos MIME de su contenido.
- Se ha añadido la posibilidad de generar dependencias mediante .
- Se ha propuesto una nueva versión de la API de análisis y comparación para los lenguajes C y Python.
- Se ha logrado paralelizar la ejecución de brp-strip y los componentes de la suite de pruebas. Se ha optimizado la paralelización del proceso de generación de paquetes.
- En la utilidad rpmdb se ha añadido la opción ‘—salvagedb’ para restaurar la base de datos dañada (solo funciona con el backend NDB).
- Se han añadido nuevos macros %arm32, %arm64 y %riscv para determinar la arquitectura. También se ha añadido un macro incorporado %{macrobody:…} para obtener el contenido de los macros.
- Se ha prohibido el uso de palabras no delimitadas por comillas en las expresiones, es decir, en lugar de ‘a == b’ ahora se debe escribir ‘»a» == «b»‘.
- En el analizador de expresiones se ha implementado la sintaxis ‘%[...]’ para ejecutar expresiones con expansión de macros (se diferencia de ‘%{expr:…}’ en que los macros se ejecutan primero).
- En las expresiones se ha añadido soporte para la expansión corta de operadores lógicos y ternarios (‘%[0 && 1 / 0]’ se considera como 0, y no produce un error por intento de división por cero).
- Se ha añadido soporte para aplicar el operador lógico NOT en contextos arbitrarios (!»%?foo»).
- El comportamiento de los operadores ‘||’ y ‘&&’ se ha alineado con Perl/Python/Ruby, es decir, en lugar de devolver un valor booleano, ahora devuelve el último valor calculado (por ejemplo, ‘%[2 || 3]’ devolverá 2).
- Se ha añadido la posibilidad de verificar formatos alternativos de firmas digitales y hashes.
- Se ha añadido soporte para dependencias meta (Requires(meta): somepkg), que no afectan el orden de instalación y desinstalación.
- Se ha añadido la opción «—rpmv3» en rpmsign para forzar el uso de firmas digitales en formato RPM3.
- Se ha añadido la opción de instalación «—excludeartifacts» para omitir la instalación de documentación, ejemplos de archivos de configuración y otros datos relacionados.
- Se ha declarado obsoleto el soporte para RPMv3 y los backends criptográficos beecrypt y NSS.
- Se ha añadido soporte para DSA2 (gcrypt) y EdDSA.
Fuente: opennet.ru
